[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [39984] trunk/blender/source/gameengine: BGE fix: ignore sounds that cannot be opened instead of crashing.
Joerg Mueller
nexyon at gmail.com
Tue Sep 6 23:02:27 CEST 2011
Revision: 39984
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39984
Author: nexyon
Date: 2011-09-06 21:02:26 +0000 (Tue, 06 Sep 2011)
Log Message:
-----------
BGE fix: ignore sounds that cannot be opened instead of crashing. ;-)
Modified Paths:
--------------
trunk/blender/source/gameengine/Converter/KX_ConvertActuators.cpp
trunk/blender/source/gameengine/Ketsji/KX_SoundActuator.cpp
Modified: trunk/blender/source/gameengine/Converter/KX_ConvertActuators.cpp
===================================================================
--- trunk/blender/source/gameengine/Converter/KX_ConvertActuators.cpp 2011-09-06 18:15:34 UTC (rev 39983)
+++ trunk/blender/source/gameengine/Converter/KX_ConvertActuators.cpp 2011-09-06 21:02:26 UTC (rev 39984)
@@ -413,15 +413,22 @@
// if sound shall be 3D but isn't mono, we have to make it mono!
if(is3d)
{
- AUD_Reference<AUD_IReader> reader = snd_sound->createReader();
- if(reader->getSpecs().channels != AUD_CHANNELS_MONO)
+ try
{
- AUD_DeviceSpecs specs;
- specs.channels = AUD_CHANNELS_MONO;
- specs.rate = AUD_RATE_INVALID;
- specs.format = AUD_FORMAT_INVALID;
- snd_sound = new AUD_ChannelMapperFactory(snd_sound, specs);
+ AUD_Reference<AUD_IReader> reader = snd_sound->createReader();
+ if(reader->getSpecs().channels != AUD_CHANNELS_MONO)
+ {
+ AUD_DeviceSpecs specs;
+ specs.channels = AUD_CHANNELS_MONO;
+ specs.rate = AUD_RATE_INVALID;
+ specs.format = AUD_FORMAT_INVALID;
+ snd_sound = new AUD_ChannelMapperFactory(snd_sound, specs);
+ }
}
+ catch(AUD_Exception&)
+ {
+ // sound cannot be played... ignore
+ }
}
}
KX_SoundActuator* tmpsoundact =
Modified: trunk/blender/source/gameengine/Ketsji/KX_SoundActuator.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_SoundActuator.cpp 2011-09-06 18:15:34 UTC (rev 39983)
+++ trunk/blender/source/gameengine/Ketsji/KX_SoundActuator.cpp 2011-09-06 21:02:26 UTC (rev 39984)
@@ -108,7 +108,15 @@
break;
}
- m_handle = AUD_getDevice()->play(sound, 0);
+ try
+ {
+ m_handle = AUD_getDevice()->play(sound, 0);
+ }
+ catch(AUD_Exception&)
+ {
+ // cannot play back, ignore
+ return;
+ }
AUD_Reference<AUD_I3DHandle> handle3d = AUD_Reference<AUD_I3DHandle>(m_handle);
More information about the Bf-blender-cvs
mailing list