38 #ifndef __AUDIOINTERFACE_H__
39 #define __AUDIOINTERFACE_H__
45 #include <QVarLengthArray>
88 int NumInChans,
int NumOutChans,
104 virtual void setup();
120 unsigned int n_frames);
121 virtual void callback(QVarLengthArray<sample_t*>& in_buffer,
122 QVarLengthArray<sample_t*>& out_buffer,
123 unsigned int n_frames);
170 { mNumInChans = nchannels; }
172 { mNumOutChans = nchannels; }
174 { mSampleRate = sample_rate; }
176 { mDeviceID = device_id; }
178 { mBufferSizeInSamples = buf_size; }
192 {
return mBufferSizeInSamples; }
194 {
return mDeviceID; }
198 {
return mSampleRate; }
219 void computeProcessFromNetwork(QVarLengthArray<sample_t*>& out_buffer,
220 unsigned int n_frames);
222 void computeProcessToNetwork(QVarLengthArray<sample_t*>& in_buffer,
223 unsigned int n_frames);
230 QVarLengthArray<sample_t*> mNetInBuffer;
231 QVarLengthArray<sample_t*> mAPInBuffer;
233 QVarLengthArray<sample_t*> mInBufCopy;
234 int mAudioBitResolution;
239 size_t mSizeInBytesPerChannel;
240 QVector<ProcessPlugin*> mProcessPluginsFromNetwork;
241 QVector<ProcessPlugin*> mProcessPluginsToNetwork;
242 QVarLengthArray<sample_t*> mInProcessBuffer;
243 QVarLengthArray<sample_t*> mOutProcessBuffer;
Base Class that provides an interface with audio.
Definition: AudioInterface.h:58
virtual void appendProcessPluginFromNetwork(ProcessPlugin *plugin)
appendProcessPluginFromNetwork(): Same as appendProcessPluginToNetwork() except that these plugins op...
Definition: AudioInterface.cpp:635
virtual uint32_t getSampleRate() const
Get the Jack Server Sampling Rate, in samples/second.
Definition: AudioInterface.h:197
virtual samplingRateT getSampleRateType() const
Get the Jack Server Sampling Rate Enum Type samplingRateT.
Definition: AudioInterface.cpp:667
virtual int stopProcess() const =0
Stops the process-callback thread.
virtual size_t getSizeInBytesPerChannel() const
Definition: AudioInterface.cpp:210
virtual int startProcess() const =0
Tell the audio server that we are ready to roll. The process-callback will start running....
virtual int getNumOutputChannels() const
Get Number of Output Channels.
Definition: AudioInterface.h:190
const uint32_t MAX_AUDIO_BUFFER_SIZE
Definition: AudioInterface.h:250
virtual void callback(QVarLengthArray< sample_t * > &in_buffer, QVarLengthArray< sample_t * > &out_buffer, unsigned int n_frames)
Definition: AudioInterface.cpp:217
samplingRateT
Sampling Rates supported by JACK.
Definition: AudioInterface.h:70
@ SR22
22050 Hz
Definition: AudioInterface.h:71
@ SR48
48000 Hz
Definition: AudioInterface.h:74
@ SR88
88200 Hz
Definition: AudioInterface.h:75
@ SR192
192000 Hz
Definition: AudioInterface.h:77
@ UNDEF
Undefined.
Definition: AudioInterface.h:78
@ SR32
32000 Hz
Definition: AudioInterface.h:72
@ SR44
44100 Hz
Definition: AudioInterface.h:73
@ SR96
96000 Hz
Definition: AudioInterface.h:76
virtual void appendProcessPluginToNetwork(ProcessPlugin *plugin)
appendProcessPluginToNetwork(): Append a ProcessPlugin for outgoing audio. The processing order equal...
Definition: AudioInterface.cpp:619
virtual int getNumInputChannels() const
Get Number of Input Channels.
Definition: AudioInterface.h:188
virtual int getAudioBitResolution() const
Get the Audio Bit Resolution, in bits.
Definition: AudioInterface.h:206
static void fromSampleToBitConversion(const sample_t *const input, int8_t *output, const AudioInterface::audioBitResolutionT targetBitResolution)
Convert a 32bit number (sample_t) into one of the bit resolution supported (audioBitResolutionT).
Definition: AudioInterface.cpp:524
virtual uint32_t getDeviceID() const
Definition: AudioInterface.h:193
virtual void setAudioTesterP(AudioTester *atp)
Definition: AudioInterface.h:183
virtual void setNumOutputChannels(int nchannels)
Definition: AudioInterface.h:171
virtual void setup()
Setup the client. This function should be called just before.
Definition: AudioInterface.cpp:138
virtual void setBufferSizeInSamples(uint32_t buf_size)
Definition: AudioInterface.h:177
virtual void broadcastCallback(QVarLengthArray< sample_t * > &mon_buffer, unsigned int n_frames)
Process callback. Subclass should call this callback after obtaining the in_buffer and out_buffer poi...
Definition: AudioInterface.cpp:392
audioBitResolutionT
Enum for Audio Resolution in bits.
Definition: AudioInterface.h:62
@ BIT32
32 bits
Definition: AudioInterface.h:66
@ BIT8
8 bits
Definition: AudioInterface.h:63
@ BIT16
16 bits (default)
Definition: AudioInterface.h:64
@ BIT24
24 bits
Definition: AudioInterface.h:65
virtual ~AudioInterface()
The class destructor.
Definition: AudioInterface.cpp:98
static int getSampleRateFromType(samplingRateT rate_type)
Helper function to get the sample rate (in Hz) for a JackAudioInterface::samplingRateT.
Definition: AudioInterface.cpp:690
bool mProcessingAudio
Set when processing an audio callback buffer pair.
Definition: AudioInterface.h:249
virtual void connectDefaultPorts()=0
virtual void setNumInputChannels(int nchannels)
Definition: AudioInterface.h:169
virtual void enableBroadcastOutput()
Definition: AudioInterface.h:182
AudioInterface(JackTrip *jacktrip, int NumInChans, int NumOutChans, AudioInterface::audioBitResolutionT AudioBitResolution=AudioInterface::BIT16)
The class constructor.
Definition: AudioInterface.cpp:47
virtual void setClientName(QString ClientName)=0
Set Client Name to something different that the default (JackTrip)
static void fromBitToSampleConversion(const int8_t *const input, sample_t *output, const AudioInterface::audioBitResolutionT sourceBitResolution)
Convert a audioBitResolutionT bit resolution number into a 32bit number (sample_t)
Definition: AudioInterface.cpp:578
virtual void setDeviceID(uint32_t device_id)
Definition: AudioInterface.h:175
virtual uint32_t getBufferSizeInSamples() const
Definition: AudioInterface.h:191
void initPlugins()
initPlugins(): Initialize all ProcessPlugin modules. The audio sampling rate (mSampleRate) must be se...
Definition: AudioInterface.cpp:651
virtual void setSampleRate(uint32_t sample_rate)
Definition: AudioInterface.h:173
virtual void setLoopBack(bool b)
Definition: AudioInterface.h:181
Definition: AudioTester.h:54
Main class to creates a SERVER (to listen) or a CLIENT (to connect to a listening server) to send aud...
Definition: JackTrip.h:72
Interface for the process plugins to add to the JACK callback process in JackAudioInterface.
Definition: ProcessPlugin.h:53
float sample_t
Audio sample type.
Definition: jacktrip_types.h:56
quint32 uint32_t
Typedef for unsigned int. This type is guaranteed to be 32-bit.
Definition: jacktrip_types.h:73
qint8 int8_t
Typedef for unsigned long long int. This type is guaranteed to be 64-bit.
Definition: jacktrip_types.h:78