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++/phononplayer/phononplayer.cpp | 37 +++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 8 deletions(-) (limited to 'pacman-c++/phononplayer/phononplayer.cpp') diff --git a/pacman-c++/phononplayer/phononplayer.cpp b/pacman-c++/phononplayer/phononplayer.cpp index 1f537d6..3d7b446 100644 --- a/pacman-c++/phononplayer/phononplayer.cpp +++ b/pacman-c++/phononplayer/phononplayer.cpp @@ -1,4 +1,5 @@ #include "phononplayer.h" +#include "audio.h" #include #include @@ -12,9 +13,8 @@ Q_EXPORT_PLUGIN2(phononplayer, PhononPlayerFactory) /* --------------------------------------------------------------- */ PhononPlayer::PhononPlayer(QObject *parent) - : AudioPlayer(parent) + : AudioPlayer(parent), m_working(false) { - m_working = AudioManager::isWorking(); m_player = new Phonon::MediaObject(this); m_output = new Phonon::AudioOutput(Phonon::MusicCategory, this); Phonon::createPath(m_player, m_output); @@ -39,25 +39,36 @@ bool PhononPlayer::isMuted() const void PhononPlayer::play() { + if (!m_working) + return; m_player->play(); } -void PhononPlayer::play(Sound::Type sound) +void PhononPlayer::play(QFile *sound, unsigned int length) { if (!m_working) return; - m_player->setCurrentSource(Phonon::MediaSource(AudioManager::self()->sound(sound))); + setSource(sound, length); play(); } +void PhononPlayer::setSource(QFile *sound, unsigned int /* length */) +{ + if (!m_working) + return; + m_player->setCurrentSource(Phonon::MediaSource(sound)); +} + bool PhononPlayer::isPlaying() { return m_player->state() == Phonon::PlayingState; } -void PhononPlayer::enqueue(Sound::Type sound) +void PhononPlayer::enqueue(QFile *sound, unsigned int /* length */) { - m_player->enqueue(Phonon::MediaSource(AudioManager::self()->sound(sound))); + if (!m_working) + return; + m_player->enqueue(Phonon::MediaSource(sound)); } void PhononPlayer::pause() @@ -96,12 +107,22 @@ void PhononPlayer::setPrefinishMark(qint32 msecToEnd) m_player->setPrefinishMark(msecToEnd); } +void PhononPlayer::seek(qint64 time) +{ + m_player->seek(time); +} + +void PhononPlayer::setWorking(bool working) +{ + m_working = working; +} + /* this is a simple hack to check if phonon can actually play sounds.. */ -void PhononPlayer::test(QFile *testsound, qint32 length) +void PhononPlayer::test(QFile *sound, unsigned int length) { m_player->stop(); m_output->setVolume(0); - m_player->setCurrentSource(Phonon::MediaSource(testsound)); + m_player->setCurrentSource(Phonon::MediaSource(sound)); connect(m_player, SIGNAL(stateChanged(Phonon::State, Phonon::State)), this, SLOT(stateChanged_ex(Phonon::State, Phonon::State))); m_player->play(); -- cgit v1.2.3