Browse Source

On OSX waf now compiles Universal Binaries.

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2536 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/1.90
sletz 17 years ago
parent
commit
3f0c87526c
6 changed files with 50 additions and 20 deletions
  1. +4
    -0
      ChangeLog
  2. +5
    -2
      common/wscript
  3. +17
    -2
      example-clients/wscript
  4. +16
    -15
      macosx/JackCoreAudioDriver.cpp
  5. +5
    -1
      macosx/JackCoreAudioDriver.h
  6. +3
    -0
      tests/wscript

+ 4
- 0
ChangeLog View File

@@ -21,6 +21,10 @@ Romain Moret
Jackdmp changes log
---------------------------

2008-06-18 Stephane Letz <letz@grame.fr>

* On OSX waf now compiles Universal Binaries.

2008-06-17 Stephane Letz <letz@grame.fr>

* Driver class hierarchy simplification.


+ 5
- 2
common/wscript View File

@@ -134,7 +134,7 @@ def build(bld):
serverlib.env.append_value("CPPFLAGS", "-fvisibility=hidden")
if bld.env()['IS_MACOSX']:
serverlib.env.append_value("CPPFLAGS", "-mmacosx-version-min=10.4 -arch i386 -arch ppc")
serverlib.env.append_value("LINKFLAGS", "-framework CoreAudio -framework vecLib -single_module")
serverlib.env.append_value("LINKFLAGS", "-framework CoreAudio -framework vecLib -single_module -arch i386 -arch ppc")

clientlib = bld.create_obj('cpp', 'shlib')
clientlib.features.append('cc')
@@ -168,7 +168,7 @@ def build(bld):
clientlib.env.append_value("CPPFLAGS", "-fvisibility=hidden")
if bld.env()['IS_MACOSX']:
clientlib.env.append_value("CPPFLAGS", "-mmacosx-version-min=10.4 -arch i386 -arch ppc")
clientlib.env.append_value("LINKFLAGS", "-framework CoreAudio -framework vecLib -single_module")
clientlib.env.append_value("LINKFLAGS", "-framework CoreAudio -framework vecLib -single_module -arch i386 -arch ppc")

netmanagerlib = bld.create_obj('cpp', 'shlib')
netmanagerlib.env['shlib_PATTERN'] = '%s.so'
@@ -177,6 +177,9 @@ def build(bld):
netmanagerlib.target = 'netmanager'
netmanagerlib.source = 'JackNetManager.cpp'
netmanagerlib.env.append_value("CPPFLAGS", "-fvisibility=hidden")
if bld.env()['IS_MACOSX']:
netmanagerlib.env.append_value("CPPFLAGS", "-mmacosx-version-min=10.4 -arch i386 -arch ppc")
netmanagerlib.env.append_value("LINKFLAGS", "-arch i386 -arch ppc")
netmanagerlib.inst_var = bld.env()['ADDON_DIR']
netmanagerlib.inst_dir = '/'
if bld.env()['IS_MACOSX']: # is this really macosx sepcific?


+ 17
- 2
example-clients/wscript View File

@@ -54,19 +54,28 @@ def configure(conf):
conf.env['BUILD_EXAMPLE_CLIENT_REC'] = conf.is_defined('HAVE_SNDFILE')

def build(bld):

for example_program, example_program_source in example_programs.items():
prog = bld.create_obj('cc', 'program')
prog.includes = ['../common/jack', '../common']
prog.source = example_program_source
if bld.env()['IS_MACOSX']:
prog.env.append_value("CPPFLAGS", "-mmacosx-version-min=10.4 -arch i386 -arch ppc")
prog.env.append_value("LINKFLAGS", "-arch i386 -arch ppc")
if bld.env()['IS_LINUX']:
prog.uselib = 'RT'
prog.uselib_local = 'clientlib'
prog.target = example_program

if bld.env()['BUILD_EXAMPLE_CLIENT_TRANSPORT'] == True:
#if bld.env()['BUILD_EXAMPLE_CLIENT_TRANSPORT']
if bld.env()['BUILD_EXAMPLE_CLIENT_TRANSPORT'] == True and bld.env()['IS_LINUX'] == True:
prog = bld.create_obj('cc', 'program')
prog.includes = ['../common/jack', '../common']
prog.source = 'transport.c'
if bld.env()['IS_MACOSX']:
prog.env.append_value("CPPFLAGS", "-mmacosx-version-min=10.4 -arch i386 -arch ppc")
prog.env.append_value("LINKFLAGS", "-arch i386 -arch ppc")
if bld.env()['IS_LINUX']:
prog.uselib = 'RT READLINE NCURSES'
if bld.env()['IS_MACOSX']:
@@ -78,6 +87,9 @@ def build(bld):
prog = bld.create_obj('cc', 'program')
prog.includes = ['../common/jack', '../common']
prog.source = 'capture_client.c'
if bld.env()['IS_MACOSX']:
prog.env.append_value("CPPFLAGS", "-mmacosx-version-min=10.4 -arch i386 -arch ppc")
prog.env.append_value("LINKFLAGS", "-arch i386 -arch ppc")
if bld.env()['IS_LINUX']:
prog.uselib = 'RT SNDFILE'
if bld.env()['IS_MACOSX']:
@@ -91,6 +103,9 @@ def build(bld):
lib.includes = ['../common/jack', '../common']
lib.target = example_lib
lib.source = example_lib_source
if bld.env()['IS_MACOSX']:
lib.env.append_value("CPPFLAGS", "-mmacosx-version-min=10.4 -arch i386 -arch ppc")
lib.env.append_value("LINKFLAGS", "-arch i386 -arch ppc")
lib.uselib_local = 'clientlib'
lib.inst_var = bld.env()['ADDON_DIR']
lib.inst_dir = '/'


+ 16
- 15
macosx/JackCoreAudioDriver.cpp View File

@@ -35,20 +35,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
namespace Jack
{

static void PrintStreamDesc(AudioStreamBasicDescription *inDesc)
{
jack_log("- - - - - - - - - - - - - - - - - - - -");
jack_log(" Sample Rate:%f", inDesc->mSampleRate);
jack_log(" Format ID:%.*s", (int) sizeof(inDesc->mFormatID), (char*)&inDesc->mFormatID);
jack_log(" Format Flags:%lX", inDesc->mFormatFlags);
jack_log(" Bytes per Packet:%ld", inDesc->mBytesPerPacket);
jack_log(" Frames per Packet:%ld", inDesc->mFramesPerPacket);
jack_log(" Bytes per Frame:%ld", inDesc->mBytesPerFrame);
jack_log(" Channels per Frame:%ld", inDesc->mChannelsPerFrame);
jack_log(" Bits per Channel:%ld", inDesc->mBitsPerChannel);
jack_log("- - - - - - - - - - - - - - - - - - - -");
}

static void printError(OSStatus err)
{
switch (err) {
@@ -215,7 +201,11 @@ OSStatus JackCoreAudioDriver::MeasureCallback(AudioDeviceID inDevice,
{
JackCoreAudioDriver* driver = (JackCoreAudioDriver*)inClientData;
AudioDeviceStop(driver->fDeviceID, MeasureCallback);
#ifdef MAC_OS_X_VERSION_10_5
AudioDeviceDestroyIOProcID(driver->fDeviceID, driver->fMesureCallbackID);
#else
AudioDeviceRemoveIOProc(driver->fDeviceID, MeasureCallback);
#endif
jack_log("JackCoreAudioDriver::MeasureCallback called");
JackMachThread::GetParams(&driver->fEngineControl->fPeriod, &driver->fEngineControl->fComputation, &driver->fEngineControl->fConstraint);
// Setup threadded based log function
@@ -868,7 +858,11 @@ int JackCoreAudioDriver::AddListeners()

void JackCoreAudioDriver::RemoveListeners()
{
#ifdef MAC_OS_X_VERSION_10_5
AudioDeviceDestroyIOProcID(fDeviceID, fMesureCallbackID);
#else
AudioDeviceRemoveIOProc(fDeviceID, MeasureCallback);
#endif
AudioDeviceRemovePropertyListener(fDeviceID, 0, true, kAudioDeviceProcessorOverload, DeviceNotificationCallback);
AudioDeviceRemovePropertyListener(fDeviceID, 0, true, kAudioHardwarePropertyDevices, DeviceNotificationCallback);
AudioDeviceRemovePropertyListener(fDeviceID, 0, true, kAudioDevicePropertyNominalSampleRate, DeviceNotificationCallback);
@@ -1068,8 +1062,11 @@ int JackCoreAudioDriver::Start()
{
jack_log("JackCoreAudioDriver::Start");
JackAudioDriver::Start();

#ifdef MAC_OS_X_VERSION_10_5
OSStatus err = AudioDeviceCreateIOProcID(fDeviceID, MeasureCallback, this, &fMesureCallbackID);
#else
OSStatus err = AudioDeviceAddIOProc(fDeviceID, MeasureCallback, this);
#endif
if (err != noErr)
return -1;

@@ -1090,7 +1087,11 @@ int JackCoreAudioDriver::Stop()
{
jack_log("JackCoreAudioDriver::Stop");
AudioDeviceStop(fDeviceID, MeasureCallback);
#ifdef MAC_OS_X_VERSION_10_5
AudioDeviceDestroyIOProcID(fDeviceID, fMesureCallbackID);
#else
AudioDeviceRemoveIOProc(fDeviceID, MeasureCallback);
#endif
return (AudioOutputUnitStop(fAUHAL) == noErr) ? 0 : -1;
}



+ 5
- 1
macosx/JackCoreAudioDriver.h View File

@@ -72,7 +72,11 @@ class JackCoreAudioDriver : public JackAudioDriver

bool fMonitor;
float fIOUsage;

#ifdef MAC_OS_X_VERSION_10_5
AudioDeviceIOProcID fMesureCallbackID;
#endif
static OSStatus Render(void *inRefCon,
AudioUnitRenderActionFlags *ioActionFlags,
const AudioTimeStamp *inTimeStamp,


+ 3
- 0
tests/wscript View File

@@ -17,6 +17,9 @@ def build(bld):
prog.source = test_program_sources
if bld.env()['IS_LINUX']:
prog.uselib = 'RT'
if bld.env()['IS_MACOSX']:
prog.env.append_value("CPPFLAGS", "-mmacosx-version-min=10.4 -arch i386 -arch ppc")
prog.env.append_value("LINKFLAGS", "-arch i386 -arch ppc")
prog.uselib_local = 'clientlib'
prog.target = test_program
if test_program != 'jack_test':


Loading…
Cancel
Save