X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fjukebox.cpp;h=52f673e796c49bf875de112c9a0ecb937d7e630e;hb=10cdb043b613d60c5de8f1cce0f7a5512b0d0074;hp=da2bcbbd4663907dfde24430b98c5bdf87319dad;hpb=14008b157c64752ba7c1cef831124992c35c4646;p=libs%2Fal.git diff --git a/source/jukebox.cpp b/source/jukebox.cpp index da2bcbb..52f673e 100644 --- a/source/jukebox.cpp +++ b/source/jukebox.cpp @@ -1,8 +1,8 @@ #include #include -#include +#include #include "jukebox.h" -#include "sound.h" +#include "sounddecoder.h" using namespace std; @@ -11,7 +11,7 @@ namespace AL { Jukebox::Jukebox(): streamer(source), - sound(0), + decoder(0), current_track(tracks.end()), shuffle(false) { } @@ -19,7 +19,7 @@ Jukebox::Jukebox(): Jukebox::~Jukebox() { streamer.stop(); - delete sound; + delete decoder; } void Jukebox::add_track(const string &trk) @@ -56,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; } @@ -67,12 +67,11 @@ 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 = SoundDecoder::open_file(*current_track); + streamer.play(*decoder); } void Jukebox::next() @@ -123,14 +122,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(); }