#include <audio.h>
Inheritance diagram for Wt::NullAudio:
Public Types | |
typedef BaseFactory< Audio > | AudioBaseFactory |
Public Member Functions | |
virtual Audio::Chunk * | loadChunk (const std::string &) const |
virtual void | playMusic (Music &) |
virtual void | fadeInMusic (Music &, int ms) |
~NullAudio () | |
int | numChannels () const |
Channel * | operator[] (int i) const |
virtual int | allocateChannels (int num_channels) |
virtual void | pause () |
pause all channels | |
virtual void | resume () |
resume all channels | |
virtual void | stop (int ms=0) |
stop all channels | |
virtual void | fadeOut (int) |
virtual int | playingChannels () const |
virtual int | pausedChannels () const |
virtual bool | isAvailable () const |
virtual Music * | loadMusic (const std::string &filename) |
virtual void | playMusic (Music &) |
virtual void | fadeInMusic (Music &, int ms) |
virtual void | fadeOutMusic (int ms) |
virtual void | setMusicVolume (int volume) |
virtual void | pauseMusic () |
virtual void | rewindMusic () |
virtual bool | setMusicPosition (double start_sec) |
virtual void | stopMusic () |
virtual bool | playingMusic () const |
virtual bool | pausedMusic () const |
virtual int | musicFading () const |
Static Public Member Functions | |
static DERIVED * | instance () |
template<class GRANDCHILD> | |
static DERIVED * | instance () |
instantiates the pointer compatible child of DERIVED aka grandchild | |
static DERIVED * | existingInstance () |
static void | init () |
static void | quit () |
Public Attributes | |
Signal01< void, Channel * > | finished |
WVar< int > | musicLoops |
sigc::signal< void > | musicFinished |
Static Public Attributes | |
static Factory< Audio, NullAudio > | factory |
Protected Member Functions | |
NullAudio () | |
virtual int | minHWVolume () const |
virtual int | maxHWVolume () const |
int | HWVolume (int volume) const |
template<typename CHILD> | |
void | adjustAllocatedChannels (int oldnum, int newnum) |
Static Protected Member Functions | |
static Audio * | load () |
try to load the instance | |
static void | onChannelFinish (int channel_id) |
callback called when a channel finishes | |
static void | onMusicFinish () |
static void | handleAudioEvent (const SDL_Event *event) |
SDLEvent::Audio handler. | |
Protected Attributes | |
std::vector< Channel * > | channels |
Static Protected Attributes | |
static const int | minVolume = 0 |
static const int | maxVolume = 1000 |
static DERIVED * | instance_ = 0 |
Friends | |
class | Singleton< Audio > |
Classes | |
class | Channel |
class | Chunk |
Definition at line 267 of file audio.h.
typedef BaseFactory<Audio> Wt::Audio::AudioBaseFactory [inherited] |
Wt::NullAudio::~NullAudio | ( | ) |
Definition at line 321 of file audio.cpp.
References Wt::Audio::allocateChannels().
00321 { 00322 allocateChannels(0); 00323 }
Here is the call graph for this function:
Wt::NullAudio::NullAudio | ( | ) | [protected] |
void Wt::Audio::adjustAllocatedChannels | ( | int | oldnum, | |
int | newnum | |||
) | [inline, protected, inherited] |
Definition at line 241 of file audio.h.
References Wt::Audio::Audio(), and Wt::Audio::channels.
00241 { 00242 if (oldnum < newnum) { 00243 for (int i = oldnum; i < newnum; i++) { 00244 channels.push_back(new typename CHILD::Channel(i)); 00245 } 00246 } else { // newnum < oldnum 00247 Audio& self = *this; 00248 for (int i = newnum; i < oldnum; i++) { 00249 delete self[i]; 00250 } 00251 self.channels.resize(newnum); 00252 } 00253 }
Here is the call graph for this function:
Reimplemented in Wt::SDLMixer.
Definition at line 90 of file audio.cpp.
References Wt::Audio::channels.
Referenced by ~NullAudio().
00090 { 00091 return channels.size(); 00092 }
static DERIVED* Wt::Singleton< DERIVED >::existingInstance | ( | ) | [inline, static, inherited] |
Definition at line 36 of file singleton.h.
Referenced by Wt::Application::exit(), Wt::Application::postEvent(), Wt::Application::sendEvent(), and Wt::Application::sendPostedEvents().
00036 { 00037 return instance_; 00038 }
void Wt::NullAudio::fadeInMusic | ( | Music & | , | |
int | ms | |||
) | [virtual] |
Definition at line 385 of file audio.cpp.
References Wt::Audio::onMusicFinish().
00385 { 00386 onMusicFinish(); 00387 }
Here is the call graph for this function:
void Wt::Audio::fadeOut | ( | int | ) | [virtual, inherited] |
void Wt::Audio::fadeOutMusic | ( | int | ms | ) | [virtual, inherited] |
void Wt::Audio::handleAudioEvent | ( | const SDL_Event * | event | ) | [static, protected, inherited] |
SDLEvent::Audio handler.
it emits the required signal to all interested parties
Definition at line 213 of file audio.cpp.
References Wt::Audio::Event::channel(), Wt::Audio::Event::chunk(), Wt::Audio::Channel::finished, Wt::Singleton< DERIVED >::instance(), and trace.
Referenced by Wt::Audio::Audio().
00213 { 00214 trace("audio", "audio event delivered\n"); 00215 Event *sdl_audio_event = static_cast<Event *>(event->user.data1); 00216 Chunk *chunk = sdl_audio_event->chunk(); 00217 Channel *channel = sdl_audio_event->channel(); 00218 if (chunk && channel) { 00219 chunk->finished(chunk); 00220 channel->finished(channel); 00221 instance()->finished(channel); 00222 } else { 00223 instance()->musicFinished(); 00224 } 00225 delete sdl_audio_event; 00226 }
Here is the call graph for this function:
Definition at line 169 of file audio.cpp.
References Wt::Audio::maxHWVolume(), Wt::Audio::maxVolume, Wt::Audio::minHWVolume(), and Wt::Audio::minVolume.
00169 { 00170 return (maxHWVolume() - minHWVolume()) * volume / 00171 (maxVolume - minVolume); 00172 }
Here is the call graph for this function:
static void Wt::Singleton< DERIVED >::init | ( | ) | [inline, static, inherited] |
Reimplemented in Wt::Application.
Definition at line 49 of file singleton.h.
Referenced by Wt::Application::Application().
00049 { 00050 if (!instance()) { 00051 assert(0); 00052 } 00053 }
static DERIVED* Wt::Singleton< DERIVED >::instance | ( | ) | [inline, static, inherited] |
instantiates the pointer compatible child of DERIVED aka grandchild
it is handy in driver like situations
Definition at line 43 of file singleton.h.
static DERIVED* Wt::Singleton< DERIVED >::instance | ( | ) | [inline, static, inherited] |
Definition at line 32 of file singleton.h.
Referenced by Wt::Audio::Audio(), Wt::Sound::available(), Wt::SDLMixer::Chunk::channel(), Wt::NullAudio::Chunk::channel(), Wt::SDLSurface::defaultDepth(), Wt::SDLInput::EventInfo::EventInfo(), Wt::Dialog::exec(), Wt::Widget::grabKeyboard(), Wt::Widget::grabMouse(), Wt::Audio::handleAudioEvent(), Wt::SDLInput::handleKeyEvent(), Wt::Singleton< Wt::Audio >::init(), Wt::SDLTimer::init(), Wt::Sound::isAvailable(), Wt::Widget::keyboardGrabber(), Wt::Audio::load(), Wt::Widget::mouseGrabber(), Wt::SDLMixer::onChannelFinish(), Wt::Audio::onChannelFinish(), Wt::Sound::play(), Wt::Singleton< Wt::Audio >::quit(), Wt::Widget::releaseKeyboard(), Wt::Widget::releaseMouse(), Wt::SDLInput::SDLInput(), Wt::SDLMixer::setMusicVolume(), Wt::SDLMixer::Channel::setVolume(), and Wt::SDLMixer::Chunk::setVolume().
bool Wt::Audio::isAvailable | ( | ) | const [virtual, inherited] |
Audio * Wt::NullAudio::load | ( | ) | [static, protected] |
Audio::Chunk * Wt::NullAudio::loadChunk | ( | const std::string & | ) | const [virtual] |
Audio::Music * Wt::Audio::loadMusic | ( | const std::string & | filename | ) | [virtual, inherited] |
int Wt::Audio::maxHWVolume | ( | ) | const [protected, virtual, inherited] |
Reimplemented in Wt::SDLMixer.
Definition at line 165 of file audio.cpp.
Referenced by Wt::Audio::HWVolume().
int Wt::Audio::minHWVolume | ( | ) | const [protected, virtual, inherited] |
Reimplemented in Wt::SDLMixer.
Definition at line 161 of file audio.cpp.
Referenced by Wt::Audio::HWVolume().
int Wt::Audio::musicFading | ( | ) | const [virtual, inherited] |
int Wt::Audio::numChannels | ( | ) | const [inherited] |
Definition at line 82 of file audio.cpp.
References Wt::Audio::channels.
Referenced by Wt::SDLMixer::allocateChannels().
00082 { 00083 return channels.size(); 00084 }
void Wt::Audio::onChannelFinish | ( | int | channel_id | ) | [static, protected, inherited] |
callback called when a channel finishes
posts a SDL type event (SDLEvent::Audio) in the SDL event queue. By the time the event it is dispatched all SDL actions are allowed.
Reimplemented in Wt::SDLMixer.
Definition at line 178 of file audio.cpp.
References Wt::SDLEvent::Audio, Wt::Audio::Channel::chunk(), Wt::Singleton< DERIVED >::instance(), Wt::SDLEvent::push(), and trace.
Referenced by Wt::NullAudio::Channel::fadeIn(), Wt::SDLMixer::onChannelFinish(), and Wt::NullAudio::Channel::play().
00178 { 00179 Audio& self = *instance(); 00180 Channel *channel = self.channels[channel_id]; 00181 Chunk *chunk = channel->chunk(); 00182 00183 SDL_Event event; 00184 00185 event.type = SDLEvent::Audio; 00186 event.user.code = 0; 00187 event.user.data1 = new Event(channel, chunk); 00188 event.user.data2 = 0; 00189 00190 trace("audio", "channelFinished callback called %d\n", channel_id); 00191 SDLEvent::push(&event); 00192 }
Here is the call graph for this function:
void Wt::Audio::onMusicFinish | ( | ) | [static, protected, inherited] |
posts a SDL type event (SDLEvent::Audio) in the SDL event queue. By the time the event it is dispatched all SDL actions are allowed.
Definition at line 198 of file audio.cpp.
References Wt::SDLEvent::Audio, Wt::SDLEvent::push(), and trace.
Referenced by fadeInMusic(), playMusic(), and Wt::SDLMixer::SDLMixer().
00198 { 00199 SDL_Event event; 00200 00201 event.type = SDLEvent::Audio; 00202 event.user.code = 0; 00203 event.user.data1 = new Event(0, 0); 00204 event.user.data2 = 0; 00205 00206 trace("audio", "musicFinished callback called\n"); 00207 00208 SDLEvent::push(&event); 00209 }
Here is the call graph for this function:
Audio::Channel * Wt::Audio::operator[] | ( | int | i | ) | const [inherited] |
Definition at line 86 of file audio.cpp.
References Wt::Audio::channels.
00086 { 00087 return channels[i]; 00088 }
void Wt::Audio::pause | ( | ) | [virtual, inherited] |
int Wt::Audio::pausedChannels | ( | ) | const [virtual, inherited] |
bool Wt::Audio::pausedMusic | ( | ) | const [virtual, inherited] |
void Wt::Audio::pauseMusic | ( | ) | [virtual, inherited] |
int Wt::Audio::playingChannels | ( | ) | const [virtual, inherited] |
bool Wt::Audio::playingMusic | ( | ) | const [virtual, inherited] |
void Wt::Audio::playMusic | ( | Music & | ) | [virtual, inherited] |
Reimplemented in Wt::SDLMixer.
Definition at line 125 of file audio.cpp.
References trace.
00125 { 00126 trace("audio", "Audio::playMusic() called\n"); 00127 }
void Wt::NullAudio::playMusic | ( | Music & | ) | [virtual] |
Definition at line 380 of file audio.cpp.
References Wt::Audio::onMusicFinish(), and trace.
00380 { 00381 trace("audio", "NullAudio::playMusic() called\n"); 00382 onMusicFinish(); 00383 }
Here is the call graph for this function:
static void Wt::Singleton< DERIVED >::quit | ( | ) | [inline, static, inherited] |
Reimplemented in Wt::Application.
Definition at line 55 of file singleton.h.
Referenced by Wt::Application::~Application().
00055 { 00056 delete instance(); 00057 }
void Wt::Audio::resume | ( | ) | [virtual, inherited] |
void Wt::Audio::rewindMusic | ( | ) | [virtual, inherited] |
bool Wt::Audio::setMusicPosition | ( | double | start_sec | ) | [virtual, inherited] |
void Wt::Audio::setMusicVolume | ( | int | volume | ) | [virtual, inherited] |
void Wt::Audio::stop | ( | int | ms = 0 |
) | [virtual, inherited] |
void Wt::Audio::stopMusic | ( | ) | [virtual, inherited] |
std::vector<Channel *> Wt::Audio::channels [protected, inherited] |
Definition at line 260 of file audio.h.
Referenced by Wt::Audio::adjustAllocatedChannels(), Wt::Audio::allocateChannels(), Wt::Audio::numChannels(), and Wt::Audio::operator[]().
Factory< Audio, NullAudio > Wt::NullAudio::factory [static] |
Signal01<void, Channel *> Wt::Audio::finished [inherited] |
DERIVED * Wt::Singleton< DERIVED >::instance_ = 0 [static, protected, inherited] |
Definition at line 91 of file singleton.h.
Referenced by Wt::Singleton< Wt::Audio >::existingInstance(), Wt::Singleton< Wt::Audio >::instance(), Wt::Singleton< Wt::Audio >::load(), Wt::SDLDisplay::load(), Wt::Audio::load(), Wt::Singleton< Wt::Audio >::Singleton(), and Wt::Singleton< Wt::Audio >::~Singleton().
const int Wt::Audio::maxVolume = 1000 [static, protected, inherited] |
Definition at line 238 of file audio.h.
Referenced by Wt::SDLMixer::Chunk::Chunk(), and Wt::Audio::HWVolume().
const int Wt::Audio::minVolume = 0 [static, protected, inherited] |
sigc::signal<void> Wt::Audio::musicFinished [inherited] |
WVar<int> Wt::Audio::musicLoops [inherited] |
Definition at line 224 of file audio.h.
Referenced by Wt::SDLMixer::fadeInMusic(), and Wt::SDLMixer::playMusic().
This document is licensed under the terms of the GNU Free Documentation License and may be freely distributed under the conditions given by this license.