git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2807 0c269be4-1314-0410-8aa9-9f06e86f4224tags/1.90
@@ -238,6 +238,7 @@ namespace Jack | |||||
} | } | ||||
port = fGraphManager->GetPort ( port_id ); | port = fGraphManager->GetPort ( port_id ); | ||||
port->SetAlias ( alias ); | port->SetAlias ( alias ); | ||||
//port latency | |||||
port->SetLatency ( fEngineControl->fBufferSize ); | port->SetLatency ( fEngineControl->fBufferSize ); | ||||
fCapturePortList[audio_port_index] = port_id; | fCapturePortList[audio_port_index] = port_id; | ||||
jack_log ( "JackNetDriver::AllocPorts() fCapturePortList[%d] audio_port_index = %ld fPortLatency = %ld", audio_port_index, port_id, port->GetLatency() ); | jack_log ( "JackNetDriver::AllocPorts() fCapturePortList[%d] audio_port_index = %ld fPortLatency = %ld", audio_port_index, port_id, port->GetLatency() ); | ||||
@@ -255,7 +256,19 @@ namespace Jack | |||||
} | } | ||||
port = fGraphManager->GetPort ( port_id ); | port = fGraphManager->GetPort ( port_id ); | ||||
port->SetAlias ( alias ); | port->SetAlias ( alias ); | ||||
port->SetLatency ( ( fParams.fNetworkMode == 'f' ) ? 0 : fEngineControl->fBufferSize + ( ( fEngineControl->fSyncMode ) ? 0 : fEngineControl->fBufferSize ) ); | |||||
//port latency | |||||
switch ( fParams.fNetworkMode ) | |||||
{ | |||||
case 'f' : | |||||
port->SetLatency ( ( fEngineControl->fSyncMode ) ? 0 : fEngineControl->fBufferSize ); | |||||
break; | |||||
case 'n' : | |||||
port->SetLatency ( fEngineControl->fBufferSize + ( fEngineControl->fSyncMode ) ? 0 : fEngineControl->fBufferSize ); | |||||
break; | |||||
case 's' : | |||||
port->SetLatency ( 2 * fEngineControl->fBufferSize + ( fEngineControl->fSyncMode ) ? 0 : fEngineControl->fBufferSize ); | |||||
break; | |||||
} | |||||
fPlaybackPortList[audio_port_index] = port_id; | fPlaybackPortList[audio_port_index] = port_id; | ||||
jack_log ( "JackNetDriver::AllocPorts() fPlaybackPortList[%d] audio_port_index = %ld fPortLatency = %ld", audio_port_index, port_id, port->GetLatency() ); | jack_log ( "JackNetDriver::AllocPorts() fPlaybackPortList[%d] audio_port_index = %ld fPortLatency = %ld", audio_port_index, port_id, port->GetLatency() ); | ||||
} | } | ||||
@@ -272,6 +285,7 @@ namespace Jack | |||||
return -1; | return -1; | ||||
} | } | ||||
port = fGraphManager->GetPort ( port_id ); | port = fGraphManager->GetPort ( port_id ); | ||||
//port latency | |||||
port->SetLatency ( fEngineControl->fBufferSize ); | port->SetLatency ( fEngineControl->fBufferSize ); | ||||
fMidiCapturePortList[midi_port_index] = port_id; | fMidiCapturePortList[midi_port_index] = port_id; | ||||
jack_log ( "JackNetDriver::AllocPorts() fMidiCapturePortList[%d] midi_port_index = %ld fPortLatency = %ld", midi_port_index, port_id, port->GetLatency() ); | jack_log ( "JackNetDriver::AllocPorts() fMidiCapturePortList[%d] midi_port_index = %ld fPortLatency = %ld", midi_port_index, port_id, port->GetLatency() ); | ||||
@@ -289,7 +303,19 @@ namespace Jack | |||||
return -1; | return -1; | ||||
} | } | ||||
port = fGraphManager->GetPort ( port_id ); | port = fGraphManager->GetPort ( port_id ); | ||||
port->SetLatency ( ( fParams.fNetworkMode == 'f' ) ? 0 : fEngineControl->fBufferSize + ( ( fEngineControl->fSyncMode ) ? 0 : fEngineControl->fBufferSize ) ); | |||||
//port latency | |||||
switch ( fParams.fNetworkMode ) | |||||
{ | |||||
case 'f' : | |||||
port->SetLatency ( ( fEngineControl->fSyncMode ) ? 0 : fEngineControl->fBufferSize ); | |||||
break; | |||||
case 'n' : | |||||
port->SetLatency ( fEngineControl->fBufferSize + ( fEngineControl->fSyncMode ) ? 0 : fEngineControl->fBufferSize ) ; | |||||
break; | |||||
case 's' : | |||||
port->SetLatency ( 2 * fEngineControl->fBufferSize + ( fEngineControl->fSyncMode ) ? 0 : fEngineControl->fBufferSize ); | |||||
break; | |||||
} | |||||
fMidiPlaybackPortList[midi_port_index] = port_id; | fMidiPlaybackPortList[midi_port_index] = port_id; | ||||
jack_log ( "JackNetDriver::AllocPorts() fMidiPlaybackPortList[%d] midi_port_index = %ld fPortLatency = %ld", midi_port_index, port_id, port->GetLatency() ); | jack_log ( "JackNetDriver::AllocPorts() fMidiPlaybackPortList[%d] midi_port_index = %ld fPortLatency = %ld", midi_port_index, port_id, port->GetLatency() ); | ||||
} | } | ||||
@@ -395,7 +421,7 @@ namespace Jack | |||||
//is it a new state (that the master need to know...) ? | //is it a new state (that the master need to know...) ? | ||||
fReturnTransportData.fNewState = ( ( fReturnTransportData.fState != fLastTransportState ) && | fReturnTransportData.fNewState = ( ( fReturnTransportData.fState != fLastTransportState ) && | ||||
( fReturnTransportData.fState != fSendTransportData.fState ) ); | |||||
( fReturnTransportData.fState != fSendTransportData.fState ) ); | |||||
if ( fReturnTransportData.fNewState ) | if ( fReturnTransportData.fNewState ) | ||||
jack_info ( "Sending '%s'.", GetTransportState ( fReturnTransportData.fState ) ); | jack_info ( "Sending '%s'.", GetTransportState ( fReturnTransportData.fState ) ); | ||||
fLastTransportState = fReturnTransportData.fState; | fLastTransportState = fReturnTransportData.fState; | ||||
@@ -175,6 +175,7 @@ namespace Jack | |||||
sprintf ( name, "to_slave_%d", i+1 ); | sprintf ( name, "to_slave_%d", i+1 ); | ||||
if ( ( fAudioCapturePorts[i] = jack_port_register ( fJackClient, name, JACK_DEFAULT_AUDIO_TYPE, port_flags, 0 ) ) == NULL ) | if ( ( fAudioCapturePorts[i] = jack_port_register ( fJackClient, name, JACK_DEFAULT_AUDIO_TYPE, port_flags, 0 ) ) == NULL ) | ||||
return -1; | return -1; | ||||
//port latency | |||||
jack_port_set_latency ( fAudioCapturePorts[i], 0 ); | jack_port_set_latency ( fAudioCapturePorts[i], 0 ); | ||||
} | } | ||||
port_flags = JackPortIsOutput | JackPortIsPhysical | JackPortIsTerminal; | port_flags = JackPortIsOutput | JackPortIsPhysical | JackPortIsTerminal; | ||||
@@ -183,7 +184,19 @@ namespace Jack | |||||
sprintf ( name, "from_slave_%d", i+1 ); | sprintf ( name, "from_slave_%d", i+1 ); | ||||
if ( ( fAudioPlaybackPorts[i] = jack_port_register ( fJackClient, name, JACK_DEFAULT_AUDIO_TYPE, port_flags, 0 ) ) == NULL ) | if ( ( fAudioPlaybackPorts[i] = jack_port_register ( fJackClient, name, JACK_DEFAULT_AUDIO_TYPE, port_flags, 0 ) ) == NULL ) | ||||
return -1; | return -1; | ||||
jack_port_set_latency ( fAudioPlaybackPorts[i], ( fParams.fNetworkMode == 'f' ) ? 0 : port_latency + ( fParams.fSlaveSyncMode ) ? 0 : port_latency ); | |||||
//port latency | |||||
switch ( fParams.fNetworkMode ) | |||||
{ | |||||
case 'f' : | |||||
jack_port_set_latency ( fAudioPlaybackPorts[i], ( fParams.fSlaveSyncMode ) ? 0 : port_latency ); | |||||
break; | |||||
case 'n' : | |||||
jack_port_set_latency ( fAudioPlaybackPorts[i], port_latency + ( fParams.fSlaveSyncMode ) ? 0 : port_latency ); | |||||
break; | |||||
case 's' : | |||||
jack_port_set_latency ( fAudioPlaybackPorts[i], 2 * port_latency + ( fParams.fSlaveSyncMode ) ? 0 : port_latency ); | |||||
break; | |||||
} | |||||
} | } | ||||
//midi | //midi | ||||
port_flags = JackPortIsInput | JackPortIsPhysical | JackPortIsTerminal; | port_flags = JackPortIsInput | JackPortIsPhysical | JackPortIsTerminal; | ||||
@@ -192,6 +205,7 @@ namespace Jack | |||||
sprintf ( name, "midi_to_slave_%d", i+1 ); | sprintf ( name, "midi_to_slave_%d", i+1 ); | ||||
if ( ( fMidiCapturePorts[i] = jack_port_register ( fJackClient, name, JACK_DEFAULT_MIDI_TYPE, port_flags, 0 ) ) == NULL ) | if ( ( fMidiCapturePorts[i] = jack_port_register ( fJackClient, name, JACK_DEFAULT_MIDI_TYPE, port_flags, 0 ) ) == NULL ) | ||||
return -1; | return -1; | ||||
//port latency | |||||
jack_port_set_latency ( fMidiCapturePorts[i], 0 ); | jack_port_set_latency ( fMidiCapturePorts[i], 0 ); | ||||
} | } | ||||
port_flags = JackPortIsOutput | JackPortIsPhysical | JackPortIsTerminal; | port_flags = JackPortIsOutput | JackPortIsPhysical | JackPortIsTerminal; | ||||
@@ -200,7 +214,19 @@ namespace Jack | |||||
sprintf ( name, "midi_from_slave_%d", i+1 ); | sprintf ( name, "midi_from_slave_%d", i+1 ); | ||||
if ( ( fMidiPlaybackPorts[i] = jack_port_register ( fJackClient, name, JACK_DEFAULT_MIDI_TYPE, port_flags, 0 ) ) == NULL ) | if ( ( fMidiPlaybackPorts[i] = jack_port_register ( fJackClient, name, JACK_DEFAULT_MIDI_TYPE, port_flags, 0 ) ) == NULL ) | ||||
return -1; | return -1; | ||||
jack_port_set_latency ( fMidiPlaybackPorts[i], ( fParams.fNetworkMode == 'f' ) ? 0 : port_latency + ( fParams.fSlaveSyncMode ) ? 0 : port_latency ); | |||||
//port latency | |||||
switch ( fParams.fNetworkMode ) | |||||
{ | |||||
case 'f' : | |||||
jack_port_set_latency ( fMidiPlaybackPorts[i], ( fParams.fSlaveSyncMode ) ? 0 : port_latency ); | |||||
break; | |||||
case 'n' : | |||||
jack_port_set_latency ( fMidiPlaybackPorts[i], port_latency + ( fParams.fSlaveSyncMode ) ? 0 : port_latency ); | |||||
break; | |||||
case 's' : | |||||
jack_port_set_latency ( fMidiPlaybackPorts[i], 2 * port_latency + ( fParams.fSlaveSyncMode ) ? 0 : port_latency ); | |||||
break; | |||||
} | |||||
} | } | ||||
return 0; | return 0; | ||||
} | } | ||||
@@ -236,7 +262,7 @@ namespace Jack | |||||
//is it a new state ? | //is it a new state ? | ||||
fSendTransportData.fNewState = ( ( fSendTransportData.fState != fLastTransportState ) && | fSendTransportData.fNewState = ( ( fSendTransportData.fState != fLastTransportState ) && | ||||
( fSendTransportData.fState != fReturnTransportData.fState ) ); | |||||
( fSendTransportData.fState != fReturnTransportData.fState ) ); | |||||
if ( fSendTransportData.fNewState ) | if ( fSendTransportData.fNewState ) | ||||
jack_info ( "Sending '%s' to '%s'.", GetTransportState ( fSendTransportData.fState ), fParams.fName ); | jack_info ( "Sending '%s' to '%s'.", GetTransportState ( fSendTransportData.fState ), fParams.fName ); | ||||
fLastTransportState = fSendTransportData.fState; | fLastTransportState = fSendTransportData.fState; | ||||
@@ -340,8 +340,7 @@ namespace Jack { | |||||
//valid option | //valid option | ||||
if ( ( param_id = options_list.find_first_of ( fArgv[param].at(1) ) ) != string::npos ) | if ( ( param_id = options_list.find_first_of ( fArgv[param].at(1) ) ) != string::npos ) | ||||
{ | { | ||||
//TODO : find if (and where) it's correctly deleted... | |||||
intclient_param = new jack_driver_param_t; | |||||
intclient_param = static_cast<jack_driver_param_t*> ( calloc ( 1, sizeof ( jack_driver_param_t) ) ); | |||||
intclient_param->character = desc->params[param_id].character; | intclient_param->character = desc->params[param_id].character; | ||||
switch ( desc->params[param_id].type ) | switch ( desc->params[param_id].type ) | ||||