From ca29fc0babe8fc985a9e4656f80fc7faec4ac8a5 Mon Sep 17 00:00:00 2001 From: manuel Date: Wed, 11 May 2011 17:38:29 +0200 Subject: - fix audio plugin and make that a real interface - that fixes a duplicate statis audiomanager (1x pacman, 1x audio plugin) on windows - display won/lost dialog upon gameend --- pacman-c++/common/audiointerface.h | 60 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 pacman-c++/common/audiointerface.h (limited to 'pacman-c++/common/audiointerface.h') diff --git a/pacman-c++/common/audiointerface.h b/pacman-c++/common/audiointerface.h new file mode 100644 index 0000000..66679b6 --- /dev/null +++ b/pacman-c++/common/audiointerface.h @@ -0,0 +1,60 @@ +#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 -- cgit v1.2.3