# Cinder

# cinder::audio::Source Class Reference

`#include <Io.h>`

Inherits cinder::audio::Io.

Inherited by cinder::audio::SourceCallback, cinder::audio::SourceFile, and cinder::audio::SourceFileWindowsMedia.

List of all members.

## Public Types
enum | DataType { UINT8, INT8, UINT16, INT16, UINT32, INT32, FLOAT32, DATA_UNKNOWN }
typedef enum cinder::audio::Io::DataType | DataType
## Public Member Functions
virtual | ~Source ()
virtual LoaderRef | getLoader (Target *target)
virtual double | getDuration () const =0
int32_t | getSampleRate () const
| the number of samples per second that each channel should played or recorded at.
int16_t | getChannelCount () const
| the number of channels of audio data
int16_t | getBitsPerSample () const
| the number of significant bits per channel in each sample
int16_t | getBlockAlign () const
| the number of bytes in each sample. For interleaved data it's ussually ( sampleRate * channelCount ) / 8, for non-interleaved data ( sampleRate / 8 ).
DataType | getDataType () const
| The format of the audio data.
bool | isInterleaved () const
| Whether the audio data is interleaved or non-interleaved.
bool | isPcm () const
| Whether or not the data is stored in Linear-PCM.
bool | isFloat () const
| Whether or not the data is stored in Float format or Integer format.
bool | isBigEndian () const
| Whether or not the data is big-endian.
## Static Protected Member Functions
static void | loadFromCaAudioStreamBasicDescription (Io *anIo, const AudioStreamBasicDescription *audioDescription)
## Protected Attributes
int32_t | mSampleRate
int16_t | mChannelCount
int16_t | mBitsPerSample
int16_t | mBlockAlign
DataType | mDataType
bool | mIsInterleaved
bool | mIsPcm
bool | mIsBigEndian
uint32_t | mNativeFormatId
uint32_t | mNativeFormatFlags
uint32_t | mBytesPerPacket
uint32_t | mFramesPerPacket
uint32_t | mBytesPerFrame

## Member Typedef Documentation

typedef enum cinder::audio::Io::DataType cinder::audio::Io::DataType`[inherited]`

## Member Enumeration Documentation

enum cinder::audio::Io::DataType`[inherited]`

Enumerator:

  UINT8 |
  INT8 |
  UINT16 |
  INT16 |
  UINT32 |
  INT32 |
  FLOAT32 |
  DATA_UNKNOWN |

## Constructor & Destructor Documentation

virtual cinder::audio::Source::~Source | ( |  | ) | `[virtual]`

## Member Function Documentation

virtual LoaderRef cinder::audio::Source::getLoader | ( | Target * | target | ) | `[virtual]`

Reimplemented in cinder::audio::SourceFile, and cinder::audio::SourceFileWindowsMedia.

virtual double cinder::audio::Source::getDuration | ( |  | ) | const`[pure virtual]`

Implemented in cinder::audio::SourceFile, and cinder::audio::SourceFileWindowsMedia.

int32_t cinder::audio::Io::getSampleRate | ( |  | ) | const`[inherited]`

the number of samples per second that each channel should played or recorded at.

int16_t cinder::audio::Io::getChannelCount | ( |  | ) | const`[inherited]`

the number of channels of audio data

int16_t cinder::audio::Io::getBitsPerSample | ( |  | ) | const`[inherited]`

the number of significant bits per channel in each sample

int16_t cinder::audio::Io::getBlockAlign | ( |  | ) | const`[inherited]`

the number of bytes in each sample. For interleaved data it's ussually ( sampleRate * channelCount ) / 8, for non-interleaved data ( sampleRate / 8 ).

DataType cinder::audio::Io::getDataType | ( |  | ) | const`[inherited]`

The format of the audio data.

bool cinder::audio::Io::isInterleaved | ( |  | ) | const`[inherited]`

Whether the audio data is interleaved or non-interleaved.

bool cinder::audio::Io::isPcm | ( |  | ) | const`[inherited]`

Whether or not the data is stored in Linear-PCM.

bool cinder::audio::Io::isFloat | ( |  | ) | const`[inherited]`

Whether or not the data is stored in Float format or Integer format.

bool cinder::audio::Io::isBigEndian | ( |  | ) | const`[inherited]`

Whether or not the data is big-endian.

void cinder::audio::Io::loadFromCaAudioStreamBasicDescription | ( | Io * | anIo,
|  | const AudioStreamBasicDescription * | audioDescription |
| ) |  |  | `[static, protected, inherited]`

## Member Data Documentation

int32_t cinder::audio::Io::mSampleRate`[protected, inherited]`

int16_t cinder::audio::Io::mChannelCount`[protected, inherited]`

int16_t cinder::audio::Io::mBitsPerSample`[protected, inherited]`

int16_t cinder::audio::Io::mBlockAlign`[protected, inherited]`

DataType cinder::audio::Io::mDataType`[protected, inherited]`

bool cinder::audio::Io::mIsInterleaved`[protected, inherited]`

bool cinder::audio::Io::mIsPcm`[protected, inherited]`

bool cinder::audio::Io::mIsBigEndian`[protected, inherited]`

uint32_t cinder::audio::Io::mNativeFormatId`[protected, inherited]`

uint32_t cinder::audio::Io::mNativeFormatFlags`[protected, inherited]`

uint32_t cinder::audio::Io::mBytesPerPacket`[protected, inherited]`

uint32_t cinder::audio::Io::mFramesPerPacket`[protected, inherited]`

uint32_t cinder::audio::Io::mBytesPerFrame`[protected, inherited]`

The documentation for this class was generated from the following file:

- include/cinder/audio/Io.h