|
| AudioFile (const char *name, unsigned long offset=0) |
| Construct and open an existing audio file for read/write.
|
|
| AudioFile (const char *name, Info *info, unsigned long minimum=0) |
| Create and open a new audio file for writing.
|
|
| AudioFile () |
| Construct an audio file without attaching to the filesystem.
|
|
virtual | ~AudioFile () |
|
void | open (const char *name, Mode mode=modeWrite, timeout_t framing=0) |
| Open an audio file and associate it with this object.
|
|
void | create (const char *name, Info *info, bool exclusive=false, timeout_t framing=0) |
| Create a new audio file and associate it with this object.
|
|
time_t | getAge (void) |
| Returns age since last prior access.
|
|
size_t | getSize (void) |
| Get maximum size of frame buffer for data use.
|
|
void | close (void) |
| Close an object associated with an open file.
|
|
void | clear (void) |
| Clear the AudioFile structure.
|
|
ssize_t | getBuffer (Encoded buffer, size_t len=0) |
| Retrieve bytes from the file into a memory buffer.
|
|
unsigned | getLinear (Linear buffer, unsigned request=0) |
| Retrieve and convert content to linear encoded audio data from it's original form.
|
|
ssize_t | putBuffer (Encoded buffer, size_t len=0) |
| Insert bytes into the file from a memory buffer.
|
|
unsigned | putLinear (Linear buffer, unsigned request=0) |
| Convert and store content from linear encoded audio data to the format of the audio file.
|
|
Error | getSamples (void *buffer, unsigned samples=0) |
| Retrieve samples from the file into a memory buffer.
|
|
Error | putSamples (void *buffer, unsigned samples=0) |
| Insert samples into the file from a memory buffer.
|
|
Error | skip (long number) |
| Change the file position by skipping a specified number of audio samples of audio data.
|
|
Error | setPosition (unsigned long samples=~0l) |
| Seek a file position by sample count.
|
|
Error | position (const char *timestamp) |
| Seek a file position by timestamp.
|
|
void | getPosition (char *timestamp, size_t size) |
| Return the timestamp of the current absolute file position.
|
|
Error | setLimit (unsigned long maximum=0l) |
| Set the maximum file position for reading and writing of audio data by samples.
|
|
Error | getInfo (Info *info) |
| Copy the source description of the audio file into the specified object.
|
|
Error | setMinimum (unsigned long minimum) |
| Set minimum file size for a created file.
|
|
unsigned long | getAbsolutePosition (void) |
| Get the current file pointer in bytes relative to the start of the file.
|
|
unsigned long | getPosition (void) |
| Get the current file pointer in samples relative to the start of the sample buffer.
|
|
virtual bool | isOpen (void) |
| Test if the file is opened.
|
|
virtual bool | hasPositioning (void) |
| Return true if underlying derived class supports direct access to file positioning.
|
|
Encoding | getEncoding (void) |
| Return audio encoding format for this audio file.
|
|
Format | getFormat (void) |
| Return base file format of containing audio file.
|
|
unsigned | getSampleRate (void) |
| Get audio encoding sample rate, in samples per second, for this audio file.
|
|
char * | getAnnotation (void) |
| Get annotation extracted from header of containing file.
|
|
Error | getError (void) |
| Get last error code.
|
|
bool | operator! (void) |
|
bool | isSigned (void) |
| Return if the current content is signed or unsigned samples.
|
|
| AudioBase () |
| Create audio base object with no info.
|
|
| AudioBase (Info *info) |
| Create audio base object with audio source description.
|
|
virtual | ~AudioBase () |
| Destroy an audio base object.
|
|
Encoding | getEncoding (void) |
| Generic get encoding.
|
|
unsigned | getSampleRate (void) |
| Generic sample rate.
|
|
ssize_t | putNative (Encoded data, size_t size) |
| Puts raw data and does native to refined endian swapping if needed based on encoding type and local machine endian.
|
|
ssize_t | getPacket (Encoded data) |
| Get's a packet of audio data.
|
|
ssize_t | getNative (Encoded data, size_t size) |
| Get raw data and assure is in native machine endian.
|
|
|
void | initialize (void) |
|
void | getWaveFormat (int size) |
|
void | mp3info (mpeg_audio *mp3) |
|
virtual bool | afCreate (const char *path, bool exclusive=false) |
|
virtual bool | afOpen (const char *path, Mode m=modeWrite) |
|
virtual bool | afPeek (unsigned char *data, unsigned size) |
|
AudioCodec * | getCodec (void) |
|
virtual int | afRead (unsigned char *data, unsigned size) |
| Read a given number of bytes from the file, starting from the current file pointer.
|
|
virtual int | afWrite (unsigned char *data, unsigned size) |
| Write a number of bytes into the file at the current file pointer.
|
|
virtual bool | afSeek (unsigned long pos) |
| Seek to the given position relative to the start of the file and set the file pointer.
|
|
virtual void | afClose (void) |
| Close the derived file handling system's file handle.
|
|
virtual char * | getContinuation (void) |
| This function is used to splice multiple audio files together into a single stream of continues audio data.
|
|
const char * | getErrorStr (Error err) |
| Return a human-readable error message given a numeric error code of type Audio::Error.
|
|
Error | setError (Error err) |
|
unsigned long | getHeader (void) |
| Get number of bytes in the file header.
|
|
unsigned short | getShort (unsigned char *data) |
| Convert binary 2 byte data stored in the order specified in the source description into a short variable.
|
|
void | setShort (unsigned char *data, unsigned short value) |
| Save a short as two byte binary data stored in the endian order specified in the source description.
|
|
unsigned long | getLong (unsigned char *data) |
| Convert binary 4 byte data stored in the order specified in the source description into a long variable.
|
|
void | setLong (unsigned char *data, unsigned long value) |
| Save a long as four byte binary data stored in the endian order specified in the source description.
|
|
|
enum | Rate {
rateUnknown
, rate6khz = 6000
, rate8khz = 8000
, rate16khz = 16000
,
rate32khz = 32000
, rate44khz = 44100
} |
| Audio encoding rate, samples per second. More...
|
|
enum | Mode {
modeRead
, modeReadAny
, modeReadOne
, modeWrite
,
modeCache
, modeInfo
, modeFeed
, modeAppend
,
modeCreate
} |
| File processing mode, whether to skip missing files, etc. More...
|
|
enum | Encoding {
unknownEncoding = 0
, g721ADPCM
, g722Audio
, g722_7bit
,
g722_6bit
, g723_2bit
, g723_3bit
, g723_5bit
,
gsmVoice
, msgsmVoice
, mulawAudio
, alawAudio
,
mp1Audio
, mp2Audio
, mp3Audio
, okiADPCM
,
voxADPCM
, sx73Voice
, sx96Voice
, cdaStereo
,
cdaMono
, pcm8Stereo
, pcm8Mono
, pcm16Stereo
,
pcm16Mono
, pcm32Stereo
, pcm32Mono
, speexVoice
,
speexAudio
, g729Audio
, ilbcAudio
, speexUltra
,
speexNarrow = speexVoice
, speexWide = speexAudio
, g723_4bit = g721ADPCM
} |
| Audio encoding formats. More...
|
|
enum | Format {
raw
, snd
, riff
, mpeg
,
wave
} |
| Audio container file format. More...
|
|
enum | DeviceMode { PLAY
, RECORD
, PLAYREC
} |
| Audio device access mode. More...
|
|
enum | Error {
errSuccess = 0
, errReadLast
, errNotOpened
, errEndOfFile
,
errStartOfFile
, errRateInvalid
, errEncodingInvalid
, errReadInterrupt
,
errWriteInterrupt
, errReadFailure
, errWriteFailure
, errReadIncomplete
,
errWriteIncomplete
, errRequestInvalid
, errTOCFailed
, errStatFailed
,
errInvalidTrack
, errPlaybackFailed
, errNotPlaying
, errNoCodec
} |
| Audio error conditions. More...
|
|
typedef int16_t | snd16_t |
|
typedef int32_t | snd32_t |
|
typedef int16_t | Level |
|
typedef int16_t | Sample |
|
typedef int16_t * | Linear |
|
typedef unsigned long | timeout_t |
|
typedef unsigned char * | Encoded |
|
typedef enum Rate | Rate |
|
typedef enum Mode | Mode |
|
typedef enum Encoding | Encoding |
|
typedef enum Format | Format |
|
typedef enum DeviceMode | DeviceMode |
|
typedef enum Error | Error |
|
static Level | tolevel (float dbm) |
| Convert dbm power level to integer value (0-32768).
|
|
static float | todbm (Level power) |
| Convert integer power levels to dbm.
|
|
static bool | hasDevice (unsigned device=0) |
| Test for the presense of a specified (indexed) audio device.
|
|
static AudioDevice * | getDevice (unsigned device=0, DeviceMode mode=PLAY) |
| Get a audio device object that can be used to play or record audio.
|
|
static const char * | getCodecPath (void) |
| Get pathname to where loadable codec modules are stored.
|
|
static const char * | getMIME (Info &info) |
| Get the mime descriptive type for a given Audio encoding description, usually retrieved from a newly opened audio file.
|
|
static const char * | getName (Encoding encoding) |
| Get the short ascii description used for the given audio encoding type.
|
|
static const char * | getExtension (Encoding encoding) |
| Get the preferred file extension name to use for a given audio encoding type.
|
|
static Encoding | getEncoding (const char *name) |
| Get the audio encoding format that is specified by a short ascii name.
|
|
static Encoding | getStereo (Encoding encoding) |
| Get the stereo encoding format associated with the given format.
|
|
static Encoding | getMono (Encoding encoding) |
| Get the mono encoding format associated with the given format.
|
|
static bool | isLinear (Encoding encoding) |
| Test if the audio encoding format is a linear one.
|
|
static bool | isBuffered (Encoding encoding) |
| Test if the audio encoding format must be packetized (that is, has irregular sized frames) and must be processed only through buffered codecs.
|
|
static bool | isMono (Encoding encoding) |
| Test if the audio encoding format is a mono format.
|
|
static bool | isStereo (Encoding encoding) |
| Test if the audio encoding format is a stereo format.
|
|
static Rate | getRate (Encoding encoding) |
| Return default sample rate associated with the specified audio encoding format.
|
|
static Rate | getRate (Encoding e, Rate request) |
| Return optional rate setting effect.
|
|
static timeout_t | getFraming (Encoding encoding, timeout_t timeout=0) |
| Return frame timing for an audio encoding format.
|
|
static timeout_t | getFraming (Info &info, timeout_t timeout=0) |
| Return frame time for an audio source description.
|
|
static bool | isEndian (Encoding encoding) |
| Test if the endian byte order of the encoding format is different from the machine's native byte order.
|
|
static bool | isEndian (Info &info) |
| Test if the endian byte order of the audio source description is different from the machine's native byte order.
|
|
static bool | swapEndian (Encoding encoding, void *buffer, unsigned number) |
| Optionally swap endian of audio data if the encoding format endian byte order is different from the machine's native endian.
|
|
static void | swapEncoded (Info &info, Encoded data, size_t bytes) |
| Optionally swap endian of encoded audio data based on the audio encoding type, and relationship to native byte order.
|
|
static bool | swapEndian (Info &info, void *buffer, unsigned number) |
| Optionally swap endian of audio data if the audio source description byte order is different from the machine's native endian byte order.
|
|
static Level | getImpulse (Encoding encoding, void *buffer, unsigned number) |
| Get the energey impulse level of a frame of audio data.
|
|
static Level | getImpulse (Info &info, void *buffer, unsigned number=0) |
| Get the energey impulse level of a frame of audio data.
|
|
static Level | getPeak (Encoding encoding, void *buffer, unsigned number) |
| Get the peak (highest energy) level found in a frame of audio data.
|
|
static Level | getPeak (Info &info, void *buffer, unsigned number=0) |
| Get the peak (highest energy) level found in a frame of audio data.
|
|
static void | toTimestamp (timeout_t duration, char *address, size_t size) |
| Provide ascii timestamp representation of a timeout value.
|
|
static timeout_t | toTimeout (const char *timestamp) |
| Convert ascii timestamp representation to a timeout number.
|
|
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) |
| Compute byte counts of audio data into number of samples based on the audio encoding format used.
|
|
static unsigned long | toSamples (Info &info, size_t bytes) |
| Compute byte counts of audio data into number of samples based on the audio source description used.
|
|
static size_t | toBytes (Info &info, unsigned long number) |
| Compute the number of bytes a given number of samples in a given audio encoding will occupy.
|
|
static size_t | toBytes (Encoding encoding, unsigned long number) |
| Compute the number of bytes a given number of samples in a given audio encoding will occupy.
|
|
static void | fill (unsigned char *address, int number, Encoding encoding) |
| Fill an audio buffer with "empty" (silent) audio data, based on the audio encoding format.
|
|
static bool | loadPlugin (const char *path) |
| Load a dso plugin (codec plugin), used internally...
|
|
static size_t | maxFramesize (Info &info) |
| Maximum framesize for a given coding that may be needed to store a result.
|
|
static const unsigned | ndata |
|
A class used to manipulate audio data.
This class provides file level access to audio data stored in different formats. This class also provides the ability to write audio data into a disk file.
- Author
- David Sugar dyfet.nosp@m.@ost.nosp@m.el.co.nosp@m.m
audio file access.