#include <audio2.h>
Inherits ost::AudioBase.
Inherited by ost::AudioStream.
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.
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.
char * pathname
Error error
unsigned long header
unsigned long minimum
unsigned long length
union {
int fd
void * handle
} file
Mode mode
unsigned long iolimit
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:
Construct and open an existing audio file for read/write.
Parameters:
Create and open a new audio file for writing.
Parameters:
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.
Parameters:
Returns:
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.
Parameters:
Returns:
Write a number of bytes into the file at the current file pointer.
May be overridden by derived classes.
Parameters:
Returns:
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.
Parameters:
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:
Returns age since last prior access.
Used for cache computations.
Returns:
Get annotation extracted from header of containing file.
Returns:
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().
Parameters:
Returns:
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.
Returns:
Return audio encoding format for this audio file.
Returns:
Reimplemented from ost::AudioBase.
Get last error code.
Returns:
Return a human-readable error message given a numeric error code of type Audio::Error.
Parameters:
Returns:
Return base file format of containing audio file.
Returns:
Get number of bytes in the file header.
Data packets will begin after this header.
Returns:
Copy the source description of the audio file into the specified object.
Parameters:
Returns:
Retrieve and convert content to linear encoded audio data from it's original form.
Parameters:
Returns:
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.
Returns:
Parameters:
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.
Returns:
Return the timestamp of the current absolute file position.
Parameters:
Get audio encoding sample rate, in samples per second, for this audio file.
Returns:
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().
Parameters:
Returns:
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.
Returns:
Parameters:
Get maximum size of frame buffer for data use.
Returns:
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.
Returns:
Test if the file is opened.
Returns:
Return if the current content is signed or unsigned samples.
Returns:
Open an audio file and associate it with this object.
Called implicitly by the two-argument version of the constructor.
Parameters:
Reimplemented in ost::AudioStream.
Seek a file position by timestamp.
The actual position will be rounded by framing.
Returns:
Parameters:
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().
Parameters:
Returns:
Convert and store content from linear encoded audio data to the format of the audio file.
Parameters:
Returns:
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().
Parameters:
Returns:
Set the maximum file position for reading and writing of audio data by samples.
If 0, then no limit is set.
Parameters:
Returns:
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.
Parameters:
Set minimum file size for a created file.
If the file is closed with fewer samples than this, it will also be deleted.
Parameters:
Returns:
Seek a file position by sample count.
If no position specified, then seeks to end of file.
Returns:
Parameters:
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.
Parameters:
Change the file position by skipping a specified number of audio samples of audio data.
Returns:
Parameters:
Generated automatically by Doxygen for ccAudio from the source code.