Todo List

Member AudioInterface::appendProcessPlugin (ProcessPlugin *plugin)
check that channels in ProcessPlugins are less or same that jack channels

Member AudioInterface::callback (QVarLengthArray< sample_t * > &in_buffer, QVarLengthArray< sample_t * > &out_buffer, int8_t *input_packet, int8_t *output_packet, unsigned int n_frames, QVarLengthArray< sample_t * > &in_process_buffer, QVarLengthArray< sample_t * > &out_process_buffer)
Implement for more than one process plugin, now it just works propertely with one. do it chaining outputs to inputs in the buffers. May need a tempo buffer

Member AudioInterface::computeProcessFromNetwork (QVarLengthArray< sample_t * > &in_buffer, QVarLengthArray< sample_t * > &out_buffer, int8_t *input_packet, int8_t *output_packet, unsigned int n_frames)
cast *mInBuffer[i] to the bit resolution

Class DataProtocol
This Class should contain definition of jacktrip header and basic funcionality to obtain local machine IPs and maybe functions to manipulate IPs. Redundancy and forward error correction should be implemented on each Transport protocol, cause they depend on the protocol itself

Class DataProtocol
The transport protocol itself has to be implemented subclassing this class, i.e., using a TCP or UDP protocol.

Member DataProtocol::mJackTrip
check a better way to access the header from the subclasses

Member DataProtocol::setPeerAddress (const char *peerHostOrIP)=0
implement here instead of in the subclass UDP

Member DataProtocol::setPeerPort (int port)=0
implement here instead of in the subclass UDP

Member DefaultHeader::checkPeerSettings (int8_t *full_packet)
Check number of channels and other parameters

Member DefaultHeader::getPeerTimeStamp (int8_t *) const
IMPLEMENT

Class JackAudioInterface
implement srate_callback

Class JackAudioInterface
automatically starts jack with buffer and sample rate settings specified by the user

Member JackAudioInterface::connectDefaultPorts ()
If the RingBuffer is blocked, the callback should stay on the last buffer, as in JackTrip (wavetable synth)

Member JackAudioInterface::setupClient ()
Write better warning messages. This following line displays very verbose message, check how to desable them.

Member JackTrip::setBufferQueueLength (int BufferQueueLength)
implement this, not working right now because channels cannot be changed after construction

Member JackTrip::createHeader (const DataProtocol::packetHeaderTypeT headertype)
Document all these functions

Member JackTrip::setupRingBuffers ()
Make all this operations cleaner

Member JamLinkHeader::getPeerSequenceNumber (int8_t *) const
IMPLEMENT

Member JamLinkHeader::getPeerTimeStamp (int8_t *) const
IMPLEMENT

Member NetKS::exciteString ()
Define this number based on the sampling rate and buffer size

Member PacketHeader::fillHeaderCommonFromAudio ()=0
Implement this using a JackTrip Method (Mediator) member instead of the reference to JackAudio

Member RingBuffer::insertSlotNonBlocking (const int8_t *ptrToSlot)
It may be better here to insert the slot anyways, instead of not writing anything

Member Settings::parseInput (int argc, char **argv)
Specify mandatory arguments

Member Settings::startJackTrip ()
Change this, just here to test

Member UdpMasterListener::run ()
Get number of channels in the client from header

Member UdpMasterListener::run ()
Add the port number in the comparison

Member UdpMasterListener::releasePort (int id)
Check if we really need to return an argument here

Member UdpMasterListener::sendToPoolPrototype (int id)
temp default to 1 channel

Member UdpMasterListener::isNewAddress (uint32_t address, uint16_t port)
Add the port number in the comparison, i.e., compart IP/port pair

Member gVersion
Add this namespace