#include <iostream>
#include <cstdlib>
#include <cstring>
int inout( void *outputBuffer, void *inputBuffer, unsigned int nBufferFrames,
{
if ( status ) std::cout << "Stream over/underflow detected." << std::endl;
unsigned int *bytes = (unsigned int *) data;
memcpy( outputBuffer, inputBuffer, *bytes );
return 0;
}
int main()
{
std::cout << "\nNo audio devices found!\n";
exit( 0 );
}
unsigned int bufferBytes, bufferFrames = 512;
try {
adac.
openStream( &oParams, &iParams, RTAUDIO_SINT32, 44100, &bufferFrames, &inout, (
void *)&bufferBytes );
}
exit( 0 );
}
bufferBytes = bufferFrames * 2 * 4;
try {
char input;
std::cout << "\nRunning ... press <enter> to quit.\n";
std::cin.get(input);
}
goto cleanup;
}
cleanup:
return 0;
}
unsigned int RtAudioStreamStatus
RtAudio stream status (over- or underflow) flags.
Definition: RtAudio.h:159
Exception handling class for RtAudio.
Definition: RtAudio.h:220
virtual void printMessage(void) const
Prints thrown error message to stderr.
Definition: RtAudio.h:243
Realtime audio i/o C++ classes.
Definition: RtAudio.h:280
void openStream(RtAudio::StreamParameters *outputParameters, RtAudio::StreamParameters *inputParameters, RtAudioFormat format, unsigned int sampleRate, unsigned int *bufferFrames, RtAudioCallback callback, void *userData=NULL, RtAudio::StreamOptions *options=NULL, RtAudioErrorCallback errorCallback=NULL)
A public function for opening a stream with the specified parameters.
unsigned int getDeviceCount(void)
A public function that queries for the number of audio devices available.
Definition: RtAudio.h:857
unsigned int nChannels
Definition: RtAudio.h:315
void closeStream(void)
A function that closes a stream and frees any associated stream memory.
Definition: RtAudio.h:861
bool isStreamOpen(void) const
Returns true if a stream is open and false if not.
Definition: RtAudio.h:865
unsigned int deviceId
Definition: RtAudio.h:314
void startStream(void)
A function that starts a stream.
Definition: RtAudio.h:862
void stopStream(void)
Stop a stream, allowing any samples remaining in the output queue to be played.
Definition: RtAudio.h:863
The structure for specifying input or output stream parameters.
Definition: RtAudio.h:313
In this example, audio recorded by the stream input will be played out during the next round of audio processing.
Note that a duplex stream can make use of two different devices (except when using the Linux Jack and Windows ASIO APIs). However, this may cause timing problems due to possible device clock variations, unless a common external "sync" is provided.