]> git.mxchange.org Git - simgear.git/commitdiff
Use shared pointers for any reference to SGSoundSample, fix the constructor of SGSoun...
authorehofman <ehofman>
Sat, 24 Oct 2009 12:57:11 +0000 (12:57 +0000)
committerTim Moore <timoore@redhat.com>
Sat, 24 Oct 2009 17:29:41 +0000 (19:29 +0200)
simgear/sound/sample_group.cxx
simgear/sound/sample_group.hxx
simgear/sound/sample_openal.cxx
simgear/sound/soundmgr_openal.cxx

index 44dabc1f89eab2a6064746f654a887eb88aed913..f9813fecd5a9222a5da0f0146413918d8562d68c 100644 (file)
@@ -202,7 +202,7 @@ void SGSampleGroup::update( double dt ) {
 }
 
 // add a sound effect, return true if successful
-bool SGSampleGroup::add( SGSoundSample *sound, const string& refname ) {
+bool SGSampleGroup::add( SGSharedPtr<SGSoundSample> sound, const string& refname ) {
 
     sample_map_iterator sample_it = _samples.find( refname );
     if ( sample_it != _samples.end() ) {
index 7a3dff70be25ae0be6baa9a023d7c6eb073076f6..af85e3121bb23e0f1ac8f59413aadd11bbb28992 100644 (file)
@@ -56,8 +56,7 @@
 using std::map;
 using std::string;
 
-typedef SGSharedPtr<SGSoundSample> SGSoundSample_ptr;
-typedef map < string, SGSoundSample_ptr > sample_map;
+typedef map < string, SGSharedPtr<SGSoundSample> > sample_map;
 typedef sample_map::iterator sample_map_iterator;
 typedef sample_map::const_iterator const_sample_map_iterator;
 
@@ -106,7 +105,7 @@ public:
      * @param refname Name of this audio sample for reference purposes
      * @return return true if successful
      */
-    bool add( SGSoundSample *sound, const string& refname );
+    bool add( SGSharedPtr<SGSoundSample> sound, const string& refname );
 
     /**
      * Remove an audio sample from this group.
@@ -225,7 +224,7 @@ private:
     SGGeod _position;
 
     sample_map _samples;
-    std::vector<SGSoundSample_ptr> _removed_samples;
+    std::vector< SGSharedPtr<SGSoundSample> > _removed_samples;
 
     bool testForALError(string s);
     bool testForError(void *p, string s);
index 96581b8b6892be5c487e946862b300b8c10cfdb4..307b2385ddb671ecf35052adab271de23b223dc5 100644 (file)
@@ -150,7 +150,7 @@ SGSoundSample::SGSoundSample( const unsigned char** data,
     _is_file(false)
 {
     SG_LOG( SG_GENERAL, SG_DEBUG, "In memory sounds sample" );
-    _data = (unsigned char*)data; *data = NULL;
+    _data = (unsigned char*)*data; *data = NULL;
 }
 
 // constructor
@@ -185,7 +185,7 @@ SGSoundSample::SGSoundSample( void** data, int len, int freq, int format ) :
     _is_file(false)
 {
     SG_LOG( SG_GENERAL, SG_DEBUG, "In memory sounds sample" );
-    _data = (unsigned char*)data; *data = NULL;
+    _data = (unsigned char*)*data; *data = NULL;
 }
 
 
index 0e52d5c578a9f472e5dbcb2d306f4ec7eef873e5..37b138c54710df284ad27bd2ba1175c97bd56711 100644 (file)
@@ -377,6 +377,8 @@ unsigned int SGSoundMgr::request_source()
        _free_sources.pop_back();
        _sources_in_use.push_back(source);
     }
+    else
+       SG_LOG( SG_GENERAL, SG_INFO, "No more free sources available\n");
 
     return source;
 }
@@ -453,8 +455,9 @@ unsigned int SGSoundMgr::request_buffer(SGSoundSample *sample)
             }
         }
     }
-    else
+    else {
         buffer = sample->get_buffer();
+}
 
     return buffer;
 }