]> git.mxchange.org Git - simgear.git/commitdiff
allow sound effects in the configuration file to be added to the 'avionics' sample...
authorehofman <ehofman>
Mon, 9 Nov 2009 10:28:21 +0000 (10:28 +0000)
committerTim Moore <timoore@redhat.com>
Tue, 10 Nov 2009 05:42:26 +0000 (06:42 +0100)
simgear/sound/xmlsound.cxx
simgear/sound/xmlsound.hxx

index 9ef15ca445521121671fc96f150daf99f95245f5..7fa893d8b78bc4742b552752c72fa8abc864b06c 100644 (file)
@@ -82,7 +82,8 @@ SGXmlSound::~SGXmlSound()
 
 void
 SGXmlSound::init(SGPropertyNode *root, SGPropertyNode *node,
-                 SGSampleGroup *sgrp, const string &path)
+                 SGSampleGroup *sgrp, SGSampleGroup *avionics,
+                 const string &path)
 {
 
    //
@@ -103,6 +104,11 @@ SGXmlSound::init(SGPropertyNode *root, SGPropertyNode *node,
       _mode = SGXmlSound::ONCE;
    }
 
+   bool is_avionics = false;
+   const char *type_str = node->getStringValue("type", "fx");
+   if ( !strcmp(type_str, "avionics") )
+      is_avionics = true;
+
    _property = root->getNode(node->getStringValue("property", ""), true);
    SGPropertyNode *condition = node->getChild("condition");
    if (condition != NULL)
@@ -254,7 +260,11 @@ SGXmlSound::init(SGPropertyNode *root, SGPropertyNode *node,
    //
    // Initialize the sample
    //
-   _sgrp = sgrp;
+   if (is_avionics) {
+      _sgrp = avionics;
+   } else {
+      _sgrp = sgrp;
+   }
    _sample = new SGSoundSample( path.c_str(), node->getStringValue("path", ""));
    _sample->set_relative_position( offset_pos );
    _sample->set_direction( dir );
index b5bc1f9f3893ffb7a224e96c5a1a8cab9ef01c1b..141f5eef299bf1cbb7d98ea5735d7b59aee2d8e9 100644 (file)
@@ -100,10 +100,11 @@ public:
    * @param child A pointer to the location of the current event as defined
    * in the configuration file.
    * @param sgrp A pointer to a pre-initialized sample group class.
+   * @param avionics A pointer to the pre-initialized avionics sample group.
    * @param path The path where the audio files remain.
    */
   virtual void init (SGPropertyNode *, SGPropertyNode *, SGSampleGroup *,
-                     const string &);
+                     SGSampleGroup *, const string &);
 
   /**
    * Check whether an event has happened and if action has to be taken.