]> git.tdb.fi Git - libs/al.git/blobdiff - source/jukebox.cpp
Split Sound into SoundDecoder and Waveform parts
[libs/al.git] / source / jukebox.cpp
index 95ca6a05e9e2656dab7d85708c98d07e0606cafd..02a33cdfee3e1d55e56eed59b647b7fe630131a0 100644 (file)
@@ -1,15 +1,8 @@
-/* $Id$
-
-This file is part of libmspal
-Copyright © 2009  Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
 #include <algorithm>
 #include <cstdlib>
-#include <msp/core/except.h>
+#include <stdexcept>
 #include "jukebox.h"
-#include "sound.h"
+#include "sounddecoder.h"
 
 using namespace std;
 
@@ -18,7 +11,7 @@ namespace AL {
 
 Jukebox::Jukebox():
        streamer(source),
-       sound(0),
+       decoder(0),
        current_track(tracks.end()),
        shuffle(false)
 { }
@@ -26,7 +19,7 @@ Jukebox::Jukebox():
 Jukebox::~Jukebox()
 {
        streamer.stop();
-       delete sound;
+       delete decoder;
 }
 
 void Jukebox::add_track(const string &trk)
@@ -63,7 +56,7 @@ void Jukebox::clear_tracks()
 const string &Jukebox::get_current_track() const
 {
        if(tracks.empty())
-               throw InvalidState("No current track");
+               throw logic_error("No current track");
        return *current_track;
 }
 
@@ -74,12 +67,12 @@ void Jukebox::set_shuffle(bool s)
 
 void Jukebox::play()
 {
-       if(tracks.empty() || sound)
+       if(tracks.empty() || decoder)
                return;
 
-       sound = new AL::Sound;
-       sound->open_file(*current_track);
-       streamer.play(*sound);
+       decoder = new AL::SoundDecoder;
+       decoder->open_file(*current_track);
+       streamer.play(*decoder);
 }
 
 void Jukebox::next()
@@ -130,14 +123,14 @@ void Jukebox::previous()
 void Jukebox::stop()
 {
        streamer.stop();
-       delete sound;
-       sound = 0;
+       delete decoder;
+       decoder = 0;
 }
 
 void Jukebox::tick()
 {
        streamer.tick();
-       if(sound && sound->eof())
+       if(decoder && decoder->eof())
                next();
 }