From b18385a95f25e13c767244b494f31bd4fc238143 Mon Sep 17 00:00:00 2001 From: manuel Date: Thu, 14 Apr 2011 02:37:31 +0200 Subject: encapsulate gapless audioplayer commit from yesterday into an own class (gaplessaudioplayer) added two new menu entrys: toggle sound + toggle ambient sound (2. very useful!) --- pacman-c++/actor.cpp | 38 ++++++-------------------------------- 1 file changed, 6 insertions(+), 32 deletions(-) (limited to 'pacman-c++/actor.cpp') diff --git a/pacman-c++/actor.cpp b/pacman-c++/actor.cpp index 56e8e86..3af304c 100644 --- a/pacman-c++/actor.cpp +++ b/pacman-c++/actor.cpp @@ -10,7 +10,7 @@ static QVariant myBooleanInterpolator(const bool &start, const bool &end, qreal Actor::Actor(Color::Color color, bool local, QGraphicsItem *parent) : GameEntity(color, parent),m_direction(Actor::None), m_local(local), - m_wakaPlayer1(NULL), m_wakaPlayer2(NULL), m_roundPoints(0), m_gamePoints(0) + m_wakaPlayer(NULL), m_roundPoints(0), m_gamePoints(0) { /* DON'T set any pixmap here. we've a pixmap in the animation * but we need a sprite for the collision detection @@ -56,19 +56,7 @@ Actor::Actor(Color::Color color, bool local, QGraphicsItem *parent) /* setup waka sound */ if (local) - { - m_wakaPlayer1 = new AudioPlayer(this); - m_wakaPlayer2 = new AudioPlayer(this); - if (m_wakaPlayer1->isWorking() && m_wakaPlayer2->isWorking()) - { - m_wakaPlayer1->setPrefinishMark(100); - m_wakaPlayer2->setPrefinishMark(100); - connect(m_wakaPlayer1, SIGNAL(prefinishMarkReached(qint32)), this, SLOT(startPlayer2())); - connect(m_wakaPlayer2, SIGNAL(prefinishMarkReached(qint32)), this, SLOT(startPlayer1())); - AudioManager::self()->registerAudioPlayer(m_wakaPlayer1); - AudioManager::self()->registerAudioPlayer(m_wakaPlayer2); - } - } + m_wakaPlayer = new GaplessAudioPlayer(Sound::WakaWaka, 100, this); /* make the picture showing the current direction visible */ m_images[m_direction]->setVisible(true); @@ -237,30 +225,16 @@ void Actor::eatingPacman() void Actor::startEating() { - if (!m_local || !m_wakaPlayer1->isWorking()) + if (!m_local || !m_wakaPlayer->isWorking()) return; - if (m_wakaPlayer1->state() != Phonon::PlayingState && m_wakaPlayer2->state() != Phonon::PlayingState) - startPlayer1(); + m_wakaPlayer->play(); } void Actor::stopEating() { - if (!m_local || !m_wakaPlayer1->isWorking()) + if (!m_local || !m_wakaPlayer->isWorking()) return; - if (m_wakaPlayer1->state() != Phonon::PausedState) - m_wakaPlayer1->pause(); - if (m_wakaPlayer2->state() != Phonon::PausedState) - m_wakaPlayer2->pause(); -} - -void Actor::startPlayer1() -{ - m_wakaPlayer1->play(Sound::WakaWaka); -} - -void Actor::startPlayer2() -{ - m_wakaPlayer2->play(Sound::WakaWaka); + m_wakaPlayer->pause(); } unsigned int Actor::getRoundPoints() -- cgit v1.2.3