// Path: core/src/nkarasch/chessgdx/GameCore.java
// public class GameCore implements ApplicationListener {
// 
// 	public static final String TITLE = "ChessGDX";
// 
// 	private Camera mCameraController;
// 	private ChessLogicController mLogicController;
// 	private BoardController mBoardController;
// 	private PerspectiveRenderer mPerspectiveRenderer;
// 	private OverlayRenderer mOverlayRenderer;
// 
// 	private static Runnable rebootHook;
// 
// 	/**
// 	 * @param rebootHook
// 	 *            game restart hook
// 	 */
// 	public GameCore(final Runnable rebootHook) {
// 		GameCore.rebootHook = rebootHook;
// 	}
// 
// 	@Override
// 	public void create() {
// 		GraphicsSettings.setGraphics();
// 		mCameraController = new Camera();
// 		mOverlayRenderer = new OverlayRenderer(this);
// 		mLogicController = new ChessLogicController(mOverlayRenderer);
// 		mBoardController = new BoardController(mCameraController, mLogicController, mOverlayRenderer);
// 		mPerspectiveRenderer = new PerspectiveRenderer(mCameraController, mBoardController, mLogicController.getPlacement());
// 
// 		Gdx.input.setInputProcessor(new InputMultiplexer(mOverlayRenderer, mBoardController, mCameraController.getOrbitController()));
// 	}
// 
// 	@Override
// 	public void render() {
// 		Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
// 		mCameraController.update();
// 		mPerspectiveRenderer.render();
// 		mOverlayRenderer.render();
// 	}
// 
// 	@Override
// 	public void resize(int width, int height) {
// 		// requiring restart on resize instead, this would be tedious to set up
// 	}
// 
// 	@Override
// 	public void pause() {
// 		// not supporting mobile
// 	}
// 
// 	@Override
// 	public void resume() {
// 		// not supporting mobile
// 	}
// 
// 	@Override
// 	public void dispose() {
// 		AssetHandler.getInstance().dispose();
// 		mLogicController.dispose();
// 		mOverlayRenderer.dispose();
// 	}
// 
// 	/**
// 	 * Restarts game client
// 	 */
// 	public static void restart() {
// 		Gdx.app.postRunnable(GameCore.rebootHook);
// 	}
// 
// 	/**
// 	 * Restores board back to the new game state
// 	 * 
// 	 * @param isWhite
// 	 *            player color
// 	 */
// 	public void newGame(boolean isWhite) {
// 		mBoardController.setPlayerColor(isWhite);
// 		mBoardController.resetList();
// 		mLogicController.resetPosition();
// 		mOverlayRenderer.getCheckmateDialog().setState(false, false);
// 		mOverlayRenderer.getMoveHistory().resetHistory();
// 	}
// }


import nkarasch.chessgdx.GameCore;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Preferences;
import com.badlogic.gdx.audio.Music;
import com.badlogic.gdx.audio.Sound;
	 */
	public void playClicked() {
		mClicked.play(mEffectsVolume);
	}

	/**
	 * chess piece released
	 */
	public void playReleased() {
		mReleased.play(mEffectsVolume);
	}

	/**
	 * AI move, the clicked and released sounds are actually this split into two
	 * parts
	 */
	public void playMove() {
		mMove.play(mEffectsVolume);
	}

	/**
	 * Adds updated values from the sound settings menu into preferences while
	 * updating them in-game.
	 * 
	 * @param musicVolume
	 *            0 to 100 maximum
	 * @param effectsVolume
	 *            0 to 100 maximum
	 */
	public void updateVolume(float musicVolume, float effectsVolume) {
// Path: core/src/nkarasch/chessgdx/GameCore.java
// public class GameCore implements ApplicationListener {
// 
// 	public static final String TITLE = "ChessGDX";
// 
// 	private Camera mCameraController;
// 	private ChessLogicController mLogicController;
// 	private BoardController mBoardController;
// 	private PerspectiveRenderer mPerspectiveRenderer;
// 	private OverlayRenderer mOverlayRenderer;
// 
// 	private static Runnable rebootHook;
// 
// 	/**
// 	 * @param rebootHook
// 	 *            game restart hook
// 	 */
// 	public GameCore(final Runnable rebootHook) {
// 		GameCore.rebootHook = rebootHook;
// 	}
// 
// 	@Override
// 	public void create() {
// 		GraphicsSettings.setGraphics();
// 		mCameraController = new Camera();
// 		mOverlayRenderer = new OverlayRenderer(this);
// 		mLogicController = new ChessLogicController(mOverlayRenderer);
// 		mBoardController = new BoardController(mCameraController, mLogicController, mOverlayRenderer);
// 		mPerspectiveRenderer = new PerspectiveRenderer(mCameraController, mBoardController, mLogicController.getPlacement());
// 
// 		Gdx.input.setInputProcessor(new InputMultiplexer(mOverlayRenderer, mBoardController, mCameraController.getOrbitController()));
// 	}
// 
// 	@Override
// 	public void render() {
// 		Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
// 		mCameraController.update();
// 		mPerspectiveRenderer.render();
// 		mOverlayRenderer.render();
// 	}
// 
// 	@Override
// 	public void resize(int width, int height) {
// 		// requiring restart on resize instead, this would be tedious to set up
// 	}
// 
// 	@Override
// 	public void pause() {
// 		// not supporting mobile
// 	}
// 
// 	@Override
// 	public void resume() {
// 		// not supporting mobile
// 	}
// 
// 	@Override
// 	public void dispose() {
// 		AssetHandler.getInstance().dispose();
// 		mLogicController.dispose();
// 		mOverlayRenderer.dispose();
// 	}
// 
// 	/**
// 	 * Restarts game client
// 	 */
// 	public static void restart() {
// 		Gdx.app.postRunnable(GameCore.rebootHook);
// 	}
// 
// 	/**
// 	 * Restores board back to the new game state
// 	 * 
// 	 * @param isWhite
// 	 *            player color
// 	 */
// 	public void newGame(boolean isWhite) {
// 		mBoardController.setPlayerColor(isWhite);
// 		mBoardController.resetList();
// 		mLogicController.resetPosition();
// 		mOverlayRenderer.getCheckmateDialog().setState(false, false);
// 		mOverlayRenderer.getMoveHistory().resetHistory();
// 	}
// }


// Path: core/src/nkarasch/chessgdx/util/SoundManager.java
import nkarasch.chessgdx.GameCore;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Preferences;
import com.badlogic.gdx.audio.Music;
import com.badlogic.gdx.audio.Sound;

	 */
	public void playClicked() {
		mClicked.play(mEffectsVolume);
	}

	/**
	 * chess piece released
	 */
	public void playReleased() {
		mReleased.play(mEffectsVolume);
	}

	/**
	 * AI move, the clicked and released sounds are actually this split into two
	 * parts
	 */
	public void playMove() {
		mMove.play(mEffectsVolume);
	}

	/**
	 * Adds updated values from the sound settings menu into preferences while
	 * updating them in-game.
	 * 
	 * @param musicVolume
	 *            0 to 100 maximum
	 * @param effectsVolume
	 *            0 to 100 maximum
	 */
	public void updateVolume(float musicVolume, float effectsVolume) {
		Preferences pref = Gdx.app.getPreferences(GameCore.TITLE);