]> git.mxchange.org Git - simgear.git/commitdiff
Initialization was done much earlier than expected resulting in some sample
authorehofman <ehofman>
Thu, 15 Oct 2009 17:08:45 +0000 (17:08 +0000)
committerTim Moore <timoore@redhat.com>
Fri, 16 Oct 2009 09:14:05 +0000 (11:14 +0200)
groups not being activated (and sample loading using OpenAL/ALUT functions to
be scheduled before OpenAL was initilialized).

fix alutInit counter
remove left over static declaration fro SGSoundMgr::load

simgear/sound/sample_group.cxx
simgear/sound/sample_group.hxx
simgear/sound/soundmgr_openal.cxx
simgear/sound/soundmgr_openal.hxx

index c85e386f44e213223bedfdb257f94db950a4cf05..3d1dd084df2d94a58ee4c625601030bd73b2d476 100644 (file)
@@ -63,7 +63,6 @@ SGSampleGroup::SGSampleGroup ( SGSoundMgr *smgr, const string &refname ) :
     _orientation(SGQuatd::zeros())
 {
     _smgr->add(this, refname);
-    _active = _smgr->is_working();
     _samples.clear();
 }
 
index 5bb504a9bd08552815ed6a41f684d8a34f381312..70b844c36fbb5c82a05a185d56208a01718e01d9 100644 (file)
@@ -155,6 +155,7 @@ public:
 
     inline void tie_to_listener() { _tied_to_listener = true; }
 
+    inline void activate() { _active = true; }
 
 protected:
     SGSoundMgr *_smgr;
index 450b5714d0cc98811747c9b72241c0807663ac5b..c8bd635c75183e2ff589a756506a1e550eb90f39 100644 (file)
@@ -70,7 +70,6 @@ SGSoundMgr::SGSoundMgr() :
             testForALUTError("alut initialization");
             return;
         }
-        _alut_init++;
     }
     _alut_init++;
 #endif
@@ -152,6 +151,13 @@ void SGSoundMgr::init() {
     if (_free_sources.size() == 0) {
         SG_LOG(SG_GENERAL, SG_ALERT, "Unable to grab any OpenAL sources!");
     }
+
+    sample_group_map_iterator sample_grp_current = _sample_groups.begin();
+    sample_group_map_iterator sample_grp_end = _sample_groups.end();
+    for ( ; sample_grp_current != sample_grp_end; ++sample_grp_current ) {
+        SGSampleGroup *sgrp = sample_grp_current->second;
+        sgrp->activate();
+    }
 }
 
 // suspend the sound manager
@@ -471,9 +477,9 @@ void SGSoundMgr::release_buffer(SGSoundSample *sample)
 bool SGSoundMgr::load(string &samplepath, void **dbuf, int *fmt,
                                           unsigned int *sz, int *frq )
 {
-    ALenum format = (ALenum)*fmt;
-    ALsizei size = (ALsizei)*sz;
-    ALsizei freq = (ALsizei)*frq;
+    ALenum format;
+    ALsizei size;
+    ALsizei freq;
     ALvoid *data;
 
 #if defined(ALUT_API_MAJOR_VERSION) && ALUT_API_MAJOR_VERSION >= 1
index 4baad69b0805e45548f3c1cfb7d6823b405236ca..e2e2be40325346784af4f8030a2b018fd0edef2b 100644 (file)
@@ -199,7 +199,7 @@ public:
      */
     inline bool has_changed() { return _changed; }
 
-    static bool load(string &samplepath, void **data, int *format,
+    bool load(string &samplepath, void **data, int *format,
                                          unsigned int*size, int *freq );