]> git.tdb.fi Git - libs/al.git/blobdiff - source/sound.cpp
Use standard exception classes
[libs/al.git] / source / sound.cpp
index 947f6d17c1684fcab1f0422e26bf8978d90dcd84..f43948e65030b9d5041881ec8966171ca9eb08d9 100644 (file)
@@ -1,5 +1,5 @@
 #include <cstring>
-#include <msp/core/except.h>
+#include <stdexcept>
 #include "sound.h"
 
 using namespace std;
@@ -81,9 +81,9 @@ Sound::~Sound()
 void Sound::open_file(const string &fn)
 {
        if(ovfile.datasource)
-               throw InvalidState("Sound has already been opened");
+               throw logic_error("Sound has already been opened");
        if(ov_fopen(const_cast<char *>(fn.c_str()), &ovfile)<0)
-               throw Exception("Could not open ogg vorbis file "+fn);
+               throw runtime_error("Could not open ogg vorbis file "+fn);
 
        open_common();
 }
@@ -91,13 +91,13 @@ void Sound::open_file(const string &fn)
 void Sound::open_memory(const void *d, unsigned len)
 {
        if(ovfile.datasource)
-               throw InvalidState("Sound has already been opened");
+               throw logic_error("Sound has already been opened");
 
        MemorySource *src = new MemorySource(d, len);
        if(ov_open_callbacks(src, &ovfile, 0, 0, memory_callbacks)<0)
        {
                delete src;
-               throw Exception("Could not open ogg vorbis memory block");
+               throw runtime_error("Could not open ogg vorbis memory block");
        }
 
        open_common();
@@ -106,7 +106,7 @@ void Sound::open_memory(const void *d, unsigned len)
 void Sound::load_data()
 {
        if(data)
-               throw InvalidState("Data has already been loaded");
+               throw logic_error("Data has already been loaded");
 
        size = ov_pcm_total(&ovfile, 0)*4;
        char *dptr = new char[size];
@@ -160,19 +160,19 @@ unsigned Sound::read(char *buf, unsigned len)
                int section = 0;
                int res = ov_read(&ovfile, buf, len, 0, 2, 1, &section);
                if(res<0)
-                       throw Exception("Error reading ogg vorbis file");
+                       throw runtime_error("Error reading ogg vorbis file");
                else if(res==0)
                        eof_flag = true;
                return res;
        }
        else
-               throw InvalidState("No data available");
+               throw logic_error("No data available");
 }
 
 const char *Sound::get_data() const
 {
        if(!data)
-               throw InvalidState("Data has not been loaded");
+               throw logic_error("Data has not been loaded");
        return data;
 }
 
@@ -187,7 +187,7 @@ void Sound::open_common()
        {
        case 1: format = MONO16; break;
        case 2: format = STEREO16; break;
-       default: throw Exception("Unsupported number of channels");
+       default: throw runtime_error("Unsupported number of channels");
        }
 }