39 #ifndef __JACKAUDIOINTERFACE_H__
40 #define __JACKAUDIOINTERFACE_H__
45 #include <jack/jack.h>
48 #include <QVarLengthArray>
96 int NumInChans,
int NumOutChans,
98 const char* ClientName =
"JackTrip");
samplingRateT getSampleRateType() const
Get the Jack Server Sampling Rate Enum Type samplingRateT.
Definition: JackAudioInterface.cpp:211
22050 Hz
Definition: JackAudioInterface.h:78
const char * mClientName
Jack Client Name.
Definition: JackAudioInterface.h:283
int startProcess() const
Tell the JACK server that we are ready to roll. The process-callback will start running. This runs on its own thread.
Definition: JackAudioInterface.cpp:331
static void jackShutdown(void *)
JACK calls this shutdown_callback if the server ever shuts down or decides to disconnect the client...
Definition: JackAudioInterface.cpp:358
192000 Hz
Definition: JackAudioInterface.h:84
int getAudioBitResolution() const
Get the Audio Bit Resolution, in bits.
Definition: JackAudioInterface.cpp:284
Undefined.
Definition: JackAudioInterface.h:85
QVarLengthArray< sample_t * > mOutProcessBuffer
Vector of Output buffers/channel for ProcessPlugin.
Definition: JackAudioInterface.h:292
uint32_t getBufferSizeInBytes() const
Get the Jack Server Buffer Size, in bytes.
Definition: JackAudioInterface.h:130
size_t mSizeInBytesPerChannel
Size in bytes per audio channel.
Definition: JackAudioInterface.h:296
static int wrapperProcessCallback(jack_nframes_t nframes, void *arg)
Wrapper to cast the member processCallback to a static function pointer that can be used with jack_se...
Definition: JackAudioInterface.cpp:522
static int getSampleRateFromType(samplingRateT rate_type)
Helper function to get the sample rate (in Hz) for a JackAudioInterface::samplingRateT.
Definition: JackAudioInterface.cpp:235
int8_t * mInputPacket
Packet containing all the channels to read from the RingBuffer.
Definition: JackAudioInterface.h:294
int mNumOutChans
Number of Output Channels.
Definition: JackAudioInterface.h:277
virtual ~JackAudioInterface()
The class destructor.
Definition: JackAudioInterface.cpp:80
44100 Hz
Definition: JackAudioInterface.h:80
Class that provides an interface with the Jack Audio Server.
Definition: JackAudioInterface.h:63
quint32 uint32_t
Typedef for unsigned int. This type is guaranteed to be 32-bit.
Definition: jacktrip_types.h:69
void computeNetworkProcessToNetwork()
Compute the process from JACK to send packets.
Definition: JackAudioInterface.cpp:415
48000 Hz
Definition: JackAudioInterface.h:81
int mAudioBitResolution
Bit resolution in audio samples.
Definition: JackAudioInterface.h:279
static void fromBitToSampleConversion(const int8_t *const input, sample_t *output, const audioBitResolutionT sourceBitResolution)
Convert a audioBitResolutionT bit resolution number into a 32bit number (sample_t) ...
Definition: JackAudioInterface.cpp:580
int8_t * mOutputPacket
Packet containing all the channels to send to the RingBuffer.
Definition: JackAudioInterface.h:295
void setClientName(const char *ClientName)
Set Client Name to something different that the default (JackTrip)
Definition: JackAudioInterface.h:211
QVarLengthArray< sample_t * > mInBuffer
Vector of Input buffers/channel read from JACK.
Definition: JackAudioInterface.h:288
int getNumInputChannels() const
Get Number of Input Channels.
Definition: JackAudioInterface.cpp:291
QVector< ProcessPlugin * > mProcessPlugins
Vector of ProcesPlugins
Definition: JackAudioInterface.h:298
QVarLengthArray< jack_port_t * > mOutPorts
Vector of Output Ports (Channels)
Definition: JackAudioInterface.h:285
jack_default_audio_sample_t sample_t
Audio sample type.
Definition: jacktrip_types.h:52
32000 Hz
Definition: JackAudioInterface.h:79
Interface for the process plugins to add to the JACK callback process in JackAudioInterface.
Definition: ProcessPlugin.h:52
jack_client_t * mClient
Jack Client.
Definition: JackAudioInterface.h:282
int getNumOutputChannels() const
Get Number of Output Channels.
Definition: JackAudioInterface.cpp:298
audioBitResolutionT
Enum for Audio Resolution in bits.
Definition: JackAudioInterface.h:69
void appendProcessPlugin(ProcessPlugin *plugin)
Set the pointer to the Input and Output RingBuffer that'll be use to read and write audio...
Definition: JackAudioInterface.cpp:622
16 bits (default)
Definition: JackAudioInterface.h:71
int mNumInChans
Number of Input Channels.
Definition: JackAudioInterface.h:276
QVarLengthArray< jack_port_t * > mInPorts
Vector of Input Ports (Channels)
Definition: JackAudioInterface.h:284
static QMutex sJackMutex
Mutex to make thread safe jack functions that are not.
Definition: JackAudioInterface.h:301
qint8 int8_t
Typedef for unsigned long long int. This type is guaranteed to be 64-bit.
Definition: jacktrip_types.h:74
8 bits
Definition: JackAudioInterface.h:70
int processCallback(jack_nframes_t nframes)
JACK process callback.
Definition: JackAudioInterface.cpp:448
JackTrip * mJackTrip
JackTrip mediator class.
Definition: JackAudioInterface.h:299
static void fromSampleToBitConversion(const sample_t *const input, int8_t *output, const audioBitResolutionT targetBitResolution)
Convert a 32bit number (sample_t) into one of the bit resolution supported (audioBitResolutionT).
Definition: JackAudioInterface.cpp:531
int mNumFrames
Buffer block size, in samples.
Definition: JackAudioInterface.h:278
uint32_t getSampleRate() const
Get the Jack Server Sampling Rate, in samples/second.
Definition: JackAudioInterface.cpp:204
32 bits
Definition: JackAudioInterface.h:73
void setProcessCallback()
Set the process callback of the member function processCallback. This process will be called by the J...
Definition: JackAudioInterface.cpp:311
void createChannels()
Creates input and output channels in the Jack client.
Definition: JackAudioInterface.cpp:177
void computeNetworkProcessFromNetwork()
Sets the part of the process callback that sends and receive packets.
Definition: JackAudioInterface.cpp:383
24 bits
Definition: JackAudioInterface.h:72
88200 Hz
Definition: JackAudioInterface.h:82
samplingRateT
Sampling Rates supported by JACK.
Definition: JackAudioInterface.h:77
uint32_t getBufferSizeInSamples() const
Get the Jack Server Buffer Size, in samples.
Definition: JackAudioInterface.cpp:277
QVarLengthArray< sample_t * > mOutBuffer
Vector of Output buffer/channel to write to JACK.
Definition: JackAudioInterface.h:289
int stopProcess() const
Stops the process-callback thread.
Definition: JackAudioInterface.cpp:345
Main class to creates a SERVER (to listen) or a CLIENT (to connect to a listening server) to send aud...
Definition: JackTrip.h:59
size_t getSizeInBytesPerChannel() const
Get size of each audio per channel, in bytes.
Definition: JackAudioInterface.cpp:305
void setupClient()
Private method to setup a client of the Jack server. Can't start Jack.
Definition: JackAudioInterface.cpp:104
audioBitResolutionT mBitResolutionMode
Bit resolution (audioBitResolutionT) mode.
Definition: JackAudioInterface.h:280
96000 Hz
Definition: JackAudioInterface.h:83
JackAudioInterface(JackTrip *jacktrip, int NumInChans, int NumOutChans, audioBitResolutionT AudioBitResolution=BIT16, const char *ClientName="JackTrip")
The class constructor.
Definition: JackAudioInterface.cpp:64
QVarLengthArray< sample_t * > mInProcessBuffer
Vector of Input buffers/channel for ProcessPlugin.
Definition: JackAudioInterface.h:291
void setup()
Setup the client.
Definition: JackAudioInterface.cpp:96
void connectDefaultPorts()
Connect the default ports, capture to sends, and receives to playback.
Definition: JackAudioInterface.cpp:632