JackTrip
Todo List
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

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
Class JackAudioInterface

implement srate_callback

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

Member JackAudioInterface::appendProcessPlugin (ProcessPlugin *plugin)

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

check that channels in ProcessPlugins are less or same that jack channels

Member JackAudioInterface::audioBitResolutionT
implement this into the class, now it's using jack default of 32 bits
Member JackAudioInterface::computeNetworkProcessFromNetwork ()
cast *mInBuffer[i] to the bit resolution
Member JackAudioInterface::processCallback (jack_nframes_t nframes)
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 JackAudioInterface::setupClient ()
Write better warning messages. This following line displays very verbose message, check how to desable them.
Member JackTrip::createHeader (const DataProtocol::packetHeaderTypeT headertype)
Document all these functions
Member JackTrip::setBufferQueueLength (int BufferQueueLength)
implement this, not working right now because channels cannot be changed after construction
Member JackTrip::setupRingBuffers ()
Make all this operations cleaner
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::isNewAddress (uint32_t address, uint16_t port)
Add the port number in the comparison, i.e., compart IP/port pair
Member UdpMasterListener::releasePort (int id)
Check if we really need to return an argument here
Member UdpMasterListener::run ()

Get number of channels in the client from header

Add the port number in the comparison

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