Commit 69100b2e authored by moret's avatar moret
Browse files

various cleanup.

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2783 0c269be4-1314-0410-8aa9-9f06e86f4224
parent ccc98f27
......@@ -111,7 +111,7 @@ namespace Jack
int port_index;
//display some additional infos
jack_info ( "NetAdapter started in %s mode %s Master's transport sync.",
jack_info ( "Net adapter started in %s mode %s Master's transport sync.",
( fParams.fSlaveSyncMode ) ? "sync" : "async", ( fParams.fTransportSync ) ? "with" : "without" );
//init network connection
......
......@@ -109,12 +109,16 @@ namespace Jack
fParams.fSlaveSyncMode = fEngineControl->fSyncMode;
//display some additional infos
jack_info ( "NetAdapter started in %s mode %s Master's transport sync.",
jack_info ( "Net driver started in %s mode %s Master's transport sync.",
( fParams.fSlaveSyncMode ) ? "sync" : "async", ( fParams.fTransportSync ) ? "with" : "without" );
//init network
if ( !JackNetSlaveInterface::Init() )
return false;;
//set global paramaters
SetParams();
//driver parametering
JackAudioDriver::SetBufferSize ( fParams.fPeriodSize );
JackAudioDriver::SetSampleRate ( fParams.fSampleRate );
......@@ -133,9 +137,6 @@ namespace Jack
return false;
}
//set global paramaters
SetParams();
//init done, display parameters
SessionParamsDisplay ( &fParams );
......@@ -180,6 +181,7 @@ namespace Jack
void JackNetDriver::Restart()
{
jack_log ( "JackNetDriver::Restart" );
jack_info ( "Restarting driver..." );
delete[] fTxBuffer;
fTxBuffer = NULL;
......@@ -207,6 +209,7 @@ namespace Jack
int JackNetDriver::AllocPorts()
{
jack_log ( "JackNetDriver::AllocPorts fBufferSize = %ld fSampleRate = %ld", fEngineControl->fBufferSize, fEngineControl->fSampleRate );
JackPort* port;
jack_port_id_t port_id;
char name[JACK_CLIENT_NAME_SIZE + JACK_PORT_NAME_SIZE];
......@@ -291,6 +294,7 @@ namespace Jack
int JackNetDriver::FreePorts()
{
jack_log ( "JackNetDriver::FreePorts" );
int audio_port_index;
uint midi_port_index;
for ( audio_port_index = 0; audio_port_index < fCaptureChannels; audio_port_index++ )
......@@ -502,7 +506,8 @@ namespace Jack
jack_error ( "Can't init Socket API, exiting..." );
return NULL;
}
const char* multicast_ip = DEFAULT_MULTICAST_IP;
char multicast_ip[16];
strcpy ( multicast_ip, DEFAULT_MULTICAST_IP );
char name[JACK_CLIENT_NAME_SIZE];
GetHostName ( name, JACK_CLIENT_NAME_SIZE );
int udp_port = DEFAULT_PORT;
......@@ -525,7 +530,7 @@ namespace Jack
switch ( param->character )
{
case 'a' :
multicast_ip = strdup ( param->value.str );
strncpy ( multicast_ip, param->value.str, 15 );
break;
case 'p':
udp_port = param->value.ui;
......@@ -552,10 +557,10 @@ namespace Jack
transport_sync = param->value.ui;
break;
case 'm' :
if ( strcmp ( param->value.str, "slow" ) == 0 )
network_mode = 's';
else if ( strcmp ( param->value.str, "normal" ) == 0 )
if ( strcmp ( param->value.str, "normal" ) == 0 )
network_mode = 'n';
else if ( strcmp ( param->value.str, "slow" ) == 0 )
network_mode = 's';
else if ( strcmp ( param->value.str, "fast" ) == 0 )
network_mode = 'f';
break;
......
......@@ -30,24 +30,22 @@ namespace Jack
{
// JackNetInterface*******************************************
JackNetInterface::JackNetInterface ( const char* ip, int port ) : fSocket ( ip, port )
JackNetInterface::JackNetInterface ( const char* multicast_ip, int port ) : fSocket ( multicast_ip, port )
{
jack_log ( "JackNetInterface::JackNetInterface ip = %s port = %d", ip, port );
fMulticastIP = strdup ( ip );
fMulticastIP = strdup ( multicast_ip );
}
JackNetInterface::JackNetInterface ( session_params_t& params, JackNetSocket& socket, const char* multicast_ip ) : fSocket ( socket )
{
jack_log ( "JackNetInterface::JackNetInterface ID = %d", params.fID );
fParams = params;
fParams = params;
fMulticastIP = strdup ( multicast_ip );
}
JackNetInterface::~JackNetInterface()
{
jack_log ( "JackNetInterface::~JackNetInterface" );
fSocket.Close();
delete[] fTxBuffer;
delete[] fRxBuffer;
......@@ -60,16 +58,19 @@ namespace Jack
jack_nframes_t JackNetInterface::SetFramesPerPacket()
{
jack_log ( "JackNetInterface::SetFramesPerPacket" );
if ( !fParams.fSendAudioChannels && !fParams.fReturnAudioChannels )
return ( fParams.fFramesPerPacket = fParams.fPeriodSize );
jack_nframes_t period = ( int ) powf ( 2.f, ( int ) ( log ( ( fParams.fMtu - sizeof ( packet_header_t ) )
/ ( max ( fParams.fReturnAudioChannels, fParams.fSendAudioChannels ) * sizeof ( sample_t ) ) ) / log ( 2 ) ) );
( period > fParams.fPeriodSize ) ? fParams.fFramesPerPacket = fParams.fPeriodSize : fParams.fFramesPerPacket = period;
return fParams.fFramesPerPacket;
return ( fParams.fFramesPerPacket = ( period > fParams.fPeriodSize ) ? fParams.fPeriodSize : period );
}
int JackNetInterface::SetNetBufferSize()
{
jack_log ( "JackNetInterface::SetNetBufferSize" );
float audio_size, midi_size;
int bufsize, res = 0;
//audio
......@@ -122,9 +123,12 @@ namespace Jack
void JackNetInterface::SetParams()
{
SetFramesPerPacket();
//number of audio subcycles (packets)
fNSubProcess = fParams.fPeriodSize / fParams.fFramesPerPacket;
//payload size
fPayloadSize = fParams.fMtu - sizeof ( packet_header_t );
//TX header init
strcpy ( fTxHeader.fPacketType, "header" );
fTxHeader.fID = fParams.fID;
......@@ -132,6 +136,7 @@ namespace Jack
fTxHeader.fSubCycle = 0;
fTxHeader.fMidiDataSize = 0;
fTxHeader.fBitdepth = fParams.fBitdepth;
fTxHeader.fIsLastPckt = 0;
//RX header init
strcpy ( fRxHeader.fPacketType, "header" );
......@@ -140,17 +145,15 @@ namespace Jack
fRxHeader.fSubCycle = 0;
fRxHeader.fMidiDataSize = 0;
fRxHeader.fBitdepth = fParams.fBitdepth;
fRxHeader.fIsLastPckt = 0;
//network buffers
fTxBuffer = new char[fParams.fMtu];
fRxBuffer = new char[fParams.fMtu];
//net audio/midi buffers
//net audio/midi buffers'addresses
fTxData = fTxBuffer + sizeof ( packet_header_t );
fRxData = fRxBuffer + sizeof ( packet_header_t );
//payload size
fPayloadSize = fParams.fMtu - sizeof ( packet_header_t );
}
// JackNetMasterInterface ************************************************************************************
......@@ -181,6 +184,9 @@ namespace Jack
return false;
}
//set the number of complete audio frames we can put in a packet
SetFramesPerPacket();
//send 'SLAVE_SETUP' until 'START_MASTER' received
jack_info ( "Sending parameters to %s ...", fParams.fSlaveNetName );
do
......@@ -237,6 +243,8 @@ namespace Jack
{
jack_log ( "JackNetMasterInterface::SetParams" );
SetFramesPerPacket();
JackNetInterface::SetParams();
fTxHeader.fDataStream = 's';
......@@ -317,7 +325,7 @@ namespace Jack
fTxHeader.fCycle++;
fTxHeader.fSubCycle = 0;
fTxHeader.fDataType = 's';
fTxHeader.fIsLastPckt = ( !fParams.fSendMidiChannels && !fParams.fSendAudioChannels ) ? 'y' : 'n';
fTxHeader.fIsLastPckt = ( !fParams.fSendMidiChannels && !fParams.fSendAudioChannels ) ? 1 : 0;
fTxHeader.fPacketSize = fParams.fMtu;
memcpy ( fTxBuffer, &fTxHeader, sizeof ( packet_header_t ) );
return Send ( fTxHeader.fPacketSize, 0 );
......@@ -335,15 +343,11 @@ namespace Jack
fTxHeader.fNMidiPckt = GetNMidiPckt();
for ( subproc = 0; subproc < fTxHeader.fNMidiPckt; subproc++ )
{
//fill the packet header fields
fTxHeader.fSubCycle = subproc;
if ( ( subproc == ( fTxHeader.fNMidiPckt - 1 ) ) && !fParams.fSendAudioChannels )
fTxHeader.fIsLastPckt = 'y';
//get the data from buffer
fTxHeader.fIsLastPckt = ( ( subproc == ( fTxHeader.fNMidiPckt - 1 ) ) && !fParams.fSendAudioChannels ) ? 1 : 0;
fTxHeader.fPacketSize = fNetMidiCaptureBuffer->RenderToNetwork ( subproc, fTxHeader.fMidiDataSize );
fTxHeader.fPacketSize += sizeof ( packet_header_t );
memcpy ( fTxBuffer, &fTxHeader, sizeof ( packet_header_t ) );
//and send
if ( Send ( fTxHeader.fPacketSize, 0 ) == SOCKET_ERROR )
return SOCKET_ERROR;
}
......@@ -355,15 +359,11 @@ namespace Jack
fTxHeader.fDataType = 'a';
for ( subproc = 0; subproc < fNSubProcess; subproc++ )
{
//set the header
fTxHeader.fSubCycle = subproc;
if ( subproc == ( fNSubProcess - 1 ) )
fTxHeader.fIsLastPckt = 'y';
fTxHeader.fIsLastPckt = ( subproc == ( fNSubProcess - 1 ) ) ? 1 : 0;
fTxHeader.fPacketSize = fAudioTxLen;
memcpy ( fTxBuffer, &fTxHeader, sizeof ( packet_header_t ) );
//get the data
fNetAudioCaptureBuffer->RenderFromJackPorts ( subproc );
//and send
if ( Send ( fTxHeader.fPacketSize, 0 ) == SOCKET_ERROR )
return SOCKET_ERROR;
}
......@@ -417,6 +417,7 @@ namespace Jack
jack_error ( "'%s' can't run in fast network mode, data received too late (%d cycle(s) offset)", fParams.fName, cycle_offset );
break;
}
fRxHeader.fIsLastPckt = rx_head->fIsLastPckt;
return rx_bytes;
}
......@@ -427,7 +428,7 @@ namespace Jack
uint midi_recvd_pckt = 0;
packet_header_t* rx_head = reinterpret_cast<packet_header_t*> ( fRxBuffer );
while ( rx_head->fIsLastPckt != 'y' )
while ( !fRxHeader.fIsLastPckt )
{
//how much data is queued on the rx buffer ?
rx_bytes = Recv ( fParams.fMtu, MSG_PEEK );
......@@ -448,6 +449,7 @@ namespace Jack
case 'm': //midi
Recv ( rx_head->fPacketSize, 0 );
fRxHeader.fCycle = rx_head->fCycle;
fRxHeader.fIsLastPckt = rx_head->fIsLastPckt;
fNetMidiPlaybackBuffer->RenderFromNetwork ( rx_head->fSubCycle, rx_bytes - sizeof ( packet_header_t ) );
if ( ++midi_recvd_pckt == rx_head->fNMidiPckt )
fNetMidiPlaybackBuffer->RenderToJackPorts();
......@@ -459,6 +461,7 @@ namespace Jack
jack_error ( "Packet(s) missing from '%s'...", fParams.fName );
fRxHeader.fCycle = rx_head->fCycle;
fRxHeader.fSubCycle = rx_head->fSubCycle;
fRxHeader.fIsLastPckt = rx_head->fIsLastPckt;
fNetAudioPlaybackBuffer->RenderToJackPorts ( rx_head->fSubCycle );
jumpcnt = 0;
break;
......@@ -498,7 +501,7 @@ namespace Jack
//then tell the master we are ready
jack_info ( "Initializing connection with %s...", fParams.fMasterNetName );
status = SendMasterStartSync();
status = SendStartToMaster();
if ( status == NET_ERROR )
return false;
}
......@@ -534,10 +537,6 @@ namespace Jack
if ( fSocket.SetOption ( IPPROTO_IP, IP_MULTICAST_LOOP, &loop, sizeof ( loop ) ) == SOCKET_ERROR )
jack_error ( "Can't disable multicast loop : %s", StrError ( NET_ERROR_CODE ) );
//set the new rx buffer size
if ( SetNetBufferSize() == SOCKET_ERROR )
jack_error ( "Can't set net buffer sizes : %s", StrError ( NET_ERROR_CODE ) );
//send 'AVAILABLE' until 'SLAVE_SETUP' received
jack_info ( "Waiting for a master..." );
do
......@@ -555,6 +554,13 @@ namespace Jack
}
while ( strcmp ( params.fPacketType, fParams.fPacketType ) && ( GetPacketType ( &params ) != SLAVE_SETUP ) );
//everything is OK, copy parameters
fParams = params;
//set the new buffer sizes
if ( SetNetBufferSize() == SOCKET_ERROR )
jack_error ( "Can't set net buffer sizes : %s", StrError ( NET_ERROR_CODE ) );
//connect the socket
if ( fSocket.Connect() == SOCKET_ERROR )
{
......@@ -562,15 +568,13 @@ namespace Jack
return NET_CONNECT_ERROR;
}
//everything is OK, copy parameters and return
fParams = params;
return NET_CONNECTED;
return NET_CONNECTED;
}
net_status_t JackNetSlaveInterface::SendMasterStartSync()
net_status_t JackNetSlaveInterface::SendStartToMaster()
{
jack_log ( "JackNetSlaveInterface::GetNetMasterStartSync()" );
jack_log ( "JackNetSlaveInterface::SendStartToMaster()" );
//tell the master to start
SetPacketType ( &fParams, START_MASTER );
if ( fSocket.Send ( &fParams, sizeof ( session_params_t ), 0 ) == SOCKET_ERROR )
......@@ -657,6 +661,7 @@ namespace Jack
return rx_bytes;
}
while ( !rx_bytes && ( rx_head->fDataType != 's' ) );
fRxHeader.fIsLastPckt = rx_head->fIsLastPckt;
return rx_bytes;
}
......@@ -666,10 +671,11 @@ namespace Jack
int rx_bytes = 0;
packet_header_t* rx_head = reinterpret_cast<packet_header_t*> ( fRxBuffer );
while ( rx_head->fIsLastPckt != 'y' );
while ( !fRxHeader.fIsLastPckt );
{
rx_bytes = Recv ( fParams.fMtu, MSG_PEEK );
//error here, problem with recv, just skip the cycle (return -1)
if ( rx_bytes == SOCKET_ERROR )
return rx_bytes;
if ( rx_bytes && ( rx_head->fDataStream == 's' ) && ( rx_head->fID == fParams.fID ) )
......@@ -679,16 +685,19 @@ namespace Jack
case 'm': //midi
rx_bytes = Recv ( rx_head->fPacketSize, 0 );
fRxHeader.fCycle = rx_head->fCycle;
fRxHeader.fIsLastPckt = rx_head->fIsLastPckt;
fNetMidiCaptureBuffer->RenderFromNetwork ( rx_head->fSubCycle, rx_bytes - sizeof ( packet_header_t ) );
if ( ++recvd_midi_pckt == rx_head->fNMidiPckt )
fNetMidiCaptureBuffer->RenderToJackPorts();
break;
case 'a': //audio
jack_info ( "recv audio : %u - %u", rx_head->fCycle, rx_head->fSubCycle );
rx_bytes = Recv ( rx_head->fPacketSize, 0 );
if ( !IsNextPacket() )
jack_error ( "Packet(s) missing..." );
fRxHeader.fCycle = rx_head->fCycle;
fRxHeader.fSubCycle = rx_head->fSubCycle;
fRxHeader.fIsLastPckt = rx_head->fIsLastPckt;
fNetAudioCaptureBuffer->RenderToJackPorts ( rx_head->fSubCycle );
break;
case 's': //sync
......@@ -710,7 +719,7 @@ namespace Jack
fTxHeader.fCycle++;
fTxHeader.fSubCycle = 0;
fTxHeader.fDataType = 's';
fTxHeader.fIsLastPckt = ( !fParams.fReturnMidiChannels && !fParams.fReturnAudioChannels ) ? 'y' : 'n';
fTxHeader.fIsLastPckt = ( !fParams.fReturnMidiChannels && !fParams.fReturnAudioChannels ) ? 1 : 0;
fTxHeader.fPacketSize = fParams.fMtu;
memcpy ( fTxBuffer, &fTxHeader, sizeof ( packet_header_t ) );
return Send ( fTxHeader.fPacketSize, 0 );
......@@ -729,8 +738,7 @@ namespace Jack
for ( subproc = 0; subproc < fTxHeader.fNMidiPckt; subproc++ )
{
fTxHeader.fSubCycle = subproc;
if ( ( subproc == ( fTxHeader.fNMidiPckt - 1 ) ) && !fParams.fReturnAudioChannels )
fTxHeader.fIsLastPckt = 'y';
fTxHeader.fIsLastPckt = ( ( subproc == ( fTxHeader.fNMidiPckt - 1 ) ) && !fParams.fReturnAudioChannels ) ? 1 : 0;
fTxHeader.fPacketSize = fNetMidiPlaybackBuffer->RenderToNetwork ( subproc, fTxHeader.fMidiDataSize );
fTxHeader.fPacketSize += sizeof ( packet_header_t );
memcpy ( fTxBuffer, &fTxHeader, sizeof ( packet_header_t ) );
......@@ -746,8 +754,7 @@ namespace Jack
for ( subproc = 0; subproc < fNSubProcess; subproc++ )
{
fTxHeader.fSubCycle = subproc;
if ( subproc == ( fNSubProcess - 1 ) )
fTxHeader.fIsLastPckt = 'y';
fTxHeader.fIsLastPckt = ( subproc == ( fNSubProcess - 1 ) ) ? 1 : 0;
fTxHeader.fPacketSize = fAudioTxLen;
memcpy ( fTxBuffer, &fTxHeader, sizeof ( packet_header_t ) );
fNetAudioPlaybackBuffer->RenderFromJackPorts ( subproc );
......
......@@ -78,7 +78,7 @@ namespace Jack
JackNetInterface()
{}
JackNetInterface ( const char* ip, int port );
JackNetInterface ( const char* multicast_ip, int port );
JackNetInterface ( session_params_t& params, JackNetSocket& socket, const char* multicast_ip );
public:
......@@ -125,7 +125,7 @@ namespace Jack
protected:
bool Init();
net_status_t GetNetMaster();
net_status_t SendMasterStartSync();
net_status_t SendStartToMaster();
void SetParams();
int SyncRecv();
int SyncSend();
......
......@@ -58,8 +58,6 @@ namespace Jack
for ( port_index = 0; port_index < fParams.fReturnMidiChannels; port_index++ )
fMidiPlaybackPorts[port_index] = NULL;
SetParams();
//monitor
#ifdef JACK_MONITOR
fPeriodUsecs = ( int ) ( 1000000.f * ( ( float ) fParams.fPeriodSize / ( float ) fParams.fSampleRate ) );
......@@ -122,6 +120,9 @@ namespace Jack
if ( !JackNetMasterInterface::Init() )
return false;
//set global parameters
SetParams();
//jack client and process
jack_status_t status;
if ( ( fJackClient = jack_client_open ( fClientName, JackNullOption, &status, NULL ) ) == NULL )
......
......@@ -288,6 +288,7 @@ namespace Jack
header->fPacketSize = htonl ( header->fPacketSize );
header->fCycle = ntohl ( header->fCycle );
header->fSubCycle = htonl ( header->fSubCycle );
header->fIsLastPckt = htonl ( header->fIsLastPckt );
}
EXPORT void PacketHeaderNToH ( packet_header_t* header )
......@@ -299,6 +300,7 @@ namespace Jack
header->fPacketSize = ntohl ( header->fPacketSize );
header->fCycle = ntohl ( header->fCycle );
header->fSubCycle = ntohl ( header->fSubCycle );
header->fIsLastPckt = ntohl ( header->fIsLastPckt );
}
EXPORT void PacketHeaderDisplay ( packet_header_t* header )
......@@ -313,7 +315,7 @@ namespace Jack
jack_info ( "SubCycle : %u", header->fSubCycle );
jack_info ( "Midi packets : %u", header->fNMidiPckt );
jack_info ( "Midi data size : %u", header->fMidiDataSize );
jack_info ( "Last packet : '%c'", header->fIsLastPckt );
jack_info ( "Last packet : '%s'", ( header->fIsLastPckt ) ? "yes" : "no" );
jack_info ( "Bitdepth : %s", bitdepth );
jack_info ( "**********************************************" );
}
......
......@@ -145,9 +145,9 @@ namespace Jack
uint32_t fPacketSize; //packet size in bytes
uint32_t fCycle; //process cycle counter
uint32_t fSubCycle; //midi/audio subcycle counter
char fIsLastPckt; //is it the last packet of a given cycle ('y' or 'n')
uint32_t fIsLastPckt; //is it the last packet of a given cycle ('y' or 'n')
char fASyncWrongCycle; //is the current async cycle wrong (slave's side; 'y' or 'n')
char fFree[29]; //unused
char fFree[26]; //unused
};
//transport data ******************************************************************************
......
......@@ -119,7 +119,7 @@ namespace Jack
public:
JackGnuPlotMonitor ( uint32_t measure_cnt = 512, uint32_t measure_points = 5, std::string name = std::string ( "default" ) )
{
jack_log ( "JackGnuPlotMonitor::JackGnuPlotMonitor measure_cnt %u measure_points %u", measure_cnt, measure_points );
jack_log ( "JackGnuPlotMonitor::JackGnuPlotMonitor %u measure points - %u measures", measure_points, measure_cnt );
fMeasureCnt = measure_cnt;
fMeasurePoints = measure_points;
......@@ -137,6 +137,7 @@ namespace Jack
~JackGnuPlotMonitor()
{
jack_log ( "JackGnuPlotMonitor::~JackGnuPlotMonitor" );
for ( uint32_t cnt = 0; cnt < fMeasureCnt; cnt++ )
delete[] fMeasureTable[cnt];
delete[] fMeasureTable;
......@@ -210,21 +211,16 @@ namespace Jack
file << "set title \"" << title << "\"" << std::endl;
for ( uint32_t i = 0; i < options_number; i++ )
{
jack_log ( "JackGnuPlotMonitor::SetPlotFile - Add plot option : '%s'", options_list[i].c_str() );
file << options_list[i] << std::endl;
}
file << "plot ";
for ( uint32_t row = 1; row <= field_number; row++ )
{
jack_log ( "JackGnuPlotMonitor::SetPlotFile - Add plot : file '%s' row '%d' title '%s' field '%s'",
data_filename.c_str(), row, title.c_str(), field_names[row-1].c_str() );
file << "\"" << data_filename << "\" using " << row << " title \"" << field_names[row-1] << "\" with lines";
file << ( ( row < field_number ) ? ", " : "\n" );
}
jack_log ( "JackGnuPlotMonitor::SetPlotFile - Save GnuPlot '.plt' file to '%s'", plot_filename.c_str() );
jack_log ( "JackGnuPlotMonitor::SetPlotFile - Save GnuPlot file to '%s'", plot_filename.c_str() );
file.close();
return 0;
......
......@@ -278,6 +278,8 @@ namespace Jack
//tiemout************************************************************************************************************
int JackNetWinSocket::SetTimeOut ( int usec )
{
jack_log ( "JackNetWinSocket::SetTimeout %d usec", usec );
//negative timeout, or exceeding 10s, return
if ( ( usec < 0 ) || ( usec > 10000000 ) )
return SOCKET_ERROR;
......
......@@ -6,14 +6,14 @@
<Option pch_mode="2" />
<Option compiler="gcc" />
<Build>
<Target title="Win32 Debug">
<Option output="Debug\bin\jackmp\netadapter" prefix_auto="1" extension_auto="1" />
<Option object_output="Debug\" />
<Target title="Win32 Release">
<Option output="Release\bin\jackmp\netadapter" prefix_auto="1" extension_auto="1" />
<Option object_output="Release\" />
<Option type="3" />
<Option compiler="gcc" />
<Compiler>
<Add option="-O2" />
<Add option="-Wall" />
<Add option="-g" />
<Add option="-DBUILD_DLL" />
<Add directory="..\common" />
<Add directory="..\common\jack" />
......@@ -34,17 +34,17 @@
<Add library="odbccp32" />
<Add library="libjackservermp" />
<Add library="libsamplerate-0" />
<Add directory="Debug\bin" />
<Add directory="Release\bin" />
</Linker>
</Target>
<Target title="Win32 Release">
<Option output="Release\bin\jackmp\netadapter" prefix_auto="1" extension_auto="1" />
<Option object_output="Release\" />
<Target title="Win32 Debug">
<Option output="Debug\bin\jackmp\netadapter" prefix_auto="1" extension_auto="1" />
<Option object_output="Debug\" />
<Option type="3" />
<Option compiler="gcc" />
<Compiler>
<Add option="-O2" />
<Add option="-Wall" />
<Add option="-g" />
<Add option="-DBUILD_DLL" />
<Add directory="..\common" />
<Add directory="..\common\jack" />
......@@ -65,7 +65,7 @@
<Add library="odbccp32" />
<Add library="libjackservermp" />
<Add library="libsamplerate-0" />
<Add directory="Release\bin" />
<Add directory="Debug\bin" />
</Linker>
</Target>
<Target title="Win32 Monitor">
......
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_workspace_file>
<Workspace title="jackdmp workspace">
<Project filename="libjackservermp.cbp" active="1" />
<Project filename="libjackservermp.cbp" />
<Project filename="libjackmp.cbp" />
<Project filename="jackdmp.cbp">
<Depends filename="libjackservermp.cbp" />
......@@ -35,7 +35,7 @@
<Depends filename="libjackmp.cbp" />
</Project>
<Project filename="jack_connect.cbp" />
<Project filename="jack_disconnect.cbp">
<Project filename="jack_disconnect.cbp" active="1">
<Depends filename="libjackmp.cbp" />
</Project>
</Workspace>
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment