Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages | Examples

Audio Class Reference

Generic audio class to hold master data types and various useful class encapsulated friend functions as per GNU Common C++ 2 coding standard.Master audio class. More...

#include <bayonneaudio.h>

Inheritance diagram for Audio:

AudioCodec AudioFile List of all members.

Public Types

typedef enum Rate Rate
typedef enum Mode Mode
typedef enum Encoding Encoding
typedef enum Format Format
typedef enum Error Error
enum  Rate { rateUnknown, rate6khz = 6000, rate8khz = 8000, rate44khz = 44100 }
enum  Mode { modeRead, modeWrite, modeCache, modeInfo }
enum  Encoding {
  unknownEncoding = 0, g721ADPCM, g722Audio, g722_7bit,
  g722_6bit, g723_3bit, g723_5bit, gsmVoice,
  msgsmVoice, mulawAudio, alawAudio, mp1Audio,
  mp2Audio, mp3Audio, okiADPCM, voxADPCM,
  sx73Voice, sx96Voice, cdaStereo, cdaMono,
  pcm8Stereo, pcm8Mono, pcm16Stereo, pcm16Mono,
  pcm32Stereo, pcm32Mono
}
enum  Format {
  raw, snd, riff, mpeg,
  wave
}
enum  Error {
  errSuccess = 0, errReadLast, errNotOpened, errEndOfFile,
  errStartOfFile, errRateInvalid, errEncodingInvalid, errReadInterrupt,
  errWriteInterrupt, errReadFailure, errWriteFailure, errReadIncomplete,
  errWriteIncomplete, errRequestInvalid, errTOCFailed, errStatFailed,
  errInvalidTrack, errPlaybackFailed, errNotPlaying, errNoCodec
}

Static Public Member Functions

static bool isLinear (Encoding encoding)
static bool isMono (Encoding encoding)
static bool isStereo (Encoding encoding)
static Rate getRate (Encoding encoding)
static timeout_t getFraming (Encoding encoding)
static bool isEndian (Encoding encoding)
static bool isEndian (Info &info)
static bool swapEndian (Encoding encoding, void *buffer, unsigned samples)
static bool swapEndian (Info &info, void *buffer, unsigned samples)
static short getImpulse (Encoding encoding, void *buffer, unsigned samples)
static short getImpulse (Info &info, void *buffer, unsigned samples=0)
static short getPeak (Encoding encoding, void *buffer, unsigned samples)
static short getPeak (Info &info, void *buffer, unsigned samples=0)
static int getFrame (Encoding encoding, int samples=0)
 Returns the number of bytes in a sample frame for the given encoding type, rounded up to the nearest integer.
static int getCount (Encoding encoding)
 Returns the number of samples in all channels for a frame in the given encoding.
static unsigned long toSamples (Encoding encoding, size_t bytes)
static unsigned long toSamples (Info &info, size_t bytes)
static size_t toBytes (Info &info, unsigned long samples)
static size_t toBytes (Encoding encoding, unsigned long samples)
static void fill (unsigned char *addr, int samples, Encoding encoding)

Classes

class  Info

Detailed Description

Generic audio class to hold master data types and various useful class encapsulated friend functions as per GNU Common C++ 2 coding standard.Master audio class.

Author:
David Sugar <dyfet@ostel.com>


Member Typedef Documentation

typedef enum Encoding Audio::Encoding
 

typedef enum Error Audio::Error
 

typedef enum Format Audio::Format
 

typedef enum Mode Audio::Mode
 

typedef enum Rate Audio::Rate
 


Member Enumeration Documentation

enum Audio::Encoding
 

Enumerator:
unknownEncoding 
g721ADPCM 
g722Audio 
g722_7bit 
g722_6bit 
g723_3bit 
g723_5bit 
gsmVoice 
msgsmVoice 
mulawAudio 
alawAudio 
mp1Audio 
mp2Audio 
mp3Audio 
okiADPCM 
voxADPCM 
sx73Voice 
sx96Voice 
cdaStereo 
cdaMono 
pcm8Stereo 
pcm8Mono 
pcm16Stereo 
pcm16Mono 
pcm32Stereo 
pcm32Mono 

enum Audio::Error
 

Enumerator:
errSuccess 
errReadLast 
errNotOpened 
errEndOfFile 
errStartOfFile 
errRateInvalid 
errEncodingInvalid 
errReadInterrupt 
errWriteInterrupt 
errReadFailure 
errWriteFailure 
errReadIncomplete 
errWriteIncomplete 
errRequestInvalid 
errTOCFailed 
errStatFailed 
errInvalidTrack 
errPlaybackFailed 
errNotPlaying 
errNoCodec 

enum Audio::Format
 

Enumerator:
raw 
snd 
riff 
mpeg 
wave 

enum Audio::Mode
 

Enumerator:
modeRead 
modeWrite 
modeCache 
modeInfo 

enum Audio::Rate
 

Enumerator:
rateUnknown 
rate6khz 
rate8khz 
rate44khz 


Member Function Documentation

static void Audio::fill unsigned char *  addr,
int  samples,
Encoding  encoding
[static]
 

static int Audio::getCount Encoding  encoding  )  [static]
 

Returns the number of samples in all channels for a frame in the given encoding.

For example, pcm32Stereo has a frame size of 8 bytes: Note that different codecs have different definitions of a frame - for example, compressed encodings have a rather large frame size relative to the sample size due to the way bytes are fed to the decompression engine.

Parameters:
encoding The encoding to calculate the frame sample count for.
Returns:
samples The number of samples in a frame of the given encoding.

static int Audio::getFrame Encoding  encoding,
int  samples = 0
[static]
 

Returns the number of bytes in a sample frame for the given encoding type, rounded up to the nearest integer.

A frame is defined as the minimum number of bytes necessary to create a point or points in the output waveform for all output channels. For example, 16-bit mono PCM has a frame size of two (because those two bytes constitute a point in the output waveform). GSM has it's own definition of a frame which involves decompressing a sequence of bytes to determine the final points on the output waveform. The minimum number of bytes you can feed to the decompression engine is 32.5 (260 bits), so this function will return 33 (because we round up) given an encoding type of GSM. Other compressed encodings will return similar results. Be prepared to deal with nonintuitive return values for rare encodings.

Parameters:
encoding The encoding type to get the frame size for.
samples Reserved. Use zero.
Returns:
The number of bytes in a frame for the given encoding.

static timeout_t Audio::getFraming Encoding  encoding  )  [static]
 

static short Audio::getImpulse Info info,
void *  buffer,
unsigned  samples = 0
[static]
 

static short Audio::getImpulse Encoding  encoding,
void *  buffer,
unsigned  samples
[static]
 

static short Audio::getPeak Info info,
void *  buffer,
unsigned  samples = 0
[static]
 

static short Audio::getPeak Encoding  encoding,
void *  buffer,
unsigned  samples
[static]
 

static Rate Audio::getRate Encoding  encoding  )  [static]
 

static bool Audio::isEndian Info info  )  [static]
 

static bool Audio::isEndian Encoding  encoding  )  [static]
 

static bool Audio::isLinear Encoding  encoding  )  [static]
 

static bool Audio::isMono Encoding  encoding  )  [static]
 

static bool Audio::isStereo Encoding  encoding  )  [static]
 

static bool Audio::swapEndian Info info,
void *  buffer,
unsigned  samples
[static]
 

static bool Audio::swapEndian Encoding  encoding,
void *  buffer,
unsigned  samples
[static]
 

static size_t Audio::toBytes Encoding  encoding,
unsigned long  samples
[static]
 

static size_t Audio::toBytes Info info,
unsigned long  samples
[static]
 

static unsigned long Audio::toSamples Info info,
size_t  bytes
[static]
 

static unsigned long Audio::toSamples Encoding  encoding,
size_t  bytes
[static]
 


The documentation for this class was generated from the following file:
Generated on Tue Sep 13 02:19:09 2005 for Bayonne by  doxygen 1.4.4