#ifndef __FFMPEGAUDIO_HH_INCLUDED__ #define __FFMPEGAUDIO_HH_INCLUDED__ #include #include #include #include #include namespace Ffmpeg { class AudioPlayer : public QObject { Q_OBJECT public: static AudioPlayer & instance(); void playMemory( const void * ptr, int size ); signals: void cancelPlaying( bool waitUntilFinished ); void error( QString const & message ); private: AudioPlayer(); ~AudioPlayer(); AudioPlayer( AudioPlayer const & ); AudioPlayer & operator=( AudioPlayer const & ); }; class DecoderThread: public QThread { Q_OBJECT static QMutex deviceMutex_; QAtomicInt isCancelled_; QByteArray audioData_; public: DecoderThread( QByteArray const & audioData, QObject * parent ); virtual ~DecoderThread(); public slots: void run(); void cancel( bool waitUntilFinished ); signals: void error( QString const & message ); }; } #endif // __FFMPEGAUDIO_HH_INCLUDED__