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);
 

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to