#include <audio2.h>
Inheritance diagram for ost::AudioFile:
Public Member Functions | |
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. | |
Protected Member Functions | |
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. | |
Protected Attributes | |
char * | pathname |
Error | error |
unsigned long | header |
unsigned long | minimum |
unsigned long | length |
union { | |
int fd | |
void * handle | |
} | file |
Mode | mode |
unsigned long | iolimit |
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.
|
Construct and open an existing audio file for read/write.
|
|
Create and open a new audio file for writing.
|
|
Construct an audio file without attaching to the filesystem.
|
|
|
|
Close the derived file handling system's file handle.
|
|
|
|
|
|
|
|
Read a given number of bytes from the file, starting from the current file pointer. May be overridden by derived classes.
|
|
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.
|
|
Write a number of bytes into the file at the current file pointer. May be overridden by derived classes.
|
|
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. |
|
Close an object associated with an open file. This updates the header metadata with the file length if the file length has changed. Reimplemented in ost::AudioStream. |
|
Create a new audio file and associate it with this object. Called implicitly by the three-argument version of the constructor.
Reimplemented in ost::AudioStream. |
|
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.
|
|
Returns age since last prior access. Used for cache computations.
|
|
Get annotation extracted from header of containing file.
|
|
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().
Implements ost::AudioBase. Reimplemented in ost::AudioStream. |
|
Reimplemented in ost::AudioStream. |
|
This function is used to splice multiple audio files together into a single stream of continues audio data. The continuation method returns the next audio file to open.
|
|
Return audio encoding format for this audio file.
Reimplemented from ost::AudioBase. |
|
Get last error code.
|
|
Return a human-readable error message given a numeric error code of type Audio::Error.
|
|
Return base file format of containing audio file.
|
|
Get number of bytes in the file header. Data packets will begin after this header.
|
|
Copy the source description of the audio file into the specified object.
|
|
Retrieve and convert content to linear encoded audio data from it's original form.
|
|
Convert binary 4 byte data stored in the order specified in the source description into a long variable. This is often used to manipulate header data.
|
|
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.
|
|
Return the timestamp of the current absolute file position.
|
|
Get audio encoding sample rate, in samples per second, for this audio file.
Reimplemented from ost::AudioBase. |
|
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().
|
|
Convert binary 2 byte data stored in the order specified in the source description into a short variable. This is often used to manipulate header data.
|
|
Get maximum size of frame buffer for data use.
|
|
|
|
Return true if underlying derived class supports direct access to file positioning. Derived classes based on URL's or fifo devices may not have this ability.
|
|
|
|
Test if the file is opened.
|
|
Return if the current content is signed or unsigned samples.
|
|
|
|
Open an audio file and associate it with this object. Called implicitly by the two-argument version of the constructor.
Reimplemented in ost::AudioStream. |
|
|
|
Seek a file position by timestamp. The actual position will be rounded by framing.
|
|
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().
Implements ost::AudioBase. |
|
Convert and store content from linear encoded audio data to the format of the audio file.
|
|
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().
|
|
|
|
Set the maximum file position for reading and writing of audio data by samples. If 0, then no limit is set.
|
|
Save a long as four byte binary data stored in the endian order specified in the source description. This is often used to manipulate header data.
|
|
Set minimum file size for a created file. If the file is closed with fewer samples than this, it will also be deleted.
|
|
Seek a file position by sample count. If no position specified, then seeks to end of file.
|
|
Save a short as two byte binary data stored in the endian order specified in the source description. This is often used to manipulate header data.
|
|
Change the file position by skipping a specified number of audio samples of audio data.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|