#ifndef AUDIOINTERFACE_H #define AUDIOINTERFACE_H #include #include class AudioPlayer : public QObject { Q_OBJECT friend class AudioManager; public: virtual ~AudioPlayer() {} virtual bool isWorking() const = 0; virtual void setMuted(bool mute = true) = 0; virtual bool isMuted() const = 0; virtual void play() = 0; virtual bool isPlaying() = 0; virtual void pause() = 0; virtual bool isPaused() = 0; virtual void stop() = 0; virtual bool isStopped() = 0; virtual void clear() = 0; virtual void clearQueue() = 0; virtual void setPrefinishMark(qint32 msecToEnd) = 0; virtual void seek(qint64 time) = 0; signals: void finished(); void prefinishMarkReached(qint32 mark); protected: AudioPlayer(QObject *parent = 0) : QObject(parent) {} virtual void setWorking(bool working = true) = 0; virtual void test(QFile *sound, unsigned int length) = 0; virtual void play(QFile *sound, unsigned int length) = 0; virtual void setSource(QFile *sound, unsigned int length) = 0; virtual void enqueue(QFile *sound, unsigned int length) = 0; protected slots: virtual void prefinishMarkReached_ex(qint32 mark) = 0; }; /* --------------------------------------------------------------- */ class AudioPlayerFactory { public: virtual ~AudioPlayerFactory() {} virtual AudioPlayer *create(QObject *parent = 0) = 0; }; Q_DECLARE_INTERFACE(AudioPlayerFactory, "at.ac.tuwien.foop.pacman.AudioPlayerFactory/1.0"); #endif // AUDIOINTERFACE_H