diff --git a/ChangeLog b/ChangeLog index 41d80af3..99565bf9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -29,7 +29,11 @@ Mario Lang Jackdmp changes log --------------------------- -2010-02-15 Gabriel M. Beddingfield +2010-03-02 Stephane Letz + + * Improve JackCoreAudioDriver and JackCoreAudioAdapter : when no devices are described, takes default input and output and aggregate them. + +2010-02-15 Stephane Letz * Version 1.9.6 started. diff --git a/common/JackNetTool.cpp b/common/JackNetTool.cpp index 81e2404f..82f03523 100644 --- a/common/JackNetTool.cpp +++ b/common/JackNetTool.cpp @@ -283,7 +283,7 @@ namespace Jack jack_info ( "Sample rate : %u frames per second", params->fSampleRate ); jack_info ( "Period size : %u frames per period", params->fPeriodSize ); jack_info ( "Frames per packet : %u", params->fFramesPerPacket ); - jack_info ( "Packet per period : %u", params->fPeriodSize / params->fFramesPerPacket ); + jack_info ( "Packet per period : %u", (params->fFramesPerPacket != 0) ? params->fPeriodSize / params->fFramesPerPacket : 0); jack_info ( "Bitdepth : %s", bitdepth ); jack_info ( "Slave mode : %s", ( params->fSlaveSyncMode ) ? "sync" : "async" ); jack_info ( "Network mode : %s", mode ); diff --git a/macosx/Jackdmp.xcodeproj/project.pbxproj b/macosx/Jackdmp.xcodeproj/project.pbxproj index d4e6c7f0..17395706 100644 --- a/macosx/Jackdmp.xcodeproj/project.pbxproj +++ b/macosx/Jackdmp.xcodeproj/project.pbxproj @@ -106,7 +106,6 @@ 4B19B3140E2362E800DD4A82 /* JackAudioAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B19B3070E2362E700DD4A82 /* JackAudioAdapter.h */; }; 4B19B3150E2362E800DD4A82 /* JackAudioAdapterInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B19B3080E2362E700DD4A82 /* JackAudioAdapterInterface.cpp */; }; 4B19B3160E2362E800DD4A82 /* JackAudioAdapterInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B19B3090E2362E700DD4A82 /* JackAudioAdapterInterface.h */; }; - 4B19B3190E2362E800DD4A82 /* JackException.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B19B30C0E2362E700DD4A82 /* JackException.h */; }; 4B19B31B0E2362E800DD4A82 /* JackLibSampleRateResampler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B19B30E0E2362E700DD4A82 /* JackLibSampleRateResampler.cpp */; }; 4B19B31C0E2362E800DD4A82 /* JackLibSampleRateResampler.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B19B30F0E2362E700DD4A82 /* JackLibSampleRateResampler.h */; }; 4B19B31F0E2362E800DD4A82 /* JackResampler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B19B3120E2362E700DD4A82 /* JackResampler.cpp */; }; @@ -423,15 +422,12 @@ 4B5DB9830CD2429A00EBA5EE /* JackDebugClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B98AE000931D30C0091932A /* JackDebugClient.cpp */; }; 4B5DB9840CD2429B00EBA5EE /* JackDebugClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B98AE010931D30C0091932A /* JackDebugClient.h */; }; 4B5E08C30E5B66EE00BEE4E0 /* JackAudioAdapterInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B19B3090E2362E700DD4A82 /* JackAudioAdapterInterface.h */; }; - 4B5E08C40E5B66EE00BEE4E0 /* JackException.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B19B30C0E2362E700DD4A82 /* JackException.h */; }; 4B5E08C60E5B66EE00BEE4E0 /* JackLibSampleRateResampler.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B19B30F0E2362E700DD4A82 /* JackLibSampleRateResampler.h */; }; 4B5E08CC0E5B66EE00BEE4E0 /* JackAudioAdapterInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B19B3080E2362E700DD4A82 /* JackAudioAdapterInterface.cpp */; }; 4B5E08CD0E5B66EE00BEE4E0 /* JackLibSampleRateResampler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B19B30E0E2362E700DD4A82 /* JackLibSampleRateResampler.cpp */; }; 4B5E08CE0E5B66EE00BEE4E0 /* JackResampler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B19B3120E2362E700DD4A82 /* JackResampler.cpp */; }; 4B5E08E10E5B676C00BEE4E0 /* JackNetAdapter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B5E08DF0E5B676C00BEE4E0 /* JackNetAdapter.cpp */; }; 4B5E08E20E5B676D00BEE4E0 /* JackNetAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B5E08E00E5B676C00BEE4E0 /* JackNetAdapter.h */; }; - 4B5E08EB0E5B67EA00BEE4E0 /* JackNetInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B76C7680E5AB2DB00E2AC21 /* JackNetInterface.cpp */; }; - 4B5E08EC0E5B67EB00BEE4E0 /* JackNetInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B76C7690E5AB2DB00E2AC21 /* JackNetInterface.h */; }; 4B5E08EE0E5B680200BEE4E0 /* JackAudioAdapter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B19B3060E2362E700DD4A82 /* JackAudioAdapter.cpp */; }; 4B5E08EF0E5B680200BEE4E0 /* JackAudioAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B19B3070E2362E700DD4A82 /* JackAudioAdapter.h */; }; 4B5F253E0DEE9B8F0041E486 /* JackLockedEngine.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B5F253D0DEE9B8F0041E486 /* JackLockedEngine.h */; }; @@ -570,10 +566,6 @@ 4B6C738A0CC60A85001AFFD4 /* thread.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B6C737D0CC60A6D001AFFD4 /* thread.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4B6C738B0CC60A86001AFFD4 /* transport.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B6C737E0CC60A6D001AFFD4 /* transport.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4B6F7AEE0CD0CDBD00F48A9D /* JackEngineControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B6F7AEC0CD0CDBD00F48A9D /* JackEngineControl.cpp */; }; - 4B76C76A0E5AB2DB00E2AC21 /* JackNetInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B76C7680E5AB2DB00E2AC21 /* JackNetInterface.cpp */; }; - 4B76C76B0E5AB2DB00E2AC21 /* JackNetInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B76C7690E5AB2DB00E2AC21 /* JackNetInterface.h */; }; - 4B76C76C0E5AB2DB00E2AC21 /* JackNetInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B76C7680E5AB2DB00E2AC21 /* JackNetInterface.cpp */; }; - 4B76C76D0E5AB2DB00E2AC21 /* JackNetInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B76C7690E5AB2DB00E2AC21 /* JackNetInterface.h */; }; 4B80D7E80BA0D17400F035BB /* JackMidiPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B80D7E50BA0D17400F035BB /* JackMidiPort.h */; }; 4B80D7E90BA0D17400F035BB /* JackMidiPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B80D7E60BA0D17400F035BB /* JackMidiPort.cpp */; }; 4B80D7EA0BA0D17400F035BB /* JackMidiAPI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B80D7E70BA0D17400F035BB /* JackMidiAPI.cpp */; }; @@ -755,16 +747,22 @@ 4BC216850A444BAD00BDA09F /* JackServerAPI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF8D1F50834EFB000C94B91 /* JackServerAPI.cpp */; }; 4BC216890A444BDE00BDA09F /* JackServerGlobals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BC216880A444BDE00BDA09F /* JackServerGlobals.cpp */; }; 4BC2168E0A444BED00BDA09F /* JackServerGlobals.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BC2168D0A444BED00BDA09F /* JackServerGlobals.h */; }; + 4BC2CA55113C6C930076717C /* JackNetInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B76C7680E5AB2DB00E2AC21 /* JackNetInterface.cpp */; }; + 4BC2CA56113C6C940076717C /* JackNetInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B76C7690E5AB2DB00E2AC21 /* JackNetInterface.h */; }; + 4BC2CA57113C6C9B0076717C /* JackNetUnixSocket.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BC3B6B90E703BCC0066E42F /* JackNetUnixSocket.cpp */; }; + 4BC2CA58113C6C9C0076717C /* JackNetUnixSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BC3B6BA0E703BCC0066E42F /* JackNetUnixSocket.h */; }; + 4BC2CA59113C6CB60076717C /* JackNetInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B76C7680E5AB2DB00E2AC21 /* JackNetInterface.cpp */; }; + 4BC2CA5A113C6CB80076717C /* JackNetInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B76C7690E5AB2DB00E2AC21 /* JackNetInterface.h */; }; + 4BC2CA5B113C6CBE0076717C /* JackNetUnixSocket.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BC3B6B90E703BCC0066E42F /* JackNetUnixSocket.cpp */; }; + 4BC2CA5C113C6CC00076717C /* JackNetUnixSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BC3B6BA0E703BCC0066E42F /* JackNetUnixSocket.h */; }; + 4BC2CA5D113C6CC90076717C /* JackNetInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B76C7680E5AB2DB00E2AC21 /* JackNetInterface.cpp */; }; + 4BC2CA5E113C6CCA0076717C /* JackNetInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B76C7690E5AB2DB00E2AC21 /* JackNetInterface.h */; }; + 4BC2CA5F113C6CD10076717C /* JackNetUnixSocket.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BC3B6B90E703BCC0066E42F /* JackNetUnixSocket.cpp */; }; + 4BC2CA60113C6CD20076717C /* JackNetUnixSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BC3B6BA0E703BCC0066E42F /* JackNetUnixSocket.h */; }; 4BC3B6A40E703B2E0066E42F /* JackPosixThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BC3B6A20E703B2E0066E42F /* JackPosixThread.cpp */; }; 4BC3B6A50E703B2E0066E42F /* JackPosixThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BC3B6A30E703B2E0066E42F /* JackPosixThread.h */; }; 4BC3B6A60E703B2E0066E42F /* JackPosixThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BC3B6A20E703B2E0066E42F /* JackPosixThread.cpp */; }; 4BC3B6A70E703B2E0066E42F /* JackPosixThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BC3B6A30E703B2E0066E42F /* JackPosixThread.h */; }; - 4BC3B6BB0E703BCC0066E42F /* JackNetUnixSocket.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BC3B6B90E703BCC0066E42F /* JackNetUnixSocket.cpp */; }; - 4BC3B6BC0E703BCC0066E42F /* JackNetUnixSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BC3B6BA0E703BCC0066E42F /* JackNetUnixSocket.h */; }; - 4BC3B6BD0E703BCC0066E42F /* JackNetUnixSocket.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BC3B6B90E703BCC0066E42F /* JackNetUnixSocket.cpp */; }; - 4BC3B6BE0E703BCC0066E42F /* JackNetUnixSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BC3B6BA0E703BCC0066E42F /* JackNetUnixSocket.h */; }; - 4BC3B6BF0E703BCC0066E42F /* JackNetUnixSocket.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BC3B6B90E703BCC0066E42F /* JackNetUnixSocket.cpp */; }; - 4BC3B6C00E703BCC0066E42F /* JackNetUnixSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BC3B6BA0E703BCC0066E42F /* JackNetUnixSocket.h */; }; 4BCBCE5D10C4FE3F00450FFE /* JackPhysicalMidiInput.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BCBCE5910C4FE3F00450FFE /* JackPhysicalMidiInput.cpp */; }; 4BCBCE5E10C4FE3F00450FFE /* JackPhysicalMidiInput.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BCBCE5A10C4FE3F00450FFE /* JackPhysicalMidiInput.h */; }; 4BCBCE5F10C4FE3F00450FFE /* JackPhysicalMidiOutput.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BCBCE5B10C4FE3F00450FFE /* JackPhysicalMidiOutput.cpp */; }; @@ -787,25 +785,13 @@ 4BDCDB951001FB9C00B15929 /* JackCoreMidiDriver.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BF339140F8B86DC0080FB5B /* JackCoreMidiDriver.h */; }; 4BDCDB971001FB9C00B15929 /* JackCoreMidiDriver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF339150F8B86DC0080FB5B /* JackCoreMidiDriver.cpp */; }; 4BDCDBB91001FCC000B15929 /* JackNetDriver.h in Headers */ = {isa = PBXBuildFile; fileRef = BA222ADD0DC882A5001A17F4 /* JackNetDriver.h */; }; - 4BDCDBBA1001FCC000B15929 /* JackNetInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B76C7690E5AB2DB00E2AC21 /* JackNetInterface.h */; }; - 4BDCDBBB1001FCC000B15929 /* JackNetUnixSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BC3B6BA0E703BCC0066E42F /* JackNetUnixSocket.h */; }; 4BDCDBBD1001FCC000B15929 /* JackNetDriver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BA222ADC0DC882A5001A17F4 /* JackNetDriver.cpp */; }; - 4BDCDBBE1001FCC000B15929 /* JackNetInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B76C7680E5AB2DB00E2AC21 /* JackNetInterface.cpp */; }; - 4BDCDBBF1001FCC000B15929 /* JackNetUnixSocket.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BC3B6B90E703BCC0066E42F /* JackNetUnixSocket.cpp */; }; 4BDCDBD11001FD0100B15929 /* JackWaitThreadedDriver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BBC93B80DF9736C002DF220 /* JackWaitThreadedDriver.cpp */; }; 4BDCDBD21001FD0200B15929 /* JackWaitThreadedDriver.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BBC93B90DF9736C002DF220 /* JackWaitThreadedDriver.h */; }; 4BDCDBD91001FD2D00B15929 /* JackNetManager.h in Headers */ = {isa = PBXBuildFile; fileRef = BA222AEC0DC883B3001A17F4 /* JackNetManager.h */; }; - 4BDCDBDA1001FD2D00B15929 /* JackNetInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B76C7690E5AB2DB00E2AC21 /* JackNetInterface.h */; }; - 4BDCDBDB1001FD2D00B15929 /* JackNetUnixSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BC3B6BA0E703BCC0066E42F /* JackNetUnixSocket.h */; }; - 4BDCDBDC1001FD2D00B15929 /* JackArgParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BF284170F31B4BC00B05BE3 /* JackArgParser.h */; }; 4BDCDBDE1001FD2D00B15929 /* JackNetManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BA222AEB0DC883B3001A17F4 /* JackNetManager.cpp */; }; - 4BDCDBDF1001FD2D00B15929 /* JackNetInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B76C7680E5AB2DB00E2AC21 /* JackNetInterface.cpp */; }; - 4BDCDBE01001FD2D00B15929 /* JackNetUnixSocket.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BC3B6B90E703BCC0066E42F /* JackNetUnixSocket.cpp */; }; - 4BDCDBE11001FD2D00B15929 /* JackMachTime.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BF5FBC80E878D24003D2374 /* JackMachTime.c */; }; - 4BDCDBE21001FD2D00B15929 /* JackArgParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF284160F31B4BC00B05BE3 /* JackArgParser.cpp */; }; 4BDCDBEE1001FD7300B15929 /* JackAudioAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B19B3070E2362E700DD4A82 /* JackAudioAdapter.h */; }; 4BDCDBEF1001FD7300B15929 /* JackAudioAdapterInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B19B3090E2362E700DD4A82 /* JackAudioAdapterInterface.h */; }; - 4BDCDBF01001FD7300B15929 /* JackException.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B19B30C0E2362E700DD4A82 /* JackException.h */; }; 4BDCDBF11001FD7300B15929 /* JackLibSampleRateResampler.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B19B30F0E2362E700DD4A82 /* JackLibSampleRateResampler.h */; }; 4BDCDBF21001FD7300B15929 /* JackCoreAudioAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BE5FED00E725C320020B576 /* JackCoreAudioAdapter.h */; }; 4BDCDBF41001FD7300B15929 /* JackAudioAdapter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B19B3060E2362E700DD4A82 /* JackAudioAdapter.cpp */; }; @@ -817,19 +803,14 @@ 4BDCDC091001FDA800B15929 /* JackArgParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF284160F31B4BC00B05BE3 /* JackArgParser.cpp */; }; 4BDCDC0A1001FDA800B15929 /* JackArgParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BF284170F31B4BC00B05BE3 /* JackArgParser.h */; }; 4BDCDC111001FDE300B15929 /* JackAudioAdapterInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B19B3090E2362E700DD4A82 /* JackAudioAdapterInterface.h */; }; - 4BDCDC121001FDE300B15929 /* JackException.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B19B30C0E2362E700DD4A82 /* JackException.h */; }; 4BDCDC131001FDE300B15929 /* JackLibSampleRateResampler.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B19B30F0E2362E700DD4A82 /* JackLibSampleRateResampler.h */; }; 4BDCDC141001FDE300B15929 /* JackNetAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B5E08E00E5B676C00BEE4E0 /* JackNetAdapter.h */; }; - 4BDCDC151001FDE300B15929 /* JackNetInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B76C7690E5AB2DB00E2AC21 /* JackNetInterface.h */; }; 4BDCDC161001FDE300B15929 /* JackAudioAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B19B3070E2362E700DD4A82 /* JackAudioAdapter.h */; }; - 4BDCDC171001FDE300B15929 /* JackNetUnixSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BC3B6BA0E703BCC0066E42F /* JackNetUnixSocket.h */; }; 4BDCDC191001FDE300B15929 /* JackAudioAdapterInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B19B3080E2362E700DD4A82 /* JackAudioAdapterInterface.cpp */; }; 4BDCDC1A1001FDE300B15929 /* JackLibSampleRateResampler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B19B30E0E2362E700DD4A82 /* JackLibSampleRateResampler.cpp */; }; 4BDCDC1B1001FDE300B15929 /* JackResampler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B19B3120E2362E700DD4A82 /* JackResampler.cpp */; }; 4BDCDC1C1001FDE300B15929 /* JackNetAdapter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B5E08DF0E5B676C00BEE4E0 /* JackNetAdapter.cpp */; }; - 4BDCDC1D1001FDE300B15929 /* JackNetInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B76C7680E5AB2DB00E2AC21 /* JackNetInterface.cpp */; }; 4BDCDC1E1001FDE300B15929 /* JackAudioAdapter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B19B3060E2362E700DD4A82 /* JackAudioAdapter.cpp */; }; - 4BDCDC1F1001FDE300B15929 /* JackNetUnixSocket.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BC3B6B90E703BCC0066E42F /* JackNetUnixSocket.cpp */; }; 4BE3225A0CC611EF00AFA640 /* types.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B6C737F0CC60A6D001AFFD4 /* types.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4BE3225B0CC611F500AFA640 /* types.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B6C737F0CC60A6D001AFFD4 /* types.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4BE4CC010CDA153400CCF5BB /* JackTools.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BE4CBFF0CDA153400CCF5BB /* JackTools.cpp */; }; @@ -849,8 +830,6 @@ 4BECB2FA0F4451C10091B70A /* JackProcessSync.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BECB2F40F4451C10091B70A /* JackProcessSync.h */; }; 4BECB2FB0F4451C10091B70A /* JackProcessSync.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BECB2F30F4451C10091B70A /* JackProcessSync.cpp */; }; 4BECB2FC0F4451C10091B70A /* JackProcessSync.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BECB2F40F4451C10091B70A /* JackProcessSync.h */; }; - 4BF284180F31B4BC00B05BE3 /* JackArgParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF284160F31B4BC00B05BE3 /* JackArgParser.cpp */; }; - 4BF284190F31B4BC00B05BE3 /* JackArgParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BF284170F31B4BC00B05BE3 /* JackArgParser.h */; }; 4BF2841A0F31B4BC00B05BE3 /* JackArgParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF284160F31B4BC00B05BE3 /* JackArgParser.cpp */; }; 4BF2841B0F31B4BC00B05BE3 /* JackArgParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BF284170F31B4BC00B05BE3 /* JackArgParser.h */; }; 4BF3391A0F8B86DC0080FB5B /* JackCoreMidiDriver.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BF339140F8B86DC0080FB5B /* JackCoreMidiDriver.h */; }; @@ -865,7 +844,6 @@ 4BF520590CB8D1010037470E /* timestamps.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BF520580CB8D1010037470E /* timestamps.h */; settings = {ATTRIBUTES = (); }; }; 4BF5205A0CB8D1010037470E /* timestamps.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BF520580CB8D1010037470E /* timestamps.h */; settings = {ATTRIBUTES = (); }; }; 4BF5FBBC0E878B9C003D2374 /* JackPosixServerLaunch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF5FBBA0E878B9C003D2374 /* JackPosixServerLaunch.cpp */; }; - 4BF5FBC90E878D24003D2374 /* JackMachTime.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BF5FBC80E878D24003D2374 /* JackMachTime.c */; }; 4BF5FBCA0E878D24003D2374 /* JackMachTime.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BF5FBC80E878D24003D2374 /* JackMachTime.c */; }; 4BF5FBCB0E878D24003D2374 /* JackMachTime.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BF5FBC80E878D24003D2374 /* JackMachTime.c */; }; 4BFA5E9F0DEC4DD900FA4CDB /* testMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BFA5E9E0DEC4DD900FA4CDB /* testMutex.cpp */; }; @@ -3077,7 +3055,6 @@ files = ( 4B19B3140E2362E800DD4A82 /* JackAudioAdapter.h in Headers */, 4B19B3160E2362E800DD4A82 /* JackAudioAdapterInterface.h in Headers */, - 4B19B3190E2362E800DD4A82 /* JackException.h in Headers */, 4B19B31C0E2362E800DD4A82 /* JackLibSampleRateResampler.h in Headers */, 4BE5FED20E725C320020B576 /* JackCoreAudioAdapter.h in Headers */, ); @@ -3247,6 +3224,8 @@ 4BCBCE6410C4FE3F00450FFE /* JackPhysicalMidiOutput.h in Headers */, 4B88D04311298BEE007A87C1 /* weakjack.h in Headers */, 4B88D04411298BEE007A87C1 /* weakmacros.h in Headers */, + 4BC2CA5A113C6CB80076717C /* JackNetInterface.h in Headers */, + 4BC2CA5C113C6CC00076717C /* JackNetUnixSocket.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3551,12 +3530,9 @@ buildActionMask = 2147483647; files = ( 4B5E08C30E5B66EE00BEE4E0 /* JackAudioAdapterInterface.h in Headers */, - 4B5E08C40E5B66EE00BEE4E0 /* JackException.h in Headers */, 4B5E08C60E5B66EE00BEE4E0 /* JackLibSampleRateResampler.h in Headers */, 4B5E08E20E5B676D00BEE4E0 /* JackNetAdapter.h in Headers */, - 4B5E08EC0E5B67EB00BEE4E0 /* JackNetInterface.h in Headers */, 4B5E08EF0E5B680200BEE4E0 /* JackAudioAdapter.h in Headers */, - 4BC3B6C00E703BCC0066E42F /* JackNetUnixSocket.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3690,6 +3666,8 @@ 4BCBCE6010C4FE3F00450FFE /* JackPhysicalMidiOutput.h in Headers */, 4B88D03D11298BEE007A87C1 /* weakjack.h in Headers */, 4B88D03E11298BEE007A87C1 /* weakmacros.h in Headers */, + 4BC2CA56113C6C940076717C /* JackNetInterface.h in Headers */, + 4BC2CA58113C6C9C0076717C /* JackNetUnixSocket.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3869,6 +3847,8 @@ 4BCBCE6810C4FE3F00450FFE /* JackPhysicalMidiOutput.h in Headers */, 4B88D04511298BEE007A87C1 /* weakjack.h in Headers */, 4B88D04611298BEE007A87C1 /* weakmacros.h in Headers */, + 4BC2CA5E113C6CCA0076717C /* JackNetInterface.h in Headers */, + 4BC2CA60113C6CD20076717C /* JackNetUnixSocket.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3913,8 +3893,6 @@ buildActionMask = 2147483647; files = ( 4BDCDBB91001FCC000B15929 /* JackNetDriver.h in Headers */, - 4BDCDBBA1001FCC000B15929 /* JackNetInterface.h in Headers */, - 4BDCDBBB1001FCC000B15929 /* JackNetUnixSocket.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3923,9 +3901,6 @@ buildActionMask = 2147483647; files = ( 4BDCDBD91001FD2D00B15929 /* JackNetManager.h in Headers */, - 4BDCDBDA1001FD2D00B15929 /* JackNetInterface.h in Headers */, - 4BDCDBDB1001FD2D00B15929 /* JackNetUnixSocket.h in Headers */, - 4BDCDBDC1001FD2D00B15929 /* JackArgParser.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3935,7 +3910,6 @@ files = ( 4BDCDBEE1001FD7300B15929 /* JackAudioAdapter.h in Headers */, 4BDCDBEF1001FD7300B15929 /* JackAudioAdapterInterface.h in Headers */, - 4BDCDBF01001FD7300B15929 /* JackException.h in Headers */, 4BDCDBF11001FD7300B15929 /* JackLibSampleRateResampler.h in Headers */, 4BDCDBF21001FD7300B15929 /* JackCoreAudioAdapter.h in Headers */, ); @@ -3946,12 +3920,9 @@ buildActionMask = 2147483647; files = ( 4BDCDC111001FDE300B15929 /* JackAudioAdapterInterface.h in Headers */, - 4BDCDC121001FDE300B15929 /* JackException.h in Headers */, 4BDCDC131001FDE300B15929 /* JackLibSampleRateResampler.h in Headers */, 4BDCDC141001FDE300B15929 /* JackNetAdapter.h in Headers */, - 4BDCDC151001FDE300B15929 /* JackNetInterface.h in Headers */, 4BDCDC161001FDE300B15929 /* JackAudioAdapter.h in Headers */, - 4BDCDC171001FDE300B15929 /* JackNetUnixSocket.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4038,8 +4009,6 @@ buildActionMask = 2147483647; files = ( BA222ADF0DC882A5001A17F4 /* JackNetDriver.h in Headers */, - 4B76C76B0E5AB2DB00E2AC21 /* JackNetInterface.h in Headers */, - 4BC3B6BC0E703BCC0066E42F /* JackNetUnixSocket.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4048,9 +4017,6 @@ buildActionMask = 2147483647; files = ( BA222AEE0DC883B3001A17F4 /* JackNetManager.h in Headers */, - 4B76C76D0E5AB2DB00E2AC21 /* JackNetInterface.h in Headers */, - 4BC3B6BE0E703BCC0066E42F /* JackNetUnixSocket.h in Headers */, - 4BF284190F31B4BC00B05BE3 /* JackArgParser.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6453,6 +6419,8 @@ 4BDCDC091001FDA800B15929 /* JackArgParser.cpp in Sources */, 4BCBCE6110C4FE3F00450FFE /* JackPhysicalMidiInput.cpp in Sources */, 4BCBCE6310C4FE3F00450FFE /* JackPhysicalMidiOutput.cpp in Sources */, + 4BC2CA59113C6CB60076717C /* JackNetInterface.cpp in Sources */, + 4BC2CA5B113C6CBE0076717C /* JackNetUnixSocket.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6779,9 +6747,7 @@ 4B5E08CD0E5B66EE00BEE4E0 /* JackLibSampleRateResampler.cpp in Sources */, 4B5E08CE0E5B66EE00BEE4E0 /* JackResampler.cpp in Sources */, 4B5E08E10E5B676C00BEE4E0 /* JackNetAdapter.cpp in Sources */, - 4B5E08EB0E5B67EA00BEE4E0 /* JackNetInterface.cpp in Sources */, 4B5E08EE0E5B680200BEE4E0 /* JackAudioAdapter.cpp in Sources */, - 4BC3B6BF0E703BCC0066E42F /* JackNetUnixSocket.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6891,6 +6857,8 @@ 4BF339230F8B873E0080FB5B /* JackMidiDriver.cpp in Sources */, 4BCBCE5D10C4FE3F00450FFE /* JackPhysicalMidiInput.cpp in Sources */, 4BCBCE5F10C4FE3F00450FFE /* JackPhysicalMidiOutput.cpp in Sources */, + 4BC2CA55113C6C930076717C /* JackNetInterface.cpp in Sources */, + 4BC2CA57113C6C9B0076717C /* JackNetUnixSocket.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7071,6 +7039,8 @@ 4BA339A410B2E36800190E3B /* JackArgParser.cpp in Sources */, 4BCBCE6510C4FE3F00450FFE /* JackPhysicalMidiInput.cpp in Sources */, 4BCBCE6710C4FE3F00450FFE /* JackPhysicalMidiOutput.cpp in Sources */, + 4BC2CA5D113C6CC90076717C /* JackNetInterface.cpp in Sources */, + 4BC2CA5F113C6CD10076717C /* JackNetUnixSocket.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7119,8 +7089,6 @@ buildActionMask = 2147483647; files = ( 4BDCDBBD1001FCC000B15929 /* JackNetDriver.cpp in Sources */, - 4BDCDBBE1001FCC000B15929 /* JackNetInterface.cpp in Sources */, - 4BDCDBBF1001FCC000B15929 /* JackNetUnixSocket.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7129,10 +7097,6 @@ buildActionMask = 2147483647; files = ( 4BDCDBDE1001FD2D00B15929 /* JackNetManager.cpp in Sources */, - 4BDCDBDF1001FD2D00B15929 /* JackNetInterface.cpp in Sources */, - 4BDCDBE01001FD2D00B15929 /* JackNetUnixSocket.cpp in Sources */, - 4BDCDBE11001FD2D00B15929 /* JackMachTime.c in Sources */, - 4BDCDBE21001FD2D00B15929 /* JackArgParser.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7157,9 +7121,7 @@ 4BDCDC1A1001FDE300B15929 /* JackLibSampleRateResampler.cpp in Sources */, 4BDCDC1B1001FDE300B15929 /* JackResampler.cpp in Sources */, 4BDCDC1C1001FDE300B15929 /* JackNetAdapter.cpp in Sources */, - 4BDCDC1D1001FDE300B15929 /* JackNetInterface.cpp in Sources */, 4BDCDC1E1001FDE300B15929 /* JackAudioAdapter.cpp in Sources */, - 4BDCDC1F1001FDE300B15929 /* JackNetUnixSocket.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7256,8 +7218,6 @@ buildActionMask = 2147483647; files = ( BA222ADE0DC882A5001A17F4 /* JackNetDriver.cpp in Sources */, - 4B76C76A0E5AB2DB00E2AC21 /* JackNetInterface.cpp in Sources */, - 4BC3B6BB0E703BCC0066E42F /* JackNetUnixSocket.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7266,10 +7226,6 @@ buildActionMask = 2147483647; files = ( BA222AED0DC883B3001A17F4 /* JackNetManager.cpp in Sources */, - 4B76C76C0E5AB2DB00E2AC21 /* JackNetInterface.cpp in Sources */, - 4BC3B6BD0E703BCC0066E42F /* JackNetUnixSocket.cpp in Sources */, - 4BF5FBC90E878D24003D2374 /* JackMachTime.c in Sources */, - 4BF284180F31B4BC00B05BE3 /* JackArgParser.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/macosx/coreaudio/JackCoreAudioAdapter.cpp b/macosx/coreaudio/JackCoreAudioAdapter.cpp index cb05d622..8e25b58d 100644 --- a/macosx/coreaudio/JackCoreAudioAdapter.cpp +++ b/macosx/coreaudio/JackCoreAudioAdapter.cpp @@ -545,10 +545,23 @@ int JackCoreAudioAdapter::SetupDevices(const char* capture_driver_uid, // Creates aggregate device AudioDeviceID captureID, playbackID; - if (GetDeviceIDFromUID(capture_driver_uid, &captureID) != noErr) - return -1; - if (GetDeviceIDFromUID(playback_driver_uid, &playbackID) != noErr) - return -1; + + if (GetDeviceIDFromUID(capture_driver_uid, &captureID) != noErr) { + jack_log("Will take default input"); + if (GetDefaultInputDevice(&captureID) != noErr) { + jack_error("Cannot open default input device"); + return -1; + } + } + + if (GetDeviceIDFromUID(playback_driver_uid, &playbackID) != noErr) { + jack_log("Will take default output"); + if (GetDefaultOutputDevice(&playbackID) != noErr) { + jack_error("Cannot open default output device"); + return -1; + } + } + if (CreateAggregateDevice(captureID, playbackID, samplerate, &fDeviceID) != noErr) return -1; } @@ -558,7 +571,7 @@ int JackCoreAudioAdapter::SetupDevices(const char* capture_driver_uid, jack_log("JackCoreAudioAdapter::Open capture only"); if (GetDeviceIDFromUID(capture_driver_uid, &fDeviceID) != noErr) { if (GetDefaultInputDevice(&fDeviceID) != noErr) { - jack_error("Cannot open default device"); + jack_error("Cannot open default input device"); return -1; } } @@ -572,7 +585,7 @@ int JackCoreAudioAdapter::SetupDevices(const char* capture_driver_uid, jack_log("JackCoreAudioAdapter::Open playback only"); if (GetDeviceIDFromUID(playback_driver_uid, &fDeviceID) != noErr) { if (GetDefaultOutputDevice(&fDeviceID) != noErr) { - jack_error("Cannot open default device"); + jack_error("Cannot open default output device"); return -1; } } @@ -583,14 +596,31 @@ int JackCoreAudioAdapter::SetupDevices(const char* capture_driver_uid, // Use default driver in duplex mode } else { - jack_log("JackCoreAudioAdapter::Open default driver"); + jack_log("JackCoreAudioDriver::Open default driver"); if (GetDefaultDevice(&fDeviceID) != noErr) { - jack_error("Cannot open default device"); - return -1; - } - if (GetDeviceNameFromID(fDeviceID, capture_driver_name) != noErr || GetDeviceNameFromID(fDeviceID, playback_driver_name) != noErr) { - jack_error("Cannot get device name from device ID"); - return -1; + jack_error("Cannot open default device in duplex mode, so aggregate default input and default output"); + + // Creates aggregate device + AudioDeviceID captureID, playbackID; + + if (GetDeviceIDFromUID(capture_driver_uid, &captureID) != noErr) { + jack_log("Will take default input"); + if (GetDefaultInputDevice(&captureID) != noErr) { + jack_error("Cannot open default input device"); + return -1; + } + } + + if (GetDeviceIDFromUID(playback_driver_uid, &playbackID) != noErr) { + jack_log("Will take default output"); + if (GetDefaultOutputDevice(&playbackID) != noErr) { + jack_error("Cannot open default output device"); + return -1; + } + } + + if (CreateAggregateDevice(captureID, playbackID, samplerate, &fDeviceID) != noErr) + return -1; } } diff --git a/macosx/coreaudio/JackCoreAudioDriver.cpp b/macosx/coreaudio/JackCoreAudioDriver.cpp index 2441375c..6f053008 100644 --- a/macosx/coreaudio/JackCoreAudioDriver.cpp +++ b/macosx/coreaudio/JackCoreAudioDriver.cpp @@ -922,7 +922,7 @@ int JackCoreAudioDriver::SetupDevices(const char* capture_driver_uid, if (GetDeviceIDFromUID(capture_driver_uid, &captureID) != noErr) { jack_log("Will take default input"); if (GetDefaultInputDevice(&captureID) != noErr) { - jack_error("Cannot open default device"); + jack_error("Cannot open default input device"); return -1; } } @@ -930,7 +930,7 @@ int JackCoreAudioDriver::SetupDevices(const char* capture_driver_uid, if (GetDeviceIDFromUID(playback_driver_uid, &playbackID) != noErr) { jack_log("Will take default output"); if (GetDefaultOutputDevice(&playbackID) != noErr) { - jack_error("Cannot open default device"); + jack_error("Cannot open default output device"); return -1; } } @@ -945,7 +945,7 @@ int JackCoreAudioDriver::SetupDevices(const char* capture_driver_uid, if (GetDeviceIDFromUID(capture_driver_uid, &fDeviceID) != noErr) { jack_log("Will take default input"); if (GetDefaultInputDevice(&fDeviceID) != noErr) { - jack_error("Cannot open default device"); + jack_error("Cannot open default input device"); return -1; } } @@ -960,7 +960,7 @@ int JackCoreAudioDriver::SetupDevices(const char* capture_driver_uid, if (GetDeviceIDFromUID(playback_driver_uid, &fDeviceID) != noErr) { jack_log("Will take default output"); if (GetDefaultOutputDevice(&fDeviceID) != noErr) { - jack_error("Cannot open default device"); + jack_error("Cannot open default output device"); return -1; } } @@ -973,12 +973,29 @@ int JackCoreAudioDriver::SetupDevices(const char* capture_driver_uid, } else { jack_log("JackCoreAudioDriver::Open default driver"); if (GetDefaultDevice(&fDeviceID) != noErr) { - jack_error("Cannot open default device"); - return -1; - } - if (GetDeviceNameFromID(fDeviceID, capture_driver_name) != noErr || GetDeviceNameFromID(fDeviceID, playback_driver_name) != noErr) { - jack_error("Cannot get device name from device ID"); - return -1; + jack_error("Cannot open default device in duplex mode, so aggregate default input and default output"); + + // Creates aggregate device + AudioDeviceID captureID, playbackID; + + if (GetDeviceIDFromUID(capture_driver_uid, &captureID) != noErr) { + jack_log("Will take default input"); + if (GetDefaultInputDevice(&captureID) != noErr) { + jack_error("Cannot open default input device"); + return -1; + } + } + + if (GetDeviceIDFromUID(playback_driver_uid, &playbackID) != noErr) { + jack_log("Will take default output"); + if (GetDefaultOutputDevice(&playbackID) != noErr) { + jack_error("Cannot open default output device"); + return -1; + } + } + + if (CreateAggregateDevice(captureID, playbackID, samplerate, &fDeviceID) != noErr) + return -1; } } diff --git a/macosx/iphone/iPhoneNet.xcodeproj/project.pbxproj b/macosx/iphone/iPhoneNet.xcodeproj/project.pbxproj index 5ea267ea..31df802d 100755 --- a/macosx/iphone/iPhoneNet.xcodeproj/project.pbxproj +++ b/macosx/iphone/iPhoneNet.xcodeproj/project.pbxproj @@ -986,6 +986,7 @@ COPY_PHASE_STRIP = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = iPhoneNet_Prefix.pch; + GCC_VERSION = ""; HEADER_SEARCH_PATHS = ( ../../macosx, ../../common/jack, diff --git a/wscript b/wscript index 5ced3c2c..bc88c490 100644 --- a/wscript +++ b/wscript @@ -69,7 +69,10 @@ def set_options(opt): opt.add_option('--mixed', action='store_true', default=False, help='Build with 32/64 bits mixed mode') opt.add_option('--clients', default=64, type="int", dest="clients", help='Maximum number of JACK clients') opt.add_option('--ports-per-application', default=768, type="int", dest="application_ports", help='Maximum number of ports per application') - opt.add_option('--debug', action='store_true', default=False, dest='debug', help="Build debuggable binaries") + opt.add_option('--debug', action='store_true', default=False, dest='debug', help='Build debuggable binaries') + opt.add_option('--firewire', action='store_true', default=False, help='Enable FireWire driver (FFADO)') + opt.add_option('--freebob', action='store_true', default=False, help='Enable FreeBob driver') + opt.add_option('--alsa', action='store_true', default=False, help='Enable ALSA driver') opt.sub_options('dbus') def configure(conf): @@ -110,6 +113,15 @@ def configure(conf): conf.sub_config('common') if conf.env['IS_LINUX']: conf.sub_config('linux') + if Options.options.alsa and not conf.env['BUILD_DRIVER_ALSA']: + conf.fatal('ALSA driver was explicitly requested but cannot be built') + if Options.options.freebob and not conf.env['BUILD_DRIVER_FREEBOB']: + conf.fatal('FreeBob driver was explicitly requested but cannot be built') + if Options.options.firewire and not conf.env['BUILD_DRIVER_FFADO']: + conf.fatal('FFADO driver was explicitly requested but cannot be built') + conf.env['BUILD_DRIVER_ALSA'] = Options.options.alsa + conf.env['BUILD_DRIVER_FFADO'] = Options.options.firewire + conf.env['BUILD_DRIVER_FREEBOB'] = Options.options.freebob if Options.options.dbus: conf.sub_config('dbus') if conf.env['BUILD_JACKDBUS'] != True: