SoundPlay Class Reference#include <SoundPlay.h>
Inheritance diagram for SoundPlay:
[legend]List of all members.
Detailed Description
The process (a.k.a. OObject), which is responsible for sending sound buffers to the system to play.
This sound process will purposely starve the system of sound buffers when nothing is playing, both to eliminate needless zeroing of entire buffers, as well as to reduce system overhead of playing empty buffers.
If you want to know how to play sounds, you should be looking at SoundManager's documentation.
Basically a slightly modified version of the SoundPlay example code from Sony. Here's their license: Copyright 2002,2003 Sony Corporation
Permission to use, copy, modify, and redistribute this software for non-commercial use is hereby granted.
This software is provided "as is" without warranty of any kind, either expressed or implied, including but not limited to the implied warranties of fitness for a particular purpose.
Definition at line 28 of file SoundPlay.h.
|
Public Member Functions |
| SoundPlay () |
| constructor
|
virtual | ~SoundPlay () |
| destructor
|
virtual OStatus | DoInit (const OSystemEvent &event) |
| called by system when time to do init
|
virtual OStatus | DoStart (const OSystemEvent &event) |
| called by system when time to start running
|
virtual OStatus | DoStop (const OSystemEvent &event) |
| called by system when time to stop running
|
virtual OStatus | DoDestroy (const OSystemEvent &event) |
| called by system when time to free
|
void | ReadySendSound (const OReadyEvent &event) |
| called by system when it's ready for another sound buffer
|
void | ReadyRegisterSoundManager (const OReadyEvent &event) |
| called by system when observers are ready to receive the SoundManager
|
void | GotEventTranslatorQueue (const ONotifyEvent &event) |
| called by system when the queue for sending events to Main is being published
|
void | GotSoundMsg (const ONotifyEvent &event) |
| called by system when SoundManager has sent itself a message on a different process (either to add or remove sounds from memory)
|
Public Attributes |
OSubject * | subject [numOfSubject] |
| array of subject IDs, used to identify outgoing data
|
OObserver * | observer [numOfObserver] |
| array of observer IDs, used to identify what's ready
|
Private Member Functions |
void | doSendSound () |
| called to send sound buffer(s) to system
|
void | OpenSpeaker () |
| initializes speaker
|
void | NewSoundVectorData () |
| sets up sound buffers
|
void | SetPowerAndVolume () |
| sets volume to max
|
RCRegion * | InitRegion (unsigned int size) |
| inits each buffer
|
RCRegion * | FindFreeRegion () |
| finds the first sound buffer which system isn't using (buffers are recycled)
|
| SoundPlay (const SoundPlay &) |
| don't call
|
SoundPlay & | operator= (const SoundPlay &) |
| don't call
|
Private Attributes |
unsigned int | active |
| number of active sound channels - if it's 0, we'll purposely starve system of sound buffers
|
RCRegion * | soundManagerMemRgn |
| SoundPlay creates, Main & Motion receive - Shared region used by SoundManager.
|
RCRegion * | eventTranslatorQueueMemRgn |
| Main creates, Motion (& SoundPlay) receive.
|
EventTranslator | etrans |
| will be given all events created by SoundManager to be forwarded to Main
|
OPrimitiveID | speakerID |
| ID returned to system after opening SPEAKER_LOCATOR.
|
RCRegion * | region [SOUND_NUM_BUFFER] |
| holds references to shared regions holding sound clips
|
Static Private Attributes |
const size_t | SOUND_NUM_BUFFER = 2 |
| number of buffers to use
|
Constructor & Destructor Documentation
virtual SoundPlay::~SoundPlay |
( |
|
) |
[inline, virtual] |
|
SoundPlay::SoundPlay |
( |
const SoundPlay & |
|
) |
[private] |
|
Member Function Documentation
OStatus SoundPlay::DoDestroy |
( |
const OSystemEvent & |
event |
) |
[virtual] |
|
|
called by system when time to free
Definition at line 93 of file SoundPlay.cc. |
OStatus SoundPlay::DoInit |
( |
const OSystemEvent & |
event |
) |
[virtual] |
|
|
called by system when time to do init
Definition at line 35 of file SoundPlay.cc. |
void SoundPlay::doSendSound |
( |
|
) |
[private] |
|
OStatus SoundPlay::DoStart |
( |
const OSystemEvent & |
event |
) |
[virtual] |
|
|
called by system when time to start running
Definition at line 69 of file SoundPlay.cc. |
OStatus SoundPlay::DoStop |
( |
const OSystemEvent & |
event |
) |
[virtual] |
|
|
called by system when time to stop running
Definition at line 80 of file SoundPlay.cc. |
RCRegion * SoundPlay::FindFreeRegion |
( |
|
) |
[private] |
|
|
finds the first sound buffer which system isn't using (buffers are recycled)
Definition at line 247 of file SoundPlay.cc.
Referenced by doSendSound(). |
void SoundPlay::GotEventTranslatorQueue |
( |
const ONotifyEvent & |
event |
) |
|
|
|
called by system when the queue for sending events to Main is being published
Definition at line 122 of file SoundPlay.cc. |
void SoundPlay::GotSoundMsg |
( |
const ONotifyEvent & |
event |
) |
|
|
|
called by system when SoundManager has sent itself a message on a different process (either to add or remove sounds from memory)
Definition at line 134 of file SoundPlay.cc. |
RCRegion * SoundPlay::InitRegion |
( |
unsigned int |
size |
) |
[private] |
|
|
inits each buffer
Will round up size to the nearest page
Definition at line 238 of file SoundPlay.cc.
Referenced by DoInit(). |
void SoundPlay::NewSoundVectorData |
( |
|
) |
[private] |
|
void SoundPlay::OpenSpeaker |
( |
|
) |
[private] |
|
void SoundPlay::ReadyRegisterSoundManager |
( |
const OReadyEvent & |
event |
) |
|
|
void SoundPlay::ReadySendSound |
( |
const OReadyEvent & |
event |
) |
|
|
|
called by system when it's ready for another sound buffer
Definition at line 104 of file SoundPlay.cc. |
void SoundPlay::SetPowerAndVolume |
( |
|
) |
[private] |
|
Member Data Documentation
|
holds references to shared regions holding sound clips
Definition at line 64 of file SoundPlay.h. |
The documentation for this class was generated from the following files:
|