#ifndef PHONONPLAYER_H #define PHONONPLAYER_H #include "audio.h" #include #include #include #include #include class PhononPlayerFactory : public QObject, public AudioPlayerFactory { Q_OBJECT Q_INTERFACES(AudioPlayerFactory) public: virtual AudioPlayer *create(QObject *parent = 0); }; /* --------------------------------------------------------------- */ class PhononPlayer : public AudioPlayer { Q_OBJECT friend class AudioManager; private: class Sleeper : public QThread { public: static void sleep(unsigned long secs); static void msleep(unsigned long msecs); static void usleep(unsigned long usecs); }; public: PhononPlayer(QObject *parent = 0); virtual bool isWorking() const; virtual void setMuted(bool mute = true); virtual bool isMuted() const; virtual void play(); virtual void play(Sound::Type sound); virtual bool isPlaying(); virtual void enqueue(Sound::Type sound); virtual void pause(); virtual bool isPaused(); virtual void stop(); virtual bool isStopped(); virtual void clear(); virtual void clearQueue(); virtual void setPrefinishMark(qint32 msecToEnd); protected: void test(QFile *testsound, qint32 length); protected slots: virtual void prefinishMarkReached_ex(qint32 mark); void finished_ex(); void testFinished(); void stateChanged_ex(Phonon::State newstate, Phonon::State oldstate); protected: bool m_working; Phonon::MediaObject *m_player; Phonon::AudioOutput *m_output; }; #endif // PHONONPLAYER_H