]> git.mxchange.org Git - simgear.git/blobdiff - simgear/sound/sample_queue.hxx
Use quadtree to improve culling of STG objects
[simgear.git] / simgear / sound / sample_queue.hxx
index dedaee3ce43fbbfcb275775884a3198ca62d6ce3..e3725702baf2ecb2197b1ae555c5e7155167c1f0 100644 (file)
@@ -1,37 +1,27 @@
-// queue.hxx -- Sample Queue encapsulation class
-// 
+///@file
+/// Provides a sample queue encapsulation
+//
 // based on sample.hxx
 // 
 // Copyright (C) 2010 Erik Hofman <erik@ehofman.com>
 //
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License as
-// published by the Free Software Foundation; either version 2 of the
-// License, or (at your option) any later version.
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Library General Public
+// License as published by the Free Software Foundation; either
+// version 2 of the License, or (at your option) any later version.
 //
-// This program is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY; without even the implied warranty of
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+// Library General Public License for more details.
 //
-// $Id$
-
-/**
- * \file audio sample.hxx
- * Provides a sample queue encapsulation
- */
+// You should have received a copy of the GNU Library General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA.
 
 #ifndef _SG_QUEUE_HXX
 #define _SG_QUEUE_HXX 1
 
-#ifndef __cplusplus
-# error This library requires C++
-#endif
-
 #include <string>
 #include <vector>
 
@@ -68,37 +58,23 @@ public:
     virtual void stop();
 
     /**
-     * Queue new data for this audio sample
-     * @param data Pointer to a memory block containg this audio sample data.
-     * @param len length of the sample buffer in bytes
+     * Queue new data for this audio sample.
+     *
+     * @param data  Pointer to a memory block containg this audio sample data.
+     * @param len   Length of the sample buffer in bytes.
      */
-    void add( const void* smp_data, size_t len );
+    void add( const void* data, size_t len );
 
     /**
-     * Set the source id of this source
+     * Set the source id of this source.
+     *
      * @param sid OpenAL source-id
      */
     virtual void set_source(unsigned int sid);
 
-    /**
-     * Get the OpenAL source id of this source
-     * @return OpenAL source-id
-     */
-    virtual inline unsigned int get_source() { return _source; }
-
-    /**
-     * Test if the source-id of this audio sample may be passed to OpenAL.
-     * @return true if the source-id is valid
-     */
-    virtual inline bool is_valid_source() const { return _valid_source; }
-
-    /**
-     * Set the source-id of this audio sample to invalid.
-     */
-    virtual inline void no_valid_source() { _valid_source = false; }
-
     /**
      * Test if the buffer-id of this audio sample may be passed to OpenAL.
+     *
      * @return false for sample queue
      */
     inline bool is_valid_buffer() const { return false; }
@@ -106,46 +82,10 @@ public:
     inline virtual bool is_queue() const { return true; }
 
 private:
-
-    // Position of the source sound.
-    SGVec3d _absolute_pos;      // absolute position
-    SGVec3d _relative_pos;      // position relative to the base position
-    SGVec3d _direction;         // orientation offset
-    SGVec3f _velocity;          // Velocity of the source sound.
-
-    // The position and orientation of this sound
-    SGQuatd _orientation;       // base orientation
-    SGVec3f _orivec;           // orientation vector for OpenAL
-    SGVec3d _base_pos;         // base position
-
-    SGQuatd _rotation;
-
     std::string _refname;      // sample name
     std::vector<unsigned int> _buffers;
-    unsigned int _buffer;
-
-    // configuration values
-    int _format;
-    int _freq;
-
-    // Sources are points emitting sound.
-    bool _valid_source;
-    unsigned int _source;
-
-    // The orientation of this sound (direction and cut-off angles)
-    float _inner_angle;
-    float _outer_angle;
-    float _outer_gain;
-
-    float _pitch;
-    float _volume;
-    float _master_volume;
-    float _reference_dist;
-    float _max_dist;
-    bool _loop;
 
     bool _playing;
-    bool _changed;
 
     std::string random_string();
 };