Cope more gracefully when we can't access the sound device.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4070 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -176,6 +176,11 @@ public class Sound
|
|||||||
protected boolean play (
|
protected boolean play (
|
||||||
boolean allowDefer, final boolean loop, final StartObserver obs)
|
boolean allowDefer, final boolean loop, final StartObserver obs)
|
||||||
{
|
{
|
||||||
|
// if we were unable to get our buffer, fail immediately
|
||||||
|
if (_buffer == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// if we're not ready to go...
|
// if we're not ready to go...
|
||||||
if (!_buffer.isPlayable()) {
|
if (!_buffer.isPlayable()) {
|
||||||
if (allowDefer) {
|
if (allowDefer) {
|
||||||
|
|||||||
@@ -62,7 +62,10 @@ public class SoundGroup
|
|||||||
*/
|
*/
|
||||||
public void dispose ()
|
public void dispose ()
|
||||||
{
|
{
|
||||||
AL10.alDeleteSources(_sourceIds);
|
if (_sourceIds != null) {
|
||||||
|
AL10.alDeleteSources(_sourceIds);
|
||||||
|
_sourceIds = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected SoundGroup (
|
protected SoundGroup (
|
||||||
@@ -84,6 +87,7 @@ public class SoundGroup
|
|||||||
if (errno != AL10.AL_NO_ERROR) {
|
if (errno != AL10.AL_NO_ERROR) {
|
||||||
Log.warning("Failed to create sources [cprov=" + provider +
|
Log.warning("Failed to create sources [cprov=" + provider +
|
||||||
", sources=" + sources + ", errno=" + errno + "].");
|
", sources=" + sources + ", errno=" + errno + "].");
|
||||||
|
_sourceIds = null;
|
||||||
// we'll have no sources which means all requests to play
|
// we'll have no sources which means all requests to play
|
||||||
// sounds will silently fail as if all sources were in use
|
// sounds will silently fail as if all sources were in use
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user