Browse Source

Better error handling.

git-svn-id: http://subversion.jackaudio.org/jack/jack2/branches/libjacknet@3921 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/1.9.8
sletz 15 years ago
parent
commit
5dd1940b9d
7 changed files with 227 additions and 45 deletions
  1. +45
    -32
      common/JackNetAPI.cpp
  2. +28
    -0
      common/JackResampler.cpp
  3. +3
    -0
      common/JackResampler.h
  4. +11
    -10
      macosx/JackMachThread.cpp
  5. +1
    -1
      macosx/coreaudio/JackCoreAudioAdapter.h
  6. +135
    -0
      macosx/iphone/iPhoneNet.xcodeproj/project.pbxproj
  7. +4
    -2
      macosx/iphone/main_master.mm

+ 45
- 32
common/JackNetAPI.cpp View File

@@ -194,7 +194,7 @@ struct JackNetExtMaster : public JackNetMasterInterface {
SessionParamsNToH(&net_params, &fParams);
if ((rx_bytes == SOCKET_ERROR) && (fSocket.GetError() != NET_NO_DATA)) {
fprintf(stderr, "Error in receive : %s\n", StrError(NET_ERROR_CODE));
fprintf(stderr, "Error in receive : %s\n", StrError(NET_ERROR_CODE));
if (++attempt == 10) {
fprintf(stderr, "Can't receive on the socket, exiting net manager.\n" );
goto error;
@@ -339,43 +339,55 @@ struct JackNetExtMaster : public JackNetMasterInterface {
int Read(int audio_input, float** audio_input_buffer, int midi_input, void** midi_input_buffer)
{
assert((unsigned int)audio_input == fParams.fSendAudioChannels);
int port_index;
for (port_index = 0; port_index < audio_input; port_index++) {
fNetAudioPlaybackBuffer->SetBuffer(port_index, audio_input_buffer[port_index]);
}
for (port_index = 0; port_index < midi_input; port_index++) {
fNetMidiPlaybackBuffer->SetBuffer(port_index, ((JackMidiBuffer**)midi_input_buffer)[port_index]);
}
if (SyncRecv() == SOCKET_ERROR)
return 0;
try {
assert((unsigned int)audio_input == fParams.fSendAudioChannels);
int port_index;
for (port_index = 0; port_index < audio_input; port_index++) {
fNetAudioPlaybackBuffer->SetBuffer(port_index, audio_input_buffer[port_index]);
}
for (port_index = 0; port_index < midi_input; port_index++) {
fNetMidiPlaybackBuffer->SetBuffer(port_index, ((JackMidiBuffer**)midi_input_buffer)[port_index]);
}
if (SyncRecv() == SOCKET_ERROR)
return 0;

DecodeSyncPacket();
return DataRecv();
DecodeSyncPacket();
return DataRecv();
} catch (JackNetException& e) {
jack_error("Connection lost.");
return -1;
}
}

int Write(int audio_output, float** audio_output_buffer, int midi_output, void** midi_output_buffer)
{
assert((unsigned int)audio_output == fParams.fReturnAudioChannels);
int port_index;
for (port_index = 0; port_index < audio_output; port_index++) {
fNetAudioCaptureBuffer->SetBuffer(port_index, audio_output_buffer[port_index]);
}
try {
assert((unsigned int)audio_output == fParams.fReturnAudioChannels);
int port_index;
for (port_index = 0; port_index < audio_output; port_index++) {
fNetAudioCaptureBuffer->SetBuffer(port_index, audio_output_buffer[port_index]);
}
for (port_index = 0; port_index < midi_output; port_index++) {
fNetMidiCaptureBuffer->SetBuffer(port_index, ((JackMidiBuffer**)midi_output_buffer)[port_index]);
}
EncodeSyncPacket();
for (port_index = 0; port_index < midi_output; port_index++) {
fNetMidiCaptureBuffer->SetBuffer(port_index, ((JackMidiBuffer**)midi_output_buffer)[port_index]);
}
EncodeSyncPacket();
if (SyncSend() == SOCKET_ERROR)
return SOCKET_ERROR;
if (SyncSend() == SOCKET_ERROR)
return SOCKET_ERROR;

return DataSend();
return DataSend();
} catch (JackNetException& e) {
jack_error("Connection lost.");
return -1;
}
}
// Transport
@@ -898,7 +910,8 @@ SERVER_EXPORT void jack_error(const char *fmt, ...)
va_list ap;
va_start(ap, fmt);
jack_format_and_log(LOG_LEVEL_INFO, "Jack: ", fmt, ap);
va_end(ap);}
va_end(ap);
}

SERVER_EXPORT void jack_info(const char *fmt, ...)
{


+ 28
- 0
common/JackResampler.cpp View File

@@ -81,6 +81,34 @@ unsigned int JackResampler::Write(float* buffer, unsigned int frames)
}
}

unsigned int JackResampler::Read(void* buffer, unsigned int bytes)
{
size_t len = jack_ringbuffer_read_space(fRingBuffer);
jack_log("JackResampler::Read input available = %ld", len);
if (len < bytes) {
jack_error("JackResampler::Read : producer too slow, missing bytes = %d", bytes);
return 0;
} else {
jack_ringbuffer_read(fRingBuffer, (char*)buffer, bytes);
return bytes;
}
}

unsigned int JackResampler::Write(void* buffer, unsigned int bytes)
{
size_t len = jack_ringbuffer_write_space(fRingBuffer);
jack_log("JackResampler::Write output available = %ld", len);
if (len < bytes) {
jack_error("JackResampler::Write : consumer too slow, skip bytes = %d", bytes);
return 0;
} else {
jack_ringbuffer_write(fRingBuffer, (char*)buffer, bytes);
return bytes;
}
}

unsigned int JackResampler::ReadResample(float* buffer, unsigned int frames)
{
return Read(buffer, frames);


+ 3
- 0
common/JackResampler.h View File

@@ -60,6 +60,9 @@ class JackResampler
virtual unsigned int Read(float* buffer, unsigned int frames);
virtual unsigned int Write(float* buffer, unsigned int frames);
virtual unsigned int Read(void* buffer, unsigned int bytes);
virtual unsigned int Write(void* buffer, unsigned int bytes);
virtual unsigned int ReadSpace();
virtual unsigned int WriteSpace();


+ 11
- 10
macosx/JackMachThread.cpp View File

@@ -22,6 +22,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "JackMachThread.h"
#include "JackError.h"

#include "/Developer/Extras/CoreAudio/PublicUtility/CAHostTimeBase.h"

namespace Jack
{

@@ -32,17 +34,16 @@ int JackMachThread::SetThreadToPriority(pthread_t thread, UInt32 inPriority, Boo
thread_time_constraint_policy_data_t theTCPolicy;

#ifdef MY_TARGET_OS_IPHONE
theTCPolicy.period = 0;
theTCPolicy.computation = 0;
theTCPolicy.constraint = 0;
theTCPolicy.period = CAHostTimeBase::ConvertFromNanos(period);
theTCPolicy.computation = CAHostTimeBase::ConvertFromNanos(computation);
theTCPolicy.constraint = CAHostTimeBase::ConvertFromNanos(constraint);
#else
theTCPolicy.period = AudioConvertNanosToHostTime(period);
theTCPolicy.computation = AudioConvertNanosToHostTime(computation);
theTCPolicy.constraint = AudioConvertNanosToHostTime(constraint);

#endif
theTCPolicy.preemptible = true;
kern_return_t res = thread_policy_set(pthread_mach_thread_np(thread), THREAD_TIME_CONSTRAINT_POLICY, (thread_policy_t) & theTCPolicy, THREAD_TIME_CONSTRAINT_POLICY_COUNT);
kern_return_t res = thread_policy_set(pthread_mach_thread_np(thread), THREAD_TIME_CONSTRAINT_POLICY, (thread_policy_t) &theTCPolicy, THREAD_TIME_CONSTRAINT_POLICY_COUNT);
jack_log("JackMachThread::thread_policy_set res = %ld", res);
return (res == KERN_SUCCESS) ? 0 : -1;
} else {
@@ -65,7 +66,7 @@ int JackMachThread::SetThreadToPriority(pthread_t thread, UInt32 inPriority, Boo
relativePriority = inPriority - GetThreadSetPriority(pthread_self());

thePrecedencePolicy.importance = relativePriority;
kern_return_t res = thread_policy_set(pthread_mach_thread_np(thread), THREAD_PRECEDENCE_POLICY, (thread_policy_t) & thePrecedencePolicy, THREAD_PRECEDENCE_POLICY_COUNT);
kern_return_t res = thread_policy_set(pthread_mach_thread_np(thread), THREAD_PRECEDENCE_POLICY, (thread_policy_t) &thePrecedencePolicy, THREAD_PRECEDENCE_POLICY_COUNT);
jack_log("JackMachThread::thread_policy_set res = %ld", res);
return (res == KERN_SUCCESS) ? 0 : -1;
}
@@ -139,9 +140,9 @@ int JackMachThread::GetParams(pthread_t thread, UInt64* period, UInt64* computat
&get_default);
if (res == KERN_SUCCESS) {
#ifdef MY_TARGET_OS_IPHONE
*period = 0;
*computation = 0;
*constraint = 0;
*period = CAHostTimeBase::ConvertToNanos(theTCPolicy.period);
*computation = CAHostTimeBase::ConvertToNanos(theTCPolicy.computation);
*constraint = CAHostTimeBase::ConvertToNanos(theTCPolicy.constraint);
#else
*period = AudioConvertHostTimeToNanos(theTCPolicy.period);
*computation = AudioConvertHostTimeToNanos(theTCPolicy.computation);
@@ -179,7 +180,7 @@ int JackMachThread::AcquireRealTime()

int JackMachThread::AcquireSelfRealTime()
{
jack_log("JackMachThread::AcquireRealTime fPeriod = %ld fComputation = %ld fConstraint = %ld",
jack_log("JackMachThread::AcquireSelfRealTime fPeriod = %ld fComputation = %ld fConstraint = %ld",
long(fPeriod / 1000), long(fComputation / 1000), long(fConstraint / 1000));
return AcquireRealTimeImp(pthread_self(), fPeriod, fComputation, fConstraint);
}


+ 1
- 1
macosx/coreaudio/JackCoreAudioAdapter.h View File

@@ -136,7 +136,7 @@ class JackCoreAudioAdapter : public JackAudioAdapterInterface

public:

JackCoreAudioAdapter( jack_nframes_t buffer_size, jack_nframes_t sample_rate, const JSList* params);
JackCoreAudioAdapter(jack_nframes_t buffer_size, jack_nframes_t sample_rate, const JSList* params);
~JackCoreAudioAdapter()
{}



+ 135
- 0
macosx/iphone/iPhoneNet.xcodeproj/project.pbxproj View File

@@ -76,6 +76,13 @@
4B4146AB10BD3C4300C12F0C /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765FC0DF74451002DB57D /* CoreGraphics.framework */; };
4B4146AC10BD3C4300C12F0C /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B1A95750F49CEAB00D3626B /* AudioToolbox.framework */; };
4BBDC8FA0F5420C000465F9C /* freeverb.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4BBDC8F90F5420C000465F9C /* freeverb.mm */; };
4BCB37B6112D647C008C7BC1 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD733E0D9D9553002E5188 /* MainWindow.xib */; };
4BCB37C7112D647C008C7BC1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
4BCB37C8112D647C008C7BC1 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
4BCB37C9112D647C008C7BC1 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765FC0DF74451002DB57D /* CoreGraphics.framework */; };
4BCB37CA112D647C008C7BC1 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B1A95750F49CEAB00D3626B /* AudioToolbox.framework */; };
4BCB37D6112D64B4008C7BC1 /* HardwareClock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BCB37D5112D64B4008C7BC1 /* HardwareClock.cpp */; };
4BCB37D9112D64D8008C7BC1 /* iphone-faust.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4BCB37D8112D64D8008C7BC1 /* iphone-faust.mm */; };
4BCF75DA10BC2FD90082C526 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD733E0D9D9553002E5188 /* MainWindow.xib */; };
4BCF75DC10BC2FD90082C526 /* JackMachThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B1A93550F49ACFC00D3626B /* JackMachThread.cpp */; };
4BCF75DD10BC2FD90082C526 /* JackMachTime.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B1A93870F49B0E300D3626B /* JackMachTime.c */; };
@@ -103,6 +110,12 @@
4BF1364F0F4B0F7700218A3F /* JackResampler.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BF1364C0F4B0F7700218A3F /* JackResampler.h */; };
4BF136550F4B0F9F00218A3F /* ringbuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BF136540F4B0F9F00218A3F /* ringbuffer.c */; };
4BF136560F4B0F9F00218A3F /* ringbuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BF136540F4B0F9F00218A3F /* ringbuffer.c */; };
4BF15E2511356A3E00B36B9A /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF15E2411356A3E00B36B9A /* CAHostTimeBase.cpp */; };
4BF15E2611356A3E00B36B9A /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF15E2411356A3E00B36B9A /* CAHostTimeBase.cpp */; };
4BF15E2711356A3E00B36B9A /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF15E2411356A3E00B36B9A /* CAHostTimeBase.cpp */; };
4BF15E2811356A3E00B36B9A /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF15E2411356A3E00B36B9A /* CAHostTimeBase.cpp */; };
4BF15E2911356A3E00B36B9A /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF15E2411356A3E00B36B9A /* CAHostTimeBase.cpp */; };
4BF15E2A11356A3E00B36B9A /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF15E2411356A3E00B36B9A /* CAHostTimeBase.cpp */; };
4BFF45600F4D5D9700106083 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD733E0D9D9553002E5188 /* MainWindow.xib */; };
4BFF45630F4D5D9700106083 /* JackMachThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B1A93550F49ACFC00D3626B /* JackMachThread.cpp */; };
4BFF45640F4D5D9700106083 /* JackMachTime.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B1A93870F49B0E300D3626B /* JackMachTime.c */; };
@@ -149,6 +162,9 @@
4B2791870F72570C000536B7 /* JackGlobals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackGlobals.cpp; path = ../../common/JackGlobals.cpp; sourceTree = SOURCE_ROOT; };
4B4146B010BD3C4300C12F0C /* iPhoneFaustNet.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iPhoneFaustNet.app; sourceTree = BUILT_PRODUCTS_DIR; };
4BBDC8F90F5420C000465F9C /* freeverb.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = freeverb.mm; sourceTree = SOURCE_ROOT; };
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 /* 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; };
4BF1360E0F4B0B4C00218A3F /* JackAudioAdapterInterface.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackAudioAdapterInterface.cpp; path = ../../common/JackAudioAdapterInterface.cpp; sourceTree = SOURCE_ROOT; };
@@ -156,6 +172,7 @@
4BF1364B0F4B0F7700218A3F /* JackResampler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackResampler.cpp; path = ../../common/JackResampler.cpp; sourceTree = SOURCE_ROOT; };
4BF1364C0F4B0F7700218A3F /* JackResampler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackResampler.h; path = ../../common/JackResampler.h; sourceTree = SOURCE_ROOT; };
4BF136540F4B0F9F00218A3F /* ringbuffer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ringbuffer.c; path = ../../common/ringbuffer.c; sourceTree = SOURCE_ROOT; };
4BF15E2411356A3E00B36B9A /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CAHostTimeBase.cpp; path = /Developer/Extras/CoreAudio/PublicUtility/CAHostTimeBase.cpp; sourceTree = "<absolute>"; };
4BFF45120F4D59DB00106083 /* libjacknet.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libjacknet.a; sourceTree = BUILT_PRODUCTS_DIR; };
4BFF45770F4D5D9700106083 /* iPhoneFaustNet.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iPhoneFaustNet.app; sourceTree = BUILT_PRODUCTS_DIR; };
8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
@@ -202,6 +219,17 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
4BCB37C6112D647C008C7BC1 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
4BCB37C7112D647C008C7BC1 /* Foundation.framework in Frameworks */,
4BCB37C8112D647C008C7BC1 /* UIKit.framework in Frameworks */,
4BCB37C9112D647C008C7BC1 /* CoreGraphics.framework in Frameworks */,
4BCB37CA112D647C008C7BC1 /* AudioToolbox.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
4BCF75EA10BC2FD90082C526 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@@ -236,6 +264,7 @@
4B0772380F54018C000DC657 /* iPhoneNetMaster.app */,
4BCF75F210BC2FD90082C526 /* iPhoneFaustNet.app */,
4B4146B010BD3C4300C12F0C /* iPhoneFaustNet.app */,
4BCB37CE112D647C008C7BC1 /* iPhoneFaust.app */,
);
name = Products;
sourceTree = "<group>";
@@ -243,6 +272,9 @@
29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
isa = PBXGroup;
children = (
4BCB37D8112D64D8008C7BC1 /* iphone-faust.mm */,
4BCB37D5112D64B4008C7BC1 /* HardwareClock.cpp */,
4BF15E2411356A3E00B36B9A /* CAHostTimeBase.cpp */,
29B97315FDCFA39411CA2CEA /* Other Sources */,
29B97317FDCFA39411CA2CEA /* Resources */,
29B97323FDCFA39411CA2CEA /* Frameworks */,
@@ -390,6 +422,23 @@
productReference = 4B4146B010BD3C4300C12F0C /* iPhoneFaustNet.app */;
productType = "com.apple.product-type.application";
};
4BCB37B4112D647C008C7BC1 /* iPhoneFaust */ = {
isa = PBXNativeTarget;
buildConfigurationList = 4BCB37CB112D647C008C7BC1 /* Build configuration list for PBXNativeTarget "iPhoneFaust" */;
buildPhases = (
4BCB37B5112D647C008C7BC1 /* Resources */,
4BCB37B7112D647C008C7BC1 /* Sources */,
4BCB37C6112D647C008C7BC1 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = iPhoneFaust;
productName = iPhoneNet;
productReference = 4BCB37CE112D647C008C7BC1 /* iPhoneFaust.app */;
productType = "com.apple.product-type.application";
};
4BCF75D810BC2FD90082C526 /* iPhoneThruNet */ = {
isa = PBXNativeTarget;
buildConfigurationList = 4BCF75EF10BC2FD90082C526 /* Build configuration list for PBXNativeTarget "iPhoneThruNet" */;
@@ -441,6 +490,7 @@
4BFF455E0F4D5D9700106083 /* iPhoneFaustNet */,
4BCF75D810BC2FD90082C526 /* iPhoneThruNet */,
4B41469610BD3C4300C12F0C /* iPhoneFaustNet Distribution */,
4BCB37B4112D647C008C7BC1 /* iPhoneFaust */,
4B1A940F0F49BDE000D3626B /* jacknet */,
);
};
@@ -471,6 +521,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
4BCB37B5112D647C008C7BC1 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4BCB37B6112D647C008C7BC1 /* MainWindow.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
4BCF75D910BC2FD90082C526 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
@@ -508,6 +566,7 @@
4B07724A0F54021B000DC657 /* main_slave.mm in Sources */,
4B0773870F541EE2000DC657 /* iPhoneNetAppDelegate.m in Sources */,
4B27918A0F72570C000536B7 /* JackGlobals.cpp in Sources */,
4BF15E2611356A3E00B36B9A /* CAHostTimeBase.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -529,6 +588,7 @@
4B0772510F54022D000DC657 /* main_master.mm in Sources */,
4B0773860F541EE2000DC657 /* iPhoneNetAppDelegate.m in Sources */,
4B27918B0F72570C000536B7 /* JackGlobals.cpp in Sources */,
4BF15E2511356A3E00B36B9A /* CAHostTimeBase.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -568,6 +628,17 @@
4B4146A510BD3C4300C12F0C /* iPhoneNetAppDelegate.m in Sources */,
4B4146A610BD3C4300C12F0C /* freeverb.mm in Sources */,
4B4146A710BD3C4300C12F0C /* JackGlobals.cpp in Sources */,
4BF15E2911356A3E00B36B9A /* CAHostTimeBase.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
4BCB37B7112D647C008C7BC1 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4BCB37D6112D64B4008C7BC1 /* HardwareClock.cpp in Sources */,
4BCB37D9112D64D8008C7BC1 /* iphone-faust.mm in Sources */,
4BF15E2A11356A3E00B36B9A /* CAHostTimeBase.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -589,6 +660,7 @@
4BCF75E710BC2FD90082C526 /* iPhoneNetAppDelegate.m in Sources */,
4BCF75E910BC2FD90082C526 /* JackGlobals.cpp in Sources */,
4BCF75F710BC30140082C526 /* audio_thru.mm in Sources */,
4BF15E2811356A3E00B36B9A /* CAHostTimeBase.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -610,6 +682,7 @@
4B0773880F541EE2000DC657 /* iPhoneNetAppDelegate.m in Sources */,
4BBDC8FA0F5420C000465F9C /* freeverb.mm in Sources */,
4B2791880F72570C000536B7 /* JackGlobals.cpp in Sources */,
4BF15E2711356A3E00B36B9A /* CAHostTimeBase.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -805,6 +878,59 @@
};
name = Release;
};
4BCB37CC112D647C008C7BC1 /* 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;
GCC_THUMB_SUPPORT = NO;
HEADER_SEARCH_PATHS = (
../../macosx,
../../posix,
../../common/jack,
../../common,
);
INFOPLIST_FILE = Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 3.1.3;
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\\\\\\\"$(SRCROOT)/build/Debug-iphonesimulator\\\\\\\"",
);
OTHER_LDFLAGS = "";
PRODUCT_NAME = iPhoneFaust;
SDKROOT = iphoneos3.1.3;
};
name = Debug;
};
4BCB37CD112D647C008C7BC1 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = iPhoneNet_Prefix.pch;
GCC_THUMB_SUPPORT = NO;
HEADER_SEARCH_PATHS = (
../../macosx,
../../common/jack,
../../common,
../../posix,
);
INFOPLIST_FILE = Info.plist;
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\\\\\\\"$(SRCROOT)/build/Debug-iphonesimulator\\\\\\\"",
);
ONLY_ACTIVE_ARCH = NO;
PRODUCT_NAME = iPhoneFaust;
SDKROOT = iphoneos3.1.3;
};
name = Release;
};
4BCF75F010BC2FD90082C526 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -969,6 +1095,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
4BCB37CB112D647C008C7BC1 /* Build configuration list for PBXNativeTarget "iPhoneFaust" */ = {
isa = XCConfigurationList;
buildConfigurations = (
4BCB37CC112D647C008C7BC1 /* Debug */,
4BCB37CD112D647C008C7BC1 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
4BCF75EF10BC2FD90082C526 /* Build configuration list for PBXNativeTarget "iPhoneThruNet" */ = {
isa = XCConfigurationList;
buildConfigurations = (


+ 4
- 2
macosx/iphone/main_master.mm View File

@@ -45,7 +45,7 @@ int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int i;
int buffer_size = 512;
int buffer_size = 2048;
int sample_rate = 44100;
jack_master_t request = { buffer_size, sample_rate, "master" };
jack_slave_t result;
@@ -72,17 +72,19 @@ int main(int argc, char *argv[]) {

// Run until interrupted
while (1) {
// Copy input to output
for (i = 0; i < result.audio_input; i++) {
memcpy(audio_output_buffer[i], audio_input_buffer[i], buffer_size * sizeof(float));
}
if (jack_net_master_send(net, result.audio_output, audio_output_buffer, 0, NULL) < 0) {
printf("jack_net_master_send error..\n");
break;
}
if (jack_net_master_recv(net, result.audio_input, audio_input_buffer, 0, NULL) < 0) {
printf("jack_net_master_recv error..\n");
break;
}
usleep(wait_usec);


Loading…
Cancel
Save