public void stop (long soundId) {\r
soundPool.stop((int)soundId);\r
}\r
+ \r
+ @Override\r
+ public void pause () {\r
+ soundPool.autoPause();\r
+ }\r
+ \r
+ @Override\r
+ public void pause (long soundId) {\r
+ soundPool.pause((int)soundId);\r
+ }\r
+ \r
+ @Override\r
+ public void resume () {\r
+ soundPool.autoResume();\r
+ }\r
+ \r
+ @Override\r
+ public void resume (long soundId) {\r
+ soundPool.resume((int)soundId);\r
+ }\r
\r
@Override\r
public void setPitch (long soundId, float pitch) {\r
// TODO Auto-generated method stub\r
\r
}\r
+\r
+ @Override\r
+ public void pause () {\r
+ // TODO Auto-generated method stub\r
+ \r
+ }\r
+\r
+ @Override\r
+ public void resume () {\r
+ // TODO Auto-generated method stub\r
+ \r
+ }\r
+\r
+ @Override\r
+ public void pause (long soundId) {\r
+ // TODO Auto-generated method stub\r
+ \r
+ }\r
+\r
+ @Override\r
+ public void resume (long soundId) {\r
+ // TODO Auto-generated method stub\r
+ \r
+ }\r
}\r
players[(int)soundId].Stop();\r
}\r
}\r
+ \r
+ @Override\r
+ public void pause() {\r
+ for (int i = 0; i < players.length; i++) {\r
+ players[i].Pause();\r
+ }\r
+ }\r
+ \r
+ @Override\r
+ public void pause(long soundId) {\r
+ if (soundId >= 0) {\r
+ players[(int)soundId].Pause();\r
+ }\r
+ }\r
+ \r
+ @Override\r
+ public void resume() {\r
+ for (int i = 0; i < players.length; i++) {\r
+ AVAudioPlayer player = players[i];\r
+ if (!player.get_Playing() && player.get_CurrentTime() > 0)\r
+ playQueue.offer(player);\r
+ }\r
+ }\r
+ \r
+ @Override\r
+ public void resume(long soundId) {\r
+ if (soundId >= 0) {\r
+ AVAudioPlayer player = players[(int)soundId];\r
+ if (!player.get_Playing() && player.get_CurrentTime() > 0)\r
+ playQueue.offer(player);\r
+ }\r
+ }\r
\r
@Override\r
public void setLooping(long soundId, boolean looping) {\r
}
+ @Override
+ public void pause() {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void resume() {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void pause(long soundId) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void resume(long soundId) {
+ // TODO Auto-generated method stub
+
+ }
+
}
\ No newline at end of file
@Override
public void play () {
if (isPlaying()) return;
+ if (sound.getPaused()) {
+ resume();
+ return;
+ }
soundOptions.volume = (int)(volume * 100);
soundOptions.pan = (int)(pan * 100);
soundOptions.loops = 1;
sound.play(soundOptions);
isPlaying = true;
}
+
+ public void resume () {
+ sound.resume();
+ }
@Override
public void pause () {
@Override
public boolean isPlaying () {
- isPlaying &= sound.playState() == 1;
+ isPlaying &= sound.getPlayState() == 1;
return isPlaying;
}
}\r
\r
@Override\r
+ public void pause () {\r
+ for (int i = 0; i < sounds.length; i++) {\r
+ if (sounds[i] != null)\r
+ sounds[i].pause();\r
+ }\r
+ }\r
+ \r
+ @Override\r
+ public void pause (long soundId) {\r
+ if (soundId >= 0 && sounds[(int)soundId] != null)\r
+ sounds[(int)soundId].pause();\r
+ }\r
+ \r
+ @Override\r
+ public void resume () {\r
+ for (int i = 0; i < sounds.length; i++) {\r
+ if (sounds[i] != null)\r
+ sounds[i].resume();\r
+ }\r
+ }\r
+ \r
+ @Override\r
+ public void resume (long soundId) {\r
+ if (soundId >= 0 && sounds[(int)soundId] != null)\r
+ sounds[(int)soundId].resume();\r
+ }\r
+ \r
+ @Override\r
public void setLooping (long soundId, boolean looping) {\r
if (soundId >= 0 && sounds[(int)soundId] != null)\r
sounds[(int)soundId].setLooping(looping);\r
* 1 = playing or buffering sound (play has been called, waiting for data etc.).\r
* Note that a 1 may not always guarantee that sound is being heard, given buffering and autoPlay status.\r
* @return the current playing state. */\r
- public native final int playState () /*-{\r
+ public native final int getPlayState () /*-{\r
return this.@com.badlogic.gdx.backends.gwt.soundmanager2.SMSound::jsSound.playState;\r
}-*/;\r
\r
+ /** Boolean indicating pause status. True/False. */\r
+ public native final boolean getPaused () /*-{\r
+ return this.@com.badlogic.gdx.backends.gwt.soundmanager2.SMSound::jsSound.paused;\r
+ }-*/;\r
+ \r
/** Number of times to loop the sound. */\r
- public native final int loops () /*-{\r
+ public native final int getLoops () /*-{\r
return this.@com.badlogic.gdx.backends.gwt.soundmanager2.SMSound::jsSound.loops;\r
}-*/;\r
}
\ No newline at end of file
}\r
}\r
}\r
+ \r
+ void pauseSourcesWithBuffer (int bufferID) {\r
+ if (noDevice) return;\r
+ for (int i = 0, n = idleSources.size; i < n; i++) {\r
+ int sourceID = idleSources.get(i);\r
+ if (alGetSourcei(sourceID, AL_BUFFER) == bufferID)\r
+ alSourcePause(sourceID);\r
+ }\r
+ }\r
+ \r
+ void resumeSourcesWithBuffer (int bufferID) {\r
+ if (noDevice) return;\r
+ for (int i = 0, n = idleSources.size; i < n; i++) {\r
+ int sourceID = idleSources.get(i);\r
+ if (alGetSourcei(sourceID, AL_BUFFER) == bufferID) {\r
+ if (alGetSourcei(sourceID, AL_SOURCE_STATE) == AL_PAUSED)\r
+ alSourcePlay(sourceID);\r
+ }\r
+ }\r
+ }\r
\r
public void update () {\r
if (noDevice) return;\r
int sourceId = soundIdToSource.get(soundId);\r
alSourceStop(sourceId);\r
}\r
+ \r
+ public void pauseSound (long soundId) {\r
+ if (!soundIdToSource.containsKey(soundId)) return;\r
+ int sourceId = soundIdToSource.get(soundId);\r
+ alSourcePause(sourceId);\r
+ }\r
+ \r
+ public void resumeSound (long soundId) {\r
+ if (!soundIdToSource.containsKey(soundId)) return;\r
+ int sourceId = soundIdToSource.get(soundId);\r
+ if (alGetSourcei(sourceId, AL_SOURCE_STATE) == AL_PAUSED)\r
+ alSourcePlay(sourceId);\r
+ }\r
\r
public void setSoundGain (long soundId, float volume) {\r
if (!soundIdToSource.containsKey(soundId)) return;\r
if (audio.noDevice) return;\r
audio.stopSound(soundId);\r
}\r
+ \r
+ @Override\r
+ public void pause () {\r
+ if (audio.noDevice) return;\r
+ audio.pauseSourcesWithBuffer(bufferID);\r
+ }\r
+ \r
+ @Override\r
+ public void pause (long soundId) {\r
+ if (audio.noDevice) return;\r
+ audio.pauseSound(soundId);\r
+ }\r
\r
@Override\r
+ public void resume () {\r
+ if (audio.noDevice) return;\r
+ audio.resumeSourcesWithBuffer(bufferID);\r
+ }\r
+ \r
+ @Override\r
+ public void resume (long soundId) {\r
+ if (audio.noDevice) return;\r
+ audio.resumeSound(soundId);\r
+ }\r
+ \r
+ @Override\r
public void setPitch (long soundId, float pitch) {\r
if (audio.noDevice) return;\r
audio.setSoundPitch(soundId, pitch);\r
\r
/** Stops playing all instances of this sound. */\r
public void stop ();\r
+ \r
+ /** Pauses all instances of this sound. */\r
+ public void pause ();\r
+ \r
+ /** Resumes all paused instances of this sound. */\r
+ public void resume ();\r
\r
/** Releases all the resources. */\r
public void dispose ();\r
* @param soundId the sound id */\r
public void stop (long soundId);\r
\r
+ /** Pauses the sound instance with the given id as returned by {@link #play()} or {@link #play(float)}. If the sound is no longer\r
+ * playing, this has no effect.\r
+ * @param soundId the sound id */\r
+ public void pause (long soundId);\r
+ \r
+ /** Resumes the sound instance with the given id as returned by {@link #play()} or {@link #play(float)}. If the sound is not\r
+ * paused, this has no effect.\r
+ * @param soundId the sound id */\r
+ public void resume (long soundId);\r
+ \r
/** Sets the sound instance with the given id to be looping. If the sound is no longer playing this has no effect.s\r
* @param soundId the sound id\r
* @param looping whether to loop or not. */\r
return contacts;\r
}\r
\r
- /** @return all bodies currently in the simulation */\r
+ /** @param bodies an Array in which to place all bodies currently in the simulation */\r
public void getBodies (Array<Body> bodies) {\r
bodies.clear();\r
bodies.ensureCapacity(this.bodies.size);\r
} \r
}\r
\r
- /** @return all joints currently in the simulation */\r
+ /** @param joints an Array in which to place all joints currently in the simulation */\r
public void getJoints (Array<Joint> joints) {\r
joints.clear();\r
joints.ensureCapacity(this.joints.size);\r