#include <audio.h>
Inheritance diagram for AudioFile:

Public Member Functions | |
| AudioFile (const char *fname, unsigned long samples=0) | |
| AudioFile (const char *fname, Info *info, unsigned long min=0) | |
| AudioFile () | |
| virtual | ~AudioFile () |
| void | open (const char *fname) |
| Open an audio file and associate it with this object. | |
| void | create (const char *fname, Info *info) |
| Create a new audio file and associate it with this object. | |
| void | close (void) |
| Close an object associated with an open file. | |
| void | clear (void) |
| Clear the AudioFile structure. | |
| int | getBuffer (void *addr, unsigned len) |
| Retrieve bytes from the file into a memory buffer. | |
| unsigned | getLinear (Linear buffer, unsigned request) |
| Retrieve and convert content to linear encoded audio data from it's original form. | |
| int | putBuffer (void *attr, unsigned len) |
| Insert bytes into the file from a memory buffer. | |
| unsigned | putLinear (Linear buffer, unsigned request) |
| Convert and store content from linear encoded audio data to the format of the audio file. | |
| Error | getSamples (void *addr, unsigned samples) |
| Retrieve samples from the file into a memory buffer. | |
| Error | putSamples (void *addr, unsigned samples) |
| Insert samples into the file from a memory buffer. | |
| Error | skip (long samples) |
| Error | setPosition (unsigned long samples=~0l) |
| Error | setLimit (unsigned long samples=0l) |
| Error | getInfo (Info *info) |
| Error | setMinimum (unsigned long samples) |
| 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) |
| virtual bool | hasPositioning (void) |
| Encoding | getEncoding (void) |
| Format | getFormat (void) |
| unsigned | getSampleRate (void) |
| char * | getAnnotation (void) |
| Error | getError (void) |
| bool | operator! (void) |
| bool | isSigned (void) |
| Return if the current content is signed or unsigned samples. | |
Protected Member Functions | |
| virtual bool | afCreate (const char *path) |
| virtual bool | afOpen (const char *path) |
| 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) |
| virtual char * | getContinuation (void) |
| 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) |
| unsigned short | getShort (unsigned char *data) |
| void | setShort (unsigned char *data, unsigned short value) |
| unsigned long | getLong (unsigned char *data) |
| void | setLong (unsigned char *data, unsigned long value) |
Protected Attributes | |
| union { | |
| int fd | |
| void * handle | |
| } | file |
| unsigned long | limit |
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.
| AudioFile::AudioFile | ( | const char * | fname, | |
| unsigned long | samples = 0 | |||
| ) |
| AudioFile::AudioFile | ( | const char * | fname, | |
| Info * | info, | |||
| unsigned long | min = 0 | |||
| ) |
| AudioFile::AudioFile | ( | ) | [inline] |
| virtual AudioFile::~AudioFile | ( | ) | [inline, virtual] |
| virtual bool AudioFile::afCreate | ( | const char * | path | ) | [protected, virtual] |
| virtual bool AudioFile::afOpen | ( | const char * | path | ) | [protected, virtual] |
| virtual bool AudioFile::afPeek | ( | unsigned char * | data, | |
| unsigned | size | |||
| ) | [protected, virtual] |
| AudioCodec* AudioFile::getCodec | ( | void | ) | [protected] |
| virtual int AudioFile::afRead | ( | unsigned char * | data, | |
| unsigned | size | |||
| ) | [protected, virtual] |
Read a given number of bytes from the file, starting from the current file pointer.
May be overridden by derived classes.
| data | A pointer to the buffer to copy the bytes to. | |
| size | The number of bytes to read. |
| virtual int AudioFile::afWrite | ( | unsigned char * | data, | |
| unsigned | size | |||
| ) | [protected, virtual] |
Write a number of bytes into the file at the current file pointer.
May be overridden by derived classes.
| data | A pointer to the buffer with the bytes to write. | |
| size | The number of bytes to write from the buffer. |
| virtual bool AudioFile::afSeek | ( | unsigned long | pos | ) | [protected, virtual] |
Seek to the given position relative to the start of the file and set the file pointer.
This does not use 64-bit clean seek functions, so seeking to positions greater than (2^32)-1 will result in undefined behavior.
| pos | The position to seek to. |
| virtual void AudioFile::afClose | ( | void | ) | [protected, virtual] |
| virtual char* AudioFile::getContinuation | ( | void | ) | [inline, protected, virtual] |
| const char* AudioFile::getErrorStr | ( | Error | err | ) | [protected] |
Return a human-readable error message given a numeric error code of type Audio::Error.
| err | The numeric error code to translate. |
| unsigned long AudioFile::getHeader | ( | void | ) | [inline, protected] |
| unsigned short AudioFile::getShort | ( | unsigned char * | data | ) | [protected] |
| void AudioFile::setShort | ( | unsigned char * | data, | |
| unsigned short | value | |||
| ) | [protected] |
| unsigned long AudioFile::getLong | ( | unsigned char * | data | ) | [protected] |
| void AudioFile::setLong | ( | unsigned char * | data, | |
| unsigned long | value | |||
| ) | [protected] |
| void AudioFile::open | ( | const char * | fname | ) |
Open an audio file and associate it with this object.
Called implicitly by the two-argument version of the constructor.
| fname | The name of the file to open. Don't forget to double your backslashes for DOS-style pathnames. |
| void AudioFile::create | ( | const char * | fname, | |
| Info * | info | |||
| ) |
Create a new audio file and associate it with this object.
Called implicitly by the three-argument version of the constructor.
| fname | The name of the file to open. | |
| info | The type of the audio file to be created. |
| void AudioFile::close | ( | void | ) |
Close an object associated with an open file.
This updates the header metadata with the file length if the file length has changed.
| void AudioFile::clear | ( | void | ) |
Clear the AudioFile structure.
Called by AudioFile::close(). Sets all fields to zero and deletes the dynamically allocated memory pointed to by the pathname and info.annotation members. See AudioFile::initialize() for the dynamic allocation code.
| int AudioFile::getBuffer | ( | void * | addr, | |
| unsigned | len | |||
| ) |
Retrieve bytes from the file into a memory buffer.
This increments the file pointer so subsequent calls read further bytes. If you want to read a number of samples rather than bytes, use getSamples().
| addr | A pointer to the memory area to copy the samples to. | |
| len | The number of bytes (not samples) to copy. |
| unsigned AudioFile::getLinear | ( | Linear | buffer, | |
| unsigned | request | |||
| ) |
Retrieve and convert content to linear encoded audio data from it's original form.
| addr | A pointer to copy linear data into. | |
| len | Number of linear samples to extract. |
| int AudioFile::putBuffer | ( | void * | attr, | |
| unsigned | len | |||
| ) |
Insert bytes into the file from a memory buffer.
This increments the file pointer so subsequent calls append further samples. If you want to write a number of samples rather than bytes, use putSamples().
| attr | A pointer to the memory area to append the samples from. | |
| len | The number of bytes (not samples) to append. |
| unsigned AudioFile::putLinear | ( | Linear | buffer, | |
| unsigned | request | |||
| ) |
Convert and store content from linear encoded audio data to the format of the audio file.
| addr | A pointer to copy linear data from. | |
| len | Number of linear samples to save. |
| Error AudioFile::getSamples | ( | void * | addr, | |
| unsigned | samples | |||
| ) |
Retrieve samples from the file into a memory buffer.
This increments the file pointer so subsequent calls read further samples. If a limit has been set using setLimit(), the number of samples read will be truncated to the limit position. If you want to read a certain number of bytes rather than a certain number of samples, use getBuffer().
| addr | A pointer to the memory area to copy the samples to. | |
| samples | The number of samples to read. |
| Error AudioFile::putSamples | ( | void * | addr, | |
| unsigned | samples | |||
| ) |
Insert samples into the file from a memory buffer.
This increments the file pointer so subsequent calls append further samples. If you want to write a certain number of bytes rather than a certain number of samples, use putBuffer().
| addr | A pointer to the memory area to append the samples from. | |
| samples | The number of samples (not bytes) to append. |
| Error AudioFile::skip | ( | long | samples | ) |
| Error AudioFile::setPosition | ( | unsigned long | samples = ~0l |
) |
| Error AudioFile::setLimit | ( | unsigned long | samples = 0l |
) |
| Error AudioFile::getInfo | ( | Info * | info | ) |
| Error AudioFile::setMinimum | ( | unsigned long | samples | ) |
| unsigned long AudioFile::getAbsolutePosition | ( | void | ) |
Get the current file pointer in bytes relative to the start of the file.
See getPosition() to determine the position relative to the start of the sample buffer.
| unsigned long AudioFile::getPosition | ( | void | ) |
Get the current file pointer in samples relative to the start of the sample buffer.
Note that you must multiply this result by the result of a call to toBytes(info.encoding, 1) in order to determine the offset in bytes.
| virtual bool AudioFile::isOpen | ( | void | ) | [virtual] |
| virtual bool AudioFile::hasPositioning | ( | void | ) | [inline, virtual] |
| Encoding AudioFile::getEncoding | ( | void | ) | [inline] |
| Format AudioFile::getFormat | ( | void | ) | [inline] |
| unsigned AudioFile::getSampleRate | ( | void | ) | [inline] |
| char* AudioFile::getAnnotation | ( | void | ) | [inline] |
| Error AudioFile::getError | ( | void | ) | [inline] |
| bool AudioFile::operator! | ( | void | ) | [inline] |
| bool AudioFile::isSigned | ( | void | ) |
Return if the current content is signed or unsigned samples.
int AudioFile::fd [protected] |
void* AudioFile::handle [protected] |
union { ... } AudioFile::file [protected] |
unsigned long AudioFile::limit [protected] |
1.5.1