#ifndef PHONONPLAYER_H #define PHONONPLAYER_H #include "audiointerface.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; friend class PhononPlayerFactory; 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: virtual bool isWorking() const; virtual void setMuted(bool mute = true); virtual bool isMuted() const; virtual void play(); virtual bool isPlaying(); virtual void pause(); virtual bool isPaused(); virtual void stop(); virtual bool isStopped(); virtual void clear(); virtual void clearQueue(); virtual void setPrefinishMark(qint32 msecToEnd); virtual void seek(qint64 time); protected: PhononPlayer(QObject *parent = 0); virtual void setWorking(bool working = true); void test(QFile *sound, unsigned int length); virtual void play(QFile *sound, unsigned int length); virtual void setSource(QFile *sound, unsigned int length); virtual void enqueue(QFile *sound, unsigned int 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