#include <JackTrip.h>
Public Types | |
enum | dataProtocolT { UDP, TCP, SCTP } |
Enum for the data Protocol. At this time only UDP is implemented. More... | |
enum | jacktripModeT { SERVER, CLIENT, CLIENTTOPINGSERVER } |
Enum for the JackTrip mode. More... | |
enum | underrunModeT { WAVETABLE, ZEROS } |
Enum for the JackTrip Underrun Mode, when packets. More... | |
enum | audiointerfaceModeT { JACK, RTAUDIO } |
Enum for Audio Interface Mode. More... | |
Public Slots | |
void | slotStopProcesses () |
Slot to stop all the processes and threads. | |
void | slotUdpWatingTooLong (int wait_msec) |
This slot emits in turn the signal signalNoUdpPacketsForSeconds when UDP is waited for more than 30 seconds. | |
Signals | |
void | signalProcessesStopped () |
Signal emitted when all the processes and threads are stopped | |
void | signalNoUdpPacketsForSeconds () |
Signal emitted when no UDP Packets have been received for a while | |
Public Member Functions | |
JackTrip (jacktripModeT JacktripMode=CLIENT, dataProtocolT DataProtocolType=UDP, int NumChans=2, int BufferQueueLength=8, unsigned int redundancy=1, AudioInterface::audioBitResolutionT AudioBitResolution=AudioInterface::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. | |
virtual | ~JackTrip () |
The class destructor. | |
virtual void | setPeerAddress (const char *PeerHostOrIP) |
Set the Peer Address for jacktripModeT::CLIENT mode only. | |
virtual void | appendProcessPlugin (ProcessPlugin *plugin) |
Append a process plugin. Processes will be appended in order. | |
virtual void | start () |
Start the processing threads. | |
virtual void | stop () |
Stop the processing threads. | |
virtual void | wait () |
Wait for all the threads to finish. This functions is used when JackTrip is run as a thread. | |
virtual void | checkIfPortIsBinded (int port) |
Check if UDP port is already binded. | |
void | printTextTest () |
void | printTextTest2 () |
virtual void | setupJackAudio () |
Set the JackAudioInteface object. | |
void | closeJackAudio () |
Close the JackAudioInteface and disconnects it from JACK. | |
virtual void | setupDataProtocol () |
Set the DataProtocol objects. | |
void | setupRingBuffers () |
Set the RingBuffer objects. | |
void | clientStart () |
Starts for the CLIENT mode. | |
void | serverStart () |
Starts for the SERVER mode. | |
void | clientPingToServerStart () |
Stats for the Client to Ping Server. | |
Getters and Setters Methods to change parameters after construction | |
virtual void | setJackTripMode (jacktripModeT JacktripMode) |
Sets (override) JackTrip Mode after construction. | |
virtual void | setDataProtocoType (dataProtocolT DataProtocolType) |
Sets (override) DataProtocol Type after construction. | |
virtual void | setPacketHeaderType (DataProtocol::packetHeaderTypeT PacketHeaderType) |
Sets the Packet header type. | |
virtual void | setBufferQueueLength (int BufferQueueLength) |
Sets (override) Number of Channels after construction. | |
virtual void | setAudioBitResolution (AudioInterface::audioBitResolutionT AudioBitResolution) |
Sets (override) Audio Bit Resolution after construction. | |
virtual void | setUnderRunMode (underrunModeT UnderRunMode) |
Sets (override) Underrun Mode. | |
virtual void | setAllPorts (int port) |
Sets port numbers for the local and peer machine. Receive port is port . | |
virtual void | setBindPorts (int port) |
Sets port numbers to bind in RECEIVER and SENDER sockets. | |
virtual void | setPeerPorts (int port) |
Sets port numbers for the peer (remote) machine. | |
virtual void | setClientName (const char *ClientName) |
Set Client Name to something different that the default (JackTrip). | |
virtual void | setNumChannels (int num_chans) |
Set the number of audio channels. | |
virtual int | getReceiverBindPort () const |
virtual int | getSenderPeerPort () const |
virtual int | getSenderBindPort () const |
virtual int | getReceiverPeerPort () const |
virtual DataProtocol * | getDataProtocolSender () const |
virtual DataProtocol * | getDataProtocolReceiver () const |
virtual void | setDataProtocolSender (DataProtocol *const DataProtocolSender) |
virtual void | setDataProtocolReceiver (DataProtocol *const DataProtocolReceiver) |
virtual RingBuffer * | getSendRingBuffer () const |
virtual RingBuffer * | getReceiveRingBuffer () const |
virtual void | setSendRingBuffer (RingBuffer *const SendRingBuffer) |
virtual void | setReceiveRingBuffer (RingBuffer *const ReceiveRingBuffer) |
virtual void | setPacketHeader (PacketHeader *const PacketHeader) |
virtual int | getRingBuffersSlotSize () |
virtual void | setAudiointerfaceMode (JackTrip::audiointerfaceModeT audiointerface_mode) |
Mediator Functions | |
virtual void | createHeader (const DataProtocol::packetHeaderTypeT headertype) |
void | putHeaderInPacket (int8_t *full_packet, int8_t *audio_packet) |
virtual int | getPacketSizeInBytes () |
void | parseAudioPacket (int8_t *full_packet, int8_t *audio_packet) |
virtual void | sendNetworkPacket (const int8_t *ptrToSlot) |
virtual void | receiveNetworkPacket (int8_t *ptrToReadSlot) |
virtual void | readAudioBuffer (int8_t *ptrToReadSlot) |
virtual void | writeAudioBuffer (const int8_t *ptrToSlot) |
uint32_t | getBufferSizeInSamples () const |
RtAudioInterface::samplingRateT | getSampleRateType () const |
int | getSampleRate () const |
uint8_t | getAudioBitResolution () const |
int | getNumInputChannels () const |
int | getNumOutputChannels () const |
virtual void | checkPeerSettings (int8_t *full_packet) |
void | increaseSequenceNumber () |
int | getSequenceNumber () const |
int | getPeerSequenceNumber (int8_t *full_packet) const |
uint64_t | getPeerTimeStamp (int8_t *full_packet) const |
size_t | getSizeInBytesPerChannel () const |
int | getHeaderSizeInBytes () const |
virtual int | getTotalAudioPacketSizeInBytes () const |
Private Attributes | |
jacktripModeT | mJackTripMode |
JackTrip::jacktripModeT. | |
dataProtocolT | mDataProtocol |
Data Protocol Tipe. | |
DataProtocol::packetHeaderTypeT | mPacketHeaderType |
Packet Header Type. | |
JackTrip::audiointerfaceModeT | mAudiointerfaceMode |
int | mNumChans |
Number of Channels (inputs = outputs). | |
int | mBufferQueueLength |
Audio Buffer from network queue length. | |
uint32_t | mSampleRate |
Sample Rate. | |
AudioInterface::audioBitResolutionT | mAudioBitResolution |
Audio Bit Resolutions. | |
QString | mPeerAddress |
Peer Address to use in jacktripModeT::CLIENT Mode. | |
DataProtocol * | mDataProtocolSender |
Pointer to Abstract Type DataProtocol that sends packets. | |
DataProtocol * | mDataProtocolReceiver |
Pointer to Abstract Type DataProtocol that receives packets. | |
AudioInterface * | mAudioInterface |
Interface to Jack Client. | |
PacketHeader * | mPacketHeader |
Pointer to Packet Header. | |
underrunModeT | mUnderRunMode |
underrunModeT Mode | |
RingBuffer * | mSendRingBuffer |
Pointer for the Send RingBuffer. | |
RingBuffer * | mReceiveRingBuffer |
Pointer for the Receive RingBuffer. | |
int | mReceiverBindPort |
Incoming (receiving) port for local machine. | |
int | mSenderPeerPort |
Incoming (receiving) port for peer machine. | |
int | mSenderBindPort |
Outgoing (sending) port for local machine. | |
int | mReceiverPeerPort |
Outgoing (sending) port for peer machine. | |
unsigned int | mRedundancy |
Redundancy factor in network data. | |
const char * | mJackClientName |
JackAudio Client Name. | |
QVector< ProcessPlugin * > | mProcessPlugins |
Vector of ProcesPlugins. |
All audio and network settings can be set in this class. This class also acts as a Mediator between all the other class. Classes that uses JackTrip methods need to register with it.
Enum for the JackTrip mode.
Enum for the JackTrip Underrun Mode, when packets.
JackTrip::JackTrip | ( | jacktripModeT | JacktripMode = CLIENT , |
|
dataProtocolT | DataProtocolType = UDP , |
|||
int | NumChans = 2 , |
|||
int | BufferQueueLength = 8 , |
|||
unsigned int | redundancy = 1 , |
|||
AudioInterface::audioBitResolutionT | AudioBitResolution = AudioInterface::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.
JacktripMode | JackTrip::CLIENT or JackTrip::SERVER | |
DataProtocolType | JackTrip::dataProtocolT | |
NumChans | Number of Audio Channels (same for inputs and outputs) | |
BufferQueueLength | Audio Buffer for receiving packets | |
AudioBitResolution | Audio Sample Resolutions in bits | |
redundancy | redundancy factor for network data |
JackTrip::~JackTrip | ( | ) | [virtual] |
The class destructor.
void JackTrip::setPeerAddress | ( | const char * | PeerHostOrIP | ) | [virtual] |
Set the Peer Address for jacktripModeT::CLIENT mode only.
void JackTrip::appendProcessPlugin | ( | ProcessPlugin * | plugin | ) | [virtual] |
Append a process plugin. Processes will be appended in order.
plugin | Pointer to ProcessPlugin Class |
void JackTrip::start | ( | ) | [virtual] |
Start the processing threads.
void JackTrip::stop | ( | ) | [virtual] |
Stop the processing threads.
void JackTrip::wait | ( | ) | [virtual] |
Wait for all the threads to finish. This functions is used when JackTrip is run as a thread.
void JackTrip::checkIfPortIsBinded | ( | int | port | ) | [virtual] |
Check if UDP port is already binded.
port | Port number |
virtual void JackTrip::setJackTripMode | ( | jacktripModeT | JacktripMode | ) | [inline, virtual] |
Sets (override) JackTrip Mode after construction.
virtual void JackTrip::setDataProtocoType | ( | dataProtocolT | DataProtocolType | ) | [inline, virtual] |
Sets (override) DataProtocol Type after construction.
virtual void JackTrip::setPacketHeaderType | ( | DataProtocol::packetHeaderTypeT | PacketHeaderType | ) | [inline, virtual] |
Sets the Packet header type.
virtual void JackTrip::setBufferQueueLength | ( | int | BufferQueueLength | ) | [inline, virtual] |
Sets (override) Number of Channels after construction.
virtual void JackTrip::setAudioBitResolution | ( | AudioInterface::audioBitResolutionT | AudioBitResolution | ) | [inline, virtual] |
Sets (override) Audio Bit Resolution after construction.
virtual void JackTrip::setUnderRunMode | ( | underrunModeT | UnderRunMode | ) | [inline, virtual] |
Sets (override) Underrun Mode.
virtual void JackTrip::setAllPorts | ( | int | port | ) | [inline, virtual] |
Sets port numbers for the local and peer machine. Receive port is port
.
virtual void JackTrip::setBindPorts | ( | int | port | ) | [inline, virtual] |
Sets port numbers to bind in RECEIVER and SENDER sockets.
virtual void JackTrip::setPeerPorts | ( | int | port | ) | [inline, virtual] |
Sets port numbers for the peer (remote) machine.
virtual void JackTrip::setClientName | ( | const char * | ClientName | ) | [inline, virtual] |
Set Client Name to something different that the default (JackTrip).
virtual void JackTrip::setNumChannels | ( | int | num_chans | ) | [inline, virtual] |
Set the number of audio channels.
virtual int JackTrip::getReceiverBindPort | ( | ) | const [inline, virtual] |
virtual int JackTrip::getSenderPeerPort | ( | ) | const [inline, virtual] |
virtual int JackTrip::getSenderBindPort | ( | ) | const [inline, virtual] |
virtual int JackTrip::getReceiverPeerPort | ( | ) | const [inline, virtual] |
virtual DataProtocol* JackTrip::getDataProtocolSender | ( | ) | const [inline, virtual] |
virtual DataProtocol* JackTrip::getDataProtocolReceiver | ( | ) | const [inline, virtual] |
virtual void JackTrip::setDataProtocolSender | ( | DataProtocol *const | DataProtocolSender | ) | [inline, virtual] |
virtual void JackTrip::setDataProtocolReceiver | ( | DataProtocol *const | DataProtocolReceiver | ) | [inline, virtual] |
virtual RingBuffer* JackTrip::getSendRingBuffer | ( | ) | const [inline, virtual] |
virtual RingBuffer* JackTrip::getReceiveRingBuffer | ( | ) | const [inline, virtual] |
virtual void JackTrip::setSendRingBuffer | ( | RingBuffer *const | SendRingBuffer | ) | [inline, virtual] |
virtual void JackTrip::setReceiveRingBuffer | ( | RingBuffer *const | ReceiveRingBuffer | ) | [inline, virtual] |
virtual void JackTrip::setPacketHeader | ( | PacketHeader *const | PacketHeader | ) | [inline, virtual] |
virtual int JackTrip::getRingBuffersSlotSize | ( | ) | [inline, virtual] |
virtual void JackTrip::setAudiointerfaceMode | ( | JackTrip::audiointerfaceModeT | audiointerface_mode | ) | [inline, virtual] |
void JackTrip::createHeader | ( | const DataProtocol::packetHeaderTypeT | headertype | ) | [virtual] |
int JackTrip::getPacketSizeInBytes | ( | ) | [virtual] |
virtual void JackTrip::sendNetworkPacket | ( | const int8_t * | ptrToSlot | ) | [inline, virtual] |
virtual void JackTrip::receiveNetworkPacket | ( | int8_t * | ptrToReadSlot | ) | [inline, virtual] |
virtual void JackTrip::readAudioBuffer | ( | int8_t * | ptrToReadSlot | ) | [inline, virtual] |
virtual void JackTrip::writeAudioBuffer | ( | const int8_t * | ptrToSlot | ) | [inline, virtual] |
uint32_t JackTrip::getBufferSizeInSamples | ( | ) | const [inline] |
RtAudioInterface::samplingRateT JackTrip::getSampleRateType | ( | ) | const [inline] |
int JackTrip::getSampleRate | ( | ) | const [inline] |
uint8_t JackTrip::getAudioBitResolution | ( | ) | const [inline] |
int JackTrip::getNumInputChannels | ( | ) | const [inline] |
int JackTrip::getNumOutputChannels | ( | ) | const [inline] |
void JackTrip::checkPeerSettings | ( | int8_t * | full_packet | ) | [virtual] |
void JackTrip::increaseSequenceNumber | ( | ) | [inline] |
int JackTrip::getSequenceNumber | ( | ) | const [inline] |
int JackTrip::getPeerSequenceNumber | ( | int8_t * | full_packet | ) | const [inline] |
uint64_t JackTrip::getPeerTimeStamp | ( | int8_t * | full_packet | ) | const [inline] |
size_t JackTrip::getSizeInBytesPerChannel | ( | ) | const [inline] |
int JackTrip::getHeaderSizeInBytes | ( | ) | const [inline] |
virtual int JackTrip::getTotalAudioPacketSizeInBytes | ( | ) | const [inline, virtual] |
void JackTrip::printTextTest | ( | ) | [inline] |
void JackTrip::printTextTest2 | ( | ) | [inline] |
void JackTrip::slotStopProcesses | ( | ) | [inline, slot] |
Slot to stop all the processes and threads.
void JackTrip::slotUdpWatingTooLong | ( | int | wait_msec | ) | [inline, slot] |
This slot emits in turn the signal signalNoUdpPacketsForSeconds when UDP is waited for more than 30 seconds.
It is used to remove the thread from the server.
void JackTrip::signalProcessesStopped | ( | ) | [signal] |
Signal emitted when all the processes and threads are stopped
void JackTrip::signalNoUdpPacketsForSeconds | ( | ) | [signal] |
Signal emitted when no UDP Packets have been received for a while
void JackTrip::setupJackAudio | ( | ) | [virtual] |
Set the JackAudioInteface object.
void JackTrip::closeJackAudio | ( | ) |
Close the JackAudioInteface and disconnects it from JACK.
void JackTrip::setupDataProtocol | ( | ) | [virtual] |
Set the DataProtocol objects.
void JackTrip::setupRingBuffers | ( | ) |
void JackTrip::clientStart | ( | ) |
Starts for the CLIENT mode.
void JackTrip::serverStart | ( | ) |
Starts for the SERVER mode.
void JackTrip::clientPingToServerStart | ( | ) |
Stats for the Client to Ping Server.
dataProtocolT JackTrip::mDataProtocol [private] |
Data Protocol Tipe.
Packet Header Type.
int JackTrip::mNumChans [private] |
Number of Channels (inputs = outputs).
int JackTrip::mBufferQueueLength [private] |
Audio Buffer from network queue length.
uint32_t JackTrip::mSampleRate [private] |
Sample Rate.
Audio Bit Resolutions.
QString JackTrip::mPeerAddress [private] |
Peer Address to use in jacktripModeT::CLIENT Mode.
DataProtocol* JackTrip::mDataProtocolSender [private] |
Pointer to Abstract Type DataProtocol that sends packets.
DataProtocol* JackTrip::mDataProtocolReceiver [private] |
Pointer to Abstract Type DataProtocol that receives packets.
AudioInterface* JackTrip::mAudioInterface [private] |
Interface to Jack Client.
PacketHeader* JackTrip::mPacketHeader [private] |
Pointer to Packet Header.
underrunModeT JackTrip::mUnderRunMode [private] |
underrunModeT Mode
RingBuffer* JackTrip::mSendRingBuffer [private] |
Pointer for the Send RingBuffer.
RingBuffer* JackTrip::mReceiveRingBuffer [private] |
Pointer for the Receive RingBuffer.
int JackTrip::mReceiverBindPort [private] |
Incoming (receiving) port for local machine.
int JackTrip::mSenderPeerPort [private] |
Incoming (receiving) port for peer machine.
int JackTrip::mSenderBindPort [private] |
Outgoing (sending) port for local machine.
int JackTrip::mReceiverPeerPort [private] |
Outgoing (sending) port for peer machine.
unsigned int JackTrip::mRedundancy [private] |
Redundancy factor in network data.
const char* JackTrip::mJackClientName [private] |
JackAudio Client Name.
QVector<ProcessPlugin*> JackTrip::mProcessPlugins [private] |
Vector of ProcesPlugins.