git-svn-id: http://subversion.jackaudio.org/jack/jack2/branches/libjacknet@3936 0c269be4-1314-0410-8aa9-9f06e86f4224tags/1.9.8
@@ -64,7 +64,6 @@ namespace Jack | |||
JackNetInterface::JackNetInterface ( session_params_t& params, JackNetSocket& socket, const char* multicast_ip ) : fSocket ( socket ) | |||
{ | |||
jack_log("JackNetInterface ( session_params_t& params...)"); | |||
fParams = params; | |||
strcpy(fMulticastIP, multicast_ip); | |||
fTxBuffer = NULL; | |||
@@ -105,8 +104,6 @@ namespace Jack | |||
int JackNetInterface::SetNetBufferSize() | |||
{ | |||
jack_log ( "JackNetInterface::SetNetBufferSize" ); | |||
float audio_size, midi_size; | |||
int bufsize; | |||
//audio | |||
@@ -116,7 +113,8 @@ namespace Jack | |||
fParams.fPeriodSize * sizeof(sample_t) / PACKET_AVAILABLE_SIZE); | |||
//bufsize = sync + audio + midi | |||
bufsize = MAX_LATENCY * (fParams.fMtu + ( int ) audio_size + ( int ) midi_size); | |||
jack_info("SetNetBufferSize bufsize = %d", bufsize); | |||
jack_log("SetNetBufferSize bufsize = %d", bufsize); | |||
//tx buffer | |||
if ( fSocket.SetOption ( SOL_SOCKET, SO_SNDBUF, &bufsize, sizeof ( bufsize ) ) == SOCKET_ERROR ) | |||
@@ -167,9 +165,6 @@ namespace Jack | |||
//number of audio subcycles (packets) | |||
fNSubProcess = fParams.fPeriodSize / fParams.fFramesPerPacket; | |||
//payload size | |||
fPayloadSize = PACKET_AVAILABLE_SIZE; | |||
//TX header init | |||
strcpy ( fTxHeader.fPacketType, "header" ); | |||
fTxHeader.fID = fParams.fID; | |||
@@ -195,8 +190,8 @@ namespace Jack | |||
assert ( fRxBuffer ); | |||
//net audio/midi buffers'addresses | |||
fTxData = fTxBuffer + sizeof ( packet_header_t ); | |||
fRxData = fRxBuffer + sizeof ( packet_header_t ); | |||
fTxData = fTxBuffer + HEADER_SIZE; | |||
fRxData = fRxBuffer + HEADER_SIZE; | |||
} | |||
// JackNetMasterInterface ************************************************************************************ | |||
@@ -308,10 +303,6 @@ namespace Jack | |||
assert ( fNetAudioCaptureBuffer ); | |||
assert ( fNetAudioPlaybackBuffer ); | |||
//audio netbuffer length | |||
fAudioTxLen = HEADER_SIZE + fNetAudioCaptureBuffer->GetSize(); | |||
fAudioRxLen = HEADER_SIZE + fNetAudioPlaybackBuffer->GetSize(); | |||
} | |||
void JackNetMasterInterface::Exit() | |||
@@ -344,7 +335,7 @@ namespace Jack | |||
if ((( rx_bytes = fSocket.Recv(fRxBuffer, size, flags)) == SOCKET_ERROR) && fRunning) { | |||
net_error_t error = fSocket.GetError(); | |||
//no data isn't really a network error, so just return 0 avalaible read bytes | |||
//no data isn't really a network error, so just return 0 available read bytes | |||
if (error == NET_NO_DATA) { | |||
return 0; | |||
} else if (error == NET_CONN_ERROR) { | |||
@@ -403,6 +394,7 @@ namespace Jack | |||
fTxHeader.fDataType = 's'; | |||
fTxHeader.fIsLastPckt = ( fParams.fSendMidiChannels == 0 && fParams.fSendAudioChannels == 0) ? 1 : 0; | |||
fTxHeader.fPacketSize = HEADER_SIZE; | |||
memcpy(fTxBuffer, &fTxHeader, HEADER_SIZE); | |||
return Send(fTxHeader.fPacketSize, 0); | |||
} | |||
@@ -438,7 +430,7 @@ namespace Jack | |||
{ | |||
fTxHeader.fSubCycle = subproc; | |||
fTxHeader.fIsLastPckt = (subproc == (fNSubProcess - 1)) ? 1 : 0; | |||
fTxHeader.fPacketSize = fAudioTxLen; | |||
fTxHeader.fPacketSize = HEADER_SIZE + fNetAudioPlaybackBuffer->GetSize(); | |||
memcpy(fTxBuffer, &fTxHeader, HEADER_SIZE); | |||
fNetAudioCaptureBuffer->RenderFromJackPorts(subproc); | |||
if (Send(fTxHeader.fPacketSize, 0) == SOCKET_ERROR) | |||
@@ -514,11 +506,9 @@ namespace Jack | |||
int JackNetMasterInterface::DataRecv() | |||
{ | |||
int rx_bytes = 0; | |||
uint jumpcnt = 0; | |||
uint recvd_midi_pckt = 0; | |||
uint recvd_audio_pckt = 0; | |||
int last_cycle = 0; | |||
uint recvd_midi_pckt = 0; | |||
packet_header_t* rx_head = reinterpret_cast<packet_header_t*> ( fRxBuffer ); | |||
while ( !fRxHeader.fIsLastPckt ) | |||
@@ -526,15 +516,10 @@ namespace Jack | |||
//how much data is queued on the rx buffer ? | |||
rx_bytes = Recv(HEADER_SIZE, MSG_PEEK); | |||
//error here, problem with recv, just skip the cycle (return -1) | |||
if ( rx_bytes == SOCKET_ERROR ) | |||
return rx_bytes; | |||
//if no data | |||
if ( ( rx_bytes == 0 ) && ( ++jumpcnt == fNSubProcess ) ) | |||
{ | |||
jack_error ( "No data from %s...", fParams.fName ); | |||
jumpcnt = 0; | |||
} | |||
//else if data is valid, | |||
if ( rx_bytes && ( rx_head->fDataStream == 'r' ) && ( rx_head->fID == fParams.fID ) ) | |||
{ | |||
//read data | |||
@@ -545,21 +530,20 @@ namespace Jack | |||
fRxHeader.fCycle = rx_head->fCycle; | |||
fRxHeader.fIsLastPckt = rx_head->fIsLastPckt; | |||
fNetMidiPlaybackBuffer->RenderFromNetwork(rx_head->fSubCycle, rx_bytes - HEADER_SIZE); | |||
// Last midi packet is received, so finish rendering... | |||
if ( ++recvd_midi_pckt == rx_head->fNMidiPckt ) | |||
fNetMidiPlaybackBuffer->RenderToJackPorts(); | |||
jumpcnt = 0; | |||
break; | |||
case 'a': //audio | |||
rx_bytes = Recv ( rx_head->fPacketSize, 0 ); | |||
if (recvd_audio_pckt++ != rx_head->fSubCycle) { | |||
jack_error("Packet(s) missing from '%s'...", fParams.fSlaveNetName); | |||
if (!IsNextPacket()) { | |||
jack_error("Packet(s) missing from '%s'...", fParams.fMasterNetName); | |||
} | |||
fRxHeader.fCycle = rx_head->fCycle; | |||
fRxHeader.fSubCycle = rx_head->fSubCycle; | |||
fRxHeader.fIsLastPckt = rx_head->fIsLastPckt; | |||
fNetAudioPlaybackBuffer->RenderToJackPorts ( rx_head->fCycle, rx_head->fSubCycle); | |||
jumpcnt = 0; | |||
last_cycle = rx_head->fCycle; | |||
break; | |||
@@ -581,7 +565,7 @@ namespace Jack | |||
{ | |||
//this method contains every step of sync packet informations coding | |||
//first of all, reset sync packet | |||
memset ( fTxData, 0, fPayloadSize ); | |||
memset ( fTxData, 0, PACKET_AVAILABLE_SIZE ); | |||
//then, first step : transport | |||
if (fParams.fTransportSync) { | |||
@@ -787,6 +771,8 @@ namespace Jack | |||
//midi net buffers | |||
fNetMidiCaptureBuffer = new NetMidiBuffer ( &fParams, fParams.fSendMidiChannels, fRxData ); | |||
fNetMidiPlaybackBuffer = new NetMidiBuffer ( &fParams, fParams.fReturnMidiChannels, fTxData ); | |||
assert ( fNetMidiCaptureBuffer ); | |||
assert ( fNetMidiPlaybackBuffer ); | |||
//audio net buffers | |||
fNetAudioCaptureBuffer = new NetSingleAudioBuffer ( &fParams, fParams.fSendAudioChannels, fRxData ); | |||
@@ -794,10 +780,9 @@ namespace Jack | |||
//fNetAudioCaptureBuffer = new NetBufferedAudioBuffer ( &fParams, fParams.fSendAudioChannels, fRxData ); | |||
//fNetAudioPlaybackBuffer = new NetBufferedAudioBuffer ( &fParams, fParams.fReturnAudioChannels, fTxData ); | |||
//audio netbuffer length | |||
fAudioTxLen = HEADER_SIZE + fNetAudioPlaybackBuffer->GetSize(); | |||
fAudioRxLen = HEADER_SIZE + fNetAudioCaptureBuffer->GetSize(); | |||
assert ( fNetAudioCaptureBuffer ); | |||
assert ( fNetAudioPlaybackBuffer ); | |||
} | |||
int JackNetSlaveInterface::Recv ( size_t size, int flags ) | |||
@@ -866,20 +851,21 @@ namespace Jack | |||
int JackNetSlaveInterface::DataRecv() | |||
{ | |||
uint recvd_midi_pckt = 0; | |||
uint recvd_audio_pckt = 0; | |||
int rx_bytes = 0; | |||
int last_cycle = 0; | |||
uint recvd_midi_pckt = 0; | |||
packet_header_t* rx_head = reinterpret_cast<packet_header_t*> ( fRxBuffer ); | |||
while ( !fRxHeader.fIsLastPckt ) | |||
{ | |||
//how much data is queued on the rx buffer ? | |||
rx_bytes = Recv(HEADER_SIZE, 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 ) ) | |||
{ | |||
switch ( rx_head->fDataType ) | |||
@@ -896,7 +882,7 @@ namespace Jack | |||
case 'a': //audio | |||
rx_bytes = Recv ( rx_head->fPacketSize, 0 ); | |||
if (recvd_audio_pckt++ != rx_head->fSubCycle) { | |||
if (!IsNextPacket()) { | |||
jack_error("Packet(s) missing from '%s'...", fParams.fMasterNetName); | |||
} | |||
fRxHeader.fCycle = rx_head->fCycle; | |||
@@ -931,7 +917,7 @@ namespace Jack | |||
} | |||
fTxHeader.fSubCycle = 0; | |||
fTxHeader.fDataType = 's'; | |||
fTxHeader.fIsLastPckt = ( fParams.fReturnMidiChannels == 0 && fParams.fReturnAudioChannels == 0) ? 1 : 0; | |||
fTxHeader.fIsLastPckt = (fParams.fReturnMidiChannels == 0 && fParams.fReturnAudioChannels == 0) ? 1 : 0; | |||
fTxHeader.fPacketSize = HEADER_SIZE; | |||
memcpy(fTxBuffer, &fTxHeader, HEADER_SIZE); | |||
@@ -943,8 +929,9 @@ namespace Jack | |||
uint subproc; | |||
//midi | |||
if ( fParams.fReturnMidiChannels > 0) | |||
if (fParams.fReturnMidiChannels > 0) | |||
{ | |||
//set global header fields and get the number of midi packets | |||
fTxHeader.fDataType = 'm'; | |||
fTxHeader.fMidiDataSize = fNetMidiPlaybackBuffer->RenderFromJackPorts(); | |||
fTxHeader.fNMidiPckt = GetNMidiPckt(); | |||
@@ -952,7 +939,7 @@ namespace Jack | |||
{ | |||
fTxHeader.fSubCycle = subproc; | |||
fTxHeader.fIsLastPckt = ((subproc == (fTxHeader.fNMidiPckt - 1)) && !fParams.fReturnAudioChannels) ? 1 : 0; | |||
fTxHeader.fPacketSize = HEADER_SIZE+ fNetMidiPlaybackBuffer->RenderToNetwork(subproc, fTxHeader.fMidiDataSize); | |||
fTxHeader.fPacketSize = HEADER_SIZE + fNetMidiPlaybackBuffer->RenderToNetwork(subproc, fTxHeader.fMidiDataSize); | |||
memcpy(fTxBuffer, &fTxHeader, HEADER_SIZE); | |||
if (Send(fTxHeader.fPacketSize, 0) == SOCKET_ERROR) | |||
return SOCKET_ERROR; | |||
@@ -969,7 +956,7 @@ namespace Jack | |||
{ | |||
fTxHeader.fSubCycle = subproc; | |||
fTxHeader.fIsLastPckt = (subproc == (fNSubProcess - 1)) ? 1 : 0; | |||
fTxHeader.fPacketSize = fAudioTxLen; | |||
fTxHeader.fPacketSize = HEADER_SIZE + fNetAudioCaptureBuffer->GetSize(); | |||
memcpy(fTxBuffer, &fTxHeader, HEADER_SIZE); | |||
fNetAudioPlaybackBuffer->RenderFromJackPorts (subproc); | |||
if (Send(fTxHeader.fPacketSize, 0) == SOCKET_ERROR) | |||
@@ -984,7 +971,7 @@ namespace Jack | |||
{ | |||
//this method contains every step of sync packet informations coding | |||
//first of all, reset sync packet | |||
memset ( fTxData, 0, fPayloadSize ); | |||
memset ( fTxData, 0, PACKET_AVAILABLE_SIZE ); | |||
//then first step : transport | |||
if (fParams.fTransportSync) { | |||
EncodeTransportData(); | |||
@@ -57,11 +57,6 @@ namespace Jack | |||
NetAudioBuffer* fNetAudioCaptureBuffer; | |||
NetAudioBuffer* fNetAudioPlaybackBuffer; | |||
//sizes | |||
int fAudioRxLen; | |||
int fAudioTxLen; | |||
int fPayloadSize; | |||
//utility methods | |||
void SetFramesPerPacket(); | |||
int SetNetBufferSize(); | |||
@@ -233,11 +233,14 @@ namespace Jack | |||
void Reset(); | |||
size_t GetSize(); | |||
//utility | |||
void DisplayEvents(); | |||
//jack<->buffer | |||
int RenderFromJackPorts(); | |||
int RenderToJackPorts(); | |||
//network<->buffer | |||
int RenderFromNetwork ( int subcycle, size_t copy_size ); | |||
int RenderToNetwork ( int subcycle, size_t total_size ); | |||
@@ -258,10 +261,15 @@ namespace Jack | |||
{} | |||
virtual size_t GetSize() = 0; | |||
//jack<->buffer | |||
virtual void RenderFromJackPorts (int subcycle ) = 0; | |||
virtual void RenderToJackPorts ( int cycle, int subcycle) = 0; | |||
virtual void FinishRenderToJackPorts (int cycle) = 0; | |||
//network<->buffer | |||
//int RenderFromNetwork ( int subcycle, size_t copy_size ) = 0; | |||
//int RenderToNetwork ( int subcycle, size_t total_size ) = 0; | |||
virtual void SetBuffer ( int index, sample_t* buffer ) = 0; | |||
virtual sample_t* GetBuffer ( int index ) = 0; | |||
@@ -104,6 +104,16 @@ | |||
4BCF75ED10BC2FD90082C526 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765FC0DF74451002DB57D /* CoreGraphics.framework */; }; | |||
4BCF75EE10BC2FD90082C526 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B1A95750F49CEAB00D3626B /* AudioToolbox.framework */; }; | |||
4BCF75F710BC30140082C526 /* audio_thru.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF75F610BC30140082C526 /* audio_thru.mm */; }; | |||
4BDFCD3D113DB6B700D77992 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD733E0D9D9553002E5188 /* MainWindow.xib */; }; | |||
4BDFCD3E113DB6B700D77992 /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 4B9CB1361136CA99007DE01A /* icon.png */; }; | |||
4BDFCD4A113DB6B700D77992 /* main_slave.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4B0772490F54021B000DC657 /* main_slave.mm */; }; | |||
4BDFCD4B113DB6B700D77992 /* iPhoneNetAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B0773850F541EE2000DC657 /* iPhoneNetAppDelegate.m */; }; | |||
4BDFCD4D113DB6B700D77992 /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF15E2411356A3E00B36B9A /* CAHostTimeBase.cpp */; }; | |||
4BDFCD4E113DB6B700D77992 /* TiPhoneCoreAudioRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF15F7711357A0E00B36B9A /* TiPhoneCoreAudioRenderer.cpp */; }; | |||
4BDFCD50113DB6B700D77992 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; | |||
4BDFCD51113DB6B700D77992 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; | |||
4BDFCD52113DB6B700D77992 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765FC0DF74451002DB57D /* CoreGraphics.framework */; }; | |||
4BDFCD53113DB6B700D77992 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B1A95750F49CEAB00D3626B /* AudioToolbox.framework */; }; | |||
4BF1360F0F4B0B4C00218A3F /* JackAudioAdapterInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF1360E0F4B0B4C00218A3F /* JackAudioAdapterInterface.cpp */; }; | |||
4BF136100F4B0B4C00218A3F /* JackAudioAdapterInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF1360E0F4B0B4C00218A3F /* JackAudioAdapterInterface.cpp */; }; | |||
4BF136130F4B0B5E00218A3F /* JackAudioAdapterInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BF136120F4B0B5E00218A3F /* JackAudioAdapterInterface.h */; }; | |||
@@ -143,7 +153,7 @@ | |||
/* Begin PBXFileReference section */ | |||
1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; | |||
1D6058910D05DD3D006BFB54 /* iPhoneNetSlave.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iPhoneNetSlave.app; sourceTree = BUILT_PRODUCTS_DIR; }; | |||
1D6058910D05DD3D006BFB54 /* NetJackSlave.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NetJackSlave.app; sourceTree = BUILT_PRODUCTS_DIR; }; | |||
1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; | |||
288765FC0DF74451002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; | |||
28AD733E0D9D9553002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = "<group>"; }; | |||
@@ -172,8 +182,11 @@ | |||
4BCB37CE112D647C008C7BC1 /* iPhoneFaust.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iPhoneFaust.app; sourceTree = BUILT_PRODUCTS_DIR; }; | |||
4BCB37D5112D64B4008C7BC1 /* HardwareClock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HardwareClock.cpp; sourceTree = SOURCE_ROOT; }; | |||
4BCB37D8112D64D8008C7BC1 /* iphone-faust.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "iphone-faust.mm"; sourceTree = SOURCE_ROOT; }; | |||
4BCF75F210BC2FD90082C526 /* iPhoneThruNet.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iPhoneThruNet.app; sourceTree = BUILT_PRODUCTS_DIR; }; | |||
4BCF75F210BC2FD90082C526 /* iPhoneFaustNet.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iPhoneFaustNet.app; sourceTree = BUILT_PRODUCTS_DIR; }; | |||
4BCF75F610BC30140082C526 /* audio_thru.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = audio_thru.mm; sourceTree = SOURCE_ROOT; }; | |||
4BDFCCD7113DB30500D77992 /* Info copy.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info copy.plist"; sourceTree = "<group>"; }; | |||
4BDFCD57113DB6B700D77992 /* NetJackSlave.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NetJackSlave.app; sourceTree = BUILT_PRODUCTS_DIR; }; | |||
4BDFCD59113DB6B700D77992 /* Info copy 2.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info copy 2.plist"; sourceTree = "<group>"; }; | |||
4BF1360E0F4B0B4C00218A3F /* JackAudioAdapterInterface.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackAudioAdapterInterface.cpp; path = ../../common/JackAudioAdapterInterface.cpp; sourceTree = SOURCE_ROOT; }; | |||
4BF136120F4B0B5E00218A3F /* JackAudioAdapterInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackAudioAdapterInterface.h; path = ../../common/JackAudioAdapterInterface.h; sourceTree = SOURCE_ROOT; }; | |||
4BF1364B0F4B0F7700218A3F /* JackResampler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackResampler.cpp; path = ../../common/JackResampler.cpp; sourceTree = SOURCE_ROOT; }; | |||
@@ -249,6 +262,17 @@ | |||
); | |||
runOnlyForDeploymentPostprocessing = 0; | |||
}; | |||
4BDFCD4F113DB6B700D77992 /* Frameworks */ = { | |||
isa = PBXFrameworksBuildPhase; | |||
buildActionMask = 2147483647; | |||
files = ( | |||
4BDFCD50113DB6B700D77992 /* Foundation.framework in Frameworks */, | |||
4BDFCD51113DB6B700D77992 /* UIKit.framework in Frameworks */, | |||
4BDFCD52113DB6B700D77992 /* CoreGraphics.framework in Frameworks */, | |||
4BDFCD53113DB6B700D77992 /* AudioToolbox.framework in Frameworks */, | |||
); | |||
runOnlyForDeploymentPostprocessing = 0; | |||
}; | |||
4BFF456F0F4D5D9700106083 /* Frameworks */ = { | |||
isa = PBXFrameworksBuildPhase; | |||
buildActionMask = 2147483647; | |||
@@ -266,13 +290,14 @@ | |||
19C28FACFE9D520D11CA2CBB /* Products */ = { | |||
isa = PBXGroup; | |||
children = ( | |||
1D6058910D05DD3D006BFB54 /* iPhoneNetSlave.app */, | |||
1D6058910D05DD3D006BFB54 /* NetJackSlave.app */, | |||
4BFF45120F4D59DB00106083 /* libjacknet.a */, | |||
4BFF45770F4D5D9700106083 /* iPhoneFaustNet.app */, | |||
4B0772380F54018C000DC657 /* iPhoneNetMaster.app */, | |||
4BCF75F210BC2FD90082C526 /* iPhoneThruNet.app */, | |||
4BCF75F210BC2FD90082C526 /* iPhoneFaustNet.app */, | |||
4B4146B010BD3C4300C12F0C /* iPhoneFaustNet.app */, | |||
4BCB37CE112D647C008C7BC1 /* iPhoneFaust.app */, | |||
4BDFCD57113DB6B700D77992 /* NetJackSlave.app */, | |||
); | |||
name = Products; | |||
sourceTree = "<group>"; | |||
@@ -329,6 +354,8 @@ | |||
28AD733E0D9D9553002E5188 /* MainWindow.xib */, | |||
8D1107310486CEB800E47090 /* Info.plist */, | |||
4BC9C1D31135AA1800D22670 /* iPhoneNetMasterAppl-Info.plist */, | |||
4BDFCCD7113DB30500D77992 /* Info copy.plist */, | |||
4BDFCD59113DB6B700D77992 /* Info copy 2.plist */, | |||
); | |||
name = Resources; | |||
sourceTree = "<group>"; | |||
@@ -377,7 +404,7 @@ | |||
); | |||
name = iPhoneNetSlave; | |||
productName = iPhoneNet; | |||
productReference = 1D6058910D05DD3D006BFB54 /* iPhoneNetSlave.app */; | |||
productReference = 1D6058910D05DD3D006BFB54 /* NetJackSlave.app */; | |||
productType = "com.apple.product-type.application"; | |||
}; | |||
4B07721F0F54018C000DC657 /* iPhoneNetMaster */ = { | |||
@@ -462,7 +489,24 @@ | |||
); | |||
name = iPhoneThruNet; | |||
productName = iPhoneNet; | |||
productReference = 4BCF75F210BC2FD90082C526 /* iPhoneThruNet.app */; | |||
productReference = 4BCF75F210BC2FD90082C526 /* iPhoneFaustNet.app */; | |||
productType = "com.apple.product-type.application"; | |||
}; | |||
4BDFCD3B113DB6B700D77992 /* iPhoneNetSlaveLib */ = { | |||
isa = PBXNativeTarget; | |||
buildConfigurationList = 4BDFCD54113DB6B700D77992 /* Build configuration list for PBXNativeTarget "iPhoneNetSlaveLib" */; | |||
buildPhases = ( | |||
4BDFCD3C113DB6B700D77992 /* Resources */, | |||
4BDFCD3F113DB6B700D77992 /* Sources */, | |||
4BDFCD4F113DB6B700D77992 /* Frameworks */, | |||
); | |||
buildRules = ( | |||
); | |||
dependencies = ( | |||
); | |||
name = iPhoneNetSlaveLib; | |||
productName = iPhoneNet; | |||
productReference = 4BDFCD57113DB6B700D77992 /* NetJackSlave.app */; | |||
productType = "com.apple.product-type.application"; | |||
}; | |||
4BFF455E0F4D5D9700106083 /* iPhoneFaustNet */ = { | |||
@@ -496,6 +540,7 @@ | |||
targets = ( | |||
4B07721F0F54018C000DC657 /* iPhoneNetMaster */, | |||
1D6058900D05DD3D006BFB54 /* iPhoneNetSlave */, | |||
4BDFCD3B113DB6B700D77992 /* iPhoneNetSlaveLib */, | |||
4BFF455E0F4D5D9700106083 /* iPhoneFaustNet */, | |||
4BCF75D810BC2FD90082C526 /* iPhoneThruNet */, | |||
4B41469610BD3C4300C12F0C /* iPhoneFaustNet Distribution */, | |||
@@ -551,6 +596,15 @@ | |||
); | |||
runOnlyForDeploymentPostprocessing = 0; | |||
}; | |||
4BDFCD3C113DB6B700D77992 /* Resources */ = { | |||
isa = PBXResourcesBuildPhase; | |||
buildActionMask = 2147483647; | |||
files = ( | |||
4BDFCD3D113DB6B700D77992 /* MainWindow.xib in Resources */, | |||
4BDFCD3E113DB6B700D77992 /* icon.png in Resources */, | |||
); | |||
runOnlyForDeploymentPostprocessing = 0; | |||
}; | |||
4BFF455F0F4D5D9700106083 /* Resources */ = { | |||
isa = PBXResourcesBuildPhase; | |||
buildActionMask = 2147483647; | |||
@@ -680,6 +734,17 @@ | |||
); | |||
runOnlyForDeploymentPostprocessing = 0; | |||
}; | |||
4BDFCD3F113DB6B700D77992 /* Sources */ = { | |||
isa = PBXSourcesBuildPhase; | |||
buildActionMask = 2147483647; | |||
files = ( | |||
4BDFCD4A113DB6B700D77992 /* main_slave.mm in Sources */, | |||
4BDFCD4B113DB6B700D77992 /* iPhoneNetAppDelegate.m in Sources */, | |||
4BDFCD4D113DB6B700D77992 /* CAHostTimeBase.cpp in Sources */, | |||
4BDFCD4E113DB6B700D77992 /* TiPhoneCoreAudioRenderer.cpp in Sources */, | |||
); | |||
runOnlyForDeploymentPostprocessing = 0; | |||
}; | |||
4BFF45610F4D5D9700106083 /* Sources */ = { | |||
isa = PBXSourcesBuildPhase; | |||
buildActionMask = 2147483647; | |||
@@ -1003,6 +1068,57 @@ | |||
}; | |||
name = Release; | |||
}; | |||
4BDFCD55113DB6B700D77992 /* Debug */ = { | |||
isa = XCBuildConfiguration; | |||
buildSettings = { | |||
ALWAYS_SEARCH_USER_PATHS = NO; | |||
COPY_PHASE_STRIP = NO; | |||
GCC_DYNAMIC_NO_PIC = NO; | |||
GCC_OPTIMIZATION_LEVEL = 0; | |||
GCC_PRECOMPILE_PREFIX_HEADER = YES; | |||
GCC_PREFIX_HEADER = iPhoneNet_Prefix.pch; | |||
HEADER_SEARCH_PATHS = ( | |||
../../macosx/coreaudio, | |||
../../macosx, | |||
../../posix, | |||
../../common/jack, | |||
../../common, | |||
); | |||
INFOPLIST_FILE = Info.plist; | |||
LIBRARY_SEARCH_PATHS = ( | |||
"$(inherited)", | |||
"\\\"$(SRCROOT)/build/Debug-iphonesimulator\\\"", | |||
); | |||
OTHER_LDFLAGS = "-ljacknet"; | |||
PRODUCT_NAME = iPhoneNetSlave; | |||
SDKROOT = iphoneos3.1.3; | |||
}; | |||
name = Debug; | |||
}; | |||
4BDFCD56113DB6B700D77992 /* Release */ = { | |||
isa = XCBuildConfiguration; | |||
buildSettings = { | |||
ALWAYS_SEARCH_USER_PATHS = NO; | |||
COPY_PHASE_STRIP = YES; | |||
GCC_PRECOMPILE_PREFIX_HEADER = YES; | |||
GCC_PREFIX_HEADER = iPhoneNet_Prefix.pch; | |||
HEADER_SEARCH_PATHS = ( | |||
../../macosx/coreaudio, | |||
../../common/jack, | |||
../../common, | |||
../../posix, | |||
../../macosx, | |||
); | |||
INFOPLIST_FILE = Info.plist; | |||
LIBRARY_SEARCH_PATHS = ( | |||
"$(inherited)", | |||
"\\\"$(SRCROOT)/build/Debug-iphonesimulator\\\"", | |||
); | |||
OTHER_LDFLAGS = "-ljacknet"; | |||
PRODUCT_NAME = NetJackSlave; | |||
}; | |||
name = Release; | |||
}; | |||
4BFF45750F4D5D9700106083 /* Debug */ = { | |||
isa = XCBuildConfiguration; | |||
buildSettings = { | |||
@@ -1136,6 +1252,15 @@ | |||
defaultConfigurationIsVisible = 0; | |||
defaultConfigurationName = Release; | |||
}; | |||
4BDFCD54113DB6B700D77992 /* Build configuration list for PBXNativeTarget "iPhoneNetSlaveLib" */ = { | |||
isa = XCConfigurationList; | |||
buildConfigurations = ( | |||
4BDFCD55113DB6B700D77992 /* Debug */, | |||
4BDFCD56113DB6B700D77992 /* Release */, | |||
); | |||
defaultConfigurationIsVisible = 0; | |||
defaultConfigurationName = Release; | |||
}; | |||
4BFF45740F4D5D9700106083 /* Build configuration list for PBXNativeTarget "iPhoneFaustNet" */ = { | |||
isa = XCConfigurationList; | |||
buildConfigurations = ( | |||