From 1517d892bc461aa96ea9b04ed5486fca33256fe1 Mon Sep 17 00:00:00 2001 From: manuel Date: Sat, 9 Apr 2011 01:33:13 +0200 Subject: fix sound (again) --- pacman-c++/actor.cpp | 7 ++++++- pacman-c++/audioplayer.cpp | 8 ++++++++ pacman-c++/audioplayer.h | 1 + pacman-c++/pacman.qrc | 6 +++--- pacman-c++/sound/waka_waka.ogg | Bin 9649 -> 21874 bytes 5 files changed, 18 insertions(+), 4 deletions(-) diff --git a/pacman-c++/actor.cpp b/pacman-c++/actor.cpp index cd59c1e..5ccc339 100644 --- a/pacman-c++/actor.cpp +++ b/pacman-c++/actor.cpp @@ -163,12 +163,17 @@ void Actor::move(Actor::Movement direction) if (direction != Actor::None) { - m_moving->start(); if (m_local && AudioPlayer::self()->state() != Phonon::PlayingState) { + AudioPlayer::self()->clearQueue(); AudioPlayer::self()->play(AudioPlayer::WakaWaka); AudioPlayer::self()->enqueue(AudioPlayer::WakaWaka); } + m_moving->start(); + } + else + { + AudioPlayer::self()->stop(); } } diff --git a/pacman-c++/audioplayer.cpp b/pacman-c++/audioplayer.cpp index 5e9ede7..d3d2ff6 100644 --- a/pacman-c++/audioplayer.cpp +++ b/pacman-c++/audioplayer.cpp @@ -72,6 +72,7 @@ void AudioPlayer::play(AudioPlayer::Sound sound) m_player->play(); } + void AudioPlayer::enqueue(AudioPlayer::Sound sound) { if (!m_working) @@ -79,6 +80,13 @@ void AudioPlayer::enqueue(AudioPlayer::Sound sound) m_player->enqueue(Phonon::MediaSource(m_sounds[sound])); } +void AudioPlayer::clearQueue() +{ + if (!m_working) + return; + m_player->clearQueue(); +} + Phonon::State AudioPlayer::state() { return m_player->state(); diff --git a/pacman-c++/audioplayer.h b/pacman-c++/audioplayer.h index 55f1b92..e5344e7 100644 --- a/pacman-c++/audioplayer.h +++ b/pacman-c++/audioplayer.h @@ -33,6 +33,7 @@ public: void setMuted(bool mute = true); void play(Sound sound); void enqueue(Sound sound); + void clearQueue(); Phonon::State state(); signals: diff --git a/pacman-c++/pacman.qrc b/pacman-c++/pacman.qrc index 98b495d..44f76d9 100644 --- a/pacman-c++/pacman.qrc +++ b/pacman-c++/pacman.qrc @@ -19,9 +19,9 @@ pics/actor4icon.png - sound/waka_waka.ogg - sound/die.ogg - sound/eating_cherry.ogg sound/intro.ogg + sound/waka_waka2.ogg + sound/eating_cherry.ogg + sound/die.ogg diff --git a/pacman-c++/sound/waka_waka.ogg b/pacman-c++/sound/waka_waka.ogg index a2b879f..f499611 100644 Binary files a/pacman-c++/sound/waka_waka.ogg and b/pacman-c++/sound/waka_waka.ogg differ -- cgit v1.2.3