Async
1.3.1
|
A class for recording raw audio to a file. More...
#include <AsyncAudioRecorder.h>
Public Types | |
enum | Format { FMT_AUTO, FMT_RAW, FMT_WAV } |
Public Member Functions | |
AudioRecorder (const std::string &filename, AudioRecorder::Format fmt=FMT_AUTO, int sample_rate=INTERNAL_SAMPLE_RATE) | |
Default constuctor. More... | |
~AudioRecorder (void) | |
Destructor. More... | |
bool | initialize (void) |
Initialize the recorder. More... | |
void | setMaxRecordingTime (unsigned time_ms, unsigned hw_time_ms=0) |
Set the maximum length of this recording. More... | |
void | closeFile (void) |
Close the file. More... | |
unsigned | samplesWritten (void) const |
Find out how many samples that have been written so far. More... | |
const struct timeval & | beginTimestamp (void) const |
The timestamp of the first stored sample. More... | |
const struct timeval & | endTimestamp (void) const |
The timestamp of the last stored sample. More... | |
virtual int | writeSamples (const float *samples, int count) |
Write samples into this audio sink. More... | |
virtual void | flushSamples (void) |
Tell the sink to flush the previously written samples. More... | |
![]() | |
AudioSink (void) | |
Default constuctor. More... | |
virtual | ~AudioSink (void) |
Destructor. More... | |
bool | registerSource (AudioSource *source) |
Register an audio source to provide samples to this sink. More... | |
void | unregisterSource (void) |
Unregister the previously registered audio source. More... | |
bool | isRegistered (void) const |
Check if an audio source has been registered. More... | |
AudioSource * | source (void) const |
Get the registered audio source. More... | |
Public Attributes | |
sigc::signal< void > | maxRecordingTimeReached |
A signal that's emitted when the max recording time is reached. More... | |
Additional Inherited Members | |
![]() | |
void | sourceResumeOutput (void) |
Tell the source that we are ready to accept more samples. More... | |
void | sourceAllSamplesFlushed (void) |
Tell the source that all samples have been flushed. More... | |
bool | setHandler (AudioSink *handler) |
Setup another sink to handle the incoming audio. More... | |
void | clearHandler (void) |
Clear a handler that was previously setup with setHandler. More... | |
AudioSink * | handler (void) const |
A class for recording raw audio to a file.
Use this class to stream audio into a file. The audio is stored in raw format, (only samples no header) or WAV format.
Definition at line 119 of file AsyncAudioRecorder.h.
Enumerator | |
---|---|
FMT_AUTO | |
FMT_RAW | |
FMT_WAV |
Definition at line 122 of file AsyncAudioRecorder.h.
|
explicit |
Default constuctor.
filename | The name of the file to record audio to |
fmt | The file format ( |
sample_rate | The sample rate (defaults to INTERNAL_SAMPLE_RATE) |
Async::AudioRecorder::~AudioRecorder | ( | void | ) |
Destructor.
|
inline |
The timestamp of the first stored sample.
Definition at line 182 of file AsyncAudioRecorder.h.
void Async::AudioRecorder::closeFile | ( | void | ) |
Close the file.
This function will close the file being recorded to. When the file has been closed, all samples coming in after that will be discarded.
|
inline |
The timestamp of the last stored sample.
Definition at line 188 of file AsyncAudioRecorder.h.
|
virtual |
Tell the sink to flush the previously written samples.
This function is used to tell the sink to flush previously written samples. When done flushing, the sink should call the sourceAllSamplesFlushed function. This function is normally only called from a connected source object.
Reimplemented from Async::AudioSink.
bool Async::AudioRecorder::initialize | ( | void | ) |
Initialize the recorder.
This function will initialize the recorder and open the file.
|
inline |
Find out how many samples that have been written so far.
Definition at line 176 of file AsyncAudioRecorder.h.
void Async::AudioRecorder::setMaxRecordingTime | ( | unsigned | time_ms, |
unsigned | hw_time_ms = 0 |
||
) |
Set the maximum length of this recording.
time_ms | The maximum time in milliseconds |
hw_time_ms | The high watermark time in milliseconds |
Use this function to set the maximum time for a recording. When the limit has been reached, the file will be closed and any incoming samples will be thrown away. The high watermark time is a soft limit. After reaching the high watermark, the recording will be ended as soon as the audio source call flushSamples. The high watermark need to be set to less than the maximum time to have any effect. A time of 0 disables it. The sampling rate given in the constructor call is used to calculate the time. Setting the time to 0 will allow the file to grow indefinetly.
|
virtual |
Write samples into this audio sink.
samples | The buffer containing the samples |
count | The number of samples in the buffer |
This function is used to write audio into this audio sink. If it returns 0, no more samples should be written until the resumeOutput function in the source have been called. This function is normally only called from a connected source object.
Reimplemented from Async::AudioSink.
sigc::signal<void> Async::AudioRecorder::maxRecordingTimeReached |
A signal that's emitted when the max recording time is reached.
This signal will be emitted when any of the maximum recording time or the high watermark limits are reached. Before this signal is emitted, the file is closed. It is safe to delete the audio recorder from the slot that is connected to this signal.
Definition at line 221 of file AsyncAudioRecorder.h.