Entire Class Index | Main Class Index | Cross Index | Global Index

# Class CL_SoundBuffer

Sample interface in ClanLib.
Contained in: global
Derived from: none
Derived by: none
Group: Sound (Audio Mixing)

#include <ClanLib/sound.h>

### public function member index:
### Construction:
``virtual`` | `~CL_SoundBuffer` | `()`;
``static` `CL_SoundBuffer`*` | `load` | `(`const` `std::string`& `res_id`, `CL_ResourceManager`* `manager`)`;
``static` `CL_SoundBuffer`*` | `create` | `(`CL_StaticSoundProvider`* `provider`, `bool` `delete_provider`=false)`;
``static` `CL_SoundBuffer`*` | `create` | `(`CL_StreamSoundProvider`* `provider`, `bool` `delete_provider`=false)`;
`` | `CL_SoundBuffer` | `()`;
`` | `CL_SoundBuffer` | `(`const` `std::string`& `res_id`, `CL_ResourceManager`* `manager`)`;
`` | `CL_SoundBuffer` | `(`CL_StaticSoundProvider`* `provider`, `bool` `delete_provider`=false)`;
`` | `CL_SoundBuffer` | `(`CL_StreamSoundProvider`* `provider`, `bool` `delete_provider`=false)`;
`` | `CL_SoundBuffer` | `(`const` `CL_SoundBuffer`& `copy`)`;
### Operators:
``void`` | `operator``=` | `(`const` `CL_SoundBuffer`& `copy`)`;
### Attributes:
``CL_StaticSoundProvider`*` | `get_static_provider` | `() `const``;
``CL_StreamSoundProvider`*` | `get_stream_provider` | `() `const``;
``int`` | `get_length` | `() `const``;
``int`` | `get_num_samples` | `() `const``;
``int`` | `get_frequency` | `() `const``;
### Operations:
``bool`` | `set_frequency` | `(`int` `new_freq`)`;
``float`` | `get_volume` | `() `const``;
``bool`` | `set_volume` | `(`float` `new_volume`)`;
``float`` | `get_pan` | `() `const``;
``bool`` | `set_pan` | `(`float` `new_pan`)`;
``bool`` | `is_playing` | `(`CL_SoundBuffer_Session`* *`session`=NULL, `CL_SoundCard`* `card`=NULL) `const``;
``void`` | `stop` | `(`CL_SoundCard`* `card`=NULL)`;
``CL_SoundBuffer_Session`` | `play` | `(`bool` `looping`=false, `CL_SoundCard`* `card`=NULL)`;
``CL_SoundBuffer_Session`` | `prepare` | `(`bool` `looping`=false, `CL_SoundCard`* `card`=NULL)`;

## Description:

The CL_SoundBuffer class represents a sample in ClanLib. It can either be static or streamed. The soundbuffer gets its sample data from a soundprovider, that is passed during construction.
A static sample are normally sound effects and other sounds, that do not change. ClanLib will always load the entire sample into memory, and possibly upload it to the soundcard.
Streamed samples are either large sample that should be loaded a bit at a time (music for instance), or sounds that change from playback to playback (a microphone, speech over the net, etc).
See also - CL_StaticSoundProvider - Static sample data source.
See also -CL_StreamSoundProvider - Streamed sample data source.
See also -CL_SoundBuffer_Session - Sample playback control.

## Function Member Descriptions:

CL_SoundBuffer::CL_SoundBuffer - Construct unattached sound buffer.
`` `CL_SoundBuffer``()`;

CL_SoundBuffer::CL_SoundBuffer - Loads a soundbuffer (sample) from a resource.
`` `CL_SoundBuffer``(`const` `std::string`& `res_id`, `CL_ResourceManager`* `manager`)`;

CL_SoundBuffer::CL_SoundBuffer - Creates a static soundbuffer. If 'delete_provider' is true, the provider will be deleted when the soundbuffer is deleted.
`` `CL_SoundBuffer``(`CL_StaticSoundProvider`* `provider`, `bool` `delete_provider`=false)`;

CL_SoundBuffer::CL_SoundBuffer - Creates a streamed soundbuffer. If 'delete_provider' is true, the provider will be delete when the soundbuffer is deleted.
`` `CL_SoundBuffer``(`CL_StreamSoundProvider`* `provider`, `bool` `delete_provider`=false)`;

CL_SoundBuffer::CL_SoundBuffer - Create a copy of this soundbuffer. The copy will share the buffer with the original.
`` `CL_SoundBuffer``(`const` `CL_SoundBuffer`& `copy`)`;

CL_SoundBuffer::create - Creates a static soundbuffer. If 'delete_provider' is true, the provider will be deleted when the soundbuffer is deleted.
``static` `CL_SoundBuffer`*` `create``(`CL_StaticSoundProvider`* `provider`, `bool` `delete_provider`=false)`;

> Returns - The created soundbuffer.

CL_SoundBuffer::create - Creates a streamed soundbuffer. If 'delete_provider' is true, the provider will be delete when the soundbuffer is deleted.
``static` `CL_SoundBuffer`*` `create``(`CL_StreamSoundProvider`* `provider`, `bool` `delete_provider`=false)`;

> Returns - The created soundbuffer.

CL_SoundBuffer::get_frequency - Returns the start frequency used when the buffer is played.
``int`` `get_frequency``() `const``;

> Returns - Default/start frequency.

CL_SoundBuffer::get_length - Returns the length of the soundbuffer.
That is num_samples * bytes_per_sample.
``int`` `get_length``() `const``;

> Returns - Length of soundbuffer.

CL_SoundBuffer::get_num_samples - Returns the number of samples in the soundbuffer.
``int`` `get_num_samples``() `const``;

> Returns - Number of samples in soundbuffer.

CL_SoundBuffer::get_pan - Returns the default panning position when the buffer is played.
``float`` `get_pan``() `const``;

> Returns - The panning position.

CL_SoundBuffer::get_static_provider - Returns the static soundprovider attached or NULL if it is a streamed sound buffer.
``CL_StaticSoundProvider`*` `get_static_provider``() `const``;

> Returns - The static soundprovider or NULL if none.

CL_SoundBuffer::get_stream_provider - Return the streamed soundprovider attached or NULL if it is a static sound buffer.
``CL_StreamSoundProvider`*` `get_stream_provider``() `const``;

> Returns - The streamed soundprovider of NULL if none.

CL_SoundBuffer::get_volume - Returns the start/default volume used when the buffer is played.
``float`` `get_volume``() `const``;

> Returns - The volume.

CL_SoundBuffer::is_playing - Returns true if an instance of this soundbuffer is playing
``bool`` `is_playing``(`CL_SoundBuffer_Session`* *`session`=NULL, `CL_SoundCard`* `card`=NULL) `const``;

> session - Pointer to session-pointer, set to point to the first session
> playing this soundbuffer. Return value is only valid if function returns true

CL_SoundBuffer::load - Load
``static` `CL_SoundBuffer`*` `load``(`const` `std::string`& `res_id`, `CL_ResourceManager`* `manager`)`;

CL_SoundBuffer::operator = - Copy assignment.
``void`` `operator``=``(`const` `CL_SoundBuffer`& `copy`)`;

CL_SoundBuffer::play - Plays the soundbuffer on the specified soundcard and using the specified playback description.
``CL_SoundBuffer_Session`` `play``(`bool` `looping`=false, `CL_SoundCard`* `card`=NULL)`;

> card - Soundcard to be used - NULL means use the current selected
> sound card (CL_Sound::get_selected_card().
> Returns - The playback session.

CL_SoundBuffer::prepare - Prepares the soundbuffer for playback on the specified soundcard.
``CL_SoundBuffer_Session`` `prepare``(`bool` `looping`=false, `CL_SoundCard`* `card`=NULL)`;

> card - Soundcard to be used or NULL to use
> CL_Sound::get_selected_card().
> Returns - The playback session.

CL_SoundBuffer::set_frequency - Sets the start frequency used when the buffer is played.
``bool`` `set_frequency``(`int` `new_freq`)`;

> new_freq - The new default frequency.
> Returns - True if successful, false otherwise.

CL_SoundBuffer::set_pan - Sets the default panning position when the buffer is played.
``bool`` `set_pan``(`float` `new_pan`)`;

> new_pan - The new default panning position.
> Returns - True if successful, false otherwise.

CL_SoundBuffer::set_volume - Sets the default volume used when the buffer is played.
``bool`` `set_volume``(`float` `new_volume`)`;

> new_volume - The new default volume.
> Returns - True if successful, false otherwise.

CL_SoundBuffer::stop - Stops any sessions playing this soundbuffer
``void`` `stop``(`CL_SoundCard`* `card`=NULL)`;

CL_SoundBuffer::~CL_SoundBuffer - Sound Buffer Destructor
``virtual`` `~CL_SoundBuffer``()`;

## Variable Member Descriptions: