38 #ifndef __JACKTRIP_H__
39 #define __JACKTRIP_H__
99 int BufferQueueLength = 8,
100 unsigned int redundancy = 1,
237 std::cout <<
"Stopping JackTrip..." << std::endl;
248 int wait_time = 30000;
249 if ( !(wait_msec%wait_time) ) {
250 std::cerr <<
"UDP WAITED MORE THAN 30 seconds." << std::endl;
void sendNetworkPacket(const int8_t *ptrToSlot)
Definition: JackTrip.h:204
samplingRateT getSampleRateType() const
Get the Jack Server Sampling Rate Enum Type samplingRateT.
Definition: JackAudioInterface.cpp:211
int mReceiverPeerPort
Outgoing (sending) port for peer machine.
Definition: JackTrip.h:305
uint32_t getBufferSizeInSamples() const
Definition: JackTrip.h:212
Use UDP (User Datagram Protocol)
Definition: JackTrip.h:68
DataProtocol * mDataProtocolReceiver
Definition: JackTrip.h:292
JackTrip(jacktripModeT JacktripMode=CLIENT, dataProtocolT DataProtocolType=UDP, int NumChans=2, int BufferQueueLength=8, unsigned int redundancy=1, JackAudioInterface::audioBitResolutionT AudioBitResolution=JackAudioInterface::BIT16, DataProtocol::packetHeaderTypeT PacketHeaderType=DataProtocol::DEFAULT, underrunModeT UnderRunMode=WAVETABLE, int receiver_bind_port=gDefaultPort, int sender_bind_port=gDefaultPort, int receiver_peer_port=gDefaultPort, int sender_peer_port=gDefaultPort)
The class Constructor with Default Parameters.
Definition: JackTrip.cpp:56
void setDataProtocoType(dataProtocolT DataProtocolType)
Sets (override) DataProtocol Type after construction.
Definition: JackTrip.h:145
int getAudioBitResolution() const
Get the Audio Bit Resolution, in bits.
Definition: JackAudioInterface.cpp:284
void checkIfPortIsBinded(int port)
Check if UDP port is already binded.
Definition: JackTrip.cpp:454
void createHeader(const DataProtocol::packetHeaderTypeT headertype)
Definition: JackTrip.cpp:395
Loops on the last received packet.
Definition: JackTrip.h:82
void appendProcessPlugin(ProcessPlugin *plugin)
Append a process plugin. Processes will be appended in order.
Definition: JackTrip.cpp:194
void setAudioBitResolution(JackAudioInterface::audioBitResolutionT AudioBitResolution)
Sets (override) Audio Bit Resolution after construction.
Definition: JackTrip.h:163
void checkPeerSettings(int8_t *full_packet)
Definition: JackTrip.cpp:447
void start()
Start the processing threads.
Definition: JackTrip.cpp:202
int mSenderPeerPort
Incoming (receiving) port for peer machine.
Definition: JackTrip.h:303
int mBufferQueueLength
Audio Buffer from network queue length.
Definition: JackTrip.h:283
void serverStart()
Starts for the SERVER mode.
Definition: JackTrip.cpp:289
virtual ~JackTrip()
The class destructor.
Definition: JackTrip.cpp:91
void setupJackAudio()
Set the JackAudioInteface object.
Definition: JackTrip.cpp:103
DataProtocol::packetHeaderTypeT mPacketHeaderType
Packet Header Type.
Definition: JackTrip.h:280
void slotStopProcesses()
Slot to stop all the processes and threads.
Definition: JackTrip.h:235
void signalNoUdpPacketsForSeconds()
Signal emitted when no UDP Packets have been received for a while
Definition: moc_JackTrip.cpp:111
void setPeerAddress(const char *PeerHostOrIP)
Set the Peer Address for jacktripModeT::CLIENT mode only.
Definition: JackTrip.cpp:187
int getPacketSizeInBytes() const
Definition: JackTrip.cpp:428
PacketHeader * mPacketHeader
Pointer to Packet Header.
Definition: JackTrip.h:294
Class that provides an interface with the Jack Audio Server.
Definition: JackAudioInterface.h:63
uint32_t mAudioBufferSize
Audio buffer size to process on each callback.
Definition: JackTrip.h:285
underrunModeT
Enum for the JackTrip Underrun Mode, when packets.
Definition: JackTrip.h:81
void increaseSequenceNumber()
Definition: JackTrip.h:223
dataProtocolT mDataProtocol
Data Protocol Tipe.
Definition: JackTrip.h:279
quint32 uint32_t
Typedef for unsigned int. This type is guaranteed to be 32-bit.
Definition: jacktrip_types.h:69
jacktripModeT mJackTripMode
JackTrip::jacktripModeT.
Definition: JackTrip.h:278
void setUnderRunMode(underrunModeT UnderRunMode)
Sets (override) Underrun Mode.
Definition: JackTrip.h:166
const char * mJackClientName
JackAudio Client Name.
Definition: JackTrip.h:308
packetHeaderTypeT
Enum to define packet header types.
Definition: DataProtocol.h:89
unsigned int mRedundancy
Redundancy factor in network data.
Definition: JackTrip.h:307
void setClientName(char *ClientName)
Set Client Name to something different that the default (JackTrip)
Definition: JackTrip.h:190
int mNumChans
Number of Channels (inputs = outputs)
Definition: JackTrip.h:282
void setAllPorts(int port)
Sets port numbers for the local and peer machine. Receive port is port
Definition: JackTrip.h:170
void parseAudioPacket(int8_t *full_packet, int8_t *audio_packet)
Definition: JackTrip.cpp:437
int mSenderBindPort
Outgoing (sending) port for local machine.
Definition: JackTrip.h:304
Run in Server Mode.
Definition: JackTrip.h:75
int getNumInputChannels() const
Get Number of Input Channels.
Definition: JackAudioInterface.cpp:291
const int gDefaultPort
Default JackTrip Port.
Definition: jacktrip_globals.h:63
void putHeaderInPacket(int8_t *full_packet, int8_t *audio_packet)
Definition: JackTrip.cpp:415
Interface for the process plugins to add to the JACK callback process in JackAudioInterface.
Definition: ProcessPlugin.h:52
void stop()
Stop the processing threads.
Definition: JackTrip.cpp:243
void setJackTripMode(jacktripModeT JacktripMode)
Sets (override) JackTrip Mode after construction.
Definition: JackTrip.h:142
uint32_t mSampleRate
Sample Rate.
Definition: JackTrip.h:284
int getNumOutputChannels() const
Get Number of Output Channels.
Definition: JackAudioInterface.cpp:298
void setBindPorts(int port)
Sets port numbers to bind in RECEIVER and SENDER sockets.
Definition: JackTrip.h:178
int getSequenceNumber() const
Definition: JackTrip.h:225
audioBitResolutionT
Enum for Audio Resolution in bits.
Definition: JackAudioInterface.h:69
16 bits (default)
Definition: JackAudioInterface.h:71
QString mPeerAddress
Peer Address to use in jacktripModeT::CLIENT Mode.
Definition: JackTrip.h:287
qint8 int8_t
Typedef for unsigned long long int. This type is guaranteed to be 64-bit.
Definition: jacktrip_types.h:74
int getNumInputChannels() const
Definition: JackTrip.h:218
NOT IMPLEMENTED: Use SCTP (Stream Control Transmission Protocol)
Definition: JackTrip.h:70
underrunModeT mUnderRunMode
underrunModeT Mode
Definition: JackTrip.h:295
void clientPingToServerStart()
Stats for the Client to Ping Server.
Definition: JackTrip.cpp:336
Base class that defines the transmission protocol.
Definition: DataProtocol.h:83
void writeAudioBuffer(const int8_t *ptrToSlot)
Definition: JackTrip.h:210
JackAudioInterface::audioBitResolutionT mAudioBitResolution
Audio Bit Resolutions.
Definition: JackTrip.h:286
JackAudioInterface::samplingRateT getSampleRateType() const
Definition: JackTrip.h:214
Default application header.
Definition: DataProtocol.h:90
DataProtocol * mDataProtocolSender
Pointer to Abstract Type DataProtocol that sends packets.
Definition: JackTrip.h:290
Provides a ring-buffer (or circular-buffer) that can be written to and read from asynchronously (bloc...
Definition: RingBuffer.h:55
samplingRateT
Sampling Rates supported by JACK.
Definition: JackAudioInterface.h:77
void setPacketHeaderType(DataProtocol::packetHeaderTypeT PacketHeaderType)
Sets the Packet header type.
Definition: JackTrip.h:148
uint32_t getBufferSizeInSamples() const
Get the Jack Server Buffer Size, in samples.
Definition: JackAudioInterface.cpp:277
void readAudioBuffer(int8_t *ptrToReadSlot)
Definition: JackTrip.h:208
jacktripModeT
Enum for the JackTrip mode.
Definition: JackTrip.h:74
void clientStart()
Starts for the CLIENT mode.
Definition: JackTrip.cpp:272
void wait()
Wait for all the threads to finish. This functions is used when JackTrip is run as a thread...
Definition: JackTrip.cpp:264
Set new buffers to zero if there are no new ones.
Definition: JackTrip.h:83
dataProtocolT
Enum for the data Protocol. At this time only UDP is implemented.
Definition: JackTrip.h:67
JackAudioInterface * mJackAudio
Interface to Jack Client.
Definition: JackTrip.h:293
QVector< ProcessPlugin * > mProcessPlugins
Vector of ProcesPlugins
Definition: JackTrip.h:310
void setBufferQueueLength(int BufferQueueLength)
Sets (override) Number of Channels after construction.
Definition: JackTrip.h:160
void readSlotNonBlocking(int8_t *ptrToReadSlot)
Same as readSlotBlocking but non-blocking (asynchronous)
Definition: RingBuffer.cpp:175
Main class to creates a SERVER (to listen) or a CLIENT (to connect to a listening server) to send aud...
Definition: JackTrip.h:59
void signalProcessesStopped()
Signal emitted when all the processes and threads are stopped
Definition: moc_JackTrip.cpp:105
void setPeerPorts(int port)
Sets port numbers for the peer (remote) machine.
Definition: JackTrip.h:184
RingBuffer * mReceiveRingBuffer
Pointer for the Receive RingBuffer.
Definition: JackTrip.h:300
NOT IMPLEMENTED: Use TCP (Transmission Control Protocol)
Definition: JackTrip.h:69
uint8_t getAudioBitResolution() const
Definition: JackTrip.h:216
Client of the Ping Server Mode.
Definition: JackTrip.h:77
void insertSlotNonBlocking(const int8_t *ptrToSlot)
Same as insertSlotBlocking but non-blocking (asynchronous)
Definition: RingBuffer.cpp:149
void receiveNetworkPacket(int8_t *ptrToReadSlot)
Definition: JackTrip.h:206
void slotUdpWatingTooLong(int wait_msec)
This slot emits in turn the signal signalNoUdpPacketsForSeconds when UDP is waited for more than 30 s...
Definition: JackTrip.h:246
RingBuffer * mSendRingBuffer
Pointer for the Send RingBuffer.
Definition: JackTrip.h:298
void setupDataProtocol()
Set the DataProtocol objects.
Definition: JackTrip.cpp:125
Run in Client Mode.
Definition: JackTrip.h:76
int getPeerSequenceNumber(int8_t *full_packet) const
Definition: JackTrip.h:227
void setupRingBuffers()
Set the RingBuffer objects.
Definition: JackTrip.cpp:161
void readSlotBlocking(int8_t *ptrToReadSlot)
Read a slot from the RingBuffer into ptrToReadSlot. This method will block until there's space in the...
Definition: RingBuffer.cpp:125
quint8 uint8_t
Typedef for unsigned char. This type is guaranteed to be 8-bit.
Definition: jacktrip_types.h:65
int mReceiverBindPort
Incoming (receiving) port for local machine.
Definition: JackTrip.h:302
int getNumOutputChannels() const
Definition: JackTrip.h:220