// $Id: soundengine.cc,v 1.4 2006/08/05 09:08:59 matthew Exp $ // Fish Supper // Copyright (C) 2006 Matthew Clarke // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 2 // of the License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA // 02111-1307, USA. #include "soundengine.h" #include // ******************* // *** CONSTRUCTOR *** // ******************* FS::SoundEngine::SoundEngine() { sounds[0] = Mix_LoadWAV( PKG_DATA_DIR "/sounds/miaow.wav" ); sounds[1] = Mix_LoadWAV( PKG_DATA_DIR "/sounds/splash.wav" ); sounds[2] = Mix_LoadWAV( PKG_DATA_DIR "/sounds/river.wav" ); sounds[3] = Mix_LoadWAV( PKG_DATA_DIR "/sounds/ping.wav" ); } // FS::SoundEngine::SoundEngine() // ****************** // *** DESTRUCTOR *** // ****************** FS::SoundEngine::~SoundEngine() { for (int i = 0; i < NUM_SOUNDS; ++i) { Mix_FreeChunk(sounds[i]); } // for } // FS::SoundEngine::~SoundEngine() // ************************ // *** MEMBER FUNCTIONS *** // ************************ // ************************************************** void FS::SoundEngine::play_sound(SoundIDs sid, int loops, int volume) { if (!on) { return; } Mix_PlayChannel((int) sid, sounds[sid], loops); Mix_VolumeChunk(sounds[sid], volume); } // FS::SoundEngine::play_sound() // ************************************************** void FS::SoundEngine::stop_sound(int channel) { if (!on) { return; } Mix_HaltChannel(channel); } // FS::SoundEngine::stop_sound() // ************************************************** void FS::SoundEngine::stop_all_sounds() { if (!on) { return; } for (int i = 0; i < NUM_SOUNDS; ++i) { Mix_HaltChannel(i); } // for } // FS::SoundEngine::stop_all_sounds() // ************************************************** void FS::SoundEngine::pause_all_sounds() { if (!on) { return; } for (int i = 0; i < NUM_SOUNDS; ++i) { Mix_Pause(i); } // for } // FS::SoundEngine::pause_all_sounds() // ************************************************** void FS::SoundEngine::resume_all_sounds() { if (!on) { return; } for (int i = 0; i < NUM_SOUNDS; ++i) { Mix_Resume(i); } // for } // FS::SoundEngine::resume_all_sounds() // **************************************************