]> git.mxchange.org Git - simgear.git/commitdiff
Switch to out own audio format defines
authorErik Hofman <erik@ehofman.com>
Fri, 27 May 2016 09:58:01 +0000 (11:58 +0200)
committerRoland Haeder <roland@mxchange.org>
Sat, 13 Aug 2016 08:21:16 +0000 (10:21 +0200)
simgear/sound/readwav.cxx
simgear/sound/sample_openal.cxx
simgear/sound/sample_openal.hxx
simgear/sound/soundmgr_openal.cxx

index ec1e597b24d4f854d936bb3e56140a085d8babaf..30429bd2936f8dd3f27bf8f905a6ad9133e97c42 100644 (file)
 #include <simgear/misc/stdint.hxx>
 #include <simgear/structure/exception.hxx>
 
+#include "sample_openal.hxx"
+
 namespace 
 {
   class Buffer {
   public:
     ALvoid* data;
-    ALenum format;
+    unsigned int format;
     ALsizei length;
     ALfloat frequency;
     SGPath path;
@@ -50,24 +52,12 @@ namespace
     }
   };
   
-  ALenum formatConstruct(ALint numChannels, ALint bitsPerSample)
+  unsigned int formatConstruct(ALint numChannels, ALint bitsPerSample)
   {
-    switch (numChannels)
-      {
-      case 1:
-        switch (bitsPerSample) {
-          case 8: return  AL_FORMAT_MONO8;
-          case 16: return AL_FORMAT_MONO16;
-        }
-        break;
-      case 2:
-        switch (bitsPerSample) {
-          case 8: return AL_FORMAT_STEREO8;
-          case 16: return AL_FORMAT_STEREO16;
-          }
-        break;
-      }
-    return AL_NONE;
+    unsigned int rv = 0;
+    if (numChannels == 1 && bitsPerSample == 8) rv = SG_SAMPLE_MONO8;
+    if (numChannels == 1 && bitsPerSample == 16) rv = SG_SAMPLE_MONO16;
+    return rv;
   }
   
 // function prototype for decoding audio data
@@ -255,7 +245,7 @@ namespace
 namespace simgear
 {
 
-ALvoid* loadWAVFromFile(const SGPath& path, ALenum& format, ALsizei& size, ALfloat& freqf)
+ALvoid* loadWAVFromFile(const SGPath& path, unsigned int& format, ALsizei& size, ALfloat& freqf)
 {
   if (!path.exists()) {
     throw sg_io_exception("loadWAVFromFile: file not found", path);
@@ -285,7 +275,7 @@ ALuint createBufferFromFile(const SGPath& path)
 {
   ALuint buffer = -1;
 #ifdef ENABLE_SOUND
-  ALenum format;
+  unsigned int format;
   ALsizei size;
   ALfloat sampleFrequency;
   ALvoid* data = loadWAVFromFile(path, format, size, sampleFrequency);
index 4abd27e0722ace7a4c4371a9e930d4b1f85ae48f..0c613d52656c91ffa4c03ccf37d881c94628c4c5 100644 (file)
@@ -82,48 +82,6 @@ SGSoundSampleInfo::SGSoundSampleInfo() :
     _pos_prop[2] = 0;
 }
 
-void SGSoundSample::set_format_AL( int fmt )
-{
-    switch(fmt)
-    {
-    case AL_FORMAT_MONO8:
-        _tracks = 1; _bits = 8; _compressed = false;
-        break;
-    case AL_FORMAT_MONO16:
-        _tracks = 1; _bits = 16; _compressed = false;
-        break;
-#ifdef AL_EXT_MULAW_MCFORMATS
-    case AL_FORMAT_MONO_MULAW:
-        _tracks = 1; _bits = 8; _compressed = true;
-        break;
-#endif
-#ifdef AL_EXT_IMA4
-    case AL_EXT_IMA4:
-        _tracks = 1; _bits = 4; _compressed = true;
-        break;
-#endif
-    default:
-        break;
-    }
-}
-
-unsigned int SGSoundSampleInfo::get_format_AL()
-{
-    unsigned int rv = AL_FORMAT_MONO16;
-
-    if (_tracks == 1 && _bits == 8) rv = AL_FORMAT_MONO8;
-#ifdef AL_EXT_MULAW_MCFORMATS
-    else if (_tracks == 1 && _bits == 8 && _compressed)
-        rv = AL_FORMAT_MONO_MULAW;
-#endif
-#ifdef AL_EXT_IMA4
-    else if (_tracks == 1 && _bits == 4 && _compressed) 
-        rv = AL_EXT_IMA4;
-#endif
-
-    return rv;
-}
-
 std::string SGSoundSampleInfo::random_string()
 {
     static const char *r = "0123456789abcdefghijklmnopqrstuvwxyz"
index 286379fa6f6a99197d672fe84c3085ff5297f4f6..91e2b2ac0c2c375ca667b609c8d86df42b43aa46 100644 (file)
@@ -61,12 +61,6 @@ public:
     SGSoundSampleInfo();
     ~SGSoundSampleInfo() {}
 
-    /**
-     * Returns the format of this audio sample.
-     * @return SimGear format-id
-     */
-    unsigned int get_format_AL();
-
     /**
      * Returns the format of this audio sample.
      * @return SimGear format-id
@@ -438,8 +432,6 @@ public:
         _tracks = fmt & 0x3; _bits = fmt & 0x1C; _compressed = fmt & 0x100;
     }
 
-    void set_format_AL( int fmt );
-
     /**
      * Set the frequency (in Herz) of this audio sample.
      * @param freq Frequency
index d4c62582f919536db9f6fdc9aab77f6445bfd24c..a931cd0d7d344ee5481ef4f54474e177049da01e 100644 (file)
@@ -550,7 +550,7 @@ unsigned int SGSoundMgr::request_buffer(SGSoundSample *sample)
             }
             
             sample->set_frequency( freq );
-            sample->set_format_AL( format );
+            sample->set_format( format );
             sample->set_size( size );
 
         } else {
@@ -562,7 +562,11 @@ unsigned int SGSoundMgr::request_buffer(SGSoundSample *sample)
         if ( !testForALError("generate buffer") ) {
             // Copy data to the internal OpenAL buffer
 
-            ALenum format = sample->get_format_AL();
+            ALenum format = AL_NONE;
+            unsigned int fmt = sample->get_format();
+            if (fmt == SG_SAMPLE_MONO8) format = AL_FORMAT_MONO8;
+            if (fmt == SG_SAMPLE_MONO16) format = AL_FORMAT_MONO16;
+
             ALsizei size = sample->get_size();
             ALsizei freq = sample->get_frequency();
             alBufferData( buffer, format, sample_data, size, freq );