From ecb84b5f9fd702e7cc69c2e897cfd3d662bece61 Mon Sep 17 00:00:00 2001 From: sletz Date: Fri, 15 Apr 2011 09:39:09 +0000 Subject: [PATCH] rebase from trunk 4238:4306 git-svn-id: http://subversion.jackaudio.org/jack/jack2/branches/libjacknet@4307 0c269be4-1314-0410-8aa9-9f06e86f4224 --- ChangeLog | 25 + README | 4 +- common/JackAudioDriver.cpp | 122 +- common/JackAudioDriver.h | 9 +- common/JackChannel.h | 3 +- common/JackClient.h | 1 - common/JackClientControl.h | 2 +- common/JackConstants.h | 4 +- common/JackControlAPI.cpp | 31 +- common/JackControlAPI.h | 27 +- common/JackDriver.cpp | 60 +- common/JackDriver.h | 21 +- common/JackDriverLoader.cpp | 22 +- common/JackDriverLoader.h | 2 +- common/JackDummyDriver.cpp | 1 + common/JackExternalClient.cpp | 1 + common/JackFreewheelDriver.cpp | 74 +- common/JackFreewheelDriver.h | 10 + common/JackLibGlobals.h | 8 + common/JackLibSampleRateResampler.cpp | 4 +- common/JackLoopbackDriver.cpp | 55 +- common/JackLoopbackDriver.h | 13 +- common/JackMidiAsyncQueue.cpp | 103 ++ common/JackMidiAsyncQueue.h | 98 + common/JackMidiAsyncWaitQueue.cpp | 85 + common/JackMidiAsyncWaitQueue.h | 99 + common/JackMidiBufferReadQueue.cpp | 67 + common/JackMidiBufferReadQueue.h | 60 + common/JackMidiBufferWriteQueue.cpp | 65 + common/JackMidiBufferWriteQueue.h | 62 + common/JackMidiDriver.cpp | 118 +- common/JackMidiDriver.h | 26 +- common/JackMidiPort.cpp | 7 +- common/JackMidiRawInputWriteQueue.cpp | 300 ++++ common/JackMidiRawInputWriteQueue.h | 170 ++ common/JackMidiRawOutputWriteQueue.cpp | 228 +++ common/JackMidiRawOutputWriteQueue.h | 147 ++ common/JackMidiReadQueue.cpp | 27 + common/JackMidiReadQueue.h | 55 + common/JackMidiReceiveQueue.cpp | 27 + common/JackMidiReceiveQueue.h | 42 + common/JackMidiSendQueue.cpp | 34 + common/JackMidiSendQueue.h | 52 + common/JackMidiUtil.cpp | 120 ++ common/JackMidiUtil.h | 102 ++ common/JackMidiWriteQueue.cpp | 27 + common/JackMidiWriteQueue.h | 82 + common/JackNetAdapter.cpp | 46 +- common/JackNetAdapter.h | 58 +- common/JackNetDriver.cpp | 94 +- common/JackNetDriver.h | 9 +- common/JackNetInterface.cpp | 90 +- common/JackNetInterface.h | 38 +- common/JackNetManager.cpp | 45 +- common/JackNetManager.h | 9 + common/JackNetOneDriver.cpp | 1599 ++++++++--------- common/JackNetOneDriver.h | 129 +- common/JackNetTool.cpp | 2 + common/JackNetTool.h | 8 +- common/JackPhysicalMidiInput.cpp | 287 --- common/JackPhysicalMidiInput.h | 146 -- common/JackPhysicalMidiOutput.cpp | 320 ---- common/JackPhysicalMidiOutput.h | 118 -- common/JackPort.h | 2 +- common/JackServer.cpp | 4 +- common/JackSession.h | 69 + common/JackThreadedDriver.cpp | 21 +- common/JackThreadedDriver.h | 9 +- common/JackWaitThreadedDriver.h | 48 +- common/JackWeakAPI.cpp | 12 +- common/Jackdmp.cpp | 41 +- common/jack/jack.h | 6 +- common/jack/weakmacros.h | 33 +- common/netjack.c | 5 +- common/netjack_packet.c | 5 +- common/wscript | 17 +- dbus/controller.c | 110 +- dbus/controller_iface_configure.c | 193 +- dbus/controller_iface_control.c | 46 +- dbus/controller_internal.h | 13 +- dbus/jackdbus.h | 1 + doxyfile | 2 +- example-clients/jack_control | 22 + example-clients/latent_client.c | 17 +- example-clients/midi_latency_test.c | 777 ++++++++ example-clients/showtime.c | 2 +- example-clients/thru_client.c | 2 +- example-clients/tw.c | 46 +- example-clients/wait.c | 2 +- example-clients/wscript | 1 + example-clients/zombie.c | 18 +- linux/alsa/JackAlsaAdapter.cpp | 8 +- linux/alsa/JackAlsaDriver.cpp | 51 +- linux/alsa/JackAlsaDriver.h | 2 + linux/alsa/alsa_driver.c | 4 +- linux/alsarawmidi/JackALSARawMidiDriver.cpp | 614 +++++++ linux/alsarawmidi/JackALSARawMidiDriver.h | 98 + .../alsarawmidi/JackALSARawMidiInputPort.cpp | 143 ++ linux/alsarawmidi/JackALSARawMidiInputPort.h | 62 + .../alsarawmidi/JackALSARawMidiOutputPort.cpp | 172 ++ linux/alsarawmidi/JackALSARawMidiOutputPort.h | 63 + linux/alsarawmidi/JackALSARawMidiPort.cpp | 191 ++ linux/alsarawmidi/JackALSARawMidiPort.h | 72 + .../JackALSARawMidiReceiveQueue.cpp | 54 + .../alsarawmidi/JackALSARawMidiReceiveQueue.h | 51 + .../alsarawmidi/JackALSARawMidiSendQueue.cpp | 59 + linux/alsarawmidi/JackALSARawMidiSendQueue.h | 51 + linux/firewire/JackFFADODriver.cpp | 38 +- linux/firewire/JackFFADOMidiInput.cpp | 59 - linux/firewire/JackFFADOMidiInputPort.cpp | 94 + linux/firewire/JackFFADOMidiInputPort.h | 51 + linux/firewire/JackFFADOMidiOutput.cpp | 60 - linux/firewire/JackFFADOMidiOutputPort.cpp | 98 + linux/firewire/JackFFADOMidiOutputPort.h | 53 + linux/firewire/JackFFADOMidiReceiveQueue.cpp | 55 + ...idiInput.h => JackFFADOMidiReceiveQueue.h} | 34 +- linux/firewire/JackFFADOMidiSendQueue.cpp | 64 + ...OMidiOutput.h => JackFFADOMidiSendQueue.h} | 37 +- linux/wscript | 18 +- macosx/Jack-Info.plist | 4 +- macosx/JackMachThread.h | 2 +- macosx/Jackdmp.xcodeproj/project.pbxproj | 522 +++++- macosx/coreaudio/JackCoreAudioAdapter.cpp | 73 +- macosx/coreaudio/JackCoreAudioDriver.cpp | 121 +- macosx/coreaudio/JackCoreAudioDriver.h | 16 +- macosx/coremidi/JackCoreMidiDriver.cpp | 791 +++++--- macosx/coremidi/JackCoreMidiDriver.h | 94 +- macosx/coremidi/JackCoreMidiInputPort.cpp | 184 ++ macosx/coremidi/JackCoreMidiInputPort.h | 73 + macosx/coremidi/JackCoreMidiOutputPort.cpp | 249 +++ macosx/coremidi/JackCoreMidiOutputPort.h | 90 + .../JackCoreMidiPhysicalInputPort.cpp | 53 + .../coremidi/JackCoreMidiPhysicalInputPort.h | 45 + .../JackCoreMidiPhysicalOutputPort.cpp | 78 + .../coremidi/JackCoreMidiPhysicalOutputPort.h | 55 + macosx/coremidi/JackCoreMidiPort.cpp | 93 + macosx/coremidi/JackCoreMidiPort.h | 67 + macosx/coremidi/JackCoreMidiUtil.cpp | 43 + macosx/coremidi/JackCoreMidiUtil.h | 39 + .../coremidi/JackCoreMidiVirtualInputPort.cpp | 75 + .../coremidi/JackCoreMidiVirtualInputPort.h | 50 + .../JackCoreMidiVirtualOutputPort.cpp | 72 + .../coremidi/JackCoreMidiVirtualOutputPort.h | 49 + posix/JackNetUnixSocket.h | 3 + posix/JackPosixThread.cpp | 2 + posix/JackSocketServerChannel.cpp | 2 +- solaris/oss/JackBoomerDriver.cpp | 274 +-- solaris/oss/JackOSSDriver.cpp | 178 +- tests/test.cpp | 8 +- windows/JackNetWinSocket.h | 15 +- windows/JackRouter/JackRouter.cpp | 25 +- windows/JackRouter/JackRouter.vcxproj | 280 +++ windows/JackRouter/JackRouter.vcxproj.filters | 69 + windows/JackRouter/JackRouter.vcxproj.user | 3 + windows/JackRouter/README | 6 +- windows/JackRouter/resource.rc | 37 +- windows/JackWinNamedPipeServerChannel.cpp | 2 +- windows/JackWinThread.cpp | 2 +- ...samplerate-0.dll => libsamplerate_x86.dll} | Bin 1482752 -> 1485824 bytes windows/Release/bin/portaudio_x86.dll | Bin 79872 -> 193024 bytes .../Release64/bin/libsamplerate_x86_64.dll | Bin 0 -> 1492992 bytes windows/Release64/bin/portaudio_x86_64.dll | Bin 0 -> 220672 bytes windows/Setup/JackRouter.dll | Bin 32768 -> 29184 bytes windows/Setup/JackRouter64.dll | Bin 0 -> 34816 bytes windows/Setup/README | 9 +- windows/Setup/jack.ci | 14 +- windows/Setup/jack64.ci | 155 ++ windows/Setup/src/gpl_installer.rtf | Bin 862 -> 1001 bytes windows/jack_audioadapter.cbp | 315 ++-- windows/jack_connect.cbp | 79 +- windows/jack_disconnect.cbp | 79 +- windows/jack_dummy.cbp | 93 +- windows/jack_latent_client.cbp | 77 +- windows/jack_load.cbp | 78 +- windows/jack_loopback.cbp | 91 +- windows/jack_lsp.cbp | 77 +- windows/jack_metro.cbp | 79 +- windows/jack_netadapter.cbp | 99 +- windows/jack_netdriver.cbp | 91 +- windows/jack_netmanager.cbp | 90 +- windows/jack_netonedriver.cbp | 91 +- windows/jack_netsource.cbp | 287 +-- windows/jack_portaudio.cbp | 124 +- windows/jack_test.cbp | 79 +- windows/jack_unload.cbp | 76 +- windows/jack_winmme.cbp | 118 +- windows/jackaudioadapter.rc | 8 +- windows/jackd.cbp | 105 +- windows/jackd.rc | 8 +- windows/jackd.workspace | 71 +- windows/jackdummydriver.rc | 8 +- windows/jackloopbackdriver.rc | 8 +- windows/jacknetadapter.rc | 8 +- windows/jacknetdriver.rc | 8 +- windows/jacknetmanager.rc | 8 +- windows/jacknetonedriver.rc | 8 +- windows/jackportaudio.rc | 8 +- windows/jackwinmme.rc | 8 +- windows/libjack.cbp | 156 +- windows/libjack.rc | 8 +- windows/libjackserver.cbp | 134 +- windows/libjackserver.rc | 8 +- windows/multiple_metro.cbp | 78 +- windows/portaudio/JackPortAudioAdapter.cpp | 11 +- windows/portaudio/JackPortAudioDevices.cpp | 14 +- windows/portaudio/JackPortAudioDriver.cpp | 161 +- windows/portaudio/JackPortAudioDriver.h | 3 + windows/portaudio/portaudio_x86.lib | Bin 11074 -> 0 bytes windows/resource.rc | 10 +- windows/winmme/JackWinMMEDriver.cpp | 561 +++--- windows/winmme/JackWinMMEDriver.h | 77 +- windows/winmme/JackWinMMEInputPort.cpp | 298 +++ windows/winmme/JackWinMMEInputPort.h | 85 + windows/winmme/JackWinMMEOutputPort.cpp | 372 ++++ windows/winmme/JackWinMMEOutputPort.h | 89 + windows/winmme/JackWinMMEPort.cpp | 69 + windows/winmme/JackWinMMEPort.h | 59 + wscript | 2 +- 218 files changed, 13824 insertions(+), 4252 deletions(-) create mode 100644 common/JackMidiAsyncQueue.cpp create mode 100644 common/JackMidiAsyncQueue.h create mode 100644 common/JackMidiAsyncWaitQueue.cpp create mode 100644 common/JackMidiAsyncWaitQueue.h create mode 100644 common/JackMidiBufferReadQueue.cpp create mode 100644 common/JackMidiBufferReadQueue.h create mode 100644 common/JackMidiBufferWriteQueue.cpp create mode 100644 common/JackMidiBufferWriteQueue.h create mode 100644 common/JackMidiRawInputWriteQueue.cpp create mode 100644 common/JackMidiRawInputWriteQueue.h create mode 100644 common/JackMidiRawOutputWriteQueue.cpp create mode 100644 common/JackMidiRawOutputWriteQueue.h create mode 100644 common/JackMidiReadQueue.cpp create mode 100644 common/JackMidiReadQueue.h create mode 100644 common/JackMidiReceiveQueue.cpp create mode 100644 common/JackMidiReceiveQueue.h create mode 100644 common/JackMidiSendQueue.cpp create mode 100644 common/JackMidiSendQueue.h create mode 100644 common/JackMidiUtil.cpp create mode 100644 common/JackMidiUtil.h create mode 100644 common/JackMidiWriteQueue.cpp create mode 100644 common/JackMidiWriteQueue.h delete mode 100644 common/JackPhysicalMidiInput.cpp delete mode 100644 common/JackPhysicalMidiInput.h delete mode 100644 common/JackPhysicalMidiOutput.cpp delete mode 100644 common/JackPhysicalMidiOutput.h create mode 100644 common/JackSession.h create mode 100644 example-clients/midi_latency_test.c create mode 100755 linux/alsarawmidi/JackALSARawMidiDriver.cpp create mode 100755 linux/alsarawmidi/JackALSARawMidiDriver.h create mode 100755 linux/alsarawmidi/JackALSARawMidiInputPort.cpp create mode 100755 linux/alsarawmidi/JackALSARawMidiInputPort.h create mode 100755 linux/alsarawmidi/JackALSARawMidiOutputPort.cpp create mode 100755 linux/alsarawmidi/JackALSARawMidiOutputPort.h create mode 100755 linux/alsarawmidi/JackALSARawMidiPort.cpp create mode 100755 linux/alsarawmidi/JackALSARawMidiPort.h create mode 100755 linux/alsarawmidi/JackALSARawMidiReceiveQueue.cpp create mode 100755 linux/alsarawmidi/JackALSARawMidiReceiveQueue.h create mode 100755 linux/alsarawmidi/JackALSARawMidiSendQueue.cpp create mode 100755 linux/alsarawmidi/JackALSARawMidiSendQueue.h delete mode 100644 linux/firewire/JackFFADOMidiInput.cpp create mode 100644 linux/firewire/JackFFADOMidiInputPort.cpp create mode 100644 linux/firewire/JackFFADOMidiInputPort.h delete mode 100644 linux/firewire/JackFFADOMidiOutput.cpp create mode 100644 linux/firewire/JackFFADOMidiOutputPort.cpp create mode 100644 linux/firewire/JackFFADOMidiOutputPort.h create mode 100644 linux/firewire/JackFFADOMidiReceiveQueue.cpp rename linux/firewire/{JackFFADOMidiInput.h => JackFFADOMidiReceiveQueue.h} (59%) create mode 100644 linux/firewire/JackFFADOMidiSendQueue.cpp rename linux/firewire/{JackFFADOMidiOutput.h => JackFFADOMidiSendQueue.h} (58%) create mode 100644 macosx/coremidi/JackCoreMidiInputPort.cpp create mode 100644 macosx/coremidi/JackCoreMidiInputPort.h create mode 100644 macosx/coremidi/JackCoreMidiOutputPort.cpp create mode 100644 macosx/coremidi/JackCoreMidiOutputPort.h create mode 100644 macosx/coremidi/JackCoreMidiPhysicalInputPort.cpp create mode 100644 macosx/coremidi/JackCoreMidiPhysicalInputPort.h create mode 100644 macosx/coremidi/JackCoreMidiPhysicalOutputPort.cpp create mode 100644 macosx/coremidi/JackCoreMidiPhysicalOutputPort.h create mode 100644 macosx/coremidi/JackCoreMidiPort.cpp create mode 100644 macosx/coremidi/JackCoreMidiPort.h create mode 100644 macosx/coremidi/JackCoreMidiUtil.cpp create mode 100644 macosx/coremidi/JackCoreMidiUtil.h create mode 100644 macosx/coremidi/JackCoreMidiVirtualInputPort.cpp create mode 100644 macosx/coremidi/JackCoreMidiVirtualInputPort.h create mode 100644 macosx/coremidi/JackCoreMidiVirtualOutputPort.cpp create mode 100644 macosx/coremidi/JackCoreMidiVirtualOutputPort.h create mode 100644 windows/JackRouter/JackRouter.vcxproj create mode 100644 windows/JackRouter/JackRouter.vcxproj.filters create mode 100644 windows/JackRouter/JackRouter.vcxproj.user rename windows/Release/bin/{libsamplerate-0.dll => libsamplerate_x86.dll} (98%) create mode 100644 windows/Release64/bin/libsamplerate_x86_64.dll create mode 100644 windows/Release64/bin/portaudio_x86_64.dll create mode 100644 windows/Setup/JackRouter64.dll create mode 100644 windows/Setup/jack64.ci delete mode 100644 windows/portaudio/portaudio_x86.lib create mode 100644 windows/winmme/JackWinMMEInputPort.cpp create mode 100644 windows/winmme/JackWinMMEInputPort.h create mode 100644 windows/winmme/JackWinMMEOutputPort.cpp create mode 100644 windows/winmme/JackWinMMEOutputPort.h create mode 100644 windows/winmme/JackWinMMEPort.cpp create mode 100644 windows/winmme/JackWinMMEPort.h diff --git a/ChangeLog b/ChangeLog index 06afa7d8..d80e2903 100644 --- a/ChangeLog +++ b/ChangeLog @@ -34,6 +34,31 @@ Valerio Pilo Jackdmp changes log --------------------------- +2011-04-04 Stephane Letz + + * Correct driver lifetime management. + +2011-04-03 Stephane Letz + + * Fix in JackCoreAudioDriver::Read when there is no inputs. + +2011-04-02 Stephane Letz + + * Netdriver can now ask for in/out values from the master (in progress). + * Correct drivers parameter settings. + +2011-04-01 Stephane Letz + + * Merge newer-midi branch (Devin Anderson redesign of the MIDI drivers: alsarawmidi, ffado, coremidi and winmme). + * Cleanup JackThreadedDriver::Stop. + * Correct JackNetOneDriver::Close. + * Correction in jackdmp.cpp: notify_server_stop should be done after server destruction. + * Improve error management in JackNetDriver. + +2011-03-30 Stephane Letz + + * Version 1.9.8 started. + 2011-03-29 Stephane Letz * Synchronize JackWeakAPI.cpp with new APIs. diff --git a/README b/README index b9a0a533..1b35ab15 100644 --- a/README +++ b/README @@ -20,7 +20,7 @@ The audible result of this mode is that if a client is not activated during one Linux version -------------- -The published version still uses fifos for server/client synchronization. The use of POSIX named semaphore is implemented but still a bit unstable. Sockets are used for server/client communications. The ALSA backend derived from jackd implementation is used. To build jackdmp, a "waf" (http://code.google.com/p/waf/) based compilation system is available. The code has to be compiled on a machine where ALSA and possibly freeboot (FFADO) headers and libraries are corrected installed. +The published version still uses fifos for server/client synchronization. The use of POSIX named semaphore is implemented but still a bit unstable. Sockets are used for server/client communications. The ALSA backend derived from jackd implementation is used. To build jackdmp, a "waf" (http://code.google.com/p/waf/) based compilation system is available. The code has to be compiled on a machine where ALSA and possibly freebob (FFADO) headers and libraries are corrected installed. In the top folder do : @@ -212,7 +212,7 @@ Note : To experiment with the -S option, jackdmp must be launched in a console. 1.9.4 : Solaris boomer backend now working in capture or playback only mode. Add a -G parameter in CoreAudio backend (the computation value in RT thread expressed as percent of period). Use SNDCTL_DSP_SYNCGROUP/SNDCTL_DSP_SYNCSTART API to synchronize input and output in Solaris boomer backend. Big endian bug fix in memops.c. Fix issues in JackNetDriver::DecodeTransportData and JackNetDriver::Initialize. Correct CPU timing in JackNetDriver, now take cycle begin time after Read. Simplify transport in NetJack2: master only can control transport. Change CoreAudio notification thread setup for OSX Snow Leopard. Correct server temporary mode : now set a global and quit after server/client message handling is finished. Add a string parameter to server ==> client notification, add a new JackInfoShutdownCallback type. CoreAudio backend now issue a JackInfoShutdownCallback when an unrecoverable error is detected (sampling rate change, stream configuration changeÉ). Correct jackdmp.cpp (failures case were not correct..). Improve JackCoreAudioDriver code. Raise default port number to 2048. Correct JackProcessSync::LockedTimedWait. Correct JACK_MESSAGE_SIZE value, particularly in OSX RPC code. Now start server channel thread only when backend has been started (so in JackServer::Start). Should solve race conditions at start time. jack_verbose moved to JackGlobals class. Improve aggregate device management in JackCoreAudioDriver : now a "private" device only and cleanup properly. Aggregate device code added to JackCoreAudioAdapter. Implement "hog mode" (exclusive access of the audio device) in JackCoreAudioDriver. Fix jack_set_sample_rate_callback to have he same behavior as in JACK1. Dynamic system version detection in JackCoreAudioDriver to either create public or private aggregate device. In JackCoreAudioDriver, force the SR value to the wanted one *before* creating aggregate device (otherwise creation will fail). In JackCoreAudioDriver, better cleanup of AD when intermediate open failure. In JackCoreAudioDriver::Start, wait for the audio driver to effectively start (use the MeasureCallback). In JackCoreAudioDriver, improve management of input/output channels: -1 is now used internally to indicate a wanted max value. In JackCoreAudioDriver::OpenAUHAL, correct stream format setup and cleanup. Correct crash bug in JackAudioAdapterInterface when not input is used in adapter (temporary fixÉ). Sync JackCoreAudioAdapter code on JackCoreAudioDriver one. JACK_SCHED_POLICY switched to SCHED_FIFO. Now can aggregate device that are themselves AD. No reason to make jack_on_shutdown deprecated, so revert the incorrect change. Thread AcquireRealTime and DropRealTime were (incorrectly) using fThread field. Use pthread_self()) (or GetCurrentThread() on Windows) to get the calling thread. Correctly save and restore RT mode state in freewheel mode. Correct freewheel code on client side. Fix AcquireRealTime and DropRealTime: now distinguish when called from another thread (AcquireRealTime/DropRealTime) and from the thread itself (AcquireSelfRealTime/DropSelfRealTime). Correct JackPosixThread::StartImp : thread priority setting now done in the RT case only. Correct JackGraphManager::GetBuffer for the "client loop with one connection" case : buffer must be copied. Correct JackInfoShutdownCallback prototype, two new JackClientProcessFailure and JackClientZombie JackStatus code. Correct JackCoreAudio driver when empty strings are given as -C, -P or -d parameter. Better memory allocation error checking on client (library) side. Better memory allocation error checking in ringbuffer.c, weak import improvements. Memory allocation error checking for jack_client_new and jack_client_open (server and client side). Memory allocation error checking in server for RPC. Simplify server temporary mode : now use a JackTemporaryException. Lock/Unlock shared memory segments (to test...). Sync with JACK1 : -r parameter now used for no-realtime, realtime (-R) is now default, usable backend given vie platform. In JackCoreAudio driver, (possibly) clock drift compensation when needed in aggregated devices. In JackCoreAudio driver, clock drift compensation in aggregated devices working. In JackCoreAudio driver, clock drift compensation semantic changed a bit : when on, does not activate if not needed (same clock domain). Sync JackCoreAudioAdapter code with JackCoreAudioDriver. 1.9.5 : Dynamic choice of maximum port number. More robust sample rate change handling code in JackCoreAudioDriver. Devin Anderson patch for Jack FFADO driver issues with lost MIDI bytes between periods (and more). Fix port_rename callback : now both old name and new name are given as parameters. Special code in JackCoreAudio driver to handle completely buggy Digidesign CoreAudio user-land driver. Ensure that client-side message buffer thread calls thread_init callback if/when it is set by the client (backport of JACK1 rev 3838). Check dynamic port-max value. Fix JackCoreMidiDriver::ReadProcAux when ring buffer is full (thanks Devin Anderson). Josh Green ALSA driver capture only patch. When threads are cancelled, the exception has to be rethrown. Use a QUIT notification to properly quit the server channel, the server channel thread can then be 'stopped' instead of 'canceled'. Mario Lang alsa_io time calculation overflow patch. Shared memory manager was calling abort in case of fatal error, now return an error in caller. Change JackEngineProfiling and JackAudioAdapterInterface gnuplot scripts to output SVG instead of PDF. 1.9.6 : Improve JackCoreAudioDriver and JackCoreAudioAdapter : when no devices are described, takes default input and output and aggregate them.Correct JackGraphManager::DeactivatePort. Correct JackMachServerChannel::Execute : keep running even in error cases. Raise JACK_PROTOCOL_VERSION number. Arnold Krille firewire patch. Raise JACK_DRIVER_PARAM_STRING_MAX and JACK_PARAM_STRING_MAX to 127 otherwise some audio drivers cannot be loaded on OSX. Fix some file header to have library side code use LGPL. On Windows, now use TRE library for regexp (BSD license instead of GPL license). ffado-portname-sync.patch from ticket #163 applied. Remove call to exit in library code. Make jack_connect/jack_disconnect wait for effective port connection/disconnection. Add tests to validate intclient.h API. On Linux, inter-process synchronization primitive switched to POSIX semaphore. In JackCoreAudioDriver, move code called in MeasureCallback to be called once in IO thread. David Garcia Garzon netone patch. Fix from Fernando Lopez-Lezcano for compilation on fc13. Fix JackPosixSemaphore::TimedWait : same behavior as JackPosixSemaphore::Wait regarding EINTR. David Garcia Garzon unused_pkt_buf_field_jack2 netone patch. Arnold Krille firewire snooping patch. Jan Engelhardt patch for get_cycles on SPARC. Adrian Knoth hurd.patch, kfreebsd-fix.patch and alpha_ia64-sigsegv.patch from ticket 177. Adrian Knoth fix for linux cycle.h (ticket 188). In JackCoreAudioDriver, fix an issue when no value is given for input. -1.9.7 : Sync JackAlsaDriver::alsa_driver_check_card_type with JACK1 backend. Correct JackServer::Open to avoid a race when control API is used on OSX. Improve backend error handling: fatal error returned by Read/Write now cause a Process failure (so a thread exit for blocking backends). Recoverable ones (XRuns..) are now treated internally in ALSA, FreeBob and FFADO backends. In jackdmp.cpp, jackctl_setup_signals moved before jackctl_server_start. Correct symbols export in backends on OSX. ALSA backend : suspend/resume handling. Correct dummy driver. Adrian Knoth jack_lsp patch. Remove JackPortIsActive flag. New latency API implementation. ComputeTotalLatencies now a client/server call. Add latent test client for latency API. Also print playback and capture latency in jack_lsp. jack_client_has_session_callback implementation. Check requested buffer size and limit to 1..8192 - avoids weird behaviour caused by jack_bufsize foobar. jack_port_type_get_buffer_size implementation. Stop using alloca and allocate buffer on the heap for alsa_io. Rename jdelay to jack_iodelay as per Fons' request. Call buffer size callback in activate (actually this is done on client side in the RT thread Init method). Add jack_midi_dump client. Synchronize net JACK1 with JACK1 version. Synchronize jack_connect/jack_disconnect with JACK1 version. Correct JackNetMaster::SetBufferSize. Use jack_default_audio_sample_t instead of float consistently, fix ticket #201. -X now allows to add several slave backends, add -I to load several internal clients. Rework internal slave driver management, JackServerGlobals now handle same parameters as jackdmp. Correct JackEngine::NotifyGraphReorder, update JackDebugClient with latest API. Devin Anderson server-ctl-proposal branch merged on trunk: improved control API, slave backend reworked. Implement renaming in JackDriver::Open to avoid name collision (thanks Devin Anderson). Correct alsa_driver_restart (thanks Devin Anderson). Correction of jack_connect/jack_disconnect: use of jack_activate and volatile keyword for thread shared variable. Correction of JackNetOneDriver for latest CELT API. Synchronize JackWeakAPI.cpp with new APIs. +1.9.7 : Sync JackAlsaDriver::alsa_driver_check_card_type with JACK1 backend. Correct JackServer::Open to avoid a race when control API is used on OSX. Improve backend error handling: fatal error returned by Read/Write now cause a Process failure (so a thread exit for blocking backends). Recoverable ones (XRuns..) are now treated internally in ALSA, FreeBob and FFADO backends. In jackdmp.cpp, jackctl_setup_signals moved before jackctl_server_start. Correct symbols export in backends on OSX. ALSA backend : suspend/resume handling. Correct dummy driver. Adrian Knoth jack_lsp patch. Remove JackPortIsActive flag. New latency API implementation. ComputeTotalLatencies now a client/server call. Add latent test client for latency API. Also print playback and capture latency in jack_lsp. jack_client_has_session_callback implementation. Check requested buffer size and limit to 1..8192 - avoids weird behaviour caused by jack_bufsize foobar. jack_port_type_get_buffer_size implementation. Stop using alloca and allocate buffer on the heap for alsa_io. Rename jdelay to jack_iodelay as per Fons' request. Call buffer size callback in activate (actually this is done on client side in the RT thread Init method). Add jack_midi_dump client. Synchronize net JACK1 with JACK1 version. Synchronize jack_connect/jack_disconnect with JACK1 version. Correct JackNetMaster::SetBufferSize. Use jack_default_audio_sample_t instead of float consistently, fix ticket #201. -X now allows to add several slave backends, add -I to load several internal clients. Rework internal slave driver management, JackServerGlobals now handle same parameters as jackdmp. Correct JackEngine::NotifyGraphReorder, update JackDebugClient with latest API. Devin Anderson server-ctl-proposal branch merged on trunk: improved control API, slave backend reworked. Implement renaming in JackDriver::Open to avoid name collision (thanks Devin Anderson). Correct alsa_driver_restart (thanks Devin Anderson). Correction of jack_connect/jack_disconnect: use of jack_activate and volatile keyword for thread shared variable. Correction of JackNetOneDriver for latest CELT API. Synchronize JackWeakAPI.cpp with new APIs. This is a work in progress but the implementation is now stable enough to be tested. jackdmp has been used successfully with the following applications : Ardour, Hydrogen, Jamin, QjackCtl, Jack-Rack, SooperLooper, AlsaPlayer... diff --git a/common/JackAudioDriver.cpp b/common/JackAudioDriver.cpp index 272c1e66..31b8a51b 100644 --- a/common/JackAudioDriver.cpp +++ b/common/JackAudioDriver.cpp @@ -44,12 +44,17 @@ JackAudioDriver::~JackAudioDriver() int JackAudioDriver::SetBufferSize(jack_nframes_t buffer_size) { + // Update engine and graph manager state fEngineControl->fBufferSize = buffer_size; fGraphManager->SetBufferSize(buffer_size); fEngineControl->fPeriodUsecs = jack_time_t(1000000.f / fEngineControl->fSampleRate * fEngineControl->fBufferSize); // in microsec if (!fEngineControl->fTimeOut) fEngineControl->fTimeOutUsecs = jack_time_t(2.f * fEngineControl->fPeriodUsecs); - return 0; + + UpdateLatencies(); + + // Redirect on slaves drivers... + return JackDriver::SetBufferSize(buffer_size); } int JackAudioDriver::SetSampleRate(jack_nframes_t sample_rate) @@ -58,7 +63,8 @@ int JackAudioDriver::SetSampleRate(jack_nframes_t sample_rate) fEngineControl->fPeriodUsecs = jack_time_t(1000000.f / fEngineControl->fSampleRate * fEngineControl->fBufferSize); // in microsec if (!fEngineControl->fTimeOut) fEngineControl->fTimeOutUsecs = jack_time_t(2.f * fEngineControl->fPeriodUsecs); - return 0; + + return JackDriver::SetSampleRate(sample_rate); } int JackAudioDriver::Open(jack_nframes_t buffer_size, @@ -76,6 +82,9 @@ int JackAudioDriver::Open(jack_nframes_t buffer_size, fCaptureChannels = inchannels; fPlaybackChannels = outchannels; fWithMonitorPorts = monitor; + memset(fCapturePortList, 0, sizeof(jack_port_id_t) * DRIVER_PORT_NUM); + memset(fPlaybackPortList, 0, sizeof(jack_port_id_t) * DRIVER_PORT_NUM); + memset(fMonitorPortList, 0, sizeof(jack_port_id_t) * DRIVER_PORT_NUM); return JackDriver::Open(buffer_size, samplerate, capturing, playing, inchannels, outchannels, monitor, capture_driver_name, playback_driver_name, capture_latency, playback_latency); } @@ -92,16 +101,39 @@ int JackAudioDriver::Open(bool capturing, fCaptureChannels = inchannels; fPlaybackChannels = outchannels; fWithMonitorPorts = monitor; + memset(fCapturePortList, 0, sizeof(jack_port_id_t) * DRIVER_PORT_NUM); + memset(fPlaybackPortList, 0, sizeof(jack_port_id_t) * DRIVER_PORT_NUM); + memset(fMonitorPortList, 0, sizeof(jack_port_id_t) * DRIVER_PORT_NUM); return JackDriver::Open(capturing, playing, inchannels, outchannels, monitor, capture_driver_name, playback_driver_name, capture_latency, playback_latency); } +void JackAudioDriver::UpdateLatencies() +{ + jack_latency_range_t range; + + for (int i = 0; i < fCaptureChannels; i++) { + range.max = range.min = fEngineControl->fBufferSize; + fGraphManager->GetPort(fCapturePortList[i])->SetLatencyRange(JackCaptureLatency, &range); + } + + for (int i = 0; i < fPlaybackChannels; i++) { + if (! fEngineControl->fSyncMode) { + range.max = range.min = fEngineControl->fBufferSize * 2; + } + fGraphManager->GetPort(fPlaybackPortList[i])->SetLatencyRange(JackPlaybackLatency, &range); + if (fWithMonitorPorts) { + range.min = range.max = fEngineControl->fBufferSize; + fGraphManager->GetPort(fMonitorPortList[i])->SetLatencyRange(JackCaptureLatency, &range); + } + } +} + int JackAudioDriver::Attach() { JackPort* port; jack_port_id_t port_index; char name[JACK_CLIENT_NAME_SIZE + JACK_PORT_NAME_SIZE]; char alias[JACK_CLIENT_NAME_SIZE + JACK_PORT_NAME_SIZE]; - jack_latency_range_t range; int i; jack_log("JackAudioDriver::Attach fBufferSize = %ld fSampleRate = %ld", fEngineControl->fBufferSize, fEngineControl->fSampleRate); @@ -115,8 +147,6 @@ int JackAudioDriver::Attach() } port = fGraphManager->GetPort(port_index); port->SetAlias(alias); - range.min = range.max = fEngineControl->fBufferSize + fCaptureLatency; - port->SetLatencyRange(JackCaptureLatency, &range); fCapturePortList[i] = port_index; jack_log("JackAudioDriver::Attach fCapturePortList[i] port_index = %ld", port_index); } @@ -130,9 +160,6 @@ int JackAudioDriver::Attach() } port = fGraphManager->GetPort(port_index); port->SetAlias(alias); - // Add more latency if "async" mode is used... - range.min = range.max = fEngineControl->fBufferSize + ((fEngineControl->fSyncMode) ? 0 : fEngineControl->fBufferSize) + fPlaybackLatency; - port->SetLatencyRange(JackPlaybackLatency, &range); fPlaybackPortList[i] = port_index; jack_log("JackAudioDriver::Attach fPlaybackPortList[i] port_index = %ld", port_index); @@ -144,14 +171,12 @@ int JackAudioDriver::Attach() jack_error("Cannot register monitor port for %s", name); return -1; } else { - port = fGraphManager->GetPort(port_index); - range.min = range.max = fEngineControl->fBufferSize; - port->SetLatencyRange(JackCaptureLatency, &range); - fMonitorPortList[i] = port_index; + fMonitorPortList[i] = port_index; } } } + UpdateLatencies(); return 0; } @@ -193,9 +218,9 @@ int JackAudioDriver::ProcessNull() JackDriver::CycleTakeBeginTime(); if (fEngineControl->fSyncMode) { - ProcessGraphSync(); + ProcessGraphSyncMaster(); } else { - ProcessGraphAsync(); + ProcessGraphAsyncMaster(); } // Keep end cycle time @@ -230,9 +255,9 @@ int JackAudioDriver::ProcessAsync() // Process graph if (fIsMaster) { - ProcessGraphAsync(); + ProcessGraphAsyncMaster(); } else { - fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable); + ProcessGraphAsyncSlave(); } // Keep end cycle time @@ -255,12 +280,12 @@ int JackAudioDriver::ProcessSync() // Process graph if (fIsMaster) { - if (ProcessGraphSync() < 0) { + if (ProcessGraphSyncMaster() < 0) { jack_error("JackAudioDriver::ProcessSync: process error, skip cycle..."); goto end; } } else { - if (fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable) < 0) { + if (ProcessGraphSyncSlave() < 0) { jack_error("JackAudioDriver::ProcessSync: process error, skip cycle..."); goto end; } @@ -279,27 +304,50 @@ end: return 0; } -void JackAudioDriver::ProcessGraphAsync() +void JackAudioDriver::ProcessGraphAsyncMaster() { // fBeginDateUst is set in the "low level" layer, fEndDateUst is from previous cycle if (!fEngine->Process(fBeginDateUst, fEndDateUst)) - jack_error("JackAudioDriver::ProcessGraphAsync: Process error"); - fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable); - if (ProcessSlaves() < 0) - jack_error("JackAudioDriver::ProcessGraphAsync: ProcessSlaves error"); + jack_error("JackAudioDriver::ProcessGraphAsyncMaster: Process error"); + + if (fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable) < 0) + jack_error("JackAudioDriver::ProcessGraphAsyncMaster: ResumeRefNum error"); + + if (ProcessReadSlaves() < 0) + jack_error("JackAudioDriver::ProcessGraphAsyncMaster: ProcessReadSlaves error"); + + if (ProcessWriteSlaves() < 0) + jack_error("JackAudioDriver::ProcessGraphAsyncMaster: ProcessWriteSlaves error"); +} + +void JackAudioDriver::ProcessGraphAsyncSlave() +{ + if (fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable) < 0) + jack_error("JackAudioDriver::ProcessGraphAsyncSlave: ResumeRefNum error"); } -int JackAudioDriver::ProcessGraphSync() +int JackAudioDriver::ProcessGraphSyncMaster() { int res = 0; // fBeginDateUst is set in the "low level" layer, fEndDateUst is from previous cycle if (fEngine->Process(fBeginDateUst, fEndDateUst)) { - fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable); - if (ProcessSlaves() < 0) { - jack_error("JackAudioDriver::ProcessGraphSync: ProcessSlaves error, engine may now behave abnormally!!"); + + if (fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable) < 0) { + jack_error("JackAudioDriver::ProcessGraphSyncMaster: ResumeRefNum error"); res = -1; } + + if (ProcessReadSlaves() < 0) { + jack_error("JackAudioDriver::ProcessGraphSync: ProcessReadSlaves error, engine may now behave abnormally!!"); + res = -1; + } + + if (ProcessWriteSlaves() < 0) { + jack_error("JackAudioDriver::ProcessGraphSync: ProcessWriteSlaves error, engine may now behave abnormally!!"); + res = -1; + } + if (fGraphManager->SuspendRefNum(&fClientControl, fSynchroTable, DRIVER_TIMEOUT_FACTOR * fEngineControl->fTimeOutUsecs) < 0) { jack_error("JackAudioDriver::ProcessGraphSync: SuspendRefNum error, engine may now behave abnormally!!"); res = -1; @@ -312,6 +360,11 @@ int JackAudioDriver::ProcessGraphSync() return res; } +int JackAudioDriver::ProcessGraphSyncSlave() +{ + return fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable); +} + int JackAudioDriver::Start() { int res = JackDriver::Start(); @@ -342,20 +395,23 @@ void JackAudioDriver::WaitUntilNextCycle() jack_default_audio_sample_t* JackAudioDriver::GetInputBuffer(int port_index) { - assert(fCapturePortList[port_index]); - return (jack_default_audio_sample_t*)fGraphManager->GetBuffer(fCapturePortList[port_index], fEngineControl->fBufferSize); + return fCapturePortList[port_index] + ? (jack_default_audio_sample_t*)fGraphManager->GetBuffer(fCapturePortList[port_index], fEngineControl->fBufferSize) + : NULL; } jack_default_audio_sample_t* JackAudioDriver::GetOutputBuffer(int port_index) { - assert(fPlaybackPortList[port_index]); - return (jack_default_audio_sample_t*)fGraphManager->GetBuffer(fPlaybackPortList[port_index], fEngineControl->fBufferSize); + return fPlaybackPortList[port_index] + ? (jack_default_audio_sample_t*)fGraphManager->GetBuffer(fPlaybackPortList[port_index], fEngineControl->fBufferSize) + : NULL; } jack_default_audio_sample_t* JackAudioDriver::GetMonitorBuffer(int port_index) { - assert(fPlaybackPortList[port_index]); - return (jack_default_audio_sample_t*)fGraphManager->GetBuffer(fMonitorPortList[port_index], fEngineControl->fBufferSize); + return fPlaybackPortList[port_index] + ? (jack_default_audio_sample_t*)fGraphManager->GetBuffer(fMonitorPortList[port_index], fEngineControl->fBufferSize) + : NULL; } int JackAudioDriver::ClientNotify(int refnum, const char* name, int notify, int sync, const char* message, int value1, int value2) diff --git a/common/JackAudioDriver.h b/common/JackAudioDriver.h index 8eaca692..83b0ba53 100644 --- a/common/JackAudioDriver.h +++ b/common/JackAudioDriver.h @@ -35,8 +35,12 @@ class SERVER_EXPORT JackAudioDriver : public JackDriver protected: - void ProcessGraphAsync(); - int ProcessGraphSync(); + void ProcessGraphAsyncMaster(); + void ProcessGraphAsyncSlave(); + + int ProcessGraphSyncMaster(); + int ProcessGraphSyncSlave(); + void WaitUntilNextCycle(); virtual int ProcessAsync(); @@ -58,6 +62,7 @@ class SERVER_EXPORT JackAudioDriver : public JackDriver jack_default_audio_sample_t* GetMonitorBuffer(int port_index); void HandleLatencyCallback(int status); + void UpdateLatencies(); public: diff --git a/common/JackChannel.h b/common/JackChannel.h index c9ee89e5..69d25e00 100644 --- a/common/JackChannel.h +++ b/common/JackChannel.h @@ -20,7 +20,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #ifndef __JackChannel__ #define __JackChannel__ -#include "session.h" +#include "types.h" +#include "JackSession.h" namespace Jack { diff --git a/common/JackClient.h b/common/JackClient.h index a03e17d2..7d8e0864 100644 --- a/common/JackClient.h +++ b/common/JackClient.h @@ -27,7 +27,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "JackSynchro.h" #include "JackPlatformPlug.h" #include "JackChannel.h" -#include "session.h" #include "varargs.h" #include diff --git a/common/JackClientControl.h b/common/JackClientControl.h index 29e4a5b7..d035ccd0 100644 --- a/common/JackClientControl.h +++ b/common/JackClientControl.h @@ -25,7 +25,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "JackPort.h" #include "JackSynchro.h" #include "JackNotification.h" -#include "session.h" +#include "JackSession.h" namespace Jack { diff --git a/common/JackConstants.h b/common/JackConstants.h index 33d52cbd..c4c816da 100644 --- a/common/JackConstants.h +++ b/common/JackConstants.h @@ -24,7 +24,7 @@ #include "config.h" #endif -#define VERSION "1.9.7" +#define VERSION "1.9.8" #define BUFFER_SIZE_MAX 8192 @@ -71,7 +71,7 @@ #define SOCKET_TIME_OUT 5 // in sec #define DRIVER_OPEN_TIMEOUT 5 // in sec #define FREEWHEEL_DRIVER_TIMEOUT 10 // in sec -#define DRIVER_TIMEOUT_FACTOR 10 +#define DRIVER_TIMEOUT_FACTOR 10 #define NO_PORT 0xFFFE diff --git a/common/JackControlAPI.cpp b/common/JackControlAPI.cpp index 4ff69adc..2490a65e 100644 --- a/common/JackControlAPI.cpp +++ b/common/JackControlAPI.cpp @@ -101,7 +101,7 @@ struct jackctl_driver jack_driver_desc_t * desc_ptr; JSList * parameters; JSList * set_parameters; - JackDriverInfo* info; + JSList * infos; }; struct jackctl_internal @@ -215,7 +215,8 @@ bool jackctl_add_driver_parameters( struct jackctl_driver * driver_ptr) { - uint32_t i; + unsigned int i; + union jackctl_parameter_value jackctl_value; jackctl_param_type_t jackctl_type; struct jackctl_parameter * parameter_ptr; @@ -308,6 +309,7 @@ jackctl_drivers_load( driver_ptr->desc_ptr = (jack_driver_desc_t *)descriptor_node_ptr->data; driver_ptr->parameters = NULL; driver_ptr->set_parameters = NULL; + driver_ptr->infos = NULL; if (!jackctl_add_driver_parameters(driver_ptr)) { @@ -377,6 +379,7 @@ jackctl_internals_load( internal_ptr->desc_ptr = (jack_driver_desc_t *)descriptor_node_ptr->data; internal_ptr->parameters = NULL; internal_ptr->set_parameters = NULL; + internal_ptr->refnum = -1; if (!jackctl_add_driver_parameters((struct jackctl_driver *)internal_ptr)) { @@ -1214,8 +1217,13 @@ EXPORT bool jackctl_server_add_slave(jackctl_server * server_ptr, jackctl_driver jack_error("cannot add a slave in a running server"); return false; } else { - driver_ptr->info = server_ptr->engine->AddSlave(driver_ptr->desc_ptr, driver_ptr->set_parameters); - return (driver_ptr->info != 0); + JackDriverInfo* info = server_ptr->engine->AddSlave(driver_ptr->desc_ptr, driver_ptr->set_parameters); + if (info) { + driver_ptr->infos = jack_slist_append(driver_ptr->infos, info); + return true; + } else { + return false; + } } } else { return false; @@ -1228,10 +1236,17 @@ EXPORT bool jackctl_server_remove_slave(jackctl_server * server_ptr, jackctl_dri if (server_ptr->engine->IsRunning()) { jack_error("cannot remove a slave from a running server"); return false; - } else { - server_ptr->engine->RemoveSlave(driver_ptr->info); - delete driver_ptr->info; - return true; + } else { + if (driver_ptr->infos) { + JackDriverInfo* info = (JackDriverInfo*)driver_ptr->infos->data; + assert(info); + driver_ptr->infos = jack_slist_remove(driver_ptr->infos, info); + server_ptr->engine->RemoveSlave(info); + delete info; + return true; + } else { + return false; + } } } else { return false; diff --git a/common/JackControlAPI.h b/common/JackControlAPI.h index 8e87d513..65b8528e 100644 --- a/common/JackControlAPI.h +++ b/common/JackControlAPI.h @@ -27,7 +27,8 @@ #ifdef WIN32 #ifdef __MINGW32__ -#include +#include +typedef _sigset_t sigset_t; #else typedef HANDLE sigset_t; #endif @@ -169,11 +170,11 @@ jackctl_parameter_set_value( EXPORT union jackctl_parameter_value jackctl_parameter_get_default_value( jackctl_parameter_t * parameter); - -EXPORT union jackctl_parameter_value + +EXPORT union jackctl_parameter_value jackctl_parameter_get_default_value( jackctl_parameter *parameter_ptr); - + EXPORT bool jackctl_parameter_has_range_constraint( jackctl_parameter_t * parameter_ptr); @@ -210,33 +211,33 @@ EXPORT bool jackctl_parameter_constraint_is_fake_value( jackctl_parameter_t * parameter_ptr); -EXPORT const JSList * +EXPORT const JSList * jackctl_server_get_internals_list( jackctl_server *server_ptr); - -EXPORT const char * + +EXPORT const char * jackctl_internal_get_name( jackctl_internal *internal_ptr); - -EXPORT const JSList * + +EXPORT const JSList * jackctl_internal_get_parameters( jackctl_internal *internal_ptr); - + EXPORT bool jackctl_server_load_internal( jackctl_server * server, jackctl_internal * internal); - + EXPORT bool jackctl_server_unload_internal( jackctl_server * server, jackctl_internal * internal); - + EXPORT bool jackctl_server_add_slave(jackctl_server_t * server, jackctl_driver_t * driver); EXPORT bool jackctl_server_remove_slave(jackctl_server_t * server, jackctl_driver_t * driver); -EXPORT bool +EXPORT bool jackctl_server_switch_master(jackctl_server_t * server, jackctl_driver_t * driver); diff --git a/common/JackDriver.cpp b/common/JackDriver.cpp index ce860468..e424ce28 100644 --- a/common/JackDriver.cpp +++ b/common/JackDriver.cpp @@ -56,6 +56,7 @@ JackDriver::JackDriver() fEngine = NULL; fGraphManager = NULL; fBeginDateUst = 0; + fDelayedUsecs = 0.f; fIsMaster = true; fIsRunning = false; } @@ -300,19 +301,42 @@ void JackDriver::RemoveSlave(JackDriverInterface* slave) fSlaveList.remove(slave); } -int JackDriver::ProcessSlaves() +int JackDriver::ProcessReadSlaves() { int res = 0; list::const_iterator it; for (it = fSlaveList.begin(); it != fSlaveList.end(); it++) { JackDriverInterface* slave = *it; - if (slave->Process() < 0) + if (slave->ProcessRead() < 0) res = -1; } return res; } +int JackDriver::ProcessWriteSlaves() +{ + int res = 0; + list::const_iterator it; + for (it = fSlaveList.begin(); it != fSlaveList.end(); it++) { + JackDriverInterface* slave = *it; + if (slave->ProcessWrite() < 0) + res = -1; + + } + return res; +} + +int JackDriver::ProcessRead() +{ + return 0; +} + +int JackDriver::ProcessWrite() +{ + return 0; +} + int JackDriver::Process() { return 0; @@ -352,6 +376,12 @@ int JackDriver::Start() return 0; } +int JackDriver::Stop() +{ + fIsRunning = false; + return 0; +} + int JackDriver::StartSlaves() { int res = 0; @@ -370,12 +400,6 @@ int JackDriver::StartSlaves() return res; } -int JackDriver::Stop() -{ - fIsRunning = false; - return 0; -} - int JackDriver::StopSlaves() { int res = 0; @@ -395,12 +419,28 @@ bool JackDriver::IsFixedBufferSize() int JackDriver::SetBufferSize(jack_nframes_t buffer_size) { - return 0; + int res = 0; + + list::const_iterator it; + for (it = fSlaveList.begin(); it != fSlaveList.end(); it++) { + JackDriverInterface* slave = *it; + if (slave->SetBufferSize(buffer_size) < 0) + res = -1; + } + + return res; } int JackDriver::SetSampleRate(jack_nframes_t sample_rate) { - return 0; + int res = 0; + list::const_iterator it; + for (it = fSlaveList.begin(); it != fSlaveList.end(); it++) { + JackDriverInterface* slave = *it; + if (slave->SetSampleRate(sample_rate) < 0) + res = -1; + } + return res; } bool JackDriver::Initialize() diff --git a/common/JackDriver.h b/common/JackDriver.h index 68f937c2..45d695af 100644 --- a/common/JackDriver.h +++ b/common/JackDriver.h @@ -34,6 +34,7 @@ namespace Jack class JackLockedEngine; class JackGraphManager; struct JackEngineControl; +class JackSlaveDriverInterface; /*! \brief The base interface for drivers. @@ -91,10 +92,17 @@ class SERVER_EXPORT JackDriverInterface virtual void SetMaster(bool onoff) = 0; virtual bool GetMaster() = 0; + virtual void AddSlave(JackDriverInterface* slave) = 0; virtual void RemoveSlave(JackDriverInterface* slave) = 0; + virtual std::list GetSlaves() = 0; - virtual int ProcessSlaves() = 0; + + virtual int ProcessReadSlaves() = 0; + virtual int ProcessWriteSlaves() = 0; + + virtual int ProcessRead() = 0; + virtual int ProcessWrite() = 0; virtual bool IsRealTime() const = 0; virtual bool IsRunning() const = 0; @@ -159,11 +167,11 @@ class SERVER_EXPORT JackDriver : public JackDriverClientInterface void AddSlave(JackDriverInterface* slave); void RemoveSlave(JackDriverInterface* slave); + std::list GetSlaves() { return fSlaveList; } - int ProcessSlaves(); virtual int Open(); @@ -200,10 +208,17 @@ class SERVER_EXPORT JackDriver : public JackDriverClientInterface virtual int Write(); virtual int Start(); - virtual int StartSlaves(); virtual int Stop(); + + virtual int StartSlaves(); virtual int StopSlaves(); + int ProcessReadSlaves(); + int ProcessWriteSlaves(); + + int ProcessRead(); + int ProcessWrite(); + virtual bool IsFixedBufferSize(); virtual int SetBufferSize(jack_nframes_t buffer_size); virtual int SetSampleRate(jack_nframes_t sample_rate); diff --git a/common/JackDriverLoader.cpp b/common/JackDriverLoader.cpp index 2d270656..84a97a54 100644 --- a/common/JackDriverLoader.cpp +++ b/common/JackDriverLoader.cpp @@ -531,7 +531,7 @@ jack_drivers_load (JSList * drivers) { HANDLE file; const char * ptr = NULL; JSList * driver_list = NULL; - jack_driver_desc_t * desc; + jack_driver_desc_t * desc = NULL; if ((driver_dir = getenv("JACK_DRIVER_DIR")) == 0) { // for WIN32 ADDON_DIR is defined in JackConstants.h as relative path @@ -551,6 +551,11 @@ jack_drivers_load (JSList * drivers) { } do { + /* check the filename is of the right format */ + if (strncmp ("jack_", filedata.cFileName, 5) != 0) { + continue; + } + ptr = strrchr (filedata.cFileName, '.'); if (!ptr) { continue; @@ -560,6 +565,11 @@ jack_drivers_load (JSList * drivers) { continue; } + /* check if dll is an internal client */ + if (check_symbol(filedata.cFileName, "jack_internal_initialize")) { + continue; + } + desc = jack_get_descriptor (drivers, filedata.cFileName, "driver_get_descriptor"); if (desc) { driver_list = jack_slist_append (driver_list, desc); @@ -586,7 +596,7 @@ jack_drivers_load (JSList * drivers) { const char * ptr; int err; JSList * driver_list = NULL; - jack_driver_desc_t * desc; + jack_driver_desc_t * desc = NULL; const char* driver_dir; if ((driver_dir = getenv("JACK_DRIVER_DIR")) == 0) { @@ -618,8 +628,12 @@ jack_drivers_load (JSList * drivers) { continue; } - desc = jack_get_descriptor (drivers, dir_entry->d_name, "driver_get_descriptor"); + /* check if dll is an internal client */ + if (check_symbol(dir_entry->d_name, "jack_internal_initialize")) { + continue; + } + desc = jack_get_descriptor (drivers, dir_entry->d_name, "driver_get_descriptor"); if (desc) { driver_list = jack_slist_append (driver_list, desc); } else { @@ -669,7 +683,7 @@ jack_internals_load (JSList * internals) { file = (HANDLE )FindFirstFile(dll_filename, &filedata); if (file == INVALID_HANDLE_VALUE) { - jack_error("error"); + jack_error("could not open driver directory %s", driver_dir); return NULL; } diff --git a/common/JackDriverLoader.h b/common/JackDriverLoader.h index c194304d..719881e8 100644 --- a/common/JackDriverLoader.h +++ b/common/JackDriverLoader.h @@ -30,7 +30,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. typedef jack_driver_desc_t * (*JackDriverDescFunction) (); typedef Jack::JackDriverClientInterface* (*driverInitialize) (Jack::JackLockedEngine*, Jack::JackSynchro*, const JSList*); -class JackDriverInfo +class SERVER_EXPORT JackDriverInfo { private: diff --git a/common/JackDummyDriver.cpp b/common/JackDummyDriver.cpp index fb996a11..4c084f06 100644 --- a/common/JackDummyDriver.cpp +++ b/common/JackDummyDriver.cpp @@ -78,6 +78,7 @@ int JackDummyDriver::Process() int JackDummyDriver::SetBufferSize(jack_nframes_t buffer_size) { + // Generic change, never fails JackAudioDriver::SetBufferSize(buffer_size); fWaitTime = (unsigned long)((((float)buffer_size) / ((float)fEngineControl->fSampleRate)) * 1000000.0f); return 0; diff --git a/common/JackExternalClient.cpp b/common/JackExternalClient.cpp index 1dca599a..54342f97 100644 --- a/common/JackExternalClient.cpp +++ b/common/JackExternalClient.cpp @@ -71,6 +71,7 @@ int JackExternalClient::Open(const char* name, int pid, int refnum, int uuid, in int JackExternalClient::Close() { + jack_log("JackExternalClient::Close"); fChannel.Close(); if (fClientControl) { fClientControl->~JackClientControl(); diff --git a/common/JackFreewheelDriver.cpp b/common/JackFreewheelDriver.cpp index c28e30c3..2928b211 100644 --- a/common/JackFreewheelDriver.cpp +++ b/common/JackFreewheelDriver.cpp @@ -28,26 +28,72 @@ namespace Jack int JackFreewheelDriver::Process() { - if (fIsMaster) { - jack_log("JackFreewheelDriver::Process master %lld", fEngineControl->fTimeOutUsecs); - JackDriver::CycleTakeBeginTime(); - fEngine->Process(fBeginDateUst, fEndDateUst); - fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable); // Signal all clients + int res = 0; + + jack_log("JackFreewheelDriver::Process master %lld", fEngineControl->fTimeOutUsecs); + JackDriver::CycleTakeBeginTime(); + + if (fEngine->Process(fBeginDateUst, fEndDateUst)) { + + if (fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable)) { // Signal all clients + jack_error("JackFreewheelDriver::Process: ResumeRefNum error"); + res = -1; + } + if (fGraphManager->SuspendRefNum(&fClientControl, fSynchroTable, FREEWHEEL_DRIVER_TIMEOUT * 1000000) < 0) { // Wait for all clients to finish for 10 sec - jack_error("JackFreewheelDriver::ProcessSync SuspendRefNum error"); + jack_error("JackFreewheelDriver::ProcessSync: SuspendRefNum error"); /* We have a client time-out error, but still continue to process, until a better recovery strategy is chosen */ return 0; } - } else { - fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable); // Signal all clients - if (fEngineControl->fSyncMode) { - if (fGraphManager->SuspendRefNum(&fClientControl, fSynchroTable, DRIVER_TIMEOUT_FACTOR * fEngineControl->fTimeOutUsecs) < 0) { - jack_error("JackFreewheelDriver::ProcessSync SuspendRefNum error"); - return -1; - } - } + + } else { // Graph not finished: do not activate it + jack_error("JackFreewheelDriver::Process: Process error"); + res = -1; + } + + return res; +} + +int JackFreewheelDriver::ProcessRead() +{ + return (fEngineControl->fSyncMode) ? ProcessReadSync() : ProcessReadAsync(); +} + +int JackFreewheelDriver::ProcessWrite() +{ + return (fEngineControl->fSyncMode) ? ProcessWriteSync() : ProcessWriteAsync(); +} + +int JackFreewheelDriver::ProcessReadSync() +{ + if (fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable) < 0) { // Signal all clients + jack_error("JackFreewheelDriver::ProcessReadSync: ResumeRefNum error"); + return -1; + } + return 0; +} + +int JackFreewheelDriver::ProcessWriteSync() +{ + if (fGraphManager->SuspendRefNum(&fClientControl, fSynchroTable, DRIVER_TIMEOUT_FACTOR * fEngineControl->fTimeOutUsecs) < 0) { + jack_error("JackFreewheelDriver::ProcessSync SuspendRefNum error"); + return -1; + } + return 0; +} + +int JackFreewheelDriver::ProcessReadAsync() +{ + if (fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable) < 0) { // Signal all clients + jack_error("JackFreewheelDriver::ProcessReadAsync: ResumeRefNum error"); + return -1; } return 0; } +int JackFreewheelDriver::ProcessWriteAsync() +{ + return 0; +} + } // end of namespace diff --git a/common/JackFreewheelDriver.h b/common/JackFreewheelDriver.h index b988ffb0..02a9cf76 100644 --- a/common/JackFreewheelDriver.h +++ b/common/JackFreewheelDriver.h @@ -46,6 +46,16 @@ class JackFreewheelDriver : public JackDriver } int Process(); + + int ProcessRead(); + int ProcessWrite(); + + int ProcessReadSync(); + int ProcessWriteSync(); + + int ProcessReadAsync(); + int ProcessWriteAsync(); + }; } // end of namespace diff --git a/common/JackLibGlobals.h b/common/JackLibGlobals.h index 8d312295..a2f87ed1 100644 --- a/common/JackLibGlobals.h +++ b/common/JackLibGlobals.h @@ -32,6 +32,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include #include +#ifdef WIN32 +#ifdef __MINGW32__ +#include +typedef _sigset_t sigset_t; +#else +typedef HANDLE sigset_t; +#endif +#endif namespace Jack { diff --git a/common/JackLibSampleRateResampler.cpp b/common/JackLibSampleRateResampler.cpp index ea70438d..4213a731 100644 --- a/common/JackLibSampleRateResampler.cpp +++ b/common/JackLibSampleRateResampler.cpp @@ -148,7 +148,7 @@ unsigned int JackLibSampleRateResampler::WriteResample(jack_default_audio_sample res = src_process(fResampler, &src_data); if (res != 0) { - jack_error("JackLibSampleRateResampler::ReadResample ratio = %f err = %s", fRatio, src_strerror(res)); + jack_error("JackLibSampleRateResampler::WriteResample ratio = %f err = %s", fRatio, src_strerror(res)); return 0; } @@ -167,7 +167,7 @@ unsigned int JackLibSampleRateResampler::WriteResample(jack_default_audio_sample if (read_frames < frames) { jack_error("Input available = %ld", available_frames); - jack_error("JackLibSampleRateResampler::ReadResample error read_frames = %ld", read_frames); + jack_error("JackLibSampleRateResampler::WriteResample error read_frames = %ld", read_frames); } return read_frames; diff --git a/common/JackLoopbackDriver.cpp b/common/JackLoopbackDriver.cpp index e91cce1e..07778417 100644 --- a/common/JackLoopbackDriver.cpp +++ b/common/JackLoopbackDriver.cpp @@ -30,20 +30,61 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. namespace Jack { -int JackLoopbackDriver::Process() +int JackLoopbackDriver::ProcessRead() { + return (fEngineControl->fSyncMode) ? ProcessReadSync() : ProcessReadAsync(); +} + +int JackLoopbackDriver::ProcessWrite() +{ + return (fEngineControl->fSyncMode) ? ProcessWriteSync() : ProcessWriteAsync(); +} + +int JackLoopbackDriver::ProcessReadSync() +{ + int res = 0; + // Loopback copy for (int i = 0; i < fCaptureChannels; i++) { memcpy(GetInputBuffer(i), GetOutputBuffer(i), sizeof(jack_default_audio_sample_t) * fEngineControl->fBufferSize); } - fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable); // Signal all clients - if (fEngineControl->fSyncMode) { - if (fGraphManager->SuspendRefNum(&fClientControl, fSynchroTable, DRIVER_TIMEOUT_FACTOR * fEngineControl->fTimeOutUsecs) < 0) { - jack_error("JackLoopbackDriver::ProcessSync SuspendRefNum error"); - return -1; - } + if (fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable) < 0) { + jack_error("JackLoopbackDriver::ProcessReadSync - ResumeRefNum error"); + res = -1; + } + + return res; +} + +int JackLoopbackDriver::ProcessWriteSync() +{ + if (fGraphManager->SuspendRefNum(&fClientControl, fSynchroTable, DRIVER_TIMEOUT_FACTOR * fEngineControl->fTimeOutUsecs) < 0) { + jack_error("JackLoopbackDriver::ProcessWriteSync SuspendRefNum error"); + return -1; + } + return 0; +} + +int JackLoopbackDriver::ProcessReadAsync() +{ + int res = 0; + + // Loopback copy + for (int i = 0; i < fCaptureChannels; i++) { + memcpy(GetInputBuffer(i), GetOutputBuffer(i), sizeof(jack_default_audio_sample_t) * fEngineControl->fBufferSize); + } + + if (fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable) < 0) { + jack_error("JackLoopbackDriver::ProcessReadAsync - ResumeRefNum error"); + res = -1; } + + return res; +} + +int JackLoopbackDriver::ProcessWriteAsync() +{ return 0; } diff --git a/common/JackLoopbackDriver.h b/common/JackLoopbackDriver.h index 5c542e3a..247f852e 100644 --- a/common/JackLoopbackDriver.h +++ b/common/JackLoopbackDriver.h @@ -33,15 +33,24 @@ namespace Jack class JackLoopbackDriver : public JackAudioDriver { + private: + + virtual int ProcessReadSync(); + virtual int ProcessWriteSync(); + + virtual int ProcessReadAsync(); + virtual int ProcessWriteAsync(); + public: JackLoopbackDriver(JackLockedEngine* engine, JackSynchro* table) - : JackAudioDriver("loopback", "", engine, table) + : JackAudioDriver("loopback", "loopback", engine, table) {} virtual ~JackLoopbackDriver() {} - int Process(); + virtual int ProcessRead(); + virtual int ProcessWrite(); }; } // end of namespace diff --git a/common/JackMidiAsyncQueue.cpp b/common/JackMidiAsyncQueue.cpp new file mode 100644 index 00000000..0cfa42dc --- /dev/null +++ b/common/JackMidiAsyncQueue.cpp @@ -0,0 +1,103 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include + +#include "JackMidiAsyncQueue.h" + +using Jack::JackMidiAsyncQueue; + +JackMidiAsyncQueue::JackMidiAsyncQueue(size_t max_bytes, size_t max_messages) +{ + data_buffer = new jack_midi_data_t[max_bytes]; + byte_ring = jack_ringbuffer_create((max_bytes * sizeof(jack_midi_data_t)) + + 1); + if (byte_ring) { + info_ring = jack_ringbuffer_create((max_messages * INFO_SIZE) + 1); + if (info_ring) { + jack_ringbuffer_mlock(byte_ring); + jack_ringbuffer_mlock(info_ring); + this->max_bytes = max_bytes; + return; + } + jack_ringbuffer_free(byte_ring); + } + delete data_buffer; + throw std::bad_alloc(); +} + +JackMidiAsyncQueue::~JackMidiAsyncQueue() +{ + jack_ringbuffer_free(byte_ring); + jack_ringbuffer_free(info_ring); + delete[] data_buffer; +} + +jack_midi_event_t * +JackMidiAsyncQueue::DequeueEvent() +{ + jack_midi_event_t *event = 0; + if (jack_ringbuffer_read_space(info_ring) >= INFO_SIZE) { + event = &dequeue_event; + jack_ringbuffer_read(info_ring, (char *) &(event->time), + sizeof(jack_nframes_t)); + size_t size; + jack_ringbuffer_read(info_ring, (char *) &size, sizeof(size_t)); + event->buffer = data_buffer; + event->size = size; + jack_ringbuffer_data_t vector[2]; + jack_ringbuffer_get_read_vector(byte_ring, vector); + size_t size1 = vector[0].len; + memcpy(data_buffer, vector[0].buf, size1 * sizeof(jack_midi_data_t)); + if (size1 < size) { + memcpy(data_buffer + size1, vector[1].buf, + (size - size1) * sizeof(jack_midi_data_t)); + } + jack_ringbuffer_read_advance(byte_ring, + size * sizeof(jack_midi_data_t)); + } + return event; +} + +Jack::JackMidiWriteQueue::EnqueueResult +JackMidiAsyncQueue::EnqueueEvent(jack_nframes_t time, size_t size, + jack_midi_data_t *buffer) +{ + if (size > max_bytes) { + return BUFFER_TOO_SMALL; + } + if (! ((jack_ringbuffer_write_space(info_ring) >= INFO_SIZE) && + (jack_ringbuffer_write_space(byte_ring) >= + (size * sizeof(jack_midi_data_t))))) { + return BUFFER_FULL; + } + jack_ringbuffer_write(byte_ring, (const char *) buffer, + size * sizeof(jack_midi_data_t)); + jack_ringbuffer_write(info_ring, (const char *) (&time), + sizeof(jack_nframes_t)); + jack_ringbuffer_write(info_ring, (const char *) (&size), sizeof(size_t)); + return OK; +} + +size_t +JackMidiAsyncQueue::GetAvailableSpace() +{ + return jack_ringbuffer_write_space(info_ring) < INFO_SIZE ? 0 : + max_bytes - jack_ringbuffer_read_space(byte_ring); +} diff --git a/common/JackMidiAsyncQueue.h b/common/JackMidiAsyncQueue.h new file mode 100644 index 00000000..a9ac84ce --- /dev/null +++ b/common/JackMidiAsyncQueue.h @@ -0,0 +1,98 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#ifndef __JackMidiAsyncQueue__ +#define __JackMidiAsyncQueue__ + +#include "JackMidiPort.h" +#include "JackMidiReadQueue.h" +#include "JackMidiWriteQueue.h" +#include "ringbuffer.h" + +namespace Jack { + + /** + * This is a MIDI message queue designed to allow two threads to pass MIDI + * messages between two threads (though it can also be used to buffer + * events internally). This is especially useful if the MIDI API + * you're attempting to interface with doesn't provide the ability to + * schedule MIDI events ahead of time and/or has blocking send/receive + * calls, as it allows a separate thread to handle input/output while the + * JACK process thread copies events from a `JackMidiBufferReadQueue` to + * this queue, or from this queue to a `JackMidiBufferWriteQueue`. + */ + + class SERVER_EXPORT JackMidiAsyncQueue: + public JackMidiReadQueue, public JackMidiWriteQueue { + + private: + + static const size_t INFO_SIZE = + sizeof(jack_nframes_t) + sizeof(size_t); + + jack_ringbuffer_t *byte_ring; + jack_midi_data_t *data_buffer; + jack_midi_event_t dequeue_event; + jack_ringbuffer_t *info_ring; + size_t max_bytes; + + public: + + using JackMidiWriteQueue::EnqueueEvent; + + /** + * Creates a new asynchronous MIDI message queue. The queue can store + * up to `max_messages` MIDI messages and up to `max_bytes` of MIDI + * data before it starts rejecting messages. + */ + + JackMidiAsyncQueue(size_t max_bytes=4096, size_t max_messages=1024); + + virtual ~JackMidiAsyncQueue(); + + /** + * Dequeues and returns a MIDI event. Returns '0' if there are no MIDI + * events available. This method may be overridden. + */ + + virtual jack_midi_event_t * + DequeueEvent(); + + /** + * Enqueues the MIDI event specified by the arguments. The return + * value indiciates whether or not the event was successfully enqueued. + * This method may be overridden. + */ + + virtual EnqueueResult + EnqueueEvent(jack_nframes_t time, size_t size, + jack_midi_data_t *buffer); + + /** + * Returns the maximum size event that can be enqueued right *now*. + */ + + size_t + GetAvailableSpace(); + + }; + +} + +#endif diff --git a/common/JackMidiAsyncWaitQueue.cpp b/common/JackMidiAsyncWaitQueue.cpp new file mode 100644 index 00000000..016737cb --- /dev/null +++ b/common/JackMidiAsyncWaitQueue.cpp @@ -0,0 +1,85 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include + +#include "JackMidiAsyncWaitQueue.h" +#include "JackMidiUtil.h" +#include "JackTime.h" + +using Jack::JackMidiAsyncWaitQueue; + +JackMidiAsyncWaitQueue::JackMidiAsyncWaitQueue(size_t max_bytes, + size_t max_messages): + JackMidiAsyncQueue(max_bytes, max_messages) +{ + if (semaphore.Allocate("JackMidiAsyncWaitQueue", "midi-thread", 0)) { + throw std::bad_alloc(); + } +} + +JackMidiAsyncWaitQueue::~JackMidiAsyncWaitQueue() +{ + semaphore.Destroy(); +} + +jack_midi_event_t * +JackMidiAsyncWaitQueue::DequeueEvent() +{ + return DequeueEvent((long) 0); +} + +jack_midi_event_t * +JackMidiAsyncWaitQueue::DequeueEvent(jack_nframes_t frame) +{ + + // XXX: I worry about timer resolution on Solaris and Windows. When the + // resolution for the `JackSynchro` object is milliseconds, the worst-case + // scenario for processor objects is that the wait time becomes less than a + // millisecond, and the processor object continually calls this method, + // expecting to wait a certain amount of microseconds, and ends up not + // waiting at all each time, essentially busy-waiting until the current + // frame is reached. Perhaps there should be a #define that indicates the + // wait time resolution for `JackSynchro` objects so that we can wait a + // little longer if necessary. + + jack_time_t frame_time = GetTimeFromFrames(frame); + jack_time_t current_time = GetMicroSeconds(); + return DequeueEvent((frame_time < current_time) ? 0 : + (long) (frame_time - current_time)); +} + +jack_midi_event_t * +JackMidiAsyncWaitQueue::DequeueEvent(long usec) +{ + return ((usec < 0) ? semaphore.Wait() : semaphore.TimedWait(usec)) ? + JackMidiAsyncQueue::DequeueEvent() : 0; +} + +Jack::JackMidiWriteQueue::EnqueueResult +JackMidiAsyncWaitQueue::EnqueueEvent(jack_nframes_t time, size_t size, + jack_midi_data_t *buffer) +{ + EnqueueResult result = JackMidiAsyncQueue::EnqueueEvent(time, size, + buffer); + if (result == OK) { + semaphore.Signal(); + } + return result; +} diff --git a/common/JackMidiAsyncWaitQueue.h b/common/JackMidiAsyncWaitQueue.h new file mode 100644 index 00000000..8499f688 --- /dev/null +++ b/common/JackMidiAsyncWaitQueue.h @@ -0,0 +1,99 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#ifndef __JackMidiAsyncWaitQueue__ +#define __JackMidiAsyncWaitQueue__ + +#include "JackMidiAsyncQueue.h" + +namespace Jack { + + /** + * This is an asynchronous wait queue that allows a thread to wait for a + * message, either indefinitely or for a specified time. This is one + * example of a way that the `JackMidiAsyncQueue` class can be extended so + * that process threads can interact with non-process threads to send MIDI + * events. + * + * XXX: As of right now, this code hasn't been tested. Also, note the + * warning in the JackMidiAsyncWaitQueue.cpp about semaphore wait + * resolution. + */ + + class SERVER_EXPORT JackMidiAsyncWaitQueue: public JackMidiAsyncQueue { + + private: + + JackSynchro semaphore; + + public: + + using JackMidiAsyncQueue::EnqueueEvent; + + /** + * Creates a new asynchronous MIDI wait message queue. The queue can + * store up to `max_messages` MIDI messages and up to `max_bytes` of + * MIDI data before it starts rejecting messages. + */ + + JackMidiAsyncWaitQueue(size_t max_bytes=4096, + size_t max_messages=1024); + + ~JackMidiAsyncWaitQueue(); + + /** + * Dequeues and returns a MIDI event. Returns '0' if there are no MIDI + * events available right now. + */ + + jack_midi_event_t * + DequeueEvent(); + + /** + * Waits a specified time for a MIDI event to be available, or + * indefinitely if the time is negative. Returns the MIDI event, or + * '0' if time runs out and no MIDI event is available. + */ + + jack_midi_event_t * + DequeueEvent(long usecs); + + /** + * Waits until the specified frame for a MIDI event to be available. + * Returns the MIDI event, or '0' if time runs out and no MIDI event is + * available. + */ + + jack_midi_event_t * + DequeueEvent(jack_nframes_t frame); + + /** + * Enqueues the MIDI event specified by the arguments. The return + * value indiciates whether or not the event was successfully enqueued. + */ + + EnqueueResult + EnqueueEvent(jack_nframes_t time, size_t size, + jack_midi_data_t *buffer); + + }; + +} + +#endif diff --git a/common/JackMidiBufferReadQueue.cpp b/common/JackMidiBufferReadQueue.cpp new file mode 100644 index 00000000..c53e596c --- /dev/null +++ b/common/JackMidiBufferReadQueue.cpp @@ -0,0 +1,67 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include "JackMidiBufferReadQueue.h" +#include "JackMidiUtil.h" + +using Jack::JackMidiBufferReadQueue; + +JackMidiBufferReadQueue::JackMidiBufferReadQueue() +{ + event_count = 0; + index = 0; +} + +jack_midi_event_t * +JackMidiBufferReadQueue::DequeueEvent() +{ + jack_midi_event_t *e = 0; + if (index < event_count) { + JackMidiEvent *event = &(buffer->events[index]); + midi_event.buffer = event->GetData(buffer); + midi_event.size = event->size; + midi_event.time = last_frame_time + event->time; + e = &midi_event; + index++; + } + return e; +} + +void +JackMidiBufferReadQueue::ResetMidiBuffer(JackMidiBuffer *buffer) +{ + event_count = 0; + index = 0; + if (! buffer) { + jack_error("JackMidiBufferReadQueue::ResetMidiBuffer - buffer reset " + "to NULL"); + } else if (! buffer->IsValid()) { + jack_error("JackMidiBufferReadQueue::ResetMidiBuffer - buffer reset " + "to invalid buffer"); + } else { + uint32_t lost_events = buffer->lost_events; + if (lost_events) { + jack_error("JackMidiBufferReadQueue::ResetMidiBuffer - %d events " + "lost during mixdown", lost_events); + } + this->buffer = buffer; + event_count = buffer->event_count; + last_frame_time = GetLastFrame(); + } +} diff --git a/common/JackMidiBufferReadQueue.h b/common/JackMidiBufferReadQueue.h new file mode 100644 index 00000000..84337e42 --- /dev/null +++ b/common/JackMidiBufferReadQueue.h @@ -0,0 +1,60 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#ifndef __JackMidiBufferReadQueue__ +#define __JackMidiBufferReadQueue__ + +#include "JackMidiReadQueue.h" + +namespace Jack { + + /** + * Wrapper class to present a JackMidiBuffer in a read queue interface. + */ + + class SERVER_EXPORT JackMidiBufferReadQueue: public JackMidiReadQueue { + + private: + + JackMidiBuffer *buffer; + jack_nframes_t event_count; + jack_nframes_t index; + jack_nframes_t last_frame_time; + jack_midi_event_t midi_event; + + public: + + JackMidiBufferReadQueue(); + + jack_midi_event_t * + DequeueEvent(); + + /** + * This method must be called each period to reset the MIDI buffer for + * processing. + */ + + void + ResetMidiBuffer(JackMidiBuffer *buffer); + + }; + +} + +#endif diff --git a/common/JackMidiBufferWriteQueue.cpp b/common/JackMidiBufferWriteQueue.cpp new file mode 100644 index 00000000..7e6ae67f --- /dev/null +++ b/common/JackMidiBufferWriteQueue.cpp @@ -0,0 +1,65 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include "JackMidiBufferWriteQueue.h" +#include "JackMidiUtil.h" + +using Jack::JackMidiBufferWriteQueue; + +JackMidiBufferWriteQueue::JackMidiBufferWriteQueue() +{ + // Empty +} + +Jack::JackMidiWriteQueue::EnqueueResult +JackMidiBufferWriteQueue::EnqueueEvent(jack_nframes_t time, size_t size, + jack_midi_data_t *data) +{ + if (time >= next_frame_time) { + return EVENT_EARLY; + } + if (time < last_frame_time) { + time = last_frame_time; + } + jack_midi_data_t *dst = buffer->ReserveEvent(time - last_frame_time, size); + if (! dst) { + return size > max_bytes ? BUFFER_TOO_SMALL : BUFFER_FULL; + } + memcpy(dst, data, size); + return OK; +} + +void +JackMidiBufferWriteQueue::ResetMidiBuffer(JackMidiBuffer *buffer, + jack_nframes_t frames) +{ + if (! buffer) { + jack_error("JackMidiBufferWriteQueue::ResetMidiBuffer - buffer reset " + "to NULL"); + } else if (! buffer->IsValid()) { + jack_error("JackMidiBufferWriteQueue::ResetMidiBuffer - buffer reset " + "to invalid buffer"); + } else { + this->buffer = buffer; + buffer->Reset(frames); + last_frame_time = GetLastFrame(); + max_bytes = buffer->MaxEventSize(); + next_frame_time = last_frame_time + frames; + } +} diff --git a/common/JackMidiBufferWriteQueue.h b/common/JackMidiBufferWriteQueue.h new file mode 100644 index 00000000..90d5cbf1 --- /dev/null +++ b/common/JackMidiBufferWriteQueue.h @@ -0,0 +1,62 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#ifndef __JackMidiBufferWriteQueue__ +#define __JackMidiBufferWriteQueue__ + +#include "JackMidiWriteQueue.h" + +namespace Jack { + + /** + * Wrapper class to present a JackMidiBuffer in a write queue interface. + */ + + class SERVER_EXPORT JackMidiBufferWriteQueue: public JackMidiWriteQueue { + + private: + + JackMidiBuffer *buffer; + jack_nframes_t last_frame_time; + size_t max_bytes; + jack_nframes_t next_frame_time; + + public: + + using JackMidiWriteQueue::EnqueueEvent; + + JackMidiBufferWriteQueue(); + + EnqueueResult + EnqueueEvent(jack_nframes_t time, size_t size, + jack_midi_data_t *buffer); + + /** + * This method must be called each period to reset the MIDI buffer for + * processing. + */ + + void + ResetMidiBuffer(JackMidiBuffer *buffer, jack_nframes_t frames); + + }; + +} + +#endif diff --git a/common/JackMidiDriver.cpp b/common/JackMidiDriver.cpp index 15d507b1..1fbd1e38 100644 --- a/common/JackMidiDriver.cpp +++ b/common/JackMidiDriver.cpp @@ -34,19 +34,10 @@ JackMidiDriver::JackMidiDriver(const char* name, const char* alias, JackLockedEn : JackDriver(name, alias, engine, table), fCaptureChannels(0), fPlaybackChannels(0) -{ - for (int i = 0; i < DRIVER_PORT_NUM; i++) { - fRingBuffer[i] = NULL; - } -} +{} JackMidiDriver::~JackMidiDriver() -{ - for (int i = 0; i < fCaptureChannels; i++) { - if (fRingBuffer[i]) - jack_ringbuffer_free(fRingBuffer[i]); - } -} +{} int JackMidiDriver::Open(bool capturing, bool playing, @@ -60,11 +51,6 @@ int JackMidiDriver::Open(bool capturing, { fCaptureChannels = inchannels; fPlaybackChannels = outchannels; - - for (int i = 0; i < fCaptureChannels; i++) { - fRingBuffer[i] = jack_ringbuffer_create(sizeof(jack_default_audio_sample_t) * BUFFER_SIZE_MAX); - } - return JackDriver::Open(capturing, playing, inchannels, outchannels, monitor, capture_driver_name, playback_driver_name, capture_latency, playback_latency); } @@ -104,6 +90,7 @@ int JackMidiDriver::Attach() jack_log("JackMidiDriver::Attach fPlaybackPortList[i] port_index = %ld", port_index); } + UpdateLatencies(); return 0; } @@ -133,33 +120,108 @@ int JackMidiDriver::Write() return 0; } +void JackMidiDriver::UpdateLatencies() +{ + jack_latency_range_t range; + + for (int i = 0; i < fCaptureChannels; i++) { + range.max = range.min = fEngineControl->fBufferSize; + fGraphManager->GetPort(fCapturePortList[i])->SetLatencyRange(JackCaptureLatency, &range); + } + + for (int i = 0; i < fPlaybackChannels; i++) { + if (! fEngineControl->fSyncMode) { + range.max = range.min = fEngineControl->fBufferSize * 2; + } + fGraphManager->GetPort(fPlaybackPortList[i])->SetLatencyRange(JackPlaybackLatency, &range); + } +} + +int JackMidiDriver::SetBufferSize(jack_nframes_t buffer_size) +{ + UpdateLatencies(); + return 0; +} + int JackMidiDriver::ProcessNull() { return 0; } -int JackMidiDriver::Process() +int JackMidiDriver::ProcessRead() { + return (fEngineControl->fSyncMode) ? ProcessReadSync() : ProcessReadAsync(); +} + +int JackMidiDriver::ProcessWrite() +{ + return (fEngineControl->fSyncMode) ? ProcessWriteSync() : ProcessWriteAsync(); +} + +int JackMidiDriver::ProcessReadSync() +{ + int res = 0; + // Read input buffers for the current cycle if (Read() < 0) { - jack_error("JackMidiDriver::Process: read error, skip cycle"); - return 0; // Skip cycle, but continue processing... + jack_error("JackMidiDriver::ProcessReadSync: read error, skip cycle"); + res = -1; } - fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable); - if (fEngineControl->fSyncMode) { - if (fGraphManager->SuspendRefNum(&fClientControl, fSynchroTable, fEngineControl->fTimeOutUsecs) < 0) { - jack_error("JackFreewheelDriver::ProcessSync SuspendRefNum error"); - return -1; - } + if (fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable) < 0) { + jack_error("JackMidiDriver::ProcessReadSync - ResumeRefNum error"); + res = -1; + } + + return res; +} + +int JackMidiDriver::ProcessWriteSync() +{ + int res = 0; + + if (fGraphManager->SuspendRefNum(&fClientControl, fSynchroTable, + DRIVER_TIMEOUT_FACTOR * + fEngineControl->fTimeOutUsecs) < 0) { + jack_error("JackMidiDriver::ProcessWriteSync - SuspendRefNum error"); + res = -1; } - // Write output buffers for the current cycle + // Write output buffers from the current cycle if (Write() < 0) { - jack_error("JackMidiDriver::Process: write error, skip cycle"); - return 0; // Skip cycle, but continue processing... + jack_error("JackMidiDriver::ProcessWriteSync - Write error"); + res = -1; } + return res; +} + +int JackMidiDriver::ProcessReadAsync() +{ + int res = 0; + + // Read input buffers for the current cycle + if (Read() < 0) { + jack_error("JackMidiDriver::ProcessReadAsync: read error, skip cycle"); + res = -1; + } + + // Write output buffers from the previous cycle + if (Write() < 0) { + jack_error("JackMidiDriver::ProcessReadAsync - Write error"); + res = -1; + } + + if (fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable) < 0) { + jack_error("JackMidiDriver::ProcessReadAsync - ResumeRefNum error"); + res = -1; + } + + return res; +} + +int JackMidiDriver::ProcessWriteAsync() +{ return 0; } diff --git a/common/JackMidiDriver.h b/common/JackMidiDriver.h index 7c5bc5e0..b7584bbe 100644 --- a/common/JackMidiDriver.h +++ b/common/JackMidiDriver.h @@ -39,15 +39,21 @@ class SERVER_EXPORT JackMidiDriver : public JackDriver int fCaptureChannels; int fPlaybackChannels; - - jack_ringbuffer_t* fRingBuffer[DRIVER_PORT_NUM]; jack_port_id_t fCapturePortList[DRIVER_PORT_NUM]; jack_port_id_t fPlaybackPortList[DRIVER_PORT_NUM]; - + JackMidiBuffer* GetInputBuffer(int port_index); JackMidiBuffer* GetOutputBuffer(int port_index); - + + virtual int ProcessReadSync(); + virtual int ProcessWriteSync(); + + virtual int ProcessReadAsync(); + virtual int ProcessWriteAsync(); + + virtual void UpdateLatencies(); + public: JackMidiDriver(const char* name, const char* alias, JackLockedEngine* engine, JackSynchro* table); @@ -62,16 +68,20 @@ class SERVER_EXPORT JackMidiDriver : public JackDriver const char* playback_driver_name, jack_nframes_t capture_latency, jack_nframes_t playback_latency); - - virtual int Process(); + + virtual int SetBufferSize(jack_nframes_t buffer_size); + + virtual int ProcessRead(); + virtual int ProcessWrite(); + virtual int ProcessNull(); virtual int Attach(); virtual int Detach(); - + virtual int Read(); virtual int Write(); - + }; } // end of namespace diff --git a/common/JackMidiPort.cpp b/common/JackMidiPort.cpp index 42ee245c..5bd82341 100644 --- a/common/JackMidiPort.cpp +++ b/common/JackMidiPort.cpp @@ -55,7 +55,6 @@ SERVER_EXPORT jack_midi_data_t* JackMidiBuffer::ReserveEvent(jack_nframes_t time lost_events++; return 0; } - JackMidiEvent* event = &events[event_count++]; event->time = time; event->size = size; @@ -90,7 +89,7 @@ static void MidiBufferMixdown(void* mixbuffer, void** src_buffers, int src_count { JackMidiBuffer* mix = static_cast(mixbuffer); if (!mix->IsValid()) { - jack_error("MIDI: invalid mix buffer"); + jack_error("Jack::MidiBufferMixdown - invalid mix buffer"); return; } mix->Reset(nframes); @@ -98,8 +97,10 @@ static void MidiBufferMixdown(void* mixbuffer, void** src_buffers, int src_count int event_count = 0; for (int i = 0; i < src_count; ++i) { JackMidiBuffer* buf = static_cast(src_buffers[i]); - if (!buf->IsValid()) + if (!buf->IsValid()) { + jack_error("Jack::MidiBufferMixdown - invalid source buffer"); return; + } buf->mix_index = 0; event_count += buf->event_count; mix->lost_events += buf->lost_events; diff --git a/common/JackMidiRawInputWriteQueue.cpp b/common/JackMidiRawInputWriteQueue.cpp new file mode 100644 index 00000000..f2853160 --- /dev/null +++ b/common/JackMidiRawInputWriteQueue.cpp @@ -0,0 +1,300 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include +#include +#include + +#include "JackMidiRawInputWriteQueue.h" + +using Jack::JackMidiRawInputWriteQueue; + +JackMidiRawInputWriteQueue:: +JackMidiRawInputWriteQueue(JackMidiWriteQueue *write_queue, + size_t max_packet_data, size_t max_packets) +{ + packet_queue = new JackMidiAsyncQueue(max_packet_data, max_packets); + std::auto_ptr packet_queue_ptr(packet_queue); + input_ring = jack_ringbuffer_create(max_packet_data + 1); + if (! input_ring) { + throw std::bad_alloc(); + } + jack_ringbuffer_mlock(input_ring); + Clear(); + expected_bytes = 0; + event_pending = false; + packet = 0; + status_byte = 0; + this->write_queue = write_queue; + packet_queue_ptr.release(); +} + +JackMidiRawInputWriteQueue::~JackMidiRawInputWriteQueue() +{ + jack_ringbuffer_free(input_ring); + delete packet_queue; +} + +void +JackMidiRawInputWriteQueue::Clear() +{ + jack_ringbuffer_reset(input_ring); + total_bytes = 0; + unbuffered_bytes = 0; +} + +Jack::JackMidiWriteQueue::EnqueueResult +JackMidiRawInputWriteQueue::EnqueueEvent(jack_nframes_t time, size_t size, + jack_midi_data_t *buffer) +{ + return packet_queue->EnqueueEvent(time, size, buffer); +} + +void +JackMidiRawInputWriteQueue::HandleBufferFailure(size_t unbuffered_bytes, + size_t total_bytes) +{ + jack_error("JackMidiRawInputWriteQueue::HandleBufferFailure - %d MIDI " + "byte(s) of a %d byte message could not be buffered. The " + "message has been dropped.", unbuffered_bytes, total_bytes); +} + +void +JackMidiRawInputWriteQueue::HandleEventLoss(jack_midi_event_t *event) +{ + jack_error("JackMidiRawInputWriteQueue::HandleEventLoss - A %d byte MIDI " + "event scheduled for frame '%d' could not be processed because " + "the write queue cannot accomodate an event of that size. The " + "event has been discarded.", event->size, event->time); +} + +void +JackMidiRawInputWriteQueue::HandleIncompleteMessage(size_t total_bytes) +{ + jack_error("JackMidiRawInputWriteQueue::HandleIncompleteMessage - " + "Discarding %d MIDI byte(s) of an incomplete message. The " + "MIDI cable may have been unplugged.", total_bytes); +} + +void +JackMidiRawInputWriteQueue::HandleInvalidStatusByte(jack_midi_data_t byte) +{ + jack_error("JackMidiRawInputWriteQueue::HandleInvalidStatusByte - " + "Dropping invalid MIDI status byte '%x'.", (unsigned int) byte); +} + +void +JackMidiRawInputWriteQueue::HandleUnexpectedSysexEnd(size_t total_bytes) +{ + jack_error("JackMidiRawInputWriteQueue::HandleUnexpectedSysexEnd - " + "Received a sysex end byte without first receiving a sysex " + "start byte. Discarding %d MIDI byte(s). The cable may have " + "been unplugged.", total_bytes); +} + +bool +JackMidiRawInputWriteQueue::PrepareBufferedEvent(jack_nframes_t time) +{ + bool result = ! unbuffered_bytes; + if (! result) { + HandleBufferFailure(unbuffered_bytes, total_bytes); + } else { + size_t size = jack_ringbuffer_read_space(input_ring); + jack_ringbuffer_data_t vector[2]; + jack_ringbuffer_get_read_vector(input_ring, vector); + // We don't worry about the second part of the vector, as we reset the + // ringbuffer after each parsed message. + PrepareEvent(time, size, (jack_midi_data_t *) vector[0].buf); + } + Clear(); + if (status_byte >= 0xf0) { + expected_bytes = 0; + status_byte = 0; + } + return result; +} + +bool +JackMidiRawInputWriteQueue::PrepareByteEvent(jack_nframes_t time, + jack_midi_data_t byte) +{ + event_byte = byte; + PrepareEvent(time, 1, &event_byte); + return true; +} + +void +JackMidiRawInputWriteQueue::PrepareEvent(jack_nframes_t time, size_t size, + jack_midi_data_t *buffer) +{ + event.buffer = buffer; + event.size = size; + event.time = time; + event_pending = true; +} + +jack_nframes_t +JackMidiRawInputWriteQueue::Process(jack_nframes_t boundary_frame) +{ + if (event_pending) { + if (! WriteEvent(boundary_frame)) { + return event.time; + } + } + if (! packet) { + packet = packet_queue->DequeueEvent(); + } + for (; packet; packet = packet_queue->DequeueEvent()) { + for (; packet->size; (packet->buffer)++, (packet->size)--) { + if (ProcessByte(packet->time, *(packet->buffer))) { + if (! WriteEvent(boundary_frame)) { + (packet->buffer)++; + (packet->size)--; + return event.time; + } + } + } + } + return 0; +} + +bool +JackMidiRawInputWriteQueue::ProcessByte(jack_nframes_t time, + jack_midi_data_t byte) +{ + if (byte >= 0xf8) { + // Realtime + if (byte == 0xfd) { + HandleInvalidStatusByte(byte); + return false; + } + return PrepareByteEvent(time, byte); + } + if (byte == 0xf7) { + // Sysex end + if (status_byte == 0xf0) { + RecordByte(byte); + return PrepareBufferedEvent(time); + } + HandleUnexpectedSysexEnd(total_bytes); + Clear(); + expected_bytes = 0; + status_byte = 0; + return false; + } + if (byte >= 0x80) { + // Non-realtime status byte + if (total_bytes) { + HandleIncompleteMessage(total_bytes); + Clear(); + } + status_byte = byte; + switch (byte & 0xf0) { + case 0x80: + case 0x90: + case 0xa0: + case 0xb0: + case 0xe0: + // Note On, Note Off, Aftertouch, Control Change, Pitch Wheel + expected_bytes = 3; + break; + case 0xc0: + case 0xd0: + // Program Change, Channel Pressure + expected_bytes = 2; + break; + case 0xf0: + switch (byte) { + case 0xf0: + // Sysex + expected_bytes = 0; + break; + case 0xf1: + case 0xf3: + // MTC Quarter Frame, Song Select + expected_bytes = 2; + break; + case 0xf2: + // Song Position + expected_bytes = 3; + break; + case 0xf4: + case 0xf5: + // Undefined + HandleInvalidStatusByte(byte); + expected_bytes = 0; + status_byte = 0; + return false; + case 0xf6: + // Tune Request + bool result = PrepareByteEvent(time, byte); + if (result) { + expected_bytes = 0; + status_byte = 0; + } + return result; + } + } + RecordByte(byte); + return false; + } + // Data byte + if (! status_byte) { + // Data bytes without a status will be discarded. + total_bytes++; + unbuffered_bytes++; + return false; + } + if (! total_bytes) { + // Apply running status. + RecordByte(status_byte); + } + RecordByte(byte); + return (total_bytes == expected_bytes) ? PrepareBufferedEvent(time) : + false; +} + +void +JackMidiRawInputWriteQueue::RecordByte(jack_midi_data_t byte) +{ + if (jack_ringbuffer_write(input_ring, (const char *) &byte, 1) != 1) { + unbuffered_bytes++; + } + total_bytes++; +} + +bool +JackMidiRawInputWriteQueue::WriteEvent(jack_nframes_t boundary_frame) +{ + if ((! boundary_frame) || (event.time < boundary_frame)) { + switch (write_queue->EnqueueEvent(&event)) { + case BUFFER_TOO_SMALL: + HandleEventLoss(&event); + // Fallthrough on purpose + case OK: + event_pending = false; + return true; + default: + // This is here to stop compilers from warning us about not + // handling enumeration values. + ; + } + } + return false; +} diff --git a/common/JackMidiRawInputWriteQueue.h b/common/JackMidiRawInputWriteQueue.h new file mode 100644 index 00000000..4639107f --- /dev/null +++ b/common/JackMidiRawInputWriteQueue.h @@ -0,0 +1,170 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#ifndef __JackMidiRawInputWriteQueue__ +#define __JackMidiRawInputWriteQueue__ + +#include "JackMidiAsyncQueue.h" +#include "JackMidiWriteQueue.h" +#include "ringbuffer.h" + +namespace Jack { + + /** + * This queue enqueues raw, unparsed MIDI packets, and outputs complete + * MIDI messages to a write queue. + * + * Use this queue if the MIDI API you're interfacing with gives you raw + * MIDI bytes that must be parsed. + */ + + class SERVER_EXPORT JackMidiRawInputWriteQueue: public JackMidiWriteQueue { + + private: + + jack_midi_event_t event; + jack_midi_data_t event_byte; + bool event_pending; + size_t expected_bytes; + jack_ringbuffer_t *input_ring; + jack_midi_event_t *packet; + JackMidiAsyncQueue *packet_queue; + jack_midi_data_t status_byte; + size_t total_bytes; + size_t unbuffered_bytes; + JackMidiWriteQueue *write_queue; + + void + Clear(); + + bool + PrepareBufferedEvent(jack_nframes_t time); + + bool + PrepareByteEvent(jack_nframes_t time, jack_midi_data_t byte); + + void + PrepareEvent(jack_nframes_t time, size_t size, + jack_midi_data_t *buffer); + + bool + ProcessByte(jack_nframes_t time, jack_midi_data_t byte); + + void + RecordByte(jack_midi_data_t byte); + + bool + WriteEvent(jack_nframes_t boundary_frame); + + protected: + + /** + * Override this method to specify what happens when there isn't enough + * room in the ringbuffer to contain a parsed event. The default + * method outputs an error message. + */ + + virtual void + HandleBufferFailure(size_t unbuffered_bytes, size_t total_bytes); + + /** + * Override this method to specify what happens when a parsed event + * can't be written to the write queue because the event's size exceeds + * the total possible space in the write queue. The default method + * outputs an error message. + */ + + virtual void + HandleEventLoss(jack_midi_event_t *event); + + /** + * Override this method to specify what happens when an incomplete MIDI + * message is parsed. The default method outputs an error message. + */ + + virtual void + HandleIncompleteMessage(size_t total_bytes); + + /** + * Override this method to specify what happens when an invalid MIDI + * status byte is parsed. The default method outputs an error message. + */ + + virtual void + HandleInvalidStatusByte(jack_midi_data_t byte); + + /** + * Override this method to specify what happens when a sysex end byte + * is parsed without first parsing a sysex begin byte. The default + * method outputs an error message. + */ + + virtual void + HandleUnexpectedSysexEnd(size_t total_bytes); + + public: + + using JackMidiWriteQueue::EnqueueEvent; + + /** + * Called to create a new raw input write queue. The `write_queue` + * argument is the queue to write parsed messages to. The optional + * `max_packets` argument specifies the number of packets that can be + * enqueued in the internal queue. The optional `max_packet_data` + * argument specifies the total number of MIDI bytes that can be put in + * the internal queue, AND the maximum size for an event that can be + * written to the write queue. + */ + + JackMidiRawInputWriteQueue(JackMidiWriteQueue *write_queue, + size_t max_packet_data=4096, + size_t max_packets=1024); + + ~JackMidiRawInputWriteQueue(); + + EnqueueResult + EnqueueEvent(jack_nframes_t time, size_t size, + jack_midi_data_t *buffer); + + /** + * The `Process()` method should be called each time the + * `EnqueueEvent()` method returns `OK`. The `Process()` method will + * return the next frame at which an event should be sent. The return + * value from `Process()` depends upon the result of writing bytes to + * the write queue: + * + * -If the return value is '0', then all *complete* events have been + * sent successfully to the write queue. Don't call `Process()` again + * until another event has been enqueued. + * + * -If the return value is a non-zero value, then it specifies the + * frame that a pending event is scheduled to sent at. If the frame is + * in the future, then `Process()` should be called again at that time; + * otherwise, `Process()` should be called as soon as the write queue + * will accept events again. + */ + + jack_nframes_t + Process(jack_nframes_t boundary_frame=0); + + }; + +} + +#endif diff --git a/common/JackMidiRawOutputWriteQueue.cpp b/common/JackMidiRawOutputWriteQueue.cpp new file mode 100644 index 00000000..6624c47c --- /dev/null +++ b/common/JackMidiRawOutputWriteQueue.cpp @@ -0,0 +1,228 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include +#include + +#include "JackError.h" +#include "JackMidiRawOutputWriteQueue.h" +#include "JackMidiUtil.h" + +using Jack::JackMidiRawOutputWriteQueue; + +#define STILL_TIME(c, b) ((! (b)) || ((c) < (b))) + +JackMidiRawOutputWriteQueue:: +JackMidiRawOutputWriteQueue(JackMidiSendQueue *send_queue, size_t non_rt_size, + size_t max_non_rt_messages, size_t max_rt_messages) +{ + non_rt_queue = new JackMidiAsyncQueue(non_rt_size, max_non_rt_messages); + std::auto_ptr non_rt_ptr(non_rt_queue); + rt_queue = new JackMidiAsyncQueue(max_rt_messages, max_rt_messages); + std::auto_ptr rt_ptr(rt_queue); + non_rt_event = 0; + rt_event = 0; + running_status = 0; + this->send_queue = send_queue; + rt_ptr.release(); + non_rt_ptr.release(); +} + +JackMidiRawOutputWriteQueue::~JackMidiRawOutputWriteQueue() +{ + delete non_rt_queue; + delete rt_queue; +} + +bool +JackMidiRawOutputWriteQueue::DequeueNonRealtimeEvent() +{ + non_rt_event = non_rt_queue->DequeueEvent(); + bool result = non_rt_event != 0; + if (result) { + non_rt_event_time = non_rt_event->time; + running_status = ApplyRunningStatus(non_rt_event, running_status); + } + return result; +} + +bool +JackMidiRawOutputWriteQueue::DequeueRealtimeEvent() +{ + rt_event = rt_queue->DequeueEvent(); + bool result = rt_event != 0; + if (result) { + rt_event_time = rt_event->time; + } + return result; +} + +Jack::JackMidiWriteQueue::EnqueueResult +JackMidiRawOutputWriteQueue::EnqueueEvent(jack_nframes_t time, size_t size, + jack_midi_data_t *buffer) +{ + JackMidiAsyncQueue *queue = (size == 1) && (*buffer >= 0xf8) ? rt_queue : + non_rt_queue; + EnqueueResult result = queue->EnqueueEvent(time, size, buffer); + if (result == OK) { + last_enqueued_message_time = time; + } + return result; +} + +void +JackMidiRawOutputWriteQueue::HandleWriteQueueBug(jack_nframes_t time, + jack_midi_data_t byte) +{ + jack_error("JackMidiRawOutputWriteQueue::HandleWriteQueueBug - **BUG** " + "The write queue told us that it couldn't enqueue a 1-byte " + "MIDI event scheduled for frame '%d'. This is probably a bug " + "in the write queue implementation.", time); +} + +jack_nframes_t +JackMidiRawOutputWriteQueue::Process(jack_nframes_t boundary_frame) +{ + jack_nframes_t current_frame = send_queue->GetNextScheduleFrame(); + while (STILL_TIME(current_frame, boundary_frame)) { + if (! non_rt_event) { + DequeueNonRealtimeEvent(); + } + if (! rt_event) { + DequeueRealtimeEvent(); + } + if (! (non_rt_event || rt_event)) { + return 0; + } + if (! WriteRealtimeEvents(boundary_frame)) { + break; + } + jack_nframes_t non_rt_boundary = + rt_event && STILL_TIME(rt_event_time, boundary_frame) ? + rt_event_time : boundary_frame; + if (! WriteNonRealtimeEvents(non_rt_boundary)) { + break; + } + current_frame = send_queue->GetNextScheduleFrame(); + } + + // If we get here, that means there is some sort of message available, and + // that either we can't currently write to the write queue or we have + // reached the boundary frame. Return the earliest time that a message is + // scheduled to be sent. + + return ! non_rt_event ? rt_event_time : + non_rt_event->size > 1 ? current_frame : + ! rt_event ? non_rt_event_time : + non_rt_event_time < rt_event_time ? non_rt_event_time : rt_event_time; +} + +bool +JackMidiRawOutputWriteQueue::SendByte(jack_nframes_t time, + jack_midi_data_t byte) +{ + switch (send_queue->EnqueueEvent(time, 1, &byte)) { + case BUFFER_TOO_SMALL: + HandleWriteQueueBug(time, byte); + case OK: + return true; + default: + // This is here to stop compilers from warning us about not handling + // enumeration values. + ; + } + return false; +} + +bool +JackMidiRawOutputWriteQueue:: +WriteNonRealtimeEvents(jack_nframes_t boundary_frame) +{ + if (! non_rt_event) { + if (! DequeueNonRealtimeEvent()) { + return true; + } + } + jack_nframes_t current_frame = send_queue->GetNextScheduleFrame(); + do { + + // Send out as much of the non-realtime buffer as we can, save for one + // byte which we will send out when the message is supposed to arrive. + + for (; non_rt_event->size > 1; + (non_rt_event->size)--, (non_rt_event->buffer)++) { + if (! STILL_TIME(current_frame, boundary_frame)) { + return true; + } + if (! SendByte(current_frame, *(non_rt_event->buffer))) { + return false; + } + current_frame = send_queue->GetNextScheduleFrame(); + } + if (! (STILL_TIME(current_frame, boundary_frame) && + STILL_TIME(non_rt_event_time, boundary_frame))) { + return true; + } + + // There's still time. Try to send the byte. + + if (! SendByte(non_rt_event_time, *(non_rt_event->buffer))) { + return false; + } + current_frame = send_queue->GetNextScheduleFrame(); + if (! DequeueNonRealtimeEvent()) { + break; + } + } while (STILL_TIME(current_frame, boundary_frame)); + return true; +} + +bool +JackMidiRawOutputWriteQueue::WriteRealtimeEvents(jack_nframes_t boundary_frame) +{ + jack_nframes_t current_frame = send_queue->GetNextScheduleFrame(); + if (! rt_event) { + if (! DequeueRealtimeEvent()) { + return true; + } + } + for (;;) { + if (! STILL_TIME(current_frame, boundary_frame)) { + return false; + } + + // If: + // -there's still time before we need to send the realtime event + // -there's a non-realtime event available for sending + // -non-realtime data can be scheduled before this event + + if ((rt_event_time > current_frame) && non_rt_event && + ((non_rt_event->size > 1) || + (non_rt_event_time < rt_event_time))) { + return true; + } + if (! SendByte(rt_event_time, *(rt_event->buffer))) { + return false; + } + current_frame = send_queue->GetNextScheduleFrame(); + if (! DequeueRealtimeEvent()) { + return true; + } + } +} diff --git a/common/JackMidiRawOutputWriteQueue.h b/common/JackMidiRawOutputWriteQueue.h new file mode 100644 index 00000000..0437ec93 --- /dev/null +++ b/common/JackMidiRawOutputWriteQueue.h @@ -0,0 +1,147 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#ifndef __JackMidiRawOutputWriteQueue__ +#define __JackMidiRawOutputWriteQueue__ + +#include "JackMidiAsyncQueue.h" +#include "JackMidiSendQueue.h" + +namespace Jack { + + /** + * This queue enqueues valid MIDI events and modifies them for raw output + * to a write queue. It has a number of advantages over straight MIDI + * event copying: + * + * -Running status: Status bytes can be omitted when the status byte of the + * current MIDI message is the same as the status byte of the last sent + * MIDI message. + * + * -Realtime messages: Realtime messages are given priority over + * non-realtime messages. Realtime bytes are interspersed with + * non-realtime bytes so that realtime messages can be sent as close as + * possible to the time they're scheduled for sending. + * + * -Time optimization: Bytes in non-realtime messages are sent out early + * when possible, with the last byte of the message being sent out as close + * to the specified event time as possible. + * + * Use this queue if the MIDI API you're interfacing with allows you to + * send raw MIDI bytes. + */ + + class SERVER_EXPORT JackMidiRawOutputWriteQueue: + public JackMidiWriteQueue { + + private: + + jack_nframes_t last_enqueued_message_time; + jack_midi_event_t *non_rt_event; + jack_nframes_t non_rt_event_time; + JackMidiAsyncQueue *non_rt_queue; + jack_midi_event_t *rt_event; + jack_nframes_t rt_event_time; + JackMidiAsyncQueue *rt_queue; + jack_midi_data_t running_status; + JackMidiSendQueue *send_queue; + + bool + DequeueNonRealtimeEvent(); + + bool + DequeueRealtimeEvent(); + + bool + SendByte(jack_nframes_t time, jack_midi_data_t byte); + + bool + WriteNonRealtimeEvents(jack_nframes_t boundary_frame); + + bool + WriteRealtimeEvents(jack_nframes_t boundary_frame); + + protected: + + /** + * Override this method to specify what happens when the write queue + * says that a 1-byte event is too large for its buffer. Basically, + * this should never happen. + */ + + virtual void + HandleWriteQueueBug(jack_nframes_t time, jack_midi_data_t byte); + + public: + + using JackMidiWriteQueue::EnqueueEvent; + + /** + * Called to create a new raw write queue. The `send_queue` argument + * is the queue to write raw bytes to. The optional `max_rt_messages` + * argument specifies the number of messages that can be enqueued in + * the internal realtime queue. The optional `max_non_rt_messages` + * argument specifies the number of messages that can be enqueued in + * the internal non-realtime queue. The optional `non_rt_size` + * argument specifies the total number of MIDI bytes that can be put in + * the non-realtime queue. + */ + + JackMidiRawOutputWriteQueue(JackMidiSendQueue *send_queue, + size_t non_rt_size=4096, + size_t max_non_rt_messages=1024, + size_t max_rt_messages=128); + + ~JackMidiRawOutputWriteQueue(); + + EnqueueResult + EnqueueEvent(jack_nframes_t time, size_t size, + jack_midi_data_t *buffer); + + /** + * The `Process()` method should be called each time the + * `EnqueueEvent()` method returns 'OK'. The `Process()` method will + * return the next frame at which an event should be sent. The return + * value from `Process()` depends upon the result of writing bytes to + * the write queue: + * + * -If the return value is '0', then all events that have been enqueued + * in this queue have been sent successfully to the write queue. Don't + * call `Process()` again until another event has been enqueued. + * + * -If the return value is an earlier frame or the current frame, it + * means that the write queue returned 'BUFFER_FULL', 'ERROR', or + * 'EVENT_EARLY' when this queue attempted to send the next byte, and + * that the byte should have already been sent, or is scheduled to be + * sent *now*. `Process()` should be called again when the write queue + * can enqueue events again successfully. How to determine when this + * will happen is left up to the caller. + * + * -If the return value is in the future, then `Process()` should be + * called again at that time, or after another event is enqueued. + */ + + jack_nframes_t + Process(jack_nframes_t boundary_frame=0); + + }; + +} + +#endif diff --git a/common/JackMidiReadQueue.cpp b/common/JackMidiReadQueue.cpp new file mode 100644 index 00000000..a6869691 --- /dev/null +++ b/common/JackMidiReadQueue.cpp @@ -0,0 +1,27 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include "JackMidiReadQueue.h" + +using Jack::JackMidiReadQueue; + +JackMidiReadQueue::~JackMidiReadQueue() +{ + // Empty +} diff --git a/common/JackMidiReadQueue.h b/common/JackMidiReadQueue.h new file mode 100644 index 00000000..0f4ca692 --- /dev/null +++ b/common/JackMidiReadQueue.h @@ -0,0 +1,55 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#ifndef __JackMidiReadQueue__ +#define __JackMidiReadQueue__ + +#include "JackMidiPort.h" + +namespace Jack { + + /** + * Interface for objects that MIDI events can be read from. + */ + + class SERVER_EXPORT JackMidiReadQueue { + + public: + + virtual + ~JackMidiReadQueue(); + + /** + * Dequeues an event from the queue. Returns the event, or 0 if no + * events are available for reading. + * + * An event dequeued from the read queue is guaranteed to be valid up + * until another event is dequeued, at which all bets are off. Make + * sure that you handle each event you dequeue before dequeueing the + * next event. + */ + + virtual jack_midi_event_t * + DequeueEvent() = 0; + + }; + +} + +#endif diff --git a/common/JackMidiReceiveQueue.cpp b/common/JackMidiReceiveQueue.cpp new file mode 100644 index 00000000..3eb3573e --- /dev/null +++ b/common/JackMidiReceiveQueue.cpp @@ -0,0 +1,27 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include "JackMidiReceiveQueue.h" + +using Jack::JackMidiReceiveQueue; + +JackMidiReceiveQueue::~JackMidiReceiveQueue() +{ + // Empty +} diff --git a/common/JackMidiReceiveQueue.h b/common/JackMidiReceiveQueue.h new file mode 100644 index 00000000..1d19c3c1 --- /dev/null +++ b/common/JackMidiReceiveQueue.h @@ -0,0 +1,42 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#ifndef __JackMidiReceiveQueue__ +#define __JackMidiReceiveQueue__ + +#include "JackMidiReadQueue.h" + +namespace Jack { + + /** + * Implemented by MIDI input connections. + */ + + class SERVER_EXPORT JackMidiReceiveQueue: public JackMidiReadQueue { + + public: + + virtual + ~JackMidiReceiveQueue(); + + }; + +} + +#endif diff --git a/common/JackMidiSendQueue.cpp b/common/JackMidiSendQueue.cpp new file mode 100644 index 00000000..ac66d812 --- /dev/null +++ b/common/JackMidiSendQueue.cpp @@ -0,0 +1,34 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include "JackMidiSendQueue.h" +#include "JackMidiUtil.h" + +using Jack::JackMidiSendQueue; + +JackMidiSendQueue::~JackMidiSendQueue() +{ + // Empty +} + +jack_nframes_t +JackMidiSendQueue::GetNextScheduleFrame() +{ + return GetCurrentFrame(); +} diff --git a/common/JackMidiSendQueue.h b/common/JackMidiSendQueue.h new file mode 100644 index 00000000..0cb8df44 --- /dev/null +++ b/common/JackMidiSendQueue.h @@ -0,0 +1,52 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#ifndef __JackMidiSendQueue__ +#define __JackMidiSendQueue__ + +#include "JackMidiWriteQueue.h" + +namespace Jack { + + /** + * Implemented by MIDI output connections. + */ + + class SERVER_EXPORT JackMidiSendQueue: public JackMidiWriteQueue { + + public: + + using JackMidiWriteQueue::EnqueueEvent; + + virtual + ~JackMidiSendQueue(); + + /** + * Returns the next frame that a MIDI message can be sent at. The + * default method returns the current frame. + */ + + virtual jack_nframes_t + GetNextScheduleFrame(); + + }; + +} + +#endif diff --git a/common/JackMidiUtil.cpp b/common/JackMidiUtil.cpp new file mode 100644 index 00000000..94871ce5 --- /dev/null +++ b/common/JackMidiUtil.cpp @@ -0,0 +1,120 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include "JackEngineControl.h" +#include "JackFrameTimer.h" +#include "JackGlobals.h" +#include "JackMidiUtil.h" +#include "JackTime.h" + +jack_midi_data_t +Jack::ApplyRunningStatus(size_t *size, jack_midi_data_t **buffer, + jack_midi_data_t running_status) +{ + + // Stolen and modified from alsa/midi_pack.h + + jack_midi_data_t status = **buffer; + if ((status >= 0x80) && (status < 0xf0)) { + if (status == running_status) { + (*buffer)++; + (*size)--; + } else { + running_status = status; + } + } else if (status < 0xf8) { + running_status = 0; + } + return running_status; +} + +jack_midi_data_t +Jack::ApplyRunningStatus(jack_midi_event_t *event, + jack_midi_data_t running_status) +{ + return ApplyRunningStatus(&(event->size), &(event->buffer), + running_status); +} + +jack_nframes_t +Jack::GetCurrentFrame() +{ + JackEngineControl *control = GetEngineControl(); + JackTimer timer; + control->ReadFrameTime(&timer); + return timer.Time2Frames(GetMicroSeconds(), control->fBufferSize); +} + +jack_nframes_t +Jack::GetFramesFromTime(jack_time_t time) +{ + JackEngineControl* control = GetEngineControl(); + JackTimer timer; + control->ReadFrameTime(&timer); + return timer.Time2Frames(time, control->fBufferSize); +} + +jack_nframes_t +Jack::GetLastFrame() +{ + return GetEngineControl()->fFrameTimer.ReadCurrentState()->CurFrame(); +} + +int +Jack::GetMessageLength(jack_midi_data_t status_byte) +{ + switch (status_byte & 0xf0) { + case 0x80: + case 0x90: + case 0xa0: + case 0xb0: + case 0xe0: + return 3; + case 0xc0: + case 0xd0: + return 2; + case 0xf0: + switch (status_byte) { + case 0xf0: + return 0; + case 0xf1: + case 0xf3: + return 2; + case 0xf2: + return 3; + case 0xf4: + case 0xf5: + case 0xf7: + case 0xfd: + break; + default: + return 1; + } + } + return -1; +} + +jack_time_t +Jack::GetTimeFromFrames(jack_nframes_t frames) +{ + JackEngineControl* control = GetEngineControl(); + JackTimer timer; + control->ReadFrameTime(&timer); + return timer.Frames2Time(frames, control->fBufferSize); +} diff --git a/common/JackMidiUtil.h b/common/JackMidiUtil.h new file mode 100644 index 00000000..52db64c8 --- /dev/null +++ b/common/JackMidiUtil.h @@ -0,0 +1,102 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#ifndef __JackMidiUtil__ +#define __JackMidiUtil__ + +#include "JackMidiPort.h" + +namespace Jack { + + /** + * Use this function to optimize MIDI output by omitting unnecessary status + * bytes. This can't be used with all MIDI APIs, so before using this + * function, make sure that your MIDI API doesn't require complete MIDI + * messages to be sent. + * + * To start using this function, call this method with pointers to the + * `size` and `buffer` arguments of the MIDI message you want to send, and + * set the `running_status` argument to '0'. For each subsequent MIDI + * message, call this method with pointers to its `size` and `buffer` + * arguments, and set the `running_status` argument to the return value of + * the previous call to this function. + * + * Note: This function will alter the `size` and `buffer` of your MIDI + * message for each message that can be optimized. + */ + + SERVER_EXPORT jack_midi_data_t + ApplyRunningStatus(size_t *size, jack_midi_data_t **buffer, + jack_midi_data_t running_status=0); + + /** + * A wrapper function for the above `ApplyRunningStatus` function. + */ + + SERVER_EXPORT jack_midi_data_t + ApplyRunningStatus(jack_midi_event_t *event, + jack_midi_data_t running_status); + + /** + * Gets the estimated current time in frames. This function has the same + * functionality as the JACK client API function `jack_frame_time`. + */ + + SERVER_EXPORT jack_nframes_t + GetCurrentFrame(); + + /** + * Gets the estimated frame that will be occurring at the given time. This + * function has the same functionality as the JACK client API function + * `jack_time_to_frames`. + */ + + SERVER_EXPORT jack_nframes_t + GetFramesFromTime(jack_time_t time); + + /** + * Gets the precise time at the start of the current process cycle. This + * function has the same functionality as the JACK client API function + * `jack_last_frame_time`. + */ + + SERVER_EXPORT jack_nframes_t + GetLastFrame(); + + /** + * Returns the expected message length for the status byte. Returns 0 if + * the status byte is a system exclusive status byte, or -1 if the status + * byte is invalid. + */ + + SERVER_EXPORT int + GetMessageLength(jack_midi_data_t status_byte); + + /** + * Gets the estimated time at which the given frame will occur. This + * function has the same functionality as the JACK client API function + * `jack_frames_to_time`. + */ + + SERVER_EXPORT jack_time_t + GetTimeFromFrames(jack_nframes_t frames); + +}; + +#endif diff --git a/common/JackMidiWriteQueue.cpp b/common/JackMidiWriteQueue.cpp new file mode 100644 index 00000000..37fd9067 --- /dev/null +++ b/common/JackMidiWriteQueue.cpp @@ -0,0 +1,27 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include "JackMidiWriteQueue.h" + +using Jack::JackMidiWriteQueue; + +JackMidiWriteQueue::~JackMidiWriteQueue() +{ + // Empty +} diff --git a/common/JackMidiWriteQueue.h b/common/JackMidiWriteQueue.h new file mode 100644 index 00000000..f21a58ff --- /dev/null +++ b/common/JackMidiWriteQueue.h @@ -0,0 +1,82 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#ifndef __JackMidiWriteQueue__ +#define __JackMidiWriteQueue__ + +#include "JackMidiPort.h" + +namespace Jack { + + /** + * Interface for classes that act as write queues for MIDI messages. Write + * queues are used by processors to transfer data to the next processor. + */ + + class SERVER_EXPORT JackMidiWriteQueue { + + public: + + enum EnqueueResult { + BUFFER_FULL, + BUFFER_TOO_SMALL, + EVENT_EARLY, + EN_ERROR, + OK + }; + + virtual ~JackMidiWriteQueue(); + + /** + * Enqueues a data packet in the write queue of `size` bytes contained + * in `buffer` that will be sent the absolute time specified by `time`. + * This method should not block unless 1.) this write queue represents + * the actual outbound MIDI connection, 2.) the MIDI event is being + * sent *now*, meaning that `time` is less than or equal to *now*, and + * 3.) the method is *not* being called in the process thread. The + * method should return `OK` if the event was enqueued, `BUFFER_FULL` + * if the write queue isn't able to accept the event right now, + * `BUFFER_TOO_SMALL` if this write queue will never be able to accept + * the event because the event is too large, `EVENT_EARLY` if this + * queue cannot schedule events ahead of time, and `EN_ERROR` if an error + * occurs that cannot be specified by another return code. + */ + + virtual EnqueueResult + EnqueueEvent(jack_nframes_t time, size_t size, + jack_midi_data_t *buffer) = 0; + + /** + * A wrapper method for the `EnqueueEvent` method above. The optional + * 'frame_offset' argument is an amount of frames to add to the event's + * time. + */ + + inline EnqueueResult + EnqueueEvent(jack_midi_event_t *event, jack_nframes_t frame_offset=0) + { + return EnqueueEvent(event->time + frame_offset, event->size, + event->buffer); + } + + }; + +} + +#endif diff --git a/common/JackNetAdapter.cpp b/common/JackNetAdapter.cpp index d33572cd..864ddba4 100644 --- a/common/JackNetAdapter.cpp +++ b/common/JackNetAdapter.cpp @@ -164,6 +164,7 @@ namespace Jack #ifdef JACK_MONITOR fTable.Save(fHostBufferSize, fHostSampleRate, fAdaptedSampleRate, fAdaptedBufferSize); #endif + fSocket.Close(); switch ( fThread.GetStatus() ) { @@ -177,7 +178,7 @@ namespace Jack } break; // Stop when the thread cycle is finished - + case JackThread::kRunning: if ( fThread.Stop() < 0 ) { @@ -185,11 +186,11 @@ namespace Jack return -1; } break; - + default: break; } - fSocket.Close(); + return 0; } @@ -242,16 +243,16 @@ namespace Jack //set audio adapter parameters SetAdaptedBufferSize ( fParams.fPeriodSize ); SetAdaptedSampleRate ( fParams.fSampleRate ); - + // Will do "something" on OSX only... fThread.SetParams(GetEngineControl()->fPeriod, GetEngineControl()->fComputation, GetEngineControl()->fConstraint); - + if (fThread.AcquireSelfRealTime(GetEngineControl()->fClientPriority) < 0) { jack_error("AcquireSelfRealTime error"); } else { set_threaded_log_function(); } - + //init done, display parameters SessionParamsDisplay ( &fParams ); return true; @@ -294,13 +295,13 @@ namespace Jack jack_transport_stop ( fJackClient ); jack_info ( "NetMaster : transport stops." ); break; - + case JackTransportStarting : jack_transport_reposition ( fJackClient, &fSendTransportData.fPosition ); jack_transport_start ( fJackClient ); jack_info ( "NetMaster : transport starts." ); break; - + case JackTransportRolling : //TODO , we need to : // - find a way to call TransportEngine->SetNetworkSync() @@ -362,7 +363,7 @@ namespace Jack int JackNetAdapter::Write() { EncodeSyncPacket(); - + if ( SyncSend() == SOCKET_ERROR ) return SOCKET_ERROR; @@ -376,7 +377,7 @@ namespace Jack //in case of fatal network error, stop the process if (Read() == SOCKET_ERROR) return SOCKET_ERROR; - + PushAndPull(fSoftCaptureBuffer, fSoftPlaybackBuffer, fAdaptedBufferSize); //then write data to network @@ -386,7 +387,7 @@ namespace Jack return 0; } - + } // namespace Jack //loader------------------------------------------------------------------------------ @@ -403,10 +404,10 @@ extern "C" SERVER_EXPORT jack_driver_desc_t* jack_get_descriptor() { jack_driver_desc_t* desc = ( jack_driver_desc_t* ) calloc ( 1, sizeof ( jack_driver_desc_t ) ); - + strcpy(desc->name, "netadapter"); // size MUST be less then JACK_DRIVER_NAME_MAX + 1 strcpy(desc->desc, "netjack net <==> audio backend adapter"); // size MUST be less then JACK_DRIVER_PARAM_DESC + 1 - + desc->nparams = 11; desc->params = ( jack_driver_param_desc_t* ) calloc ( desc->nparams, sizeof ( jack_driver_param_desc_t ) ); @@ -473,7 +474,7 @@ extern "C" strcpy ( desc->params[i].value.str, "slow" ); strcpy ( desc->params[i].short_desc, "Slow, Normal or Fast mode." ); strcpy ( desc->params[i].long_desc, desc->params[i].short_desc ); - + i++; strcpy(desc->params[i].name, "quality"); desc->params[i].character = 'q'; @@ -481,7 +482,7 @@ extern "C" desc->params[i].value.ui = 0; strcpy(desc->params[i].short_desc, "Resample algorithm quality (0 - 4)"); strcpy(desc->params[i].long_desc, desc->params[i].short_desc); - + i++; strcpy(desc->params[i].name, "ring-buffer"); desc->params[i].character = 'g'; @@ -489,7 +490,7 @@ extern "C" desc->params[i].value.ui = 32768; strcpy(desc->params[i].short_desc, "Fixed ringbuffer size"); strcpy(desc->params[i].long_desc, "Fixed ringbuffer size (if not set => automatic adaptative)"); - + i++; strcpy ( desc->params[i].name, "auto-connect" ); desc->params[i].character = 'c'; @@ -497,7 +498,7 @@ extern "C" desc->params[i].value.i = false; strcpy ( desc->params[i].short_desc, "Auto connect netmaster to system ports" ); strcpy ( desc->params[i].long_desc, desc->params[i].short_desc ); - + return desc; } @@ -508,20 +509,19 @@ extern "C" Jack::JackAudioAdapter* adapter; jack_nframes_t buffer_size = jack_get_buffer_size ( jack_client ); jack_nframes_t sample_rate = jack_get_sample_rate ( jack_client ); - + try { - + adapter = new Jack::JackAudioAdapter(jack_client, new Jack::JackNetAdapter(jack_client, buffer_size, sample_rate, params), params, false); assert ( adapter ); - if ( adapter->Open() == 0 ) + if (adapter->Open() == 0) { return 0; - else - { + } else { delete adapter; return 1; } - + } catch (...) { return 1; } diff --git a/common/JackNetAdapter.h b/common/JackNetAdapter.h index f6b7675b..d90a1d97 100644 --- a/common/JackNetAdapter.h +++ b/common/JackNetAdapter.h @@ -30,44 +30,48 @@ namespace Jack \brief Net adapter. */ - class JackNetAdapter : public JackAudioAdapterInterface, public JackNetSlaveInterface, public JackRunnableInterface + class JackNetAdapter : public JackAudioAdapterInterface, + public JackNetSlaveInterface, + public JackRunnableInterface { - private: - //jack data - jack_client_t* fJackClient; - //transport data - int fLastTransportState; - int fLastTimebaseMaster; - - //sample buffers - sample_t** fSoftCaptureBuffer; - sample_t** fSoftPlaybackBuffer; + private: - //adapter thread - JackThread fThread; + //jack data + jack_client_t* fJackClient; - //transport - void EncodeTransportData(); - void DecodeTransportData(); + //transport data + int fLastTransportState; + int fLastTimebaseMaster; - public: + //sample buffers + sample_t** fSoftCaptureBuffer; + sample_t** fSoftPlaybackBuffer; - JackNetAdapter ( jack_client_t* jack_client, jack_nframes_t buffer_size, jack_nframes_t sample_rate, const JSList* params ); - ~JackNetAdapter(); + //adapter thread + JackThread fThread; - int Open(); - int Close(); + //transport + void EncodeTransportData(); + void DecodeTransportData(); - int SetBufferSize ( jack_nframes_t buffer_size ); + public: - bool Init(); - bool Execute(); + JackNetAdapter(jack_client_t* jack_client, jack_nframes_t buffer_size, jack_nframes_t sample_rate, const JSList* params); + ~JackNetAdapter(); - int Read(); - int Write(); + int Open(); + int Close(); - int Process(); + int SetBufferSize(jack_nframes_t buffer_size); + + bool Init(); + bool Execute(); + + int Read(); + int Write(); + + int Process(); }; } diff --git a/common/JackNetDriver.cpp b/common/JackNetDriver.cpp index f587411d..6f20a628 100644 --- a/common/JackNetDriver.cpp +++ b/common/JackNetDriver.cpp @@ -125,6 +125,7 @@ namespace Jack bool JackNetDriver::Initialize() { jack_log("JackNetDriver::Initialize()"); + FreePorts(); //new loading, but existing socket, restart the driver if (fSocket.IsSocket()) { @@ -143,7 +144,7 @@ namespace Jack //init network if (!JackNetSlaveInterface::Init()) { - jack_error("JackNetSlaveInterface::Init() error..." ); + jack_error("Starting network fails..."); return false; } @@ -153,21 +154,32 @@ namespace Jack return false; } + // If -1 at conection time, in/out channels count is sent by the master + fCaptureChannels = fParams.fSendAudioChannels; + fPlaybackChannels = fParams.fReturnAudioChannels; + //allocate midi ports lists fMidiCapturePortList = new jack_port_id_t [fParams.fSendMidiChannels]; fMidiPlaybackPortList = new jack_port_id_t [fParams.fReturnMidiChannels]; - assert ( fMidiCapturePortList ); - assert ( fMidiPlaybackPortList ); + + assert(fMidiCapturePortList); + assert(fMidiPlaybackPortList); + + for (int midi_port_index = 0; midi_port_index < fParams.fSendMidiChannels; midi_port_index++) { + fMidiCapturePortList[midi_port_index] = 0; + } + for (int midi_port_index = 0; midi_port_index < fParams.fReturnMidiChannels; midi_port_index++) { + fMidiPlaybackPortList[midi_port_index] = 0; + } //register jack ports - if ( AllocPorts() != 0 ) - { - jack_error ( "Can't allocate ports." ); + if (AllocPorts() != 0) { + jack_error("Can't allocate ports."); return false; } //init done, display parameters - SessionParamsDisplay ( &fParams ); + SessionParamsDisplay(&fParams); //monitor #ifdef JACK_MONITOR @@ -257,7 +269,7 @@ namespace Jack char alias[JACK_CLIENT_NAME_SIZE + JACK_PORT_NAME_SIZE]; unsigned long port_flags; int audio_port_index; - uint midi_port_index; + int midi_port_index; jack_latency_range_t range; //audio @@ -365,22 +377,38 @@ namespace Jack int JackNetDriver::FreePorts() { - jack_log ( "JackNetDriver::FreePorts" ); + jack_log("JackNetDriver::FreePorts"); - int audio_port_index; - uint midi_port_index; - for ( audio_port_index = 0; audio_port_index < fCaptureChannels; audio_port_index++ ) - if (fCapturePortList[audio_port_index] > 0) - fGraphManager->ReleasePort ( fClientControl.fRefNum, fCapturePortList[audio_port_index] ); - for ( audio_port_index = 0; audio_port_index < fPlaybackChannels; audio_port_index++ ) - if (fPlaybackPortList[audio_port_index] > 0) - fGraphManager->ReleasePort ( fClientControl.fRefNum, fPlaybackPortList[audio_port_index] ); - for ( midi_port_index = 0; midi_port_index < fParams.fSendMidiChannels; midi_port_index++ ) - if (fMidiCapturePortList[midi_port_index] > 0) - fGraphManager->ReleasePort ( fClientControl.fRefNum, fMidiCapturePortList[midi_port_index] ); - for ( midi_port_index = 0; midi_port_index < fParams.fReturnMidiChannels; midi_port_index++ ) - if (fMidiPlaybackPortList[midi_port_index] > 0) - fGraphManager->ReleasePort ( fClientControl.fRefNum, fMidiPlaybackPortList[midi_port_index] ); + for (int audio_port_index = 0; audio_port_index < fCaptureChannels; audio_port_index++) { + if (fCapturePortList[audio_port_index] > 0) { + fGraphManager->ReleasePort(fClientControl.fRefNum, fCapturePortList[audio_port_index]); + fCapturePortList[audio_port_index] = 0; + } + } + + for (int audio_port_index = 0; audio_port_index < fPlaybackChannels; audio_port_index++) { + if (fPlaybackPortList[audio_port_index] > 0) { + fGraphManager->ReleasePort(fClientControl.fRefNum, fPlaybackPortList[audio_port_index]); + fPlaybackPortList[audio_port_index] = 0; + } + } + + for (int midi_port_index = 0; midi_port_index < fParams.fSendMidiChannels; midi_port_index++) { + if (fMidiCapturePortList && fMidiCapturePortList[midi_port_index] > 0) { + fGraphManager->ReleasePort(fClientControl.fRefNum, fMidiCapturePortList[midi_port_index]); + fMidiCapturePortList[midi_port_index] = 0; + } + } + + for (int midi_port_index = 0; midi_port_index < fParams.fReturnMidiChannels; midi_port_index++) { + if (fMidiPlaybackPortList && fMidiPlaybackPortList[midi_port_index] > 0) { + fGraphManager->ReleasePort(fClientControl.fRefNum, fMidiPlaybackPortList[midi_port_index]); + fMidiPlaybackPortList[midi_port_index] = 0; + } + } + // Clear MIDI channels + fParams.fSendMidiChannels = 0; + fParams.fReturnMidiChannels = 0; return 0; } @@ -479,8 +507,8 @@ namespace Jack //driver processes-------------------------------------------------------------------- int JackNetDriver::Read() { - uint midi_port_index; - uint audio_port_index; + int midi_port_index; + int audio_port_index; //buffers for ( midi_port_index = 0; midi_port_index < fParams.fSendMidiChannels; midi_port_index++ ) @@ -524,7 +552,7 @@ namespace Jack int JackNetDriver::Write() { - uint midi_port_index; + int midi_port_index; int audio_port_index; //buffers @@ -603,17 +631,17 @@ namespace Jack strcpy ( desc->params[i].name, "input_ports" ); desc->params[i].character = 'C'; desc->params[i].type = JackDriverParamInt; - desc->params[i].value.i = 2; + desc->params[i].value.i = -1; strcpy ( desc->params[i].short_desc, "Number of audio input ports" ); - strcpy ( desc->params[i].long_desc, desc->params[i].short_desc ); + strcpy ( desc->params[i].long_desc, "Number of audio input ports. If -1, audio physical input from the master"); i++; strcpy ( desc->params[i].name, "output_ports" ); desc->params[i].character = 'P'; desc->params[i].type = JackDriverParamInt; - desc->params[i].value.i = 2; + desc->params[i].value.i = -1; strcpy ( desc->params[i].short_desc, "Number of audio output ports" ); - strcpy ( desc->params[i].long_desc, desc->params[i].short_desc ); + strcpy ( desc->params[i].long_desc, "Number of audio output ports. If -1, audio physical output from the master"); i++; strcpy ( desc->params[i].name, "midi_in_ports" ); @@ -626,7 +654,7 @@ namespace Jack i++; strcpy ( desc->params[i].name, "midi_out_ports" ); desc->params[i].character = 'o'; - desc->params[i].type = JackDriverParamUInt; + desc->params[i].type = JackDriverParamInt; desc->params[i].value.i = 0; strcpy ( desc->params[i].short_desc, "Number of midi output ports" ); strcpy ( desc->params[i].long_desc, desc->params[i].short_desc ); @@ -668,8 +696,8 @@ namespace Jack uint transport_sync = 1; jack_nframes_t period_size = 128; jack_nframes_t sample_rate = 48000; - int audio_capture_ports = 2; - int audio_playback_ports = 2; + int audio_capture_ports = -1; + int audio_playback_ports = -1; int midi_input_ports = 0; int midi_output_ports = 0; bool monitor = false; diff --git a/common/JackNetDriver.h b/common/JackNetDriver.h index af137b43..7c4635ae 100644 --- a/common/JackNetDriver.h +++ b/common/JackNetDriver.h @@ -36,15 +36,17 @@ namespace Jack class JackNetDriver : public JackAudioDriver, public JackNetSlaveInterface { + private: + //jack data jack_port_id_t* fMidiCapturePortList; jack_port_id_t* fMidiPlaybackPortList; - + //transport int fLastTransportState; int fLastTimebaseMaster; - + //monitoring #ifdef JACK_MONITOR JackGnuPlotMonitor* fNetTimeMon; @@ -53,7 +55,7 @@ namespace Jack bool Initialize(); void FreeAll(); - + int AllocPorts(); int FreePorts(); @@ -65,6 +67,7 @@ namespace Jack JackMidiBuffer* GetMidiOutputBuffer ( int port_index ); public: + JackNetDriver ( const char* name, const char* alias, JackLockedEngine* engine, JackSynchro* table, const char* ip, int port, int mtu, int midi_input_ports, int midi_output_ports, char* net_name, uint transport_sync, char network_master_mode ); diff --git a/common/JackNetInterface.cpp b/common/JackNetInterface.cpp index 65562ceb..6ee89ede 100644 --- a/common/JackNetInterface.cpp +++ b/common/JackNetInterface.cpp @@ -27,9 +27,9 @@ using namespace std; #define PACKET_AVAILABLE_SIZE (fParams.fMtu - sizeof(packet_header_t)) #define HEADER_SIZE (sizeof(packet_header_t)) -/* - TODO : since midi buffers now uses up to BUFFER_SIZE_MAX frames, - probably also use BUFFER_SIZE_MAX in everything related to MIDI events +/* + TODO : since midi buffers now uses up to BUFFER_SIZE_MAX frames, + probably also use BUFFER_SIZE_MAX in everything related to MIDI events handling (see MidiBufferInit in JackMidiPort.cpp) */ @@ -169,7 +169,7 @@ namespace Jack //timeout on receive (for init) if ( fSocket.SetTimeOut ( MASTER_INIT_TIMEOUT ) < 0 ) jack_error ( "Can't set timeout : %s", StrError ( NET_ERROR_CODE ) ); - + //connect if ( fSocket.Connect() == SOCKET_ERROR ) { jack_error ( "Can't connect : %s", StrError ( NET_ERROR_CODE ) ); @@ -184,17 +184,17 @@ namespace Jack memset(&net_params, 0, sizeof ( session_params_t )); SetPacketType ( &fParams, SLAVE_SETUP ); SessionParamsHToN(&fParams, &net_params); - + if ( fSocket.Send ( &net_params, sizeof ( session_params_t ), 0 ) == SOCKET_ERROR ) jack_error ( "Error in send : ", StrError ( NET_ERROR_CODE ) ); - + memset(&net_params, 0, sizeof (session_params_t)); if (((rx_bytes = fSocket.Recv(&net_params, sizeof(session_params_t), 0)) == SOCKET_ERROR) && (fSocket.GetError() != NET_NO_DATA)) { jack_error ( "Problem with network." ); return false; } - + SessionParamsNToH(&net_params, &host_params); } while ( ( GetPacketType ( &host_params ) != START_MASTER ) && ( ++attempt < SLAVE_SETUP_RETRY ) ); @@ -320,7 +320,7 @@ namespace Jack jack_info ( "Exiting '%s'", fParams.fName ); SetPacketType ( &fParams, KILL_MASTER ); JackNetSocket mcast_socket ( fMulticastIP, fSocket.GetPort() ); - + session_params_t net_params; memset(&net_params, 0, sizeof ( session_params_t )); SessionParamsHToN(&fParams, &net_params); @@ -329,7 +329,7 @@ namespace Jack jack_error ( "Can't create socket : %s", StrError ( NET_ERROR_CODE ) ); if ( mcast_socket.SendTo ( &net_params, sizeof ( session_params_t ), 0, fMulticastIP ) == SOCKET_ERROR ) jack_error ( "Can't send suicide request : %s", StrError ( NET_ERROR_CODE ) ); - + mcast_socket.Close(); } @@ -347,32 +347,32 @@ namespace Jack jack_error ( "'%s' : %s, exiting.", fParams.fName, StrError(NET_ERROR_CODE)); //ask to the manager to properly remove the master Exit(); - + // UGLY temporary way to be sure the thread does not call code possibly causing a deadlock in JackEngine. ThreadExit(); } else { jack_error ( "Error in master receive : %s", StrError(NET_ERROR_CODE)); } } - + packet_header_t* header = reinterpret_cast(fRxBuffer); PacketHeaderNToH(header, header); return rx_bytes; } - + int JackNetMasterInterface::Send(size_t size, int flags) { int tx_bytes; packet_header_t* header = reinterpret_cast(fTxBuffer); PacketHeaderHToN(header, header); - + if (((tx_bytes = fSocket.Send(fTxBuffer, size, flags)) == SOCKET_ERROR) && fRunning) { net_error_t error = fSocket.GetError(); if (error == NET_CONN_ERROR) { //fatal connection issue, exit jack_error ("'%s' : %s, exiting.", fParams.fName, StrError (NET_ERROR_CODE)); Exit(); - + // UGLY temporary way to be sure the thread does not call code possibly causing a deadlock in JackEngine. ThreadExit(); } else { @@ -381,7 +381,7 @@ namespace Jack } return tx_bytes; } - + bool JackNetMasterInterface::IsSynched() { if (fParams.fNetworkMode == 's') { @@ -390,7 +390,7 @@ namespace Jack return true; } } - + int JackNetMasterInterface::SyncSend() { fTxHeader.fCycle++; @@ -452,12 +452,12 @@ namespace Jack { packet_header_t* rx_head = reinterpret_cast ( fRxBuffer ); int rx_bytes = Recv(HEADER_SIZE, MSG_PEEK); - + if ( ( rx_bytes == 0 ) || ( rx_bytes == SOCKET_ERROR ) ) return rx_bytes; fCycleOffset = fTxHeader.fCycle - rx_head->fCycle; - + switch ( fParams.fNetworkMode ) { case 's' : @@ -468,12 +468,12 @@ namespace Jack //the slow mode is the safest mode because it wait twice the bandwidth relative time (send/return + process) /* - if (fCycleOffset < CYCLE_OFFSET_SLOW) { - return 0; - } else { - rx_bytes = Recv ( rx_head->fPacketSize, 0 ); - } - */ + if (fCycleOffset < CYCLE_OFFSET_SLOW) { + return 0; + } else { + rx_bytes = Recv ( rx_head->fPacketSize, 0 ); + } + */ rx_bytes = Recv ( rx_head->fPacketSize, 0 ); @@ -481,7 +481,7 @@ namespace Jack jack_info("Warning : '%s' runs in slow network mode, but data received too late (%d cycle(s) offset)", fParams.fName, fCycleOffset); fLastfCycleOffset = fCycleOffset; break; - + case 'n' : //normal use of the network : // - extra latency is set to one cycle, what is the time needed to receive streams using full network bandwidth @@ -492,12 +492,12 @@ namespace Jack } else { rx_bytes = Recv ( rx_head->fPacketSize, 0 ); } - + if (fCycleOffset > CYCLE_OFFSET_NORMAL) { jack_info("'%s' can't run in normal network mode, data received too late (%d cycle(s) offset)", fParams.fName, fCycleOffset); } break; - + case 'f' : //fast mode suppose the network bandwith is larger than required for the transmission (only a few channels for example) // - packets can be quickly received, quickly is here relative to the cycle duration @@ -514,7 +514,7 @@ namespace Jack fRxHeader.fIsLastPckt = rx_head->fIsLastPckt; return rx_bytes; } - + int JackNetMasterInterface::DataRecv() { int rx_bytes = 0; @@ -522,12 +522,12 @@ namespace Jack uint recvd_audio_pckt = 0; packet_header_t* rx_head = reinterpret_cast ( 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; @@ -569,7 +569,7 @@ namespace Jack return rx_bytes; } - + void JackNetMasterInterface::EncodeSyncPacket() { //this method contains every step of sync packet informations coding @@ -637,9 +637,9 @@ namespace Jack return true; } - + // Separate the connection protocol into two separated step - + bool JackNetSlaveInterface::InitConnection(int time_out) { jack_log("JackNetSlaveInterface::InitConnection()"); @@ -659,10 +659,10 @@ namespace Jack return false; } while (status != NET_CONNECTED && --try_count > 0); - + return (try_count != 0); } - + bool JackNetSlaveInterface::InitRendering() { jack_log("JackNetSlaveInterface::InitRendering()"); @@ -676,8 +676,8 @@ namespace Jack if (status == NET_ERROR) return false; } - while (status != NET_ROLLING); - + while (status != NET_ROLLING); + return true; } @@ -701,7 +701,7 @@ namespace Jack } //timeout on receive - if ( fSocket.SetTimeOut ( SLAVE_INIT_TIMEOUT ) == SOCKET_ERROR ) + if ( fSocket.SetTimeOut ( SLAVE_INIT_TIMEOUT ) == SOCKET_ERROR ) jack_error ( "Can't set timeout : %s", StrError ( NET_ERROR_CODE ) ); //disable local loop @@ -718,7 +718,7 @@ namespace Jack SessionParamsHToN(&fParams, &net_params); if ( fSocket.SendTo ( &net_params, sizeof ( session_params_t ), 0, fMulticastIP ) == SOCKET_ERROR ) jack_error ( "Error in data send : %s", StrError ( NET_ERROR_CODE ) ); - + //filter incoming packets : don't exit while no error is detected memset(&net_params, 0, sizeof ( session_params_t )); rx_bytes = fSocket.CatchHost ( &net_params, sizeof ( session_params_t ), 0 ); @@ -768,7 +768,7 @@ namespace Jack bool JackNetSlaveInterface::SetParams() { - jack_log ( "JackNetSlaveInterface::SetParams" ); + jack_log("JackNetSlaveInterface::SetParams"); JackNetInterface::SetParams(); @@ -861,7 +861,7 @@ namespace Jack jack_error ( "Fatal error in slave receive : %s", StrError ( NET_ERROR_CODE ) ); } } - + packet_header_t* header = reinterpret_cast(fRxBuffer); PacketHeaderNToH(header, header); return rx_bytes; @@ -872,7 +872,7 @@ namespace Jack packet_header_t* header = reinterpret_cast(fTxBuffer); PacketHeaderHToN(header, header); int tx_bytes = fSocket.Send ( fTxBuffer, size, flags ); - + //handle errors if ( tx_bytes == SOCKET_ERROR ) { @@ -902,7 +902,7 @@ namespace Jack return rx_bytes; } while ((strcmp(rx_head->fPacketType, "header") != 0) && (rx_head->fDataType != 's')); - + fRxHeader.fIsLastPckt = rx_head->fIsLastPckt; return rx_bytes; } @@ -1020,7 +1020,7 @@ namespace Jack } return 0; } - + //network sync------------------------------------------------------------------------ void JackNetSlaveInterface::EncodeSyncPacket() { @@ -1037,7 +1037,7 @@ namespace Jack //then others //... } - + void JackNetSlaveInterface::DecodeSyncPacket() { //this method contains every step of sync packet informations decoding process diff --git a/common/JackNetInterface.h b/common/JackNetInterface.h index 8e3aab93..a3ec7660 100644 --- a/common/JackNetInterface.h +++ b/common/JackNetInterface.h @@ -31,12 +31,10 @@ namespace Jack class SERVER_EXPORT JackNetInterface { - private: + protected: void Initialize(); - protected: - session_params_t fParams; JackNetSocket fSocket; char fMulticastIP[32]; @@ -44,7 +42,7 @@ namespace Jack //headers packet_header_t fTxHeader; packet_header_t fRxHeader; - + // transport net_transport_data_t fSendTransportData; net_transport_data_t fReturnTransportData; @@ -90,7 +88,9 @@ namespace Jack JackNetInterface ( session_params_t& params, JackNetSocket& socket, const char* multicast_ip ); public: + virtual ~JackNetInterface(); + }; /** @@ -99,7 +99,9 @@ namespace Jack class SERVER_EXPORT JackNetMasterInterface : public JackNetInterface { + protected: + bool fRunning; int fCycleOffset; int fLastfCycleOffset; @@ -107,22 +109,22 @@ namespace Jack bool Init(); int SetRxTimeout(); bool SetParams(); - + void Exit(); - + int SyncRecv(); int SyncSend(); - + int DataRecv(); int DataSend(); - + //sync packet void EncodeSyncPacket(); void DecodeSyncPacket(); int Send ( size_t size, int flags ); int Recv ( size_t size, int flags ); - + bool IsSynched(); public: @@ -141,25 +143,26 @@ namespace Jack class SERVER_EXPORT JackNetSlaveInterface : public JackNetInterface { + protected: - + static uint fSlaveCounter; - + bool Init(); bool InitConnection(int time_out); bool InitRendering(); - + net_status_t SendAvailableToMaster(long count = LONG_MAX); // long here (and not int...) net_status_t SendStartToMaster(); - + bool SetParams(); - + int SyncRecv(); int SyncSend(); - + int DataRecv(); int DataSend(); - + //sync packet void EncodeSyncPacket(); void DecodeSyncPacket(); @@ -168,6 +171,7 @@ namespace Jack int Send ( size_t size, int flags ); public: + JackNetSlaveInterface() : JackNetInterface() { //open Socket API with the first slave @@ -180,6 +184,7 @@ namespace Jack } } } + JackNetSlaveInterface ( const char* ip, int port ) : JackNetInterface ( ip, port ) { //open Socket API with the first slave @@ -192,6 +197,7 @@ namespace Jack } } } + ~JackNetSlaveInterface() { //close Socket API with the last slave diff --git a/common/JackNetManager.cpp b/common/JackNetManager.cpp index fbe8aef1..55f981d9 100644 --- a/common/JackNetManager.cpp +++ b/common/JackNetManager.cpp @@ -37,7 +37,7 @@ namespace Jack fSendTransportData.fState = -1; fReturnTransportData.fState = -1; fLastTransportState = -1; - uint port_index; + int port_index; //jack audio ports fAudioCapturePorts = new jack_port_t* [fParams.fSendAudioChannels]; @@ -169,7 +169,7 @@ namespace Jack //jack ports-------------------------------------------------------------------------- int JackNetMaster::AllocPorts() { - uint i; + int i; char name[24]; jack_nframes_t port_latency = jack_get_buffer_size ( fJackClient ); jack_latency_range_t range; @@ -251,7 +251,7 @@ namespace Jack ports = jack_get_ports(fJackClient, NULL, NULL, JackPortIsPhysical | JackPortIsOutput); if (ports != NULL) { - for (unsigned int i = 0; i < fParams.fSendAudioChannels && ports[i]; i++) { + for (int i = 0; i < fParams.fSendAudioChannels && ports[i]; i++) { jack_connect(fJackClient, ports[i], jack_port_name(fAudioCapturePorts[i])); } free(ports); @@ -259,7 +259,7 @@ namespace Jack ports = jack_get_ports(fJackClient, NULL, NULL, JackPortIsPhysical | JackPortIsInput); if (ports != NULL) { - for (unsigned int i = 0; i < fParams.fReturnAudioChannels && ports[i]; i++) { + for (int i = 0; i < fParams.fReturnAudioChannels && ports[i]; i++) { jack_connect(fJackClient, jack_port_name(fAudioPlaybackPorts[i]), ports[i]); } free(ports); @@ -270,7 +270,7 @@ namespace Jack { jack_log ( "JackNetMaster::FreePorts, ID %u", fParams.fID ); - uint port_index; + int port_index; for ( port_index = 0; port_index < fParams.fSendAudioChannels; port_index++ ) if ( fAudioCapturePorts[port_index] ) jack_port_unregister ( fJackClient, fAudioCapturePorts[port_index] ); @@ -396,7 +396,7 @@ namespace Jack { JackNetMaster* obj = static_cast(arg); if (nframes != obj->fParams.fPeriodSize) { - jack_error("Cannot handle bufer size change, so JackNetMaster proxy will be removed..."); + jack_error("Cannot handle buffer size change, so JackNetMaster proxy will be removed..."); obj->Exit(); } return 0; @@ -413,7 +413,7 @@ namespace Jack if ( !fRunning ) return 0; - uint port_index; + int port_index; int res = 0; #ifdef JACK_MONITOR @@ -546,6 +546,19 @@ namespace Jack SocketAPIEnd(); } + int JackNetMasterManager::CountIO(int flags) + { + const char **ports; + int count = 0; + + ports = jack_get_ports(fManagerClient, NULL, NULL, flags); + if (ports != NULL) { + while(ports[count]) count++; + free(ports); + } + return count; + } + int JackNetMasterManager::SetSyncCallback ( jack_transport_state_t state, jack_position_t* pos, void* arg ) { return static_cast ( arg )->SyncCallback ( state, pos ); @@ -670,13 +683,23 @@ namespace Jack params.fID = ++fGlobalID; params.fSampleRate = jack_get_sample_rate ( fManagerClient ); params.fPeriodSize = jack_get_buffer_size ( fManagerClient ); - SetSlaveName ( params ); + + if (params.fSendAudioChannels == -1) { + params.fSendAudioChannels = CountIO(JackPortIsPhysical | JackPortIsOutput); + jack_info("Takes physical %d inputs for client", params.fSendAudioChannels); + } + + if (params.fReturnAudioChannels == -1) { + params.fReturnAudioChannels = CountIO(JackPortIsPhysical | JackPortIsInput); + jack_info("Takes physical %d outputs for client", params.fReturnAudioChannels); + } + + SetSlaveName (params); //create a new master and add it to the list JackNetMaster* master = new JackNetMaster(fSocket, params, fMulticastIP); - if ( master->Init(fAutoConnect) ) - { - fMasterList.push_back ( master ); + if (master->Init(fAutoConnect)) { + fMasterList.push_back(master); return master; } delete master; diff --git a/common/JackNetManager.h b/common/JackNetManager.h index cbeaee9e..48b6c25c 100644 --- a/common/JackNetManager.h +++ b/common/JackNetManager.h @@ -37,7 +37,9 @@ namespace Jack class JackNetMaster : public JackNetMasterInterface { friend class JackNetMasterManager; + private: + static int SetProcess ( jack_nframes_t nframes, void* arg ); static int SetBufferSize (jack_nframes_t nframes, void* arg); static void SetTimebaseCallback ( jack_transport_state_t state, jack_nframes_t nframes, jack_position_t* pos, int new_pos, void* arg ); @@ -74,6 +76,7 @@ namespace Jack void ConnectPorts(); public: + JackNetMaster ( JackNetSocket& socket, session_params_t& params, const char* multicast_ip); ~JackNetMaster (); @@ -90,7 +93,9 @@ namespace Jack class JackNetMasterManager { friend class JackNetMaster; + private: + static int SetSyncCallback ( jack_transport_state_t state, jack_position_t* pos, void* arg ); static void* NetManagerThread ( void* arg ); @@ -111,7 +116,11 @@ namespace Jack void SetSlaveName ( session_params_t& params ); int SyncCallback ( jack_transport_state_t state, jack_position_t* pos ); + + int CountIO(int flags); + public: + JackNetMasterManager ( jack_client_t* jack_client, const JSList* params); ~JackNetMasterManager(); }; diff --git a/common/JackNetOneDriver.cpp b/common/JackNetOneDriver.cpp index 93adecdd..b235b1c5 100644 --- a/common/JackNetOneDriver.cpp +++ b/common/JackNetOneDriver.cpp @@ -45,421 +45,415 @@ using namespace std; namespace Jack { - JackNetOneDriver::JackNetOneDriver ( const char* name, const char* alias, JackLockedEngine* engine, JackSynchro* table, - int port, int mtu, int capture_ports, int playback_ports, int midi_input_ports, int midi_output_ports, - int sample_rate, int period_size, int resample_factor, - const char* net_name, uint transport_sync, int bitdepth, int use_autoconfig, - int latency, int redundancy, int dont_htonl_floats, int always_deadline, int jitter_val ) - : JackAudioDriver ( name, alias, engine, table ) - { - jack_log ( "JackNetOneDriver::JackNetOneDriver port %d", port ); - - #ifdef WIN32 - WSADATA wsa; - int rc = WSAStartup(MAKEWORD(2,0),&wsa); - #endif - - netjack_init( & (this->netj), - NULL, // client - name, - capture_ports, - playback_ports, - midi_input_ports, - midi_output_ports, - sample_rate, - period_size, - port, - transport_sync, - resample_factor, - 0, - bitdepth, - use_autoconfig, - latency, - redundancy, - dont_htonl_floats, - always_deadline, - jitter_val); - } +JackNetOneDriver::JackNetOneDriver ( const char* name, const char* alias, JackLockedEngine* engine, JackSynchro* table, + int port, int mtu, int capture_ports, int playback_ports, int midi_input_ports, int midi_output_ports, + int sample_rate, int period_size, int resample_factor, + const char* net_name, uint transport_sync, int bitdepth, int use_autoconfig, + int latency, int redundancy, int dont_htonl_floats, int always_deadline, int jitter_val ) + : JackAudioDriver ( name, alias, engine, table ) +{ + jack_log ( "JackNetOneDriver::JackNetOneDriver port %d", port ); - JackNetOneDriver::~JackNetOneDriver() - { - // No destructor yet. - } +#ifdef WIN32 + WSADATA wsa; + int rc = WSAStartup(MAKEWORD(2, 0), &wsa); +#endif -//open, close, attach and detach------------------------------------------------------ - int JackNetOneDriver::Open ( jack_nframes_t buffer_size, jack_nframes_t samplerate, bool capturing, bool playing, - int inchannels, int outchannels, bool monitor, - const char* capture_driver_name, const char* playback_driver_name, - jack_nframes_t capture_latency, jack_nframes_t playback_latency ) - { - if ( JackAudioDriver::Open ( buffer_size, - samplerate, - capturing, - playing, - inchannels, - outchannels, - monitor, - capture_driver_name, - playback_driver_name, - capture_latency, - playback_latency ) == 0 ) - { - fEngineControl->fPeriod = 0; - fEngineControl->fComputation = 500 * 1000; - fEngineControl->fConstraint = 500 * 1000; - return 0; - } - else - { - jack_error( "open fail" ); - return -1; - } - } + netjack_init( & (this->netj), + NULL, // client + name, + capture_ports, + playback_ports, + midi_input_ports, + midi_output_ports, + sample_rate, + period_size, + port, + transport_sync, + resample_factor, + 0, + bitdepth, + use_autoconfig, + latency, + redundancy, + dont_htonl_floats, + always_deadline, + jitter_val); +} - int JackNetOneDriver::Close() - { - FreePorts(); - netjack_release( &netj ); - return JackDriver::Close(); - } +JackNetOneDriver::~JackNetOneDriver() +{ + // No destructor yet. +} - int JackNetOneDriver::Attach() - { +//open, close, attach and detach------------------------------------------------------ +int JackNetOneDriver::Open ( jack_nframes_t buffer_size, jack_nframes_t samplerate, bool capturing, bool playing, + int inchannels, int outchannels, bool monitor, + const char* capture_driver_name, const char* playback_driver_name, + jack_nframes_t capture_latency, jack_nframes_t playback_latency ) +{ + if ( JackAudioDriver::Open ( buffer_size, + samplerate, + capturing, + playing, + inchannels, + outchannels, + monitor, + capture_driver_name, + playback_driver_name, + capture_latency, + playback_latency ) == 0 ) { + fEngineControl->fPeriod = 0; + fEngineControl->fComputation = 500 * 1000; + fEngineControl->fConstraint = 500 * 1000; return 0; + } else { + jack_error( "open fail" ); + return -1; } +} - int JackNetOneDriver::Detach() - { - return 0; - } +int JackNetOneDriver::Close() +{ + // Generic audio driver close + int res = JackAudioDriver::Close(); - int JackNetOneDriver::AllocPorts() - { - jack_port_id_t port_id; - char buf[64]; - unsigned int chn; + FreePorts(); + netjack_release(&netj); + return res; +} - //if (netj.handle_transport_sync) - // jack_set_sync_callback(netj.client, (JackSyncCallback) net_driver_sync_cb, NULL); +int JackNetOneDriver::Attach() +{ + return 0; +} - for (chn = 0; chn < netj.capture_channels_audio; chn++) { - snprintf (buf, sizeof(buf) - 1, "system:capture_%u", chn + 1); +int JackNetOneDriver::Detach() +{ + return 0; +} - if ( ( port_id = fGraphManager->AllocatePort ( fClientControl.fRefNum, buf, JACK_DEFAULT_AUDIO_TYPE, - CaptureDriverFlags, fEngineControl->fBufferSize ) ) == NO_PORT ) - { - jack_error ( "driver: cannot register port for %s", buf ); - return -1; - } - //port = fGraphManager->GetPort ( port_id ); - - netj.capture_ports = jack_slist_append (netj.capture_ports, (void *)(intptr_t)port_id); - - if( netj.bitdepth == CELT_MODE ) { - #if HAVE_CELT - #if HAVE_CELT_API_0_11 - celt_int32 lookahead; - CELTMode *celt_mode = celt_mode_create( netj.sample_rate, netj.period_size, NULL ); - netj.capture_srcs = jack_slist_append(netj.capture_srcs, celt_decoder_create_custom( celt_mode, 1, NULL ) ); - #elif HAVE_CELT_API_0_7 || HAVE_CELT_API_0_8 - celt_int32 lookahead; - CELTMode *celt_mode = celt_mode_create( netj.sample_rate, netj.period_size, NULL ); - netj.capture_srcs = jack_slist_append(netj.capture_srcs, celt_decoder_create( celt_mode, 1, NULL ) ); - #else - celt_int32_t lookahead; - CELTMode *celt_mode = celt_mode_create( netj.sample_rate, 1, netj.period_size, NULL ); - netj.capture_srcs = jack_slist_append(netj.capture_srcs, celt_decoder_create( celt_mode ) ); - #endif - celt_mode_info( celt_mode, CELT_GET_LOOKAHEAD, &lookahead ); - netj.codec_latency = 2*lookahead; - #endif - } else { - #if HAVE_SAMPLERATE - netj.capture_srcs = jack_slist_append(netj.capture_srcs, (void *)src_new(SRC_LINEAR, 1, NULL)); - #endif - } - } - for (chn = netj.capture_channels_audio; chn < netj.capture_channels; chn++) { - snprintf (buf, sizeof(buf) - 1, "system:capture_%u", chn + 1); +int JackNetOneDriver::AllocPorts() +{ + jack_port_id_t port_id; + char buf[64]; + unsigned int chn; - if ( ( port_id = fGraphManager->AllocatePort ( fClientControl.fRefNum, buf, JACK_DEFAULT_MIDI_TYPE, - CaptureDriverFlags, fEngineControl->fBufferSize ) ) == NO_PORT ) - { - jack_error ( "driver: cannot register port for %s", buf ); - return -1; - } - //port = fGraphManager->GetPort ( port_id ); + //if (netj.handle_transport_sync) + // jack_set_sync_callback(netj.client, (JackSyncCallback) net_driver_sync_cb, NULL); - netj.capture_ports = - jack_slist_append (netj.capture_ports, (void *)(intptr_t)port_id); + for (chn = 0; chn < netj.capture_channels_audio; chn++) { + snprintf (buf, sizeof(buf) - 1, "system:capture_%u", chn + 1); + + if ( ( port_id = fGraphManager->AllocatePort ( fClientControl.fRefNum, buf, JACK_DEFAULT_AUDIO_TYPE, + CaptureDriverFlags, fEngineControl->fBufferSize ) ) == NO_PORT ) { + jack_error ( "driver: cannot register port for %s", buf ); + return -1; } + //port = fGraphManager->GetPort ( port_id ); - for (chn = 0; chn < netj.playback_channels_audio; chn++) { - snprintf (buf, sizeof(buf) - 1, "system:playback_%u", chn + 1); + netj.capture_ports = jack_slist_append (netj.capture_ports, (void *)(intptr_t)port_id); - if ( ( port_id = fGraphManager->AllocatePort ( fClientControl.fRefNum, buf, JACK_DEFAULT_AUDIO_TYPE, - PlaybackDriverFlags, fEngineControl->fBufferSize ) ) == NO_PORT ) - { - jack_error ( "driver: cannot register port for %s", buf ); - return -1; - } - //port = fGraphManager->GetPort ( port_id ); - - netj.playback_ports = jack_slist_append (netj.playback_ports, (void *)(intptr_t)port_id); - if( netj.bitdepth == CELT_MODE ) { - #if HAVE_CELT - #if HAVE_CELT_API_0_11 - CELTMode *celt_mode = celt_mode_create( netj.sample_rate, netj.period_size, NULL ); - netj.playback_srcs = jack_slist_append(netj.playback_srcs, celt_encoder_create_custom( celt_mode, 1, NULL ) ); - #elif HAVE_CELT_API_0_7 || HAVE_CELT_API_0_8 - CELTMode *celt_mode = celt_mode_create( netj.sample_rate, netj.period_size, NULL ); - netj.playback_srcs = jack_slist_append(netj.playback_srcs, celt_encoder_create( celt_mode, 1, NULL ) ); - #else - CELTMode *celt_mode = celt_mode_create( netj.sample_rate, 1, netj.period_size, NULL ); - netj.playback_srcs = jack_slist_append(netj.playback_srcs, celt_encoder_create( celt_mode ) ); - #endif - #endif - } else { - #if HAVE_SAMPLERATE - netj.playback_srcs = jack_slist_append(netj.playback_srcs, (void *)src_new(SRC_LINEAR, 1, NULL)); - #endif - } + if( netj.bitdepth == CELT_MODE ) { +#if HAVE_CELT +#if HAVE_CELT_API_0_11 + celt_int32 lookahead; + CELTMode *celt_mode = celt_mode_create( netj.sample_rate, netj.period_size, NULL ); + netj.capture_srcs = jack_slist_append(netj.capture_srcs, celt_decoder_create_custom( celt_mode, 1, NULL ) ); +#elif HAVE_CELT_API_0_7 || HAVE_CELT_API_0_8 + celt_int32 lookahead; + CELTMode *celt_mode = celt_mode_create( netj.sample_rate, netj.period_size, NULL ); + netj.capture_srcs = jack_slist_append(netj.capture_srcs, celt_decoder_create( celt_mode, 1, NULL ) ); +#else + celt_int32_t lookahead; + CELTMode *celt_mode = celt_mode_create( netj.sample_rate, 1, netj.period_size, NULL ); + netj.capture_srcs = jack_slist_append(netj.capture_srcs, celt_decoder_create( celt_mode ) ); +#endif + celt_mode_info( celt_mode, CELT_GET_LOOKAHEAD, &lookahead ); + netj.codec_latency = 2 * lookahead; +#endif + } else { +#if HAVE_SAMPLERATE + netj.capture_srcs = jack_slist_append(netj.capture_srcs, (void *)src_new(SRC_LINEAR, 1, NULL)); +#endif } - for (chn = netj.playback_channels_audio; chn < netj.playback_channels; chn++) { - snprintf (buf, sizeof(buf) - 1, "system:playback_%u", chn + 1); - - if ( ( port_id = fGraphManager->AllocatePort ( fClientControl.fRefNum, buf, JACK_DEFAULT_MIDI_TYPE, - PlaybackDriverFlags, fEngineControl->fBufferSize ) ) == NO_PORT ) - { - jack_error ( "driver: cannot register port for %s", buf ); - return -1; - } - //port = fGraphManager->GetPort ( port_id ); + } + for (chn = netj.capture_channels_audio; chn < netj.capture_channels; chn++) { + snprintf (buf, sizeof(buf) - 1, "system:capture_%u", chn + 1); - netj.playback_ports = - jack_slist_append (netj.playback_ports, (void *)(intptr_t)port_id); + if ( ( port_id = fGraphManager->AllocatePort ( fClientControl.fRefNum, buf, JACK_DEFAULT_MIDI_TYPE, + CaptureDriverFlags, fEngineControl->fBufferSize ) ) == NO_PORT ) { + jack_error ( "driver: cannot register port for %s", buf ); + return -1; } - return 0; + //port = fGraphManager->GetPort ( port_id ); + + netj.capture_ports = + jack_slist_append (netj.capture_ports, (void *)(intptr_t)port_id); } -//init and restart-------------------------------------------------------------------- - bool JackNetOneDriver::Initialize() - { - jack_log ( "JackNetOneDriver::Init()" ); + for (chn = 0; chn < netj.playback_channels_audio; chn++) { + snprintf (buf, sizeof(buf) - 1, "system:playback_%u", chn + 1); - FreePorts(); - netjack_release( &netj ); + if ( ( port_id = fGraphManager->AllocatePort ( fClientControl.fRefNum, buf, JACK_DEFAULT_AUDIO_TYPE, + PlaybackDriverFlags, fEngineControl->fBufferSize ) ) == NO_PORT ) { + jack_error ( "driver: cannot register port for %s", buf ); + return -1; + } + //port = fGraphManager->GetPort ( port_id ); - //display some additional infos - jack_info ( "NetOne driver started" ); - if( netjack_startup( &netj ) ) { - return false; + netj.playback_ports = jack_slist_append (netj.playback_ports, (void *)(intptr_t)port_id); + if( netj.bitdepth == CELT_MODE ) { +#if HAVE_CELT +#if HAVE_CELT_API_0_11 + CELTMode *celt_mode = celt_mode_create( netj.sample_rate, netj.period_size, NULL ); + netj.playback_srcs = jack_slist_append(netj.playback_srcs, celt_encoder_create_custom( celt_mode, 1, NULL ) ); +#elif HAVE_CELT_API_0_7 || HAVE_CELT_API_0_8 + CELTMode *celt_mode = celt_mode_create( netj.sample_rate, netj.period_size, NULL ); + netj.playback_srcs = jack_slist_append(netj.playback_srcs, celt_encoder_create( celt_mode, 1, NULL ) ); +#else + CELTMode *celt_mode = celt_mode_create( netj.sample_rate, 1, netj.period_size, NULL ); + netj.playback_srcs = jack_slist_append(netj.playback_srcs, celt_encoder_create( celt_mode ) ); +#endif +#endif + } else { +#if HAVE_SAMPLERATE + netj.playback_srcs = jack_slist_append(netj.playback_srcs, (void *)src_new(SRC_LINEAR, 1, NULL)); +#endif } + } + for (chn = netj.playback_channels_audio; chn < netj.playback_channels; chn++) { + snprintf (buf, sizeof(buf) - 1, "system:playback_%u", chn + 1); - //register jack ports - if ( AllocPorts() != 0 ) - { - jack_error ( "Can't allocate ports." ); - return false; + if ( ( port_id = fGraphManager->AllocatePort ( fClientControl.fRefNum, buf, JACK_DEFAULT_MIDI_TYPE, + PlaybackDriverFlags, fEngineControl->fBufferSize ) ) == NO_PORT ) { + jack_error ( "driver: cannot register port for %s", buf ); + return -1; } + //port = fGraphManager->GetPort ( port_id ); + + netj.playback_ports = + jack_slist_append (netj.playback_ports, (void *)(intptr_t)port_id); + } + return 0; +} - //monitor - //driver parametering - JackAudioDriver::SetBufferSize ( netj.period_size ); - JackAudioDriver::SetSampleRate ( netj.sample_rate ); +//init and restart-------------------------------------------------------------------- +bool JackNetOneDriver::Initialize() +{ + jack_log ( "JackNetOneDriver::Init()" ); - JackDriver::NotifyBufferSize ( netj.period_size ); - JackDriver::NotifySampleRate ( netj.sample_rate ); + FreePorts(); + netjack_release( &netj ); - //transport engine parametering - fEngineControl->fTransport.SetNetworkSync ( true ); - return true; + //display some additional infos + jack_info ( "NetOne driver started" ); + if( netjack_startup( &netj ) ) { + return false; } + //register jack ports + if ( AllocPorts() != 0 ) { + jack_error ( "Can't allocate ports." ); + return false; + } -//jack ports and buffers-------------------------------------------------------------- + //monitor + //driver parametering + JackAudioDriver::SetBufferSize ( netj.period_size ); + JackAudioDriver::SetSampleRate ( netj.sample_rate ); -//driver processes-------------------------------------------------------------------- - int JackNetOneDriver::Read() - { - int delay; - delay = netjack_wait( &netj ); - if( delay ) { - NotifyXRun(fBeginDateUst, (float) delay); - jack_error( "netxruns... duration: %dms", delay/1000 ); - } + JackDriver::NotifyBufferSize ( netj.period_size ); + JackDriver::NotifySampleRate ( netj.sample_rate ); - if( (netj.num_lost_packets * netj.period_size / netj.sample_rate) > 2 ) - JackTools::ThrowJackNetException(); + //transport engine parametering + fEngineControl->fTransport.SetNetworkSync ( true ); + return true; +} - //netjack_read( &netj, netj.period_size ); - JackDriver::CycleTakeBeginTime(); - jack_position_t local_trans_pos; - jack_transport_state_t local_trans_state; +//jack ports and buffers-------------------------------------------------------------- - unsigned int *packet_buf, *packet_bufX; +//driver processes-------------------------------------------------------------------- +int JackNetOneDriver::Read() +{ + int delay; + delay = netjack_wait( &netj ); + if( delay ) { + NotifyXRun(fBeginDateUst, (float) delay); + jack_error( "netxruns... duration: %dms", delay / 1000 ); + } - if( ! netj.packet_data_valid ) { - jack_log( "data not valid" ); - render_payload_to_jack_ports (netj.bitdepth, NULL, netj.net_period_down, netj.capture_ports, netj.capture_srcs, netj.period_size, netj.dont_htonl_floats ); - return 0; - } - packet_buf = netj.rx_buf; + if( (netj.num_lost_packets * netj.period_size / netj.sample_rate) > 2 ) + JackTools::ThrowJackNetException(); - jacknet_packet_header *pkthdr = (jacknet_packet_header *)packet_buf; + //netjack_read( &netj, netj.period_size ); + JackDriver::CycleTakeBeginTime(); - packet_bufX = packet_buf + sizeof(jacknet_packet_header) / sizeof(jack_default_audio_sample_t); + jack_position_t local_trans_pos; + jack_transport_state_t local_trans_state; - netj.reply_port = pkthdr->reply_port; - netj.latency = pkthdr->latency; + unsigned int *packet_buf, *packet_bufX; - // Special handling for latency=0 - if( netj.latency == 0 ) - netj.resync_threshold = 0; - else - netj.resync_threshold = MIN( 15, pkthdr->latency-1 ); + if( ! netj.packet_data_valid ) { + jack_log( "data not valid" ); + render_payload_to_jack_ports (netj.bitdepth, NULL, netj.net_period_down, netj.capture_ports, netj.capture_srcs, netj.period_size, netj.dont_htonl_floats ); + return 0; + } + packet_buf = netj.rx_buf; - // check whether, we should handle the transport sync stuff, or leave trnasports untouched. - if (netj.handle_transport_sync) { - #if 1 - unsigned int compensated_tranport_pos = (pkthdr->transport_frame + (pkthdr->latency * netj.period_size) + netj.codec_latency); + jacknet_packet_header *pkthdr = (jacknet_packet_header *)packet_buf; - // read local transport info.... - //local_trans_state = jack_transport_query(netj.client, &local_trans_pos); + packet_bufX = packet_buf + sizeof(jacknet_packet_header) / sizeof(jack_default_audio_sample_t); - local_trans_state = fEngineControl->fTransport.Query ( &local_trans_pos ); + netj.reply_port = pkthdr->reply_port; + netj.latency = pkthdr->latency; - // Now check if we have to start or stop local transport to sync to remote... - switch (pkthdr->transport_state) { + // Special handling for latency=0 + if( netj.latency == 0 ) + netj.resync_threshold = 0; + else + netj.resync_threshold = MIN( 15, pkthdr->latency - 1 ); - case JackTransportStarting: - // the master transport is starting... so we set our reply to the sync_callback; - if (local_trans_state == JackTransportStopped) { - fEngineControl->fTransport.SetCommand ( TransportCommandStart ); - //jack_transport_start(netj.client); - //last_transport_state = JackTransportStopped; - netj.sync_state = 0; - jack_info("locally stopped... starting..."); - } + // check whether, we should handle the transport sync stuff, or leave trnasports untouched. + if (netj.handle_transport_sync) { +#if 1 + unsigned int compensated_tranport_pos = (pkthdr->transport_frame + (pkthdr->latency * netj.period_size) + netj.codec_latency); - if (local_trans_pos.frame != compensated_tranport_pos) { - jack_position_t new_pos = local_trans_pos; - new_pos.frame = compensated_tranport_pos + 2*netj.period_size; - new_pos.valid = (jack_position_bits_t) 0; + // read local transport info.... + //local_trans_state = jack_transport_query(netj.client, &local_trans_pos); + local_trans_state = fEngineControl->fTransport.Query ( &local_trans_pos ); - fEngineControl->fTransport.RequestNewPos ( &new_pos ); - //jack_transport_locate(netj.client, compensated_tranport_pos); - //last_transport_state = JackTransportRolling; - netj.sync_state = 0; - jack_info("starting locate to %d", compensated_tranport_pos ); - } - break; + // Now check if we have to start or stop local transport to sync to remote... + switch (pkthdr->transport_state) { - case JackTransportStopped: - netj.sync_state = 1; - if (local_trans_pos.frame != (pkthdr->transport_frame)) { - jack_position_t new_pos = local_trans_pos; - new_pos.frame = pkthdr->transport_frame; - new_pos.valid = (jack_position_bits_t)0; - fEngineControl->fTransport.RequestNewPos ( &new_pos ); - //jack_transport_locate(netj.client, (pkthdr->transport_frame)); - jack_info("transport is stopped locate to %d", pkthdr->transport_frame); - } - if (local_trans_state != JackTransportStopped) - //jack_transport_stop(netj.client); - fEngineControl->fTransport.SetCommand ( TransportCommandStop ); - break; + case JackTransportStarting: + // the master transport is starting... so we set our reply to the sync_callback; + if (local_trans_state == JackTransportStopped) { + fEngineControl->fTransport.SetCommand ( TransportCommandStart ); + //jack_transport_start(netj.client); + //last_transport_state = JackTransportStopped; + netj.sync_state = 0; + jack_info("locally stopped... starting..."); + } - case JackTransportRolling: - netj.sync_state = 1; - // if(local_trans_pos.frame != (pkthdr->transport_frame + (pkthdr->latency) * netj.period_size)) { - // jack_transport_locate(netj.client, (pkthdr->transport_frame + (pkthdr->latency + 2) * netj.period_size)); - // jack_info("running locate to %d", pkthdr->transport_frame + (pkthdr->latency)*netj.period_size); - // } - if (local_trans_state != JackTransportRolling) - fEngineControl->fTransport.SetState ( JackTransportRolling ); - break; + if (local_trans_pos.frame != compensated_tranport_pos) { + jack_position_t new_pos = local_trans_pos; + new_pos.frame = compensated_tranport_pos + 2 * netj.period_size; + new_pos.valid = (jack_position_bits_t) 0; - case JackTransportLooping: - break; - } -#endif - } - render_payload_to_jack_ports (netj.bitdepth, packet_bufX, netj.net_period_down, netj.capture_ports, netj.capture_srcs, netj.period_size, netj.dont_htonl_floats ); - packet_cache_release_packet(netj.packcache, netj.expected_framecnt ); - return 0; + fEngineControl->fTransport.RequestNewPos ( &new_pos ); + //jack_transport_locate(netj.client, compensated_tranport_pos); + //last_transport_state = JackTransportRolling; + netj.sync_state = 0; + jack_info("starting locate to %d", compensated_tranport_pos ); + } + break; + + case JackTransportStopped: + netj.sync_state = 1; + if (local_trans_pos.frame != (pkthdr->transport_frame)) { + jack_position_t new_pos = local_trans_pos; + new_pos.frame = pkthdr->transport_frame; + new_pos.valid = (jack_position_bits_t)0; + fEngineControl->fTransport.RequestNewPos ( &new_pos ); + //jack_transport_locate(netj.client, (pkthdr->transport_frame)); + jack_info("transport is stopped locate to %d", pkthdr->transport_frame); + } + if (local_trans_state != JackTransportStopped) + //jack_transport_stop(netj.client); + fEngineControl->fTransport.SetCommand ( TransportCommandStop ); + break; + + case JackTransportRolling: + netj.sync_state = 1; + // if(local_trans_pos.frame != (pkthdr->transport_frame + (pkthdr->latency) * netj.period_size)) { + // jack_transport_locate(netj.client, (pkthdr->transport_frame + (pkthdr->latency + 2) * netj.period_size)); + // jack_info("running locate to %d", pkthdr->transport_frame + (pkthdr->latency)*netj.period_size); + // } + if (local_trans_state != JackTransportRolling) + fEngineControl->fTransport.SetState ( JackTransportRolling ); + break; + + case JackTransportLooping: + break; + } +#endif } - int JackNetOneDriver::Write() - { - int syncstate = netj.sync_state | ((fEngineControl->fTransport.GetState() == JackTransportNetStarting) ? 1 : 0 ); - uint32_t *packet_buf, *packet_bufX; + render_payload_to_jack_ports (netj.bitdepth, packet_bufX, netj.net_period_down, netj.capture_ports, netj.capture_srcs, netj.period_size, netj.dont_htonl_floats ); + packet_cache_release_packet(netj.packcache, netj.expected_framecnt ); + return 0; +} + +int JackNetOneDriver::Write() +{ + int syncstate = netj.sync_state | ((fEngineControl->fTransport.GetState() == JackTransportNetStarting) ? 1 : 0 ); + uint32_t *packet_buf, *packet_bufX; - int packet_size = get_sample_size(netj.bitdepth) * netj.playback_channels * netj.net_period_up + sizeof(jacknet_packet_header); - jacknet_packet_header *pkthdr; + int packet_size = get_sample_size(netj.bitdepth) * netj.playback_channels * netj.net_period_up + sizeof(jacknet_packet_header); + jacknet_packet_header *pkthdr; - packet_buf = (uint32_t *) alloca(packet_size); - pkthdr = (jacknet_packet_header *)packet_buf; + packet_buf = (uint32_t *) alloca(packet_size); + pkthdr = (jacknet_packet_header *)packet_buf; - if( netj.running_free ) { - return 0; - } + if( netj.running_free ) { + return 0; + } - // offset packet_bufX by the packetheader. - packet_bufX = packet_buf + sizeof(jacknet_packet_header) / sizeof(jack_default_audio_sample_t); + // offset packet_bufX by the packetheader. + packet_bufX = packet_buf + sizeof(jacknet_packet_header) / sizeof(jack_default_audio_sample_t); - pkthdr->sync_state = syncstate;; - pkthdr->latency = netj.time_to_deadline; - //printf( "time to deadline = %d goodness=%d\n", (int)netj.time_to_deadline, netj.deadline_goodness ); - pkthdr->framecnt = netj.expected_framecnt; + pkthdr->sync_state = syncstate;; + pkthdr->latency = netj.time_to_deadline; + //printf( "time to deadline = %d goodness=%d\n", (int)netj.time_to_deadline, netj.deadline_goodness ); + pkthdr->framecnt = netj.expected_framecnt; - render_jack_ports_to_payload(netj.bitdepth, netj.playback_ports, netj.playback_srcs, netj.period_size, packet_bufX, netj.net_period_up, netj.dont_htonl_floats ); + render_jack_ports_to_payload(netj.bitdepth, netj.playback_ports, netj.playback_srcs, netj.period_size, packet_bufX, netj.net_period_up, netj.dont_htonl_floats ); - packet_header_hton(pkthdr); - if (netj.srcaddress_valid) - { - unsigned int r; - static const int flag = 0; + packet_header_hton(pkthdr); + if (netj.srcaddress_valid) { + unsigned int r; + static const int flag = 0; - if (netj.reply_port) + if (netj.reply_port) netj.syncsource_address.sin_port = htons(netj.reply_port); - for( r=0; rdata; - node = jack_slist_remove_link( node, this_node ); - jack_slist_free_1( this_node ); - fGraphManager->ReleasePort( fClientControl.fRefNum, port_id ); - } - netj.capture_ports = NULL; - - node = netj.playback_ports; - while( node != NULL ) { - JSList *this_node = node; - jack_port_id_t port_id = (jack_port_id_t)(intptr_t) node->data; - node = jack_slist_remove_link( node, this_node ); - jack_slist_free_1( this_node ); - fGraphManager->ReleasePort( fClientControl.fRefNum, port_id ); - } - netj.playback_ports = NULL; +void +JackNetOneDriver::FreePorts () +{ + JSList *node = netj.capture_ports; + + while( node != NULL ) { + JSList *this_node = node; + jack_port_id_t port_id = (jack_port_id_t)(intptr_t) node->data; + node = jack_slist_remove_link( node, this_node ); + jack_slist_free_1( this_node ); + fGraphManager->ReleasePort( fClientControl.fRefNum, port_id ); + } + netj.capture_ports = NULL; + + node = netj.playback_ports; + while( node != NULL ) { + JSList *this_node = node; + jack_port_id_t port_id = (jack_port_id_t)(intptr_t) node->data; + node = jack_slist_remove_link( node, this_node ); + jack_slist_free_1( this_node ); + fGraphManager->ReleasePort( fClientControl.fRefNum, port_id ); + } + netj.playback_ports = NULL; - if( netj.bitdepth == CELT_MODE ) { - #if HAVE_CELT + if( netj.bitdepth == CELT_MODE ) { +#if HAVE_CELT node = netj.playback_srcs; while( node != NULL ) { JSList *this_node = node; @@ -479,9 +473,9 @@ namespace Jack celt_decoder_destroy( dec ); } netj.capture_srcs = NULL; - #endif - } else { - #if HAVE_SAMPLERATE +#endif + } else { +#if HAVE_SAMPLERATE node = netj.playback_srcs; while( node != NULL ) { JSList *this_node = node; @@ -501,518 +495,487 @@ namespace Jack src_delete( state ); } netj.capture_srcs = NULL; - #endif - } +#endif } +} //Render functions-------------------------------------------------------------------- // render functions for float - void - JackNetOneDriver::render_payload_to_jack_ports_float ( void *packet_payload, jack_nframes_t net_period_down, JSList *capture_ports, JSList *capture_srcs, jack_nframes_t nframes, int dont_htonl_floats) - { - uint32_t chn = 0; - JSList *node = capture_ports; - #if HAVE_SAMPLERATE - JSList *src_node = capture_srcs; - #endif +void +JackNetOneDriver::render_payload_to_jack_ports_float ( void *packet_payload, jack_nframes_t net_period_down, JSList *capture_ports, JSList *capture_srcs, jack_nframes_t nframes, int dont_htonl_floats) +{ + uint32_t chn = 0; + JSList *node = capture_ports; +#if HAVE_SAMPLERATE + JSList *src_node = capture_srcs; +#endif - uint32_t *packet_bufX = (uint32_t *)packet_payload; + uint32_t *packet_bufX = (uint32_t *)packet_payload; - if( !packet_payload ) - return; + if( !packet_payload ) + return; - while (node != NULL) - { - unsigned int i; - int_float_t val; - #if HAVE_SAMPLERATE - SRC_DATA src; - #endif - jack_port_id_t port_id = (jack_port_id_t)(intptr_t) node->data; - JackPort *port = fGraphManager->GetPort( port_id ); + while (node != NULL) { + unsigned int i; + int_float_t val; +#if HAVE_SAMPLERATE + SRC_DATA src; +#endif + jack_port_id_t port_id = (jack_port_id_t)(intptr_t) node->data; + JackPort *port = fGraphManager->GetPort( port_id ); - jack_default_audio_sample_t* buf = - (jack_default_audio_sample_t*)fGraphManager->GetBuffer(port_id, fEngineControl->fBufferSize); + jack_default_audio_sample_t* buf = + (jack_default_audio_sample_t*)fGraphManager->GetBuffer(port_id, fEngineControl->fBufferSize); - const char *porttype = port->GetType(); + const char *porttype = port->GetType(); - if (strncmp (porttype, JACK_DEFAULT_AUDIO_TYPE, jack_port_type_size()) == 0) - { - #if HAVE_SAMPLERATE - // audio port, resample if necessary - if (net_period_down != nframes) - { - SRC_STATE *src_state = (SRC_STATE *)src_node->data; - for (i = 0; i < net_period_down; i++) - { - packet_bufX[i] = ntohl (packet_bufX[i]); - } + if (strncmp (porttype, JACK_DEFAULT_AUDIO_TYPE, jack_port_type_size()) == 0) { +#if HAVE_SAMPLERATE + // audio port, resample if necessary + if (net_period_down != nframes) { + SRC_STATE *src_state = (SRC_STATE *)src_node->data; + for (i = 0; i < net_period_down; i++) { + packet_bufX[i] = ntohl (packet_bufX[i]); + } - src.data_in = (float *) packet_bufX; - src.input_frames = net_period_down; + src.data_in = (float *) packet_bufX; + src.input_frames = net_period_down; - src.data_out = buf; - src.output_frames = nframes; + src.data_out = buf; + src.output_frames = nframes; - src.src_ratio = (float) nframes / (float) net_period_down; - src.end_of_input = 0; + src.src_ratio = (float) nframes / (float) net_period_down; + src.end_of_input = 0; - src_set_ratio (src_state, src.src_ratio); - src_process (src_state, &src); - src_node = jack_slist_next (src_node); - } - else - #endif - { - if( dont_htonl_floats ) - { - memcpy( buf, packet_bufX, net_period_down*sizeof(jack_default_audio_sample_t)); - } - else - { - for (i = 0; i < net_period_down; i++) - { - val.i = packet_bufX[i]; - val.i = ntohl (val.i); - buf[i] = val.f; - } + src_set_ratio (src_state, src.src_ratio); + src_process (src_state, &src); + src_node = jack_slist_next (src_node); + } else +#endif + { + if( dont_htonl_floats ) { + memcpy( buf, packet_bufX, net_period_down * sizeof(jack_default_audio_sample_t)); + } else { + for (i = 0; i < net_period_down; i++) { + val.i = packet_bufX[i]; + val.i = ntohl (val.i); + buf[i] = val.f; } } } - else if (strncmp (porttype, JACK_DEFAULT_MIDI_TYPE, jack_port_type_size()) == 0) - { - // midi port, decode midi events - // convert the data buffer to a standard format (uint32_t based) - unsigned int buffer_size_uint32 = net_period_down; - uint32_t * buffer_uint32 = (uint32_t*)packet_bufX; - decode_midi_buffer (buffer_uint32, buffer_size_uint32, buf); - } - packet_bufX = (packet_bufX + net_period_down); - node = jack_slist_next (node); - chn++; + } else if (strncmp (porttype, JACK_DEFAULT_MIDI_TYPE, jack_port_type_size()) == 0) { + // midi port, decode midi events + // convert the data buffer to a standard format (uint32_t based) + unsigned int buffer_size_uint32 = net_period_down; + uint32_t * buffer_uint32 = (uint32_t*)packet_bufX; + decode_midi_buffer (buffer_uint32, buffer_size_uint32, buf); } + packet_bufX = (packet_bufX + net_period_down); + node = jack_slist_next (node); + chn++; + } } - void - JackNetOneDriver::render_jack_ports_to_payload_float (JSList *playback_ports, JSList *playback_srcs, jack_nframes_t nframes, void *packet_payload, jack_nframes_t net_period_up, int dont_htonl_floats ) - { - uint32_t chn = 0; - JSList *node = playback_ports; - #if HAVE_SAMPLERATE - JSList *src_node = playback_srcs; - #endif - - uint32_t *packet_bufX = (uint32_t *) packet_payload; - - while (node != NULL) - { - #if HAVE_SAMPLERATE - SRC_DATA src; - #endif - unsigned int i; - int_float_t val; - jack_port_id_t port_id = (jack_port_id_t)(intptr_t) node->data; - JackPort *port = fGraphManager->GetPort( port_id ); - - jack_default_audio_sample_t* buf = - (jack_default_audio_sample_t*)fGraphManager->GetBuffer(port_id, fEngineControl->fBufferSize); - - const char *porttype = port->GetType(); - - if (strncmp (porttype, JACK_DEFAULT_AUDIO_TYPE, jack_port_type_size()) == 0) - { - // audio port, resample if necessary +void +JackNetOneDriver::render_jack_ports_to_payload_float (JSList *playback_ports, JSList *playback_srcs, jack_nframes_t nframes, void *packet_payload, jack_nframes_t net_period_up, int dont_htonl_floats ) +{ + uint32_t chn = 0; + JSList *node = playback_ports; +#if HAVE_SAMPLERATE + JSList *src_node = playback_srcs; +#endif + + uint32_t *packet_bufX = (uint32_t *) packet_payload; - #if HAVE_SAMPLERATE - if (net_period_up != nframes) { - SRC_STATE *src_state = (SRC_STATE *) src_node->data; - src.data_in = buf; - src.input_frames = nframes; + while (node != NULL) { +#if HAVE_SAMPLERATE + SRC_DATA src; +#endif + unsigned int i; + int_float_t val; + jack_port_id_t port_id = (jack_port_id_t)(intptr_t) node->data; + JackPort *port = fGraphManager->GetPort( port_id ); - src.data_out = (float *) packet_bufX; - src.output_frames = net_period_up; + jack_default_audio_sample_t* buf = + (jack_default_audio_sample_t*)fGraphManager->GetBuffer(port_id, fEngineControl->fBufferSize); - src.src_ratio = (float) net_period_up / (float) nframes; - src.end_of_input = 0; + const char *porttype = port->GetType(); - src_set_ratio (src_state, src.src_ratio); - src_process (src_state, &src); + if (strncmp (porttype, JACK_DEFAULT_AUDIO_TYPE, jack_port_type_size()) == 0) { + // audio port, resample if necessary - for (i = 0; i < net_period_up; i++) - { - packet_bufX[i] = htonl (packet_bufX[i]); - } - src_node = jack_slist_next (src_node); +#if HAVE_SAMPLERATE + if (net_period_up != nframes) { + SRC_STATE *src_state = (SRC_STATE *) src_node->data; + src.data_in = buf; + src.input_frames = nframes; + + src.data_out = (float *) packet_bufX; + src.output_frames = net_period_up; + + src.src_ratio = (float) net_period_up / (float) nframes; + src.end_of_input = 0; + + src_set_ratio (src_state, src.src_ratio); + src_process (src_state, &src); + + for (i = 0; i < net_period_up; i++) { + packet_bufX[i] = htonl (packet_bufX[i]); } - else - #endif - { - if( dont_htonl_floats ) - { - memcpy( packet_bufX, buf, net_period_up*sizeof(jack_default_audio_sample_t) ); - } - else - { - for (i = 0; i < net_period_up; i++) - { - val.f = buf[i]; - val.i = htonl (val.i); - packet_bufX[i] = val.i; - } + src_node = jack_slist_next (src_node); + } else +#endif + { + if( dont_htonl_floats ) { + memcpy( packet_bufX, buf, net_period_up * sizeof(jack_default_audio_sample_t) ); + } else { + for (i = 0; i < net_period_up; i++) { + val.f = buf[i]; + val.i = htonl (val.i); + packet_bufX[i] = val.i; } } } - else if (strncmp(porttype, JACK_DEFAULT_MIDI_TYPE, jack_port_type_size()) == 0) - { - // encode midi events from port to packet - // convert the data buffer to a standard format (uint32_t based) - unsigned int buffer_size_uint32 = net_period_up; - uint32_t * buffer_uint32 = (uint32_t*) packet_bufX; - encode_midi_buffer (buffer_uint32, buffer_size_uint32, buf); - } - packet_bufX = (packet_bufX + net_period_up); - node = jack_slist_next (node); - chn++; + } else if (strncmp(porttype, JACK_DEFAULT_MIDI_TYPE, jack_port_type_size()) == 0) { + // encode midi events from port to packet + // convert the data buffer to a standard format (uint32_t based) + unsigned int buffer_size_uint32 = net_period_up; + uint32_t * buffer_uint32 = (uint32_t*) packet_bufX; + encode_midi_buffer (buffer_uint32, buffer_size_uint32, buf); } + packet_bufX = (packet_bufX + net_period_up); + node = jack_slist_next (node); + chn++; } +} - #if HAVE_CELT - // render functions for celt. - void - JackNetOneDriver::render_payload_to_jack_ports_celt (void *packet_payload, jack_nframes_t net_period_down, JSList *capture_ports, JSList *capture_srcs, jack_nframes_t nframes) - { - uint32_t chn = 0; - JSList *node = capture_ports; - JSList *src_node = capture_srcs; - unsigned char *packet_bufX = (unsigned char *)packet_payload; +#if HAVE_CELT +// render functions for celt. +void +JackNetOneDriver::render_payload_to_jack_ports_celt (void *packet_payload, jack_nframes_t net_period_down, JSList *capture_ports, JSList *capture_srcs, jack_nframes_t nframes) +{ + uint32_t chn = 0; + JSList *node = capture_ports; + JSList *src_node = capture_srcs; + unsigned char *packet_bufX = (unsigned char *)packet_payload; - while (node != NULL) - { - jack_port_id_t port_id = (jack_port_id_t) (intptr_t)node->data; - JackPort *port = fGraphManager->GetPort( port_id ); + while (node != NULL) { + jack_port_id_t port_id = (jack_port_id_t) (intptr_t)node->data; + JackPort *port = fGraphManager->GetPort( port_id ); - jack_default_audio_sample_t* buf = - (jack_default_audio_sample_t*)fGraphManager->GetBuffer(port_id, fEngineControl->fBufferSize); + jack_default_audio_sample_t* buf = + (jack_default_audio_sample_t*)fGraphManager->GetBuffer(port_id, fEngineControl->fBufferSize); - const char *portname = port->GetType(); + const char *portname = port->GetType(); - if (strncmp(portname, JACK_DEFAULT_AUDIO_TYPE, jack_port_type_size()) == 0) - { - // audio port, decode celt data. - CELTDecoder *decoder = (CELTDecoder *)src_node->data; - - #if HAVE_CELT_API_0_8 || HAVE_CELT_API_0_11 - if( !packet_payload ) - celt_decode_float( decoder, NULL, net_period_down, buf, nframes ); - else - celt_decode_float( decoder, packet_bufX, net_period_down, buf, nframes ); - #else - if( !packet_payload ) - celt_decode_float( decoder, NULL, net_period_down, buf ); - else - celt_decode_float( decoder, packet_bufX, net_period_down, buf ); - #endif + if (strncmp(portname, JACK_DEFAULT_AUDIO_TYPE, jack_port_type_size()) == 0) { + // audio port, decode celt data. + CELTDecoder *decoder = (CELTDecoder *)src_node->data; - src_node = jack_slist_next (src_node); - } - else if (strncmp(portname, JACK_DEFAULT_MIDI_TYPE, jack_port_type_size()) == 0) - { - // midi port, decode midi events - // convert the data buffer to a standard format (uint32_t based) - unsigned int buffer_size_uint32 = net_period_down / 2; - uint32_t * buffer_uint32 = (uint32_t*) packet_bufX; +#if HAVE_CELT_API_0_8 || HAVE_CELT_API_0_11 + if( !packet_payload ) + celt_decode_float( decoder, NULL, net_period_down, buf, nframes ); + else + celt_decode_float( decoder, packet_bufX, net_period_down, buf, nframes ); +#else + if( !packet_payload ) + celt_decode_float( decoder, NULL, net_period_down, buf ); + else + celt_decode_float( decoder, packet_bufX, net_period_down, buf ); +#endif + + src_node = jack_slist_next (src_node); + } else if (strncmp(portname, JACK_DEFAULT_MIDI_TYPE, jack_port_type_size()) == 0) { + // midi port, decode midi events + // convert the data buffer to a standard format (uint32_t based) + unsigned int buffer_size_uint32 = net_period_down / 2; + uint32_t * buffer_uint32 = (uint32_t*) packet_bufX; if( packet_payload ) decode_midi_buffer (buffer_uint32, buffer_size_uint32, buf); - } - packet_bufX = (packet_bufX + net_period_down); - node = jack_slist_next (node); - chn++; } + packet_bufX = (packet_bufX + net_period_down); + node = jack_slist_next (node); + chn++; } +} - void - JackNetOneDriver::render_jack_ports_to_payload_celt (JSList *playback_ports, JSList *playback_srcs, jack_nframes_t nframes, void *packet_payload, jack_nframes_t net_period_up) - { - uint32_t chn = 0; - JSList *node = playback_ports; - JSList *src_node = playback_srcs; +void +JackNetOneDriver::render_jack_ports_to_payload_celt (JSList *playback_ports, JSList *playback_srcs, jack_nframes_t nframes, void *packet_payload, jack_nframes_t net_period_up) +{ + uint32_t chn = 0; + JSList *node = playback_ports; + JSList *src_node = playback_srcs; - unsigned char *packet_bufX = (unsigned char *)packet_payload; + unsigned char *packet_bufX = (unsigned char *)packet_payload; - while (node != NULL) - { - jack_port_id_t port_id = (jack_port_id_t) (intptr_t) node->data; - JackPort *port = fGraphManager->GetPort( port_id ); + while (node != NULL) { + jack_port_id_t port_id = (jack_port_id_t) (intptr_t) node->data; + JackPort *port = fGraphManager->GetPort( port_id ); - jack_default_audio_sample_t* buf = - (jack_default_audio_sample_t*)fGraphManager->GetBuffer(port_id, fEngineControl->fBufferSize); + jack_default_audio_sample_t* buf = + (jack_default_audio_sample_t*)fGraphManager->GetBuffer(port_id, fEngineControl->fBufferSize); - const char *portname = port->GetType(); + const char *portname = port->GetType(); - if (strncmp (portname, JACK_DEFAULT_AUDIO_TYPE, jack_port_type_size()) == 0) - { - // audio port, encode celt data. + if (strncmp (portname, JACK_DEFAULT_AUDIO_TYPE, jack_port_type_size()) == 0) { + // audio port, encode celt data. int encoded_bytes; jack_default_audio_sample_t *floatbuf = (jack_default_audio_sample_t *)alloca (sizeof(jack_default_audio_sample_t) * nframes ); memcpy( floatbuf, buf, nframes * sizeof(jack_default_audio_sample_t) ); CELTEncoder *encoder = (CELTEncoder *)src_node->data; - #if HAVE_CELT_API_0_8 || HAVE_CELT_API_0_11 +#if HAVE_CELT_API_0_8 || HAVE_CELT_API_0_11 encoded_bytes = celt_encode_float( encoder, floatbuf, nframes, packet_bufX, net_period_up ); #else encoded_bytes = celt_encode_float( encoder, floatbuf, NULL, packet_bufX, net_period_up ); #endif - if( encoded_bytes != (int)net_period_up ) - jack_error( "something in celt changed. netjack needs to be changed to handle this." ); + if( encoded_bytes != (int)net_period_up ) + jack_error( "something in celt changed. netjack needs to be changed to handle this." ); src_node = jack_slist_next( src_node ); - } - else if (strncmp(portname, JACK_DEFAULT_MIDI_TYPE, jack_port_type_size()) == 0) - { - // encode midi events from port to packet - // convert the data buffer to a standard format (uint32_t based) - unsigned int buffer_size_uint32 = net_period_up / 2; - uint32_t * buffer_uint32 = (uint32_t*) packet_bufX; - encode_midi_buffer (buffer_uint32, buffer_size_uint32, buf); - } - packet_bufX = (packet_bufX + net_period_up); - node = jack_slist_next (node); - chn++; + } else if (strncmp(portname, JACK_DEFAULT_MIDI_TYPE, jack_port_type_size()) == 0) { + // encode midi events from port to packet + // convert the data buffer to a standard format (uint32_t based) + unsigned int buffer_size_uint32 = net_period_up / 2; + uint32_t * buffer_uint32 = (uint32_t*) packet_bufX; + encode_midi_buffer (buffer_uint32, buffer_size_uint32, buf); } + packet_bufX = (packet_bufX + net_period_up); + node = jack_slist_next (node); + chn++; } +} - #endif - /* Wrapper functions with bitdepth argument... */ - void - JackNetOneDriver::render_payload_to_jack_ports (int bitdepth, void *packet_payload, jack_nframes_t net_period_down, JSList *capture_ports, JSList *capture_srcs, jack_nframes_t nframes, int dont_htonl_floats) - { - #if HAVE_CELT - if (bitdepth == CELT_MODE) - render_payload_to_jack_ports_celt (packet_payload, net_period_down, capture_ports, capture_srcs, nframes); - else - #endif - render_payload_to_jack_ports_float (packet_payload, net_period_down, capture_ports, capture_srcs, nframes, dont_htonl_floats); - } +#endif +/* Wrapper functions with bitdepth argument... */ +void +JackNetOneDriver::render_payload_to_jack_ports (int bitdepth, void *packet_payload, jack_nframes_t net_period_down, JSList *capture_ports, JSList *capture_srcs, jack_nframes_t nframes, int dont_htonl_floats) +{ +#if HAVE_CELT + if (bitdepth == CELT_MODE) + render_payload_to_jack_ports_celt (packet_payload, net_period_down, capture_ports, capture_srcs, nframes); + else +#endif + render_payload_to_jack_ports_float (packet_payload, net_period_down, capture_ports, capture_srcs, nframes, dont_htonl_floats); +} - void - JackNetOneDriver::render_jack_ports_to_payload (int bitdepth, JSList *playback_ports, JSList *playback_srcs, jack_nframes_t nframes, void *packet_payload, jack_nframes_t net_period_up, int dont_htonl_floats) - { - #if HAVE_CELT - if (bitdepth == CELT_MODE) - render_jack_ports_to_payload_celt (playback_ports, playback_srcs, nframes, packet_payload, net_period_up); - else - #endif - render_jack_ports_to_payload_float (playback_ports, playback_srcs, nframes, packet_payload, net_period_up, dont_htonl_floats); - } +void +JackNetOneDriver::render_jack_ports_to_payload (int bitdepth, JSList *playback_ports, JSList *playback_srcs, jack_nframes_t nframes, void *packet_payload, jack_nframes_t net_period_up, int dont_htonl_floats) +{ +#if HAVE_CELT + if (bitdepth == CELT_MODE) + render_jack_ports_to_payload_celt (playback_ports, playback_srcs, nframes, packet_payload, net_period_up); + else +#endif + render_jack_ports_to_payload_float (playback_ports, playback_srcs, nframes, packet_payload, net_period_up, dont_htonl_floats); +} + +//driver loader----------------------------------------------------------------------- - //driver loader----------------------------------------------------------------------- - - #ifdef __cplusplus - extern "C" - { - #endif - SERVER_EXPORT jack_driver_desc_t* driver_get_descriptor () - { - jack_driver_desc_t* desc = ( jack_driver_desc_t* ) calloc ( 1, sizeof ( jack_driver_desc_t ) ); - jack_driver_param_desc_t * params; - - strcpy ( desc->name, "netone" ); // size MUST be less then JACK_DRIVER_NAME_MAX + 1 - strcpy ( desc->desc, "netjack one slave backend component" ); // size MUST be less then JACK_DRIVER_PARAM_DESC + 1 - - desc->nparams = 18; - params = ( jack_driver_param_desc_t* ) calloc ( desc->nparams, sizeof ( jack_driver_param_desc_t ) ); - - int i = 0; - strcpy (params[i].name, "audio-ins"); - params[i].character = 'i'; - params[i].type = JackDriverParamUInt; - params[i].value.ui = 2U; - strcpy (params[i].short_desc, "Number of capture channels (defaults to 2)"); - strcpy (params[i].long_desc, params[i].short_desc); - - i++; - strcpy (params[i].name, "audio-outs"); - params[i].character = 'o'; - params[i].type = JackDriverParamUInt; - params[i].value.ui = 2U; - strcpy (params[i].short_desc, "Number of playback channels (defaults to 2)"); - strcpy (params[i].long_desc, params[i].short_desc); - - i++; - strcpy (params[i].name, "midi-ins"); - params[i].character = 'I'; - params[i].type = JackDriverParamUInt; - params[i].value.ui = 1U; - strcpy (params[i].short_desc, "Number of midi capture channels (defaults to 1)"); - strcpy (params[i].long_desc, params[i].short_desc); - - i++; - strcpy (params[i].name, "midi-outs"); - params[i].character = 'O'; - params[i].type = JackDriverParamUInt; - params[i].value.ui = 1U; - strcpy (params[i].short_desc, "Number of midi playback channels (defaults to 1)"); - strcpy (params[i].long_desc, params[i].short_desc); - - i++; - strcpy (params[i].name, "rate"); - params[i].character = 'r'; - params[i].type = JackDriverParamUInt; - params[i].value.ui = 48000U; - strcpy (params[i].short_desc, "Sample rate"); - strcpy (params[i].long_desc, params[i].short_desc); - - i++; - strcpy (params[i].name, "period"); - params[i].character = 'p'; - params[i].type = JackDriverParamUInt; - params[i].value.ui = 1024U; - strcpy (params[i].short_desc, "Frames per period"); - strcpy (params[i].long_desc, params[i].short_desc); - - i++; - strcpy (params[i].name, "num-periods"); - params[i].character = 'n'; - params[i].type = JackDriverParamUInt; - params[i].value.ui = 5U; - strcpy (params[i].short_desc, +#ifdef __cplusplus +extern "C" +{ +#endif + SERVER_EXPORT jack_driver_desc_t* driver_get_descriptor () + { + jack_driver_desc_t* desc = ( jack_driver_desc_t* ) calloc ( 1, sizeof ( jack_driver_desc_t ) ); + jack_driver_param_desc_t * params; + + strcpy ( desc->name, "netone" ); // size MUST be less then JACK_DRIVER_NAME_MAX + 1 + strcpy ( desc->desc, "netjack one slave backend component" ); // size MUST be less then JACK_DRIVER_PARAM_DESC + 1 + + desc->nparams = 18; + params = ( jack_driver_param_desc_t* ) calloc ( desc->nparams, sizeof ( jack_driver_param_desc_t ) ); + + int i = 0; + strcpy (params[i].name, "audio-ins"); + params[i].character = 'i'; + params[i].type = JackDriverParamUInt; + params[i].value.ui = 2U; + strcpy (params[i].short_desc, "Number of capture channels (defaults to 2)"); + strcpy (params[i].long_desc, params[i].short_desc); + + i++; + strcpy (params[i].name, "audio-outs"); + params[i].character = 'o'; + params[i].type = JackDriverParamUInt; + params[i].value.ui = 2U; + strcpy (params[i].short_desc, "Number of playback channels (defaults to 2)"); + strcpy (params[i].long_desc, params[i].short_desc); + + i++; + strcpy (params[i].name, "midi-ins"); + params[i].character = 'I'; + params[i].type = JackDriverParamUInt; + params[i].value.ui = 1U; + strcpy (params[i].short_desc, "Number of midi capture channels (defaults to 1)"); + strcpy (params[i].long_desc, params[i].short_desc); + + i++; + strcpy (params[i].name, "midi-outs"); + params[i].character = 'O'; + params[i].type = JackDriverParamUInt; + params[i].value.ui = 1U; + strcpy (params[i].short_desc, "Number of midi playback channels (defaults to 1)"); + strcpy (params[i].long_desc, params[i].short_desc); + + i++; + strcpy (params[i].name, "rate"); + params[i].character = 'r'; + params[i].type = JackDriverParamUInt; + params[i].value.ui = 48000U; + strcpy (params[i].short_desc, "Sample rate"); + strcpy (params[i].long_desc, params[i].short_desc); + + i++; + strcpy (params[i].name, "period"); + params[i].character = 'p'; + params[i].type = JackDriverParamUInt; + params[i].value.ui = 1024U; + strcpy (params[i].short_desc, "Frames per period"); + strcpy (params[i].long_desc, params[i].short_desc); + + i++; + strcpy (params[i].name, "num-periods"); + params[i].character = 'n'; + params[i].type = JackDriverParamUInt; + params[i].value.ui = 5U; + strcpy (params[i].short_desc, "Network latency setting in no. of periods"); - strcpy (params[i].long_desc, params[i].short_desc); - - i++; - strcpy (params[i].name, "listen-port"); - params[i].character = 'l'; - params[i].type = JackDriverParamUInt; - params[i].value.ui = 3000U; - strcpy (params[i].short_desc, + strcpy (params[i].long_desc, params[i].short_desc); + + i++; + strcpy (params[i].name, "listen-port"); + params[i].character = 'l'; + params[i].type = JackDriverParamUInt; + params[i].value.ui = 3000U; + strcpy (params[i].short_desc, "The socket port we are listening on for sync packets"); - strcpy (params[i].long_desc, params[i].short_desc); - - i++; - strcpy (params[i].name, "factor"); - params[i].character = 'f'; - params[i].type = JackDriverParamUInt; - params[i].value.ui = 1U; - strcpy (params[i].short_desc, + strcpy (params[i].long_desc, params[i].short_desc); + + i++; + strcpy (params[i].name, "factor"); + params[i].character = 'f'; + params[i].type = JackDriverParamUInt; + params[i].value.ui = 1U; + strcpy (params[i].short_desc, "Factor for sample rate reduction"); - strcpy (params[i].long_desc, params[i].short_desc); - - i++; - strcpy (params[i].name, "upstream-factor"); - params[i].character = 'u'; - params[i].type = JackDriverParamUInt; - params[i].value.ui = 0U; - strcpy (params[i].short_desc, + strcpy (params[i].long_desc, params[i].short_desc); + + i++; + strcpy (params[i].name, "upstream-factor"); + params[i].character = 'u'; + params[i].type = JackDriverParamUInt; + params[i].value.ui = 0U; + strcpy (params[i].short_desc, "Factor for sample rate reduction on the upstream"); - strcpy (params[i].long_desc, params[i].short_desc); - - i++; - strcpy (params[i].name, "celt"); - params[i].character = 'c'; - params[i].type = JackDriverParamUInt; - params[i].value.ui = 0U; - strcpy (params[i].short_desc, + strcpy (params[i].long_desc, params[i].short_desc); + + i++; + strcpy (params[i].name, "celt"); + params[i].character = 'c'; + params[i].type = JackDriverParamUInt; + params[i].value.ui = 0U; + strcpy (params[i].short_desc, "sets celt encoding and number of kbits per channel"); - strcpy (params[i].long_desc, params[i].short_desc); - - i++; - strcpy (params[i].name, "bit-depth"); - params[i].character = 'b'; - params[i].type = JackDriverParamUInt; - params[i].value.ui = 0U; - strcpy (params[i].short_desc, + strcpy (params[i].long_desc, params[i].short_desc); + + i++; + strcpy (params[i].name, "bit-depth"); + params[i].character = 'b'; + params[i].type = JackDriverParamUInt; + params[i].value.ui = 0U; + strcpy (params[i].short_desc, "Sample bit-depth (0 for float, 8 for 8bit and 16 for 16bit)"); - strcpy (params[i].long_desc, params[i].short_desc); - - i++; - strcpy (params[i].name, "transport-sync"); - params[i].character = 't'; - params[i].type = JackDriverParamBool; - params[i].value.ui = 1U; - strcpy (params[i].short_desc, + strcpy (params[i].long_desc, params[i].short_desc); + + i++; + strcpy (params[i].name, "transport-sync"); + params[i].character = 't'; + params[i].type = JackDriverParamBool; + params[i].value.ui = 1U; + strcpy (params[i].short_desc, "Whether to slave the transport to the master transport"); - strcpy (params[i].long_desc, params[i].short_desc); - - i++; - strcpy (params[i].name, "autoconf"); - params[i].character = 'a'; - params[i].type = JackDriverParamBool; - params[i].value.ui = 1U; - strcpy (params[i].short_desc, + strcpy (params[i].long_desc, params[i].short_desc); + + i++; + strcpy (params[i].name, "autoconf"); + params[i].character = 'a'; + params[i].type = JackDriverParamBool; + params[i].value.ui = 1U; + strcpy (params[i].short_desc, "Whether to use Autoconfig, or just start."); - strcpy (params[i].long_desc, params[i].short_desc); - - i++; - strcpy (params[i].name, "redundancy"); - params[i].character = 'R'; - params[i].type = JackDriverParamUInt; - params[i].value.ui = 1U; - strcpy (params[i].short_desc, + strcpy (params[i].long_desc, params[i].short_desc); + + i++; + strcpy (params[i].name, "redundancy"); + params[i].character = 'R'; + params[i].type = JackDriverParamUInt; + params[i].value.ui = 1U; + strcpy (params[i].short_desc, "Send packets N times"); - strcpy (params[i].long_desc, params[i].short_desc); - - i++; - strcpy (params[i].name, "native-endian"); - params[i].character = 'e'; - params[i].type = JackDriverParamBool; - params[i].value.ui = 0U; - strcpy (params[i].short_desc, + strcpy (params[i].long_desc, params[i].short_desc); + + i++; + strcpy (params[i].name, "native-endian"); + params[i].character = 'e'; + params[i].type = JackDriverParamBool; + params[i].value.ui = 0U; + strcpy (params[i].short_desc, "Dont convert samples to network byte order."); - strcpy (params[i].long_desc, params[i].short_desc); - - i++; - strcpy (params[i].name, "jitterval"); - params[i].character = 'J'; - params[i].type = JackDriverParamInt; - params[i].value.i = 0; - strcpy (params[i].short_desc, + strcpy (params[i].long_desc, params[i].short_desc); + + i++; + strcpy (params[i].name, "jitterval"); + params[i].character = 'J'; + params[i].type = JackDriverParamInt; + params[i].value.i = 0; + strcpy (params[i].short_desc, "attempted jitterbuffer microseconds on master"); - strcpy (params[i].long_desc, params[i].short_desc); - - i++; - strcpy (params[i].name, "always-deadline"); - params[i].character = 'D'; - params[i].type = JackDriverParamBool; - params[i].value.ui = 0U; - strcpy (params[i].short_desc, + strcpy (params[i].long_desc, params[i].short_desc); + + i++; + strcpy (params[i].name, "always-deadline"); + params[i].character = 'D'; + params[i].type = JackDriverParamBool; + params[i].value.ui = 0U; + strcpy (params[i].short_desc, "always use deadline"); - strcpy (params[i].long_desc, params[i].short_desc); + strcpy (params[i].long_desc, params[i].short_desc); - desc->params = params; + desc->params = params; - return desc; - } + return desc; + } - SERVER_EXPORT Jack::JackDriverClientInterface* driver_initialize ( Jack::JackLockedEngine* engine, Jack::JackSynchro* table, const JSList* params ) - { - jack_nframes_t sample_rate = 48000; - jack_nframes_t resample_factor = 1; - jack_nframes_t period_size = 1024; - unsigned int capture_ports = 2; - unsigned int playback_ports = 2; - unsigned int capture_ports_midi = 1; - unsigned int playback_ports_midi = 1; - unsigned int listen_port = 3000; - unsigned int bitdepth = 0; - unsigned int handle_transport_sync = 1; - unsigned int use_autoconfig = 1; - unsigned int latency = 5; - unsigned int redundancy = 1; - unsigned int mtu = 1400; - #if HAVE_SAMPLERATE - unsigned int resample_factor_up = 1; - #endif - int dont_htonl_floats = 0; - int always_deadline = 0; - int jitter_val = 0; - const JSList * node; - const jack_driver_param_t * param; - - for ( node = params; node; node = jack_slist_next ( node ) ) - { - param = ( const jack_driver_param_t* ) node->data; - switch ( param->character ) - { + SERVER_EXPORT Jack::JackDriverClientInterface* driver_initialize ( Jack::JackLockedEngine* engine, Jack::JackSynchro* table, const JSList* params ) + { + jack_nframes_t sample_rate = 48000; + jack_nframes_t resample_factor = 1; + jack_nframes_t period_size = 1024; + unsigned int capture_ports = 2; + unsigned int playback_ports = 2; + unsigned int capture_ports_midi = 1; + unsigned int playback_ports_midi = 1; + unsigned int listen_port = 3000; + unsigned int bitdepth = 0; + unsigned int handle_transport_sync = 1; + unsigned int use_autoconfig = 1; + unsigned int latency = 5; + unsigned int redundancy = 1; + unsigned int mtu = 1400; +#if HAVE_SAMPLERATE + unsigned int resample_factor_up = 1; +#endif + int dont_htonl_floats = 0; + int always_deadline = 0; + int jitter_val = 0; + const JSList * node; + const jack_driver_param_t * param; + + for ( node = params; node; node = jack_slist_next ( node ) ) { + param = ( const jack_driver_param_t* ) node->data; + switch ( param->character ) { case 'i': capture_ports = param->value.ui; break; @@ -1042,21 +1005,21 @@ namespace Jack break; case 'f': - #if HAVE_SAMPLERATE +#if HAVE_SAMPLERATE resample_factor = param->value.ui; - #else +#else jack_error( "not built with libsamplerate support" ); return NULL; - #endif +#endif break; case 'u': - #if HAVE_SAMPLERATE +#if HAVE_SAMPLERATE resample_factor_up = param->value.ui; - #else +#else jack_error( "not built with libsamplerate support" ); return NULL; - #endif +#endif break; case 'b': @@ -1064,13 +1027,13 @@ namespace Jack break; case 'c': - #if HAVE_CELT +#if HAVE_CELT bitdepth = CELT_MODE; resample_factor = param->value.ui; - #else +#else jack_error( "not built with celt support" ); return NULL; - #endif +#endif break; case 't': @@ -1100,38 +1063,32 @@ namespace Jack case 'D': always_deadline = param->value.ui; break; - } - } - - try - { - Jack::JackDriverClientInterface* driver = - new Jack::JackWaitThreadedDriver ( - new Jack::JackNetOneDriver ( "system", "net_pcm", engine, table, listen_port, mtu, - capture_ports_midi, playback_ports_midi, capture_ports, playback_ports, - sample_rate, period_size, resample_factor, - "net_pcm", handle_transport_sync, bitdepth, use_autoconfig, latency, redundancy, - dont_htonl_floats, always_deadline, jitter_val ) ); - - if ( driver->Open ( period_size, sample_rate, 1, 1, capture_ports, playback_ports, - 0, "from_master_", "to_master_", 0, 0 ) == 0 ) - { - return driver; - } - else - { - delete driver; - return NULL; - } + } + } - } - catch ( ... ) - { - return NULL; - } + try { + Jack::JackDriverClientInterface* driver = + new Jack::JackWaitThreadedDriver ( + new Jack::JackNetOneDriver ( "system", "net_pcm", engine, table, listen_port, mtu, + capture_ports_midi, playback_ports_midi, capture_ports, playback_ports, + sample_rate, period_size, resample_factor, + "net_pcm", handle_transport_sync, bitdepth, use_autoconfig, latency, redundancy, + dont_htonl_floats, always_deadline, jitter_val ) ); + + if ( driver->Open ( period_size, sample_rate, 1, 1, capture_ports, playback_ports, + 0, "from_master_", "to_master_", 0, 0 ) == 0 ) { + return driver; + } else { + delete driver; + return NULL; } - #ifdef __cplusplus + } catch ( ... ) { + return NULL; } - #endif + } + +#ifdef __cplusplus +} +#endif } diff --git a/common/JackNetOneDriver.h b/common/JackNetOneDriver.h index 348b4628..577c2f6f 100644 --- a/common/JackNetOneDriver.h +++ b/common/JackNetOneDriver.h @@ -27,72 +27,69 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. namespace Jack { - /** - \Brief This class describes the Net Backend - */ - - class JackNetOneDriver : public JackAudioDriver - { - private: - - netjack_driver_state_t netj; - - void - render_payload_to_jack_ports_float ( void *packet_payload, jack_nframes_t net_period_down, JSList *capture_ports, JSList *capture_srcs, jack_nframes_t nframes, int dont_htonl_floats); - void - render_jack_ports_to_payload_float (JSList *playback_ports, JSList *playback_srcs, jack_nframes_t nframes, void *packet_payload, jack_nframes_t net_period_up, int dont_htonl_floats ); - #ifdef HAVE_CELT - void - render_payload_to_jack_ports_celt (void *packet_payload, jack_nframes_t net_period_down, JSList *capture_ports, JSList *capture_srcs, jack_nframes_t nframes); - void - render_jack_ports_to_payload_celt (JSList *playback_ports, JSList *playback_srcs, jack_nframes_t nframes, void *packet_payload, jack_nframes_t net_period_up); - #endif - void - render_payload_to_jack_ports (int bitdepth, void *packet_payload, jack_nframes_t net_period_down, JSList *capture_ports, JSList *capture_srcs, jack_nframes_t nframes, int dont_htonl_floats); - void - render_jack_ports_to_payload (int bitdepth, JSList *playback_ports, JSList *playback_srcs, jack_nframes_t nframes, void *packet_payload, jack_nframes_t net_period_up, int dont_htonl_floats); - - public: - - JackNetOneDriver ( const char* name, const char* alias, JackLockedEngine* engine, JackSynchro* table, - int port, int mtu, int capture_ports, int playback_ports, int midi_input_ports, int midi_output_ports, - int sample_rate, int period_size, int resample_factor, - const char* net_name, uint transport_sync, int bitdepth, int use_autoconfig, - int latency, int redundancy, int dont_htonl_floats, int always_deadline, int jitter_val ); - ~JackNetOneDriver(); - - int Open ( jack_nframes_t frames_per_cycle, jack_nframes_t rate, bool capturing, bool playing, - int inchannels, int outchannels, bool monitor, const char* capture_driver_name, - const char* playback_driver_name, jack_nframes_t capture_latency, jack_nframes_t playback_latency ); - - int Close(); - int Attach(); - int Detach(); - - int Read(); - int Write(); - - bool Initialize(); - int AllocPorts(); - void FreePorts(); - - // BufferSize can't be changed - bool IsFixedBufferSize() - { - return true; - } - - int SetBufferSize ( jack_nframes_t buffer_size ) - { - return -1; - } - - int SetSampleRate ( jack_nframes_t sample_rate ) - { - return -1; - } - - }; +/** +\Brief This class describes the Net Backend +*/ + +class JackNetOneDriver : public JackAudioDriver +{ + private: + + netjack_driver_state_t netj; + + void + render_payload_to_jack_ports_float(void *packet_payload, jack_nframes_t net_period_down, JSList *capture_ports, JSList *capture_srcs, jack_nframes_t nframes, int dont_htonl_floats); + void + render_jack_ports_to_payload_float(JSList *playback_ports, JSList *playback_srcs, jack_nframes_t nframes, void *packet_payload, jack_nframes_t net_period_up, int dont_htonl_floats ); +#ifdef HAVE_CELT + void + render_payload_to_jack_ports_celt(void *packet_payload, jack_nframes_t net_period_down, JSList *capture_ports, JSList *capture_srcs, jack_nframes_t nframes); + void + render_jack_ports_to_payload_celt(JSList *playback_ports, JSList *playback_srcs, jack_nframes_t nframes, void *packet_payload, jack_nframes_t net_period_up); +#endif + void + render_payload_to_jack_ports(int bitdepth, void *packet_payload, jack_nframes_t net_period_down, JSList *capture_ports, JSList *capture_srcs, jack_nframes_t nframes, int dont_htonl_floats); + void + render_jack_ports_to_payload(int bitdepth, JSList *playback_ports, JSList *playback_srcs, jack_nframes_t nframes, void *packet_payload, jack_nframes_t net_period_up, int dont_htonl_floats); + + public: + + JackNetOneDriver(const char* name, const char* alias, JackLockedEngine* engine, JackSynchro* table, + int port, int mtu, int capture_ports, int playback_ports, int midi_input_ports, int midi_output_ports, + int sample_rate, int period_size, int resample_factor, + const char* net_name, uint transport_sync, int bitdepth, int use_autoconfig, + int latency, int redundancy, int dont_htonl_floats, int always_deadline, int jitter_val); + ~JackNetOneDriver(); + + int Open(jack_nframes_t frames_per_cycle, jack_nframes_t rate, bool capturing, bool playing, + int inchannels, int outchannels, bool monitor, const char* capture_driver_name, + const char* playback_driver_name, jack_nframes_t capture_latency, jack_nframes_t playback_latency); + + int Close(); + int Attach(); + int Detach(); + + int Read(); + int Write(); + + bool Initialize(); + int AllocPorts(); + void FreePorts(); + + // BufferSize can't be changed + bool IsFixedBufferSize() { + return true; + } + + int SetBufferSize(jack_nframes_t buffer_size) { + return -1; + } + + int SetSampleRate(jack_nframes_t sample_rate) { + return -1; + } + +}; } #endif diff --git a/common/JackNetTool.cpp b/common/JackNetTool.cpp index d44658df..0f527876 100644 --- a/common/JackNetTool.cpp +++ b/common/JackNetTool.cpp @@ -374,11 +374,13 @@ namespace Jack void NetCeltAudioBuffer::SetBuffer(int index, sample_t* buffer) { + assert(fPortBuffer); fPortBuffer[index] = buffer; } sample_t* NetCeltAudioBuffer::GetBuffer(int index) { + assert(fPortBuffer); return fPortBuffer[index]; } diff --git a/common/JackNetTool.h b/common/JackNetTool.h index 63138f51..8466253d 100644 --- a/common/JackNetTool.h +++ b/common/JackNetTool.h @@ -88,10 +88,10 @@ namespace Jack uint32_t fMtu; //connection mtu uint32_t fID; //slave's ID uint32_t fTransportSync; //is the transport synced ? - uint32_t fSendAudioChannels; //number of master->slave channels - uint32_t fReturnAudioChannels; //number of slave->master channels - uint32_t fSendMidiChannels; //number of master->slave midi channels - uint32_t fReturnMidiChannels; //number of slave->master midi channels + int32_t fSendAudioChannels; //number of master->slave channels + int32_t fReturnAudioChannels; //number of slave->master channels + int32_t fSendMidiChannels; //number of master->slave midi channels + int32_t fReturnMidiChannels; //number of slave->master midi channels uint32_t fSampleRate; //session sample rate uint32_t fPeriodSize; //period size uint32_t fSampleEncoder; //samples encoder diff --git a/common/JackPhysicalMidiInput.cpp b/common/JackPhysicalMidiInput.cpp deleted file mode 100644 index 311dad0b..00000000 --- a/common/JackPhysicalMidiInput.cpp +++ /dev/null @@ -1,287 +0,0 @@ -/* -Copyright (C) 2009 Devin Anderson - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as published by -the Free Software Foundation; either version 2.1 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -*/ - -#include -#include -#include - -#include "JackError.h" -#include "JackPhysicalMidiInput.h" - -namespace Jack { - -JackPhysicalMidiInput::JackPhysicalMidiInput(size_t buffer_size) -{ - size_t datum_size = sizeof(jack_midi_data_t); - assert(buffer_size > 0); - input_ring = jack_ringbuffer_create((buffer_size + 1) * datum_size); - if (! input_ring) { - throw std::bad_alloc(); - } - jack_ringbuffer_mlock(input_ring); - Clear(); - expected_data_bytes = 0; - status_byte = 0; -} - -JackPhysicalMidiInput::~JackPhysicalMidiInput() -{ - jack_ringbuffer_free(input_ring); -} - -void -JackPhysicalMidiInput::Clear() -{ - jack_ringbuffer_reset(input_ring); - buffered_bytes = 0; - unbuffered_bytes = 0; -} - -void -JackPhysicalMidiInput::HandleBufferFailure(size_t unbuffered_bytes, - size_t total_bytes) -{ - jack_error("%d MIDI byte(s) of a %d byte message could not be buffered - " - "message dropped", unbuffered_bytes, total_bytes); -} - -void -JackPhysicalMidiInput::HandleIncompleteMessage(size_t bytes) -{ - jack_error("Discarding %d MIDI byte(s) - incomplete message (cable " - "unplugged?)", bytes); -} - -void -JackPhysicalMidiInput::HandleInvalidStatusByte(jack_midi_data_t status) -{ - jack_error("Dropping invalid MIDI status byte '%x'", - (unsigned int) status); -} - -void -JackPhysicalMidiInput::HandleUnexpectedSysexEnd(size_t bytes) -{ - jack_error("Discarding %d MIDI byte(s) - received sysex end without sysex " - "start (cable unplugged?)", bytes); -} - -void -JackPhysicalMidiInput::HandleWriteFailure(size_t bytes) -{ - jack_error("Failed to write a %d byte MIDI message to the port buffer", - bytes); -} - -void -JackPhysicalMidiInput::Process(jack_nframes_t frames) -{ - assert(port_buffer); - port_buffer->Reset(frames); - jack_nframes_t current_frame = 0; - size_t datum_size = sizeof(jack_midi_data_t); - for (;;) { - jack_midi_data_t datum; - current_frame = Receive(&datum, current_frame, frames); - if (current_frame >= frames) { - break; - } - - jack_log("JackPhysicalMidiInput::Process (%d) - Received '%x' byte", - current_frame, (unsigned int) datum); - - if (datum >= 0xf8) { - // Realtime - if (datum == 0xfd) { - HandleInvalidStatusByte(datum); - } else { - - jack_log("JackPhysicalMidiInput::Process - Writing realtime " - "event."); - - WriteByteEvent(current_frame, datum); - } - continue; - } - if (datum == 0xf7) { - // Sysex end - if (status_byte != 0xf0) { - HandleUnexpectedSysexEnd(buffered_bytes + unbuffered_bytes); - Clear(); - expected_data_bytes = 0; - status_byte = 0; - } else { - - jack_log("JackPhysicalMidiInput::Process - Writing sysex " - "event."); - - WriteBufferedSysexEvent(current_frame); - } - continue; - } - if (datum >= 0x80) { - - // We're handling a non-realtime status byte - - jack_log("JackPhysicalMidiInput::Process - Handling non-realtime " - "status byte."); - - if (buffered_bytes || unbuffered_bytes) { - HandleIncompleteMessage(buffered_bytes + unbuffered_bytes + 1); - Clear(); - } - status_byte = datum; - switch (datum & 0xf0) { - case 0x80: - case 0x90: - case 0xa0: - case 0xb0: - case 0xe0: - // Note On, Note Off, Aftertouch, Control Change, Pitch Wheel - expected_data_bytes = 2; - break; - case 0xc0: - case 0xd0: - // Program Change, Channel Pressure - expected_data_bytes = 1; - break; - case 0xf0: - switch (datum) { - case 0xf0: - // Sysex message - expected_data_bytes = 0; - break; - case 0xf1: - case 0xf3: - // MTC Quarter frame, Song Select - expected_data_bytes = 1; - break; - case 0xf2: - // Song Position - expected_data_bytes = 2; - break; - case 0xf4: - case 0xf5: - // Undefined - HandleInvalidStatusByte(datum); - expected_data_bytes = 0; - status_byte = 0; - break; - case 0xf6: - // Tune Request - WriteByteEvent(current_frame, datum); - expected_data_bytes = 0; - status_byte = 0; - } - break; - } - continue; - } - - // We're handling a data byte - - jack_log("JackPhysicalMidiInput::Process - Buffering data byte."); - - if (jack_ringbuffer_write(input_ring, (const char *) &datum, - datum_size) == datum_size) { - buffered_bytes++; - } else { - unbuffered_bytes++; - } - unsigned long total_bytes = buffered_bytes + unbuffered_bytes; - assert((! expected_data_bytes) || - (total_bytes <= expected_data_bytes)); - if (total_bytes == expected_data_bytes) { - if (! unbuffered_bytes) { - - jack_log("JackPhysicalMidiInput::Process - Writing buffered " - "event."); - - WriteBufferedEvent(current_frame); - } else { - HandleBufferFailure(unbuffered_bytes, total_bytes); - Clear(); - } - if (status_byte >= 0xf0) { - expected_data_bytes = 0; - status_byte = 0; - } - } - } -} - -void -JackPhysicalMidiInput::WriteBufferedEvent(jack_nframes_t frame) -{ - assert(port_buffer && port_buffer->IsValid()); - size_t space = jack_ringbuffer_read_space(input_ring); - jack_midi_data_t *event = port_buffer->ReserveEvent(frame, space + 1); - if (event) { - jack_ringbuffer_data_t vector[2]; - jack_ringbuffer_get_read_vector(input_ring, vector); - event[0] = status_byte; - size_t data_length_1 = vector[0].len; - memcpy(event + 1, vector[0].buf, data_length_1); - size_t data_length_2 = vector[1].len; - if (data_length_2) { - memcpy(event + data_length_1 + 1, vector[1].buf, data_length_2); - } - } else { - HandleWriteFailure(space + 1); - } - Clear(); -} - -void -JackPhysicalMidiInput::WriteBufferedSysexEvent(jack_nframes_t frame) -{ - assert(port_buffer && port_buffer->IsValid()); - size_t space = jack_ringbuffer_read_space(input_ring); - jack_midi_data_t *event = port_buffer->ReserveEvent(frame, space + 2); - if (event) { - jack_ringbuffer_data_t vector[2]; - jack_ringbuffer_get_read_vector(input_ring, vector); - event[0] = status_byte; - size_t data_length_1 = vector[0].len; - memcpy(event + 1, vector[0].buf, data_length_1); - size_t data_length_2 = vector[1].len; - if (data_length_2) { - memcpy(event + data_length_1 + 1, vector[1].buf, data_length_2); - } - event[data_length_1 + data_length_2 + 1] = 0xf7; - } else { - HandleWriteFailure(space + 2); - } - Clear(); -} - -void -JackPhysicalMidiInput::WriteByteEvent(jack_nframes_t frame, - jack_midi_data_t datum) -{ - assert(port_buffer && port_buffer->IsValid()); - jack_midi_data_t *event = port_buffer->ReserveEvent(frame, 1); - if (event) { - event[0] = datum; - } else { - HandleWriteFailure(1); - } -} - -} diff --git a/common/JackPhysicalMidiInput.h b/common/JackPhysicalMidiInput.h deleted file mode 100644 index a05de6d0..00000000 --- a/common/JackPhysicalMidiInput.h +++ /dev/null @@ -1,146 +0,0 @@ -/* -Copyright (C) 2009 Devin Anderson - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as published by -the Free Software Foundation; either version 2.1 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -*/ - -#ifndef __JackPhysicalMidiInput__ -#define __JackPhysicalMidiInput__ - -#include "JackMidiPort.h" -#include "ringbuffer.h" - -namespace Jack { - - class JackPhysicalMidiInput { - - private: - - size_t buffered_bytes; - size_t expected_data_bytes; - jack_ringbuffer_t *input_ring; - JackMidiBuffer *port_buffer; - jack_midi_data_t status_byte; - size_t unbuffered_bytes; - - void - Clear(); - - void - WriteBufferedEvent(jack_nframes_t); - - void - WriteBufferedSysexEvent(jack_nframes_t); - - void - WriteByteEvent(jack_nframes_t, jack_midi_data_t); - - protected: - - /** - * Override to specify how to react when 1 or more bytes of a MIDI - * message are lost because there wasn't enough room in the input - * buffer. The first argument is the amount of bytes that couldn't be - * buffered, and the second argument is the total amount of bytes in - * the MIDI message. The default implementation calls 'jack_error' - * with a basic error message. - */ - - virtual void - HandleBufferFailure(size_t, size_t); - - /** - * Override to specify how to react when a new status byte is received - * before all of the data bytes in a message are received. The - * argument is the number of bytes being discarded. The default - * implementation calls 'jack_error' with a basic error message. - */ - - virtual void - HandleIncompleteMessage(size_t); - - /** - * Override to specify how to react when an invalid status byte (0xf4, - * 0xf5, 0xfd) is received. The argument contains the invalid status - * byte. The default implementation calls 'jack_error' with a basic - * error message. - */ - - virtual void - HandleInvalidStatusByte(jack_midi_data_t); - - /** - * Override to specify how to react when a sysex end byte (0xf7) is - * received without first receiving a sysex start byte (0xf0). The - * argument contains the amount of bytes that will be discarded. The - * default implementation calls 'jack_error' with a basic error - * message. - */ - - virtual void - HandleUnexpectedSysexEnd(size_t); - - /** - * Override to specify how to react when a MIDI message can not be - * written to the port buffer. The argument specifies the length of - * the MIDI message. The default implementation calls 'jack_error' - * with a basic error message. - */ - - virtual void - HandleWriteFailure(size_t); - - /** - * This method *must* be overridden to handle receiving MIDI bytes. - * The first argument is a pointer to the memory location at which the - * MIDI byte should be stored. The second argument is the last frame - * at which a MIDI byte was received, except at the beginning of the - * period when the value is 0. The third argument is the total number - * of frames in the period. The return value is the frame at which the - * MIDI byte is received at, or the value of the third argument is no - * more MIDI bytes can be received in this period. - */ - - virtual jack_nframes_t - Receive(jack_midi_data_t *, jack_nframes_t, jack_nframes_t) = 0; - - public: - - JackPhysicalMidiInput(size_t buffer_size=1024); - virtual ~JackPhysicalMidiInput(); - - /** - * Called to process MIDI data during a period. - */ - - void - Process(jack_nframes_t); - - /** - * Set the MIDI buffer that will receive incoming messages. - */ - - inline void - SetPortBuffer(JackMidiBuffer *port_buffer) - { - this->port_buffer = port_buffer; - } - - }; - -} - -#endif diff --git a/common/JackPhysicalMidiOutput.cpp b/common/JackPhysicalMidiOutput.cpp deleted file mode 100644 index 8f41d443..00000000 --- a/common/JackPhysicalMidiOutput.cpp +++ /dev/null @@ -1,320 +0,0 @@ -/* -Copyright (C) 2009 Devin Anderson - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as published by -the Free Software Foundation; either version 2.1 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -*/ - -#include - -#include "JackError.h" -#include "JackPhysicalMidiOutput.h" - -namespace Jack { - -JackPhysicalMidiOutput::JackPhysicalMidiOutput(size_t non_rt_buffer_size, - size_t rt_buffer_size) -{ - size_t datum_size = sizeof(jack_midi_data_t); - assert(non_rt_buffer_size > 0); - assert(rt_buffer_size > 0); - output_ring = jack_ringbuffer_create((non_rt_buffer_size + 1) * - datum_size); - if (! output_ring) { - throw std::bad_alloc(); - } - rt_output_ring = jack_ringbuffer_create((rt_buffer_size + 1) * - datum_size); - if (! rt_output_ring) { - jack_ringbuffer_free(output_ring); - throw std::bad_alloc(); - } - jack_ringbuffer_mlock(output_ring); - jack_ringbuffer_mlock(rt_output_ring); - running_status = 0; -} - -JackPhysicalMidiOutput::~JackPhysicalMidiOutput() -{ - jack_ringbuffer_free(output_ring); - jack_ringbuffer_free(rt_output_ring); -} - -jack_nframes_t -JackPhysicalMidiOutput::Advance(jack_nframes_t frame) -{ - return frame; -} - -inline jack_midi_data_t -JackPhysicalMidiOutput::ApplyRunningStatus(jack_midi_data_t **buffer, - size_t *size) -{ - - // Stolen and modified from alsa/midi_pack.h - - jack_midi_data_t status = (*buffer)[0]; - if ((status >= 0x80) && (status < 0xf0)) { - if (status == running_status) { - (*buffer)++; - (*size)--; - } else { - running_status = status; - } - } else if (status < 0xf8) { - running_status = 0; - } - return status; -} - -void -JackPhysicalMidiOutput::HandleEventLoss(JackMidiEvent *event) -{ - jack_error("%d byte MIDI event lost", event->size); -} - -void -JackPhysicalMidiOutput::Process(jack_nframes_t frames) -{ - assert(port_buffer); - jack_nframes_t current_frame = Advance(0); - jack_nframes_t current_midi_event = 0; - jack_midi_data_t datum; - size_t datum_size = sizeof(jack_midi_data_t); - JackMidiEvent *midi_event; - jack_midi_data_t *midi_event_buffer; - size_t midi_event_size; - jack_nframes_t midi_events = port_buffer->event_count; - - // First, send any realtime MIDI data that's left from last cycle. - - if ((current_frame < frames) && - jack_ringbuffer_read_space(rt_output_ring)) { - - jack_log("JackPhysicalMidiOutput::Process (%d) - Sending buffered " - "realtime data from last period.", current_frame); - - current_frame = SendBufferedData(rt_output_ring, current_frame, - frames); - - jack_log("JackPhysicalMidiOutput::Process (%d) - Sent", current_frame); - - } - - // Iterate through the events in this cycle. - - for (; (current_midi_event < midi_events) && (current_frame < frames); - current_midi_event++) { - - // Once we're inside this loop, we know that the realtime buffer - // is empty. As long as we don't find a realtime message, we can - // concentrate on sending non-realtime data. - - midi_event = &(port_buffer->events[current_midi_event]); - jack_nframes_t midi_event_time = midi_event->time; - midi_event_buffer = midi_event->GetData(port_buffer); - midi_event_size = midi_event->size; - datum = ApplyRunningStatus(&midi_event_buffer, &midi_event_size); - if (current_frame < midi_event_time) { - - // We have time before this event is scheduled to be sent. - // Send data in the non-realtime buffer. - - if (jack_ringbuffer_read_space(output_ring)) { - - jack_log("JackPhysicalMidiOutput::Process (%d) - Sending " - "buffered non-realtime data from last period.", - current_frame); - - current_frame = SendBufferedData(output_ring, current_frame, - midi_event_time); - - jack_log("JackPhysicalMidiOutput::Process (%d) - Sent", - current_frame); - - } - if (current_frame < midi_event_time) { - - // We _still_ have time before this event is scheduled to - // be sent. Let's send as much of this event as we can - // (save for one byte, which will need to be sent at or - // after its scheduled time). First though, we need to - // make sure that we can buffer this data if we need to. - // Otherwise, we might start sending a message that we - // can't finish. - - if (midi_event_size > 1) { - if (jack_ringbuffer_write_space(output_ring) < - ((midi_event_size - 1) * datum_size)) { - HandleEventLoss(midi_event); - continue; - } - - // Send as much of the event as possible (save for one - // byte). - - do { - - jack_log("JackPhysicalMidiOutput::Process (%d) - " - "Sending unbuffered event byte early.", - current_frame); - - current_frame = Send(current_frame, - *midi_event_buffer); - - jack_log("JackPhysicalMidiOutput::Process (%d) - " - "Sent.", current_frame); - - midi_event_buffer++; - midi_event_size--; - if (current_frame >= midi_event_time) { - - // The event we're processing must be a - // non-realtime event. It has more than one - // byte. - - goto buffer_non_realtime_data; - } - } while (midi_event_size > 1); - } - - jack_log("JackPhysicalMidiOutput::Process (%d) - Advancing to " - ">= %d", current_frame, midi_event_time); - - current_frame = Advance(midi_event_time); - - jack_log("JackPhysicalMidiOutput::Process (%d) - Advanced.", - current_frame); - - } - } - - // If the event is realtime, then we'll send the event now. - // Otherwise, we attempt to put the rest of the event bytes in the - // non-realtime buffer. - - if (datum >= 0xf8) { - - jack_log("JackPhysicalMidiOutput::Process (%d) - Sending " - "unbuffered realtime event.", current_frame); - - current_frame = Send(current_frame, datum); - - jack_log("JackPhysicalMidiOutput::Process (%d) - Sent.", - current_frame); - - } else if (jack_ringbuffer_write_space(output_ring) >= - (midi_event_size * datum_size)) { - buffer_non_realtime_data: - - jack_log("JackPhysicalMidiOutput::Process (%d) - Buffering %d " - "byte(s) of non-realtime data.", current_frame, - midi_event_size); - - jack_ringbuffer_write(output_ring, - (const char *) midi_event_buffer, - midi_event_size); - } else { - HandleEventLoss(midi_event); - } - } - - if (current_frame < frames) { - - // If we have time left to send data, then we know that all of the - // data in the realtime buffer has been sent, and that all of the - // non-realtime messages have either been sent, or buffered. We - // use whatever time is left to send data in the non-realtime - // buffer. - - if (jack_ringbuffer_read_space(output_ring)) { - - jack_log("JackPhysicalMidiOutput::Process (%d) - All events " - "processed. Sending buffered non-realtime data.", - current_frame); - - current_frame = SendBufferedData(output_ring, current_frame, - frames); - - jack_log("JackPhysicalMidiOutput::Process (%d) - Sent.", - current_frame); - - } - } else { - - // Since we have no time left, we need to put all remaining midi - // events in their appropriate buffers, and send them next period. - - for (; current_midi_event < midi_events; current_midi_event++) { - midi_event = &(port_buffer->events[current_midi_event]); - midi_event_buffer = midi_event->GetData(port_buffer); - midi_event_size = midi_event->size; - datum = ApplyRunningStatus(&midi_event_buffer, &midi_event_size); - if (datum >= 0xf8) { - - // Realtime. - - if (jack_ringbuffer_write_space(rt_output_ring) >= - datum_size) { - - jack_log("JackPhysicalMidiOutput::Process - Buffering " - "realtime event for next period."); - - jack_ringbuffer_write(rt_output_ring, - (const char *) &datum, datum_size); - continue; - } - } else { - - // Non-realtime. - - if (jack_ringbuffer_write_space(output_ring) >= - (midi_event_size * datum_size)) { - - jack_log("JackPhysicalMidiOutput::Process - Buffering " - "non-realtime event for next period."); - - jack_ringbuffer_write(output_ring, - (const char *) midi_event_buffer, - midi_event_size * datum_size); - continue; - } - } - HandleEventLoss(midi_event); - } - } -} - -jack_nframes_t -JackPhysicalMidiOutput::SendBufferedData(jack_ringbuffer_t *buffer, - jack_nframes_t current_frame, - jack_nframes_t boundary) -{ - assert(buffer); - assert(current_frame < boundary); - size_t datum_size = sizeof(jack_midi_data_t); - size_t data_length = jack_ringbuffer_read_space(buffer) / datum_size; - for (size_t i = 0; i < data_length; i++) { - jack_midi_data_t datum; - jack_ringbuffer_read(buffer, (char *) &datum, datum_size); - current_frame = Send(current_frame, datum); - if (current_frame >= boundary) { - break; - } - } - return current_frame; -} - -} diff --git a/common/JackPhysicalMidiOutput.h b/common/JackPhysicalMidiOutput.h deleted file mode 100644 index 9b4804b7..00000000 --- a/common/JackPhysicalMidiOutput.h +++ /dev/null @@ -1,118 +0,0 @@ -/* -Copyright (C) 2009 Devin Anderson - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as published by -the Free Software Foundation; either version 2.1 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -*/ - -#ifndef __JackPhysicalMidiOutput__ -#define __JackPhysicalMidiOutput__ - -#include "JackMidiPort.h" -#include "ringbuffer.h" - -namespace Jack { - - class JackPhysicalMidiOutput { - - private: - - jack_midi_data_t - ApplyRunningStatus(jack_midi_data_t **, size_t *); - - jack_ringbuffer_t *output_ring; - JackMidiBuffer *port_buffer; - jack_ringbuffer_t *rt_output_ring; - jack_midi_data_t running_status; - - protected: - - /** - * Override to specify the next frame at which a midi byte can be sent. - * The returned frame must be greater than or equal to the frame - * argument. The default returns the frame passed to it. - */ - - virtual jack_nframes_t - Advance(jack_nframes_t); - - /** - * Override to customize how to react when a MIDI event can't be - * buffered and can't be sent immediately. The default calls - * 'jack_error' and specifies the number of bytes lost. - */ - - virtual void - HandleEventLoss(JackMidiEvent *); - - /** - * This method *must* be overridden to specify what happens when a MIDI - * byte is sent at the specfied frame. The frame argument specifies - * the frame at which the MIDI byte should be sent, and the second - * argument specifies the byte itself. The return value is the next - * frame at which a MIDI byte can be sent, and must be greater than or - * equal to the frame argument. - */ - - virtual jack_nframes_t - Send(jack_nframes_t, jack_midi_data_t) = 0; - - /** - * Override to optimize behavior when sending MIDI data that's in the - * ringbuffer. The first frame argument is the current frame, and the - * second frame argument is the boundary frame. The function returns - * the next frame at which MIDI data can be sent, regardless of whether - * or not the boundary is reached. The default implementation calls - * 'Send' with each byte in the ringbuffer until either the ringbuffer - * is empty, or a frame beyond the boundary frame is returned by - * 'Send'. - */ - - virtual jack_nframes_t - SendBufferedData(jack_ringbuffer_t *, jack_nframes_t, jack_nframes_t); - - public: - - /** - * The non-realtime buffer size and the realtime buffer size are both - * optional arguments. - */ - - JackPhysicalMidiOutput(size_t non_rt_buffer_size=1024, - size_t rt_buffer_size=64); - virtual ~JackPhysicalMidiOutput(); - - /** - * Called to process MIDI data during a period. - */ - - void - Process(jack_nframes_t); - - /** - * Set the MIDI buffer that will contain the outgoing MIDI messages. - */ - - inline void - SetPortBuffer(JackMidiBuffer *port_buffer) - { - this->port_buffer = port_buffer; - } - - }; - -} - -#endif diff --git a/common/JackPort.h b/common/JackPort.h index 8e8c1667..88edf1ba 100644 --- a/common/JackPort.h +++ b/common/JackPort.h @@ -107,7 +107,7 @@ class SERVER_EXPORT JackPort // Since we are in shared memory, the resulting pointer cannot be cached, so align it here... jack_default_audio_sample_t* GetBuffer() { - return (jack_default_audio_sample_t*)((long)fBuffer & ~15L) + 4; + return (jack_default_audio_sample_t*)((uintptr_t)fBuffer & ~15L) + 4; } int GetRefNum() const; diff --git a/common/JackServer.cpp b/common/JackServer.cpp index cd1915fb..22027c9c 100644 --- a/common/JackServer.cpp +++ b/common/JackServer.cpp @@ -58,7 +58,7 @@ JackServer::JackServer(bool sync, bool temporary, int timeout, bool rt, int prio new JackFreewheelDriver(fEngine, GetSynchroTable()); fThreadedFreewheelDriver = new JackThreadedDriver(freewheelDriver); - fFreewheelDriver = freewheelDriver; + fFreewheelDriver = freewheelDriver; fDriverInfo = new JackDriverInfo(); fAudioDriver = NULL; fFreewheel = false; @@ -223,13 +223,11 @@ int JackServer::SetBufferSize(jack_nframes_t buffer_size) } if (fAudioDriver->SetBufferSize(buffer_size) == 0) { - fFreewheelDriver->SetBufferSize(buffer_size); fEngine->NotifyBufferSize(buffer_size); return fAudioDriver->Start(); } else { // Failure: try to restore current value jack_error("Cannot SetBufferSize for audio driver, restore current value %ld", current_buffer_size); fAudioDriver->SetBufferSize(current_buffer_size); - fFreewheelDriver->SetBufferSize(current_buffer_size); fAudioDriver->Start(); // SetBufferSize actually failed, so return an error... return -1; diff --git a/common/JackSession.h b/common/JackSession.h new file mode 100644 index 00000000..af78978a --- /dev/null +++ b/common/JackSession.h @@ -0,0 +1,69 @@ +/* + Copyright (C) 2001 Paul Davis + Copyright (C) 2004 Jack O'Quin + Copyright (C) 2010 Torben Hohn + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +#ifndef __jack_session_int_h__ +#define __jack_session_int_h__ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +enum JackSessionEventType { + JackSessionSave = 1, + JackSessionSaveAndQuit = 2, + JackSessionSaveTemplate = 3 +}; + +typedef enum JackSessionEventType jack_session_event_type_t; + +enum JackSessionFlags { + JackSessionSaveError = 0x01, + JackSessionNeedTerminal = 0x02 +}; + +typedef enum JackSessionFlags jack_session_flags_t; + +struct _jack_session_event { + jack_session_event_type_t type; + const char *session_dir; + const char *client_uuid; + char *command_line; + jack_session_flags_t flags; + uint32_t future; +}; + +typedef struct _jack_session_event jack_session_event_t; + +typedef void (*JackSessionCallback)(jack_session_event_t *event, + void *arg); + +typedef struct { + const char *uuid; + const char *client_name; + const char *command; + jack_session_flags_t flags; +} jack_session_command_t; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/common/JackThreadedDriver.cpp b/common/JackThreadedDriver.cpp index 88323fe5..d11eb13e 100644 --- a/common/JackThreadedDriver.cpp +++ b/common/JackThreadedDriver.cpp @@ -127,9 +127,24 @@ void JackThreadedDriver::RemoveSlave(JackDriverInterface* slave) fDriver->RemoveSlave(slave); } -int JackThreadedDriver::ProcessSlaves() +int JackThreadedDriver::ProcessReadSlaves() { - return fDriver->ProcessSlaves(); + return fDriver->ProcessReadSlaves(); +} + +int JackThreadedDriver::ProcessWriteSlaves() +{ + return fDriver->ProcessWriteSlaves(); +} + +int JackThreadedDriver::ProcessRead() +{ + return fDriver->ProcessRead(); +} + +int JackThreadedDriver::ProcessWrite() +{ + return fDriver->ProcessWrite(); } std::list JackThreadedDriver::GetSlaves() @@ -184,7 +199,6 @@ int JackThreadedDriver::Stop() case JackThread::kIniting: if (fThread.Kill() < 0) { jack_error("Cannot kill thread"); - return -1; } break; @@ -192,7 +206,6 @@ int JackThreadedDriver::Stop() case JackThread::kRunning: if (fThread.Stop() < 0) { jack_error("Cannot stop thread"); - return -1; } break; diff --git a/common/JackThreadedDriver.h b/common/JackThreadedDriver.h index 92ec1d26..9d4876b1 100644 --- a/common/JackThreadedDriver.h +++ b/common/JackThreadedDriver.h @@ -89,10 +89,17 @@ class SERVER_EXPORT JackThreadedDriver : public JackDriverClientInterface, publi virtual void SetMaster(bool onoff); virtual bool GetMaster(); + virtual void AddSlave(JackDriverInterface* slave); virtual void RemoveSlave(JackDriverInterface* slave); + virtual std::list GetSlaves(); - virtual int ProcessSlaves(); + + virtual int ProcessReadSlaves(); + virtual int ProcessWriteSlaves(); + + virtual int ProcessRead(); + virtual int ProcessWrite(); virtual int ClientNotify(int refnum, const char* name, int notify, int sync, const char* message, int value1, int value2); virtual JackClientControl* GetClientControl() const; diff --git a/common/JackWaitThreadedDriver.h b/common/JackWaitThreadedDriver.h index 1448572b..eb772eb3 100644 --- a/common/JackWaitThreadedDriver.h +++ b/common/JackWaitThreadedDriver.h @@ -22,15 +22,15 @@ #define __JackWaitThreadedDriver__ #include "JackThreadedDriver.h" -#include "JackAudioDriver.h" +#include "JackDriver.h" namespace Jack { - + /*! -\brief To be used as a wrapper of JackNetDriver. +\brief To be used as a wrapper of JackNetDriver. -The idea is to behave as the "dummy" driver, until the network connection is really started and processing starts. +The idea is to behave as the "dummy" driver, until the network connection is really started and processing starts. The Execute method will call the ProcessNull method until the decorated driver Init method returns. A helper JackDriverStarter thread is used for that purpose. */ @@ -38,54 +38,58 @@ A helper JackDriverStarter thread is used for that purpose. class SERVER_EXPORT JackWaitThreadedDriver : public JackThreadedDriver { private: - - struct SERVER_EXPORT JackDriverStarter : public JackRunnableInterface + + struct SERVER_EXPORT JackDriverStarter : public JackRunnableInterface { - + JackDriver* fDriver; JackThread fThread; - bool fRunning; - + volatile bool fRunning; + JackDriverStarter(JackDriver* driver) :fDriver(driver),fThread(this),fRunning(false) {} - + ~JackDriverStarter() { fThread.Kill(); } - + int Start() { fRunning = false; return fThread.Start(); } - + // JackRunnableInterface interface bool Execute() { - // Blocks until decorated driver is started (that is when it's Initialize method returns true). - while (!fDriver->Initialize()) {} - fRunning = true; + // Blocks until decorated driver is started (that is when it's Initialize method returns). + if (fDriver->Initialize()) { + fRunning = true; + } else { + jack_error("Initing net driver fails..."); + } + return false; } - + }; - + JackDriverStarter fStarter; - + public: - JackWaitThreadedDriver(JackDriver* netdriver) - :JackThreadedDriver(netdriver),fStarter(netdriver) + JackWaitThreadedDriver(JackDriver* net_driver) + :JackThreadedDriver(net_driver), fStarter(net_driver) {} virtual ~JackWaitThreadedDriver() {} - + // JackRunnableInterface interface bool Init(); bool Execute(); -}; +}; } // end of namespace diff --git a/common/JackWeakAPI.cpp b/common/JackWeakAPI.cpp index 6ff5af85..146de360 100644 --- a/common/JackWeakAPI.cpp +++ b/common/JackWeakAPI.cpp @@ -235,7 +235,7 @@ DECL_FUNCTION(jack_time_t, jack_frames_to_time, (const jack_client_t *client, ja DECL_FUNCTION(jack_nframes_t, jack_frame_time, (const jack_client_t *client), (client)); DECL_FUNCTION(jack_nframes_t, jack_last_frame_time, (const jack_client_t *client), (client)); DECL_FUNCTION(float, jack_cpu_load, (jack_client_t *client), (client)); -DECL_FUNCTION_NULL(pthread_t, jack_client_thread_id, (jack_client_t *client), (client)); +DECL_FUNCTION_NULL(jack_native_thread_t, jack_client_thread_id, (jack_client_t *client), (client)); DECL_VOID_FUNCTION(jack_set_error_function, (print_function fun), (fun)); DECL_VOID_FUNCTION(jack_set_info_function, (print_function fun), (fun)); @@ -261,17 +261,17 @@ DECL_VOID_FUNCTION(jack_set_transport_info, (jack_client_t *client, jack_transpo DECL_FUNCTION(int, jack_client_real_time_priority, (jack_client_t* client), (client)); DECL_FUNCTION(int, jack_client_max_real_time_priority, (jack_client_t* client), (client)); -DECL_FUNCTION(int, jack_acquire_real_time_scheduling, (pthread_t thread, int priority), (thread, priority)); +DECL_FUNCTION(int, jack_acquire_real_time_scheduling, (jack_native_thread_t thread, int priority), (thread, priority)); DECL_FUNCTION(int, jack_client_create_thread, (jack_client_t* client, - pthread_t *thread, + jack_native_thread_t *thread, int priority, int realtime, // boolean thread_routine routine, void *arg), (client, thread, priority, realtime, routine, arg)); -DECL_FUNCTION(int, jack_drop_real_time_scheduling, (pthread_t thread), (thread)); +DECL_FUNCTION(int, jack_drop_real_time_scheduling, (jack_native_thread_t thread), (thread)); -DECL_FUNCTION(int, jack_client_stop_thread, (jack_client_t* client, pthread_t thread), (client, thread)); -DECL_FUNCTION(int, jack_client_kill_thread, (jack_client_t* client, pthread_t thread), (client, thread)); +DECL_FUNCTION(int, jack_client_stop_thread, (jack_client_t* client, jack_native_thread_t thread), (client, thread)); +DECL_FUNCTION(int, jack_client_kill_thread, (jack_client_t* client, jack_native_thread_t thread), (client, thread)); #ifndef WIN32 DECL_VOID_FUNCTION(jack_set_thread_creator, (jack_thread_creator_t jtc), (jtc)); #endif diff --git a/common/Jackdmp.cpp b/common/Jackdmp.cpp index 602aca31..f2edfe5b 100644 --- a/common/Jackdmp.cpp +++ b/common/Jackdmp.cpp @@ -191,7 +191,7 @@ int main(int argc, char* argv[]) const JSList * server_parameters; const char* server_name = "default"; jackctl_driver_t * master_driver_ctl; - jackctl_driver_t * loopback_driver_ctl; + jackctl_driver_t * loopback_driver_ctl = NULL; int replace_registry = 0; const char *options = "-d:X:I:P:uvshVrRL:STFl:t:mn:p:" @@ -476,14 +476,16 @@ int main(int argc, char* argv[]) fprintf(stderr, "Unknown driver \"%s\"\n", *it); goto close_server; } - jackctl_server_add_slave(server_ctl, slave_driver_ctl); + if (!jackctl_server_add_slave(server_ctl, slave_driver_ctl)) { + fprintf(stderr, "Driver \"%s\" cannot be loaded\n", *it); + goto close_server; + } } // Loopback driver if (loopback > 0) { loopback_driver_ctl = jackctl_server_get_driver(server_ctl, "loopback"); - // XX: What if this fails? if (loopback_driver_ctl != NULL) { const JSList * loopback_parameters = jackctl_driver_get_parameters(loopback_driver_ctl); param = jackctl_get_parameter(loopback_parameters, "channels"); @@ -491,9 +493,14 @@ int main(int argc, char* argv[]) value.ui = loopback; jackctl_parameter_set_value(param, &value); } - jackctl_server_add_slave(server_ctl, loopback_driver_ctl); + if (!jackctl_server_add_slave(server_ctl, loopback_driver_ctl)) { + fprintf(stderr, "Driver \"loopback\" cannot be loaded\n"); + goto close_server; + } + } else { + fprintf(stderr, "Driver \"loopback\" not found\n"); + goto close_server; } - } // Start the server @@ -509,7 +516,10 @@ int main(int argc, char* argv[]) fprintf(stderr, "Unknown internal \"%s\"\n", *it); goto stop_server; } - jackctl_server_load_internal(server_ctl, internal_driver_ctl); + if (!jackctl_server_load_internal(server_ctl, internal_driver_ctl)) { + fprintf(stderr, "Internal client \"%s\" cannot be loaded\n", *it); + goto stop_server; + } } notify_server_start(server_name); @@ -523,12 +533,25 @@ int main(int argc, char* argv[]) if (! jackctl_server_stop(server_ctl)) { fprintf(stderr, "Cannot stop server...\n"); } - if (notify_sent) { - notify_server_stop(server_name); - } close_server: + if (loopback > 0 && loopback_driver_ctl) { + jackctl_server_remove_slave(server_ctl, loopback_driver_ctl); + } + // Slave drivers + for (it = slaves_list.begin(); it != slaves_list.end(); it++) { + jackctl_driver_t * slave_driver_ctl = jackctl_server_get_driver(server_ctl, *it); + jackctl_server_remove_slave(server_ctl, slave_driver_ctl); + } + // Internal clients + for (it = internals_list.begin(); it != internals_list.end(); it++) { + jackctl_internal_t * internal_driver_ctl = jackctl_server_get_internal(server_ctl, *it); + jackctl_server_unload_internal(server_ctl, internal_driver_ctl); + } jackctl_server_close(server_ctl); destroy_server: jackctl_server_destroy(server_ctl); + if (notify_sent) { + notify_server_stop(server_name); + } return return_value; } diff --git a/common/jack/jack.h b/common/jack/jack.h index 40f06ddd..03d601b0 100644 --- a/common/jack/jack.h +++ b/common/jack/jack.h @@ -233,7 +233,7 @@ jack_nframes_t jack_thread_wait (jack_client_t*, int status) JACK_OPTIONAL_WEAK_ * * @return the number of frames of data to process */ - jack_nframes_t jack_cycle_wait (jack_client_t* client) JACK_OPTIONAL_WEAK_EXPORT; +jack_nframes_t jack_cycle_wait (jack_client_t* client) JACK_OPTIONAL_WEAK_EXPORT; /** * Signal next clients in the graph. @@ -310,7 +310,7 @@ int jack_set_thread_init_callback (jack_client_t *client, * jack_on_info_shutdown() will. */ void jack_on_shutdown (jack_client_t *client, - JackShutdownCallback shutdown_callback, void *arg) JACK_WEAK_EXPORT; + JackShutdownCallback shutdown_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; /** * @param client pointer to JACK client structure. @@ -336,7 +336,7 @@ void jack_on_shutdown (jack_client_t *client, * jack_on_info_shutdown() will. */ void jack_on_info_shutdown (jack_client_t *client, - JackInfoShutdownCallback shutdown_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; + JackInfoShutdownCallback shutdown_callback, void *arg) JACK_WEAK_EXPORT; /** * Tell the Jack server to call @a process_callback whenever there is diff --git a/common/jack/weakmacros.h b/common/jack/weakmacros.h index d5818b34..e7bc57a9 100644 --- a/common/jack/weakmacros.h +++ b/common/jack/weakmacros.h @@ -40,13 +40,23 @@ the symbol it used with. For this to work full may require linker arguments in the client as well. */ -#define JACK_WEAK_EXPORT __attribute__((weak)) + +#ifdef WIN32 + /* + Not working with __declspec(dllexport) so normal linking + Linking with JackWeakAPI.cpp will be the preferred way. + */ + #define JACK_WEAK_EXPORT #else -/* Add other things here for non-gcc platforms */ - -#ifdef WIN32 -#define JACK_WEAK_EXPORT -#endif + #define JACK_WEAK_EXPORT __attribute__((weak)) +#endif + +#else +/* Add other things here for non-gcc platforms */ + +#ifdef WIN32 +#define JACK_WEAK_EXPORT +#endif #endif #endif @@ -59,13 +69,14 @@ #ifdef __GNUC__ #define JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT __attribute__((__deprecated__)) #else -/* Add other things here for non-gcc platforms */ - -#ifdef WIN32 -#define JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT -#endif +/* Add other things here for non-gcc platforms */ + +#ifdef WIN32 +#define JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT +#endif #endif /* __GNUC__ */ #endif #endif /* __weakmacros_h__ */ + diff --git a/common/netjack.c b/common/netjack.c index e3ec0c33..2b7eeb0d 100644 --- a/common/netjack.c +++ b/common/netjack.c @@ -55,12 +55,11 @@ $Id: net_driver.c,v 1.17 2006/04/16 20:16:10 torbenh Exp $ #include #endif +#include "JackError.h" + #include "netjack.h" #include "netjack_packet.h" -// JACK2 -#include "control.h" - #define MIN(x,y) ((x)<(y) ? (x) : (y)) static int sync_state = 1; diff --git a/common/netjack_packet.c b/common/netjack_packet.c index 638e3d82..21457798 100644 --- a/common/netjack_packet.c +++ b/common/netjack_packet.c @@ -68,15 +68,14 @@ #include #endif +#include "JackError.h" + #if HAVE_CELT #include #endif #include "netjack_packet.h" -// JACK2 specific. -#include "control.h" - #ifdef NO_JACK_ERROR #define jack_error printf #endif diff --git a/common/wscript b/common/wscript index a3935904..84e4a6b7 100644 --- a/common/wscript +++ b/common/wscript @@ -130,8 +130,21 @@ def build(bld): 'JackNetTool.cpp', 'JackNetInterface.cpp', 'JackArgParser.cpp', - 'JackPhysicalMidiInput.cpp', - 'JackPhysicalMidiOutput.cpp', + + #'JackPhysicalMidiInput.cpp', + #'JackPhysicalMidiOutput.cpp', + + 'JackMidiAsyncQueue.cpp', + 'JackMidiAsyncWaitQueue.cpp', + 'JackMidiBufferReadQueue.cpp', + 'JackMidiBufferWriteQueue.cpp', + 'JackMidiRawInputWriteQueue.cpp', + 'JackMidiRawOutputWriteQueue.cpp', + 'JackMidiReadQueue.cpp', + 'JackMidiReceiveQueue.cpp', + 'JackMidiSendQueue.cpp', + 'JackMidiUtil.cpp', + 'JackMidiWriteQueue.cpp' ] if bld.env['IS_LINUX']: diff --git a/dbus/controller.c b/dbus/controller.c index 77acef39..e0abd258 100644 --- a/dbus/controller.c +++ b/dbus/controller.c @@ -64,6 +64,56 @@ jack_controller_find_driver( return NULL; } +bool +jack_controller_add_slave_drivers( + struct jack_controller * controller_ptr) +{ + struct list_head * node_ptr; + struct jack_controller_slave_driver * driver_ptr; + + list_for_each(node_ptr, &controller_ptr->slave_drivers) + { + driver_ptr = list_entry(node_ptr, struct jack_controller_slave_driver, siblings); + driver_ptr->handle = jack_controller_find_driver(controller_ptr->server, driver_ptr->name); + + if (driver_ptr->handle == NULL) + { + jack_error("Unknown driver \"%s\"", driver_ptr->name); + goto fail; + } + + if (!jackctl_server_add_slave(controller_ptr->server, driver_ptr->handle)) + { + jack_error("Driver \"%s\" cannot be loaded", driver_ptr->name); + goto fail; + } + } + + return true; + +fail: + driver_ptr->handle = NULL; + return false; +} + +void +jack_controller_remove_slave_drivers( + struct jack_controller * controller_ptr) +{ + struct list_head * node_ptr; + struct jack_controller_slave_driver * driver_ptr; + + list_for_each(node_ptr, &controller_ptr->slave_drivers) + { + driver_ptr = list_entry(node_ptr, struct jack_controller_slave_driver, siblings); + if (driver_ptr->handle != NULL) + { + jackctl_server_remove_slave(controller_ptr->server, driver_ptr->handle); + driver_ptr->handle = NULL; + } + } +} + jackctl_internal_t * jack_controller_find_internal( jackctl_server_t *server, @@ -161,6 +211,8 @@ jack_controller_start_server( goto fail; } + jack_controller_add_slave_drivers(controller_ptr); + if (!jackctl_server_start( controller_ptr->server)) { @@ -221,6 +273,8 @@ fail_stop_server: } fail_close_server: + jack_controller_remove_slave_drivers(controller_ptr); + if (!jackctl_server_close(controller_ptr->server)) { jack_error("failed to close jack server"); @@ -263,6 +317,8 @@ jack_controller_stop_server( return FALSE; } + jack_controller_remove_slave_drivers(controller_ptr); + if (!jackctl_server_close(controller_ptr->server)) { jack_dbus_error(dbus_call_context_ptr, JACK_DBUS_ERROR_GENERIC, "Failed to close server"); @@ -387,6 +443,7 @@ jack_controller_create( controller_ptr->started = false; controller_ptr->driver = NULL; controller_ptr->driver_set = false; + INIT_LIST_HEAD(&controller_ptr->slave_drivers); drivers = (JSList *)jackctl_server_get_drivers_list(controller_ptr->server); controller_ptr->drivers_count = jack_slist_length(drivers); @@ -465,41 +522,58 @@ fail: } bool -jack_controller_add_slave( - struct jack_controller *controller_ptr, +jack_controller_add_slave_driver( + struct jack_controller * controller_ptr, const char * driver_name) { - jackctl_driver_t *driver; + struct jack_controller_slave_driver * driver_ptr; - driver = jack_controller_find_driver(controller_ptr->server, driver_name); - - if (driver == NULL) + driver_ptr = malloc(sizeof(struct jack_controller_slave_driver)); + if (driver_ptr == NULL) { + jack_error("malloc() failed to allocate jack_controller_slave_driver struct"); return false; } - jack_info("driver \"%s\" selected", driver_name); + driver_ptr->name = strdup(driver_name); + if (driver_ptr->name == NULL) + { + jack_error("strdup() failed for slave driver name \"%s\"", driver_name); + free(driver_ptr); + return false; + } + + driver_ptr->handle = NULL; - return jackctl_server_add_slave(controller_ptr->server, driver); + jack_info("slave driver \"%s\" added", driver_name); + + list_add_tail(&driver_ptr->siblings, &controller_ptr->slave_drivers); + + return true; } bool -jack_controller_remove_slave( - struct jack_controller *controller_ptr, +jack_controller_remove_slave_driver( + struct jack_controller * controller_ptr, const char * driver_name) { - jackctl_driver_t *driver; + struct list_head * node_ptr; + struct jack_controller_slave_driver * driver_ptr; - driver = jack_controller_find_driver(controller_ptr->server, driver_name); - - if (driver == NULL) + list_for_each(node_ptr, &controller_ptr->slave_drivers) { - return false; + driver_ptr = list_entry(node_ptr, struct jack_controller_slave_driver, siblings); + if (strcmp(driver_ptr->name, driver_name) == 0) + { + jack_info("slave driver \"%s\" removed", driver_name); + list_del(&driver_ptr->siblings); + free(driver_ptr->name); + free(driver_ptr); + return true; + } } - jack_info("driver \"%s\" selected", driver_name); - - return jackctl_server_remove_slave(controller_ptr->server, driver); + return false; } bool diff --git a/dbus/controller_iface_configure.c b/dbus/controller_iface_configure.c index dfa56703..f4b6d46f 100644 --- a/dbus/controller_iface_configure.c +++ b/dbus/controller_iface_configure.c @@ -603,6 +603,73 @@ oom: jack_error ("Ran out of memory trying to construct method return"); } +static +void +jack_controller_fill_parameter_info( + jackctl_parameter_t * parameter, + struct parameter_info * info_ptr) +{ + info_ptr->type = jackctl_parameter_get_type(parameter); + info_ptr->name = jackctl_parameter_get_name(parameter); + info_ptr->short_decr = jackctl_parameter_get_short_description(parameter); + info_ptr->long_descr = jackctl_parameter_get_long_description(parameter); +} + +static +bool +jack_controller_append_parameter_info_struct( + DBusMessageIter * iter_ptr, + struct parameter_info * info_ptr) +{ + DBusMessageIter struct_iter; + unsigned char type; + + /* Open the struct. */ + if (!dbus_message_iter_open_container(iter_ptr, DBUS_TYPE_STRUCT, NULL, &struct_iter)) + { + goto fail; + } + + /* Append parameter type. */ + type = PARAM_TYPE_JACK_TO_DBUS(info_ptr->type); + if (!dbus_message_iter_append_basic(&struct_iter, DBUS_TYPE_BYTE, &type)) + { + goto fail_close; + } + + /* Append parameter name. */ + if (!dbus_message_iter_append_basic(&struct_iter, DBUS_TYPE_STRING, &info_ptr->name)) + { + goto fail_close; + } + + /* Append parameter short description. */ + if (!dbus_message_iter_append_basic(&struct_iter, DBUS_TYPE_STRING, &info_ptr->short_decr)) + { + goto fail_close; + } + + /* Append parameter long description. */ + if (!dbus_message_iter_append_basic(&struct_iter, DBUS_TYPE_STRING, &info_ptr->long_descr)) + { + goto fail_close; + } + + /* Close the struct. */ + if (!dbus_message_iter_close_container(iter_ptr, &struct_iter)) + { + goto fail; + } + + return true; + +fail_close: + dbus_message_iter_close_container(iter_ptr, &struct_iter); + +fail: + return false; +} + static void jack_controller_get_parameters_info( @@ -610,9 +677,8 @@ jack_controller_get_parameters_info( struct parameter_info * special_parameter_info_ptr, const JSList * parameters_list) { - DBusMessageIter iter, array_iter, struct_iter; - unsigned char type; - const char *str; + DBusMessageIter iter, array_iter; + struct parameter_info info; call->reply = dbus_message_new_method_return (call->message); if (!call->reply) @@ -630,39 +696,7 @@ jack_controller_get_parameters_info( if (special_parameter_info_ptr != NULL) { - /* Open the struct. */ - if (!dbus_message_iter_open_container (&array_iter, DBUS_TYPE_STRUCT, NULL, &struct_iter)) - { - goto fail_close_unref; - } - - /* Append parameter type. */ - type = PARAM_TYPE_JACK_TO_DBUS(special_parameter_info_ptr->type); - if (!dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_BYTE, &type)) - { - goto fail_close2_unref; - } - - /* Append parameter name. */ - if (!dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_STRING, &special_parameter_info_ptr->name)) - { - goto fail_close2_unref; - } - - /* Append parameter short description. */ - if (!dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_STRING, &special_parameter_info_ptr->short_decr)) - { - goto fail_close2_unref; - } - - /* Append parameter long description. */ - if (!dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_STRING, &special_parameter_info_ptr->long_descr)) - { - goto fail_close2_unref; - } - - /* Close the struct. */ - if (!dbus_message_iter_close_container (&array_iter, &struct_iter)) + if (!jack_controller_append_parameter_info_struct(&array_iter, special_parameter_info_ptr)) { goto fail_close_unref; } @@ -671,42 +705,8 @@ jack_controller_get_parameters_info( /* Append parameter descriptions to the array. */ while (parameters_list != NULL) { - /* Open the struct. */ - if (!dbus_message_iter_open_container (&array_iter, DBUS_TYPE_STRUCT, NULL, &struct_iter)) - { - goto fail_close_unref; - } - - /* Append parameter type. */ - type = PARAM_TYPE_JACK_TO_DBUS(jackctl_parameter_get_type(parameters_list->data)); - if (!dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_BYTE, &type)) - { - goto fail_close2_unref; - } - - /* Append parameter name. */ - str = jackctl_parameter_get_name(parameters_list->data); - if (!dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_STRING, &str)) - { - goto fail_close2_unref; - } - - /* Append parameter short description. */ - str = jackctl_parameter_get_short_description(parameters_list->data); - if (!dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_STRING, &str)) - { - goto fail_close2_unref; - } - - /* Append parameter long description. */ - str = jackctl_parameter_get_long_description(parameters_list->data); - if (!dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_STRING, &str)) - { - goto fail_close2_unref; - } - - /* Close the struct. */ - if (!dbus_message_iter_close_container (&array_iter, &struct_iter)) + jack_controller_fill_parameter_info(parameters_list->data, &info); + if (!jack_controller_append_parameter_info_struct(&array_iter, &info)) { goto fail_close_unref; } @@ -722,9 +722,6 @@ jack_controller_get_parameters_info( return; -fail_close2_unref: - dbus_message_iter_close_container (&iter, &struct_iter); - fail_close_unref: dbus_message_iter_close_container (&iter, &array_iter); @@ -851,8 +848,7 @@ jack_controller_get_parameter_info_ex( struct jack_dbus_method_call * call, struct parameter_info * info_ptr) { - DBusMessageIter iter, struct_iter; - unsigned char type; + DBusMessageIter iter; call->reply = dbus_message_new_method_return(call->message); if (!call->reply) @@ -862,48 +858,13 @@ jack_controller_get_parameter_info_ex( dbus_message_iter_init_append(call->reply, &iter); - /* Open the struct. */ - if (!dbus_message_iter_open_container(&iter, DBUS_TYPE_STRUCT, NULL, &struct_iter)) - { - goto fail_unref; - } - - /* Append parameter type. */ - type = PARAM_TYPE_JACK_TO_DBUS(info_ptr->type); - if (!dbus_message_iter_append_basic(&struct_iter, DBUS_TYPE_BYTE, &type)) - { - goto fail_close_unref; - } - - /* Append parameter name. */ - if (!dbus_message_iter_append_basic(&struct_iter, DBUS_TYPE_STRING, &info_ptr->name)) - { - goto fail_close_unref; - } - - /* Append parameter short description. */ - if (!dbus_message_iter_append_basic(&struct_iter, DBUS_TYPE_STRING, &info_ptr->short_decr)) - { - goto fail_close_unref; - } - - /* Append parameter long description. */ - if (!dbus_message_iter_append_basic(&struct_iter, DBUS_TYPE_STRING, &info_ptr->long_descr)) - { - goto fail_close_unref; - } - - /* Close the struct. */ - if (!dbus_message_iter_close_container(&iter, &struct_iter)) + if (!jack_controller_append_parameter_info_struct(&iter, info_ptr)) { goto fail_unref; } return; -fail_close_unref: - dbus_message_iter_close_container(&iter, &struct_iter); - fail_unref: dbus_message_unref(call->reply); call->reply = NULL; @@ -920,11 +881,7 @@ jack_controller_get_parameter_info( { struct parameter_info info; - info.type = jackctl_parameter_get_type(parameter); - info.name = jackctl_parameter_get_name(parameter); - info.short_decr = jackctl_parameter_get_short_description(parameter); - info.long_descr = jackctl_parameter_get_long_description(parameter); - + jack_controller_fill_parameter_info(parameter, &info); jack_controller_get_parameter_info_ex(call, &info); } diff --git a/dbus/controller_iface_control.c b/dbus/controller_iface_control.c index cd0187da..53daba7e 100644 --- a/dbus/controller_iface_control.c +++ b/dbus/controller_iface_control.c @@ -229,10 +229,15 @@ jack_control_run_method( "jack_controller_load_internal failed for internal (%s)", internal_name); } } - else if (strcmp (call->method_name, "AddSlave") == 0) + else if (strcmp (call->method_name, "AddSlaveDriver") == 0) { const char *driver_name; + if (controller_ptr->started) + { + goto fail_started; + } + if (!jack_dbus_get_method_args(call, DBUS_TYPE_STRING, &driver_name, DBUS_TYPE_INVALID)) { /* The method call had invalid arguments meaning that @@ -241,17 +246,22 @@ jack_control_run_method( goto exit; } - if (!jack_controller_add_slave(controller_ptr, driver_name)) { + if (!jack_controller_add_slave_driver(controller_ptr, driver_name)) { jack_dbus_error( call, JACK_DBUS_ERROR_GENERIC, - "jack_controller_add_slave failed for driver (%s)", driver_name); + "jack_controller_add_slave_driver failed for driver (%s)", driver_name); } } - else if (strcmp (call->method_name, "RemoveSlave") == 0) + else if (strcmp (call->method_name, "RemoveSlaveDriver") == 0) { const char *driver_name; + if (controller_ptr->started) + { + goto fail_started; + } + if (!jack_dbus_get_method_args(call, DBUS_TYPE_STRING, &driver_name, DBUS_TYPE_INVALID)) { /* The method call had invalid arguments meaning that @@ -260,11 +270,11 @@ jack_control_run_method( goto exit; } - if (!jack_controller_remove_slave(controller_ptr, driver_name)) { + if (!jack_controller_remove_slave_driver(controller_ptr, driver_name)) { jack_dbus_error( call, JACK_DBUS_ERROR_GENERIC, - "jack_controller_remove_slave failed for driver (%s)", driver_name); + "jack_controller_remove_slave_driver failed for driver (%s)", driver_name); } } else if (strcmp (call->method_name, "UnloadInternal") == 0) @@ -293,8 +303,7 @@ jack_control_run_method( } jack_dbus_construct_method_return_single(call, type, arg); - - return true; + goto exit; not_started: jack_dbus_only_error( @@ -302,6 +311,15 @@ not_started: JACK_DBUS_ERROR_SERVER_NOT_RUNNING, "Can't execute method '%s' with stopped JACK server", call->method_name); + goto exit; + +fail_started: + jack_dbus_only_error( + call, + JACK_DBUS_ERROR_SERVER_RUNNING, + "Can't execute method '%s' with started JACK server", + call->method_name); + goto exit; exit: return true; @@ -361,12 +379,12 @@ JACK_DBUS_METHOD_ARGUMENTS_BEGIN(UnloadInternal) JACK_DBUS_METHOD_ARGUMENT("internal", "s", false) JACK_DBUS_METHOD_ARGUMENTS_END -JACK_DBUS_METHOD_ARGUMENTS_BEGIN(AddSlave) - JACK_DBUS_METHOD_ARGUMENT("internal", "s", false) +JACK_DBUS_METHOD_ARGUMENTS_BEGIN(AddSlaveDriver) + JACK_DBUS_METHOD_ARGUMENT("driver_name", "s", false) JACK_DBUS_METHOD_ARGUMENTS_END -JACK_DBUS_METHOD_ARGUMENTS_BEGIN(RemoveSlave) - JACK_DBUS_METHOD_ARGUMENT("internal", "s", false) +JACK_DBUS_METHOD_ARGUMENTS_BEGIN(RemoveSlaveDriver) + JACK_DBUS_METHOD_ARGUMENT("driver_name", "s", false) JACK_DBUS_METHOD_ARGUMENTS_END JACK_DBUS_METHODS_BEGIN @@ -384,8 +402,8 @@ JACK_DBUS_METHODS_BEGIN JACK_DBUS_METHOD_DESCRIBE(ResetXruns, NULL) JACK_DBUS_METHOD_DESCRIBE(LoadInternal, NULL) JACK_DBUS_METHOD_DESCRIBE(UnloadInternal, NULL) - JACK_DBUS_METHOD_DESCRIBE(AddSlave, NULL) - JACK_DBUS_METHOD_DESCRIBE(RemoveSlave, NULL) + JACK_DBUS_METHOD_DESCRIBE(AddSlaveDriver, NULL) + JACK_DBUS_METHOD_DESCRIBE(RemoveSlaveDriver, NULL) JACK_DBUS_METHODS_END JACK_DBUS_SIGNAL_ARGUMENTS_BEGIN(ServerStarted) diff --git a/dbus/controller_internal.h b/dbus/controller_internal.h index a7711a8d..6bb223a8 100644 --- a/dbus/controller_internal.h +++ b/dbus/controller_internal.h @@ -26,6 +26,14 @@ #include "jack/control.h" #include "jack/jack.h" #include "jackdbus.h" +#include "list.h" + +struct jack_controller_slave_driver +{ + struct list_head siblings; + char * name; + jackctl_driver_t * handle; +}; struct jack_controller { @@ -45,6 +53,7 @@ struct jack_controller jackctl_driver_t *driver; bool driver_set; /* whether driver is manually set, if false - DEFAULT_DRIVER is auto set */ + struct list_head slave_drivers; struct jack_dbus_object_descriptor dbus_descriptor; }; @@ -87,12 +96,12 @@ jack_controller_switch_master( void *dbus_call_context_ptr); bool -jack_controller_add_slave( +jack_controller_add_slave_driver( struct jack_controller *controller_ptr, const char * driver_name); bool -jack_controller_remove_slave( +jack_controller_remove_slave_driver( struct jack_controller *controller_ptr, const char * driver_name); diff --git a/dbus/jackdbus.h b/dbus/jackdbus.h index d920cf06..c0ab8861 100644 --- a/dbus/jackdbus.h +++ b/dbus/jackdbus.h @@ -46,6 +46,7 @@ jack_controller_settings_uninit(); #define JACK_DBUS_ERROR_UNKNOWN_METHOD "org.jackaudio.Error.UnknownMethod" #define JACK_DBUS_ERROR_SERVER_NOT_RUNNING "org.jackaudio.Error.ServerNotRunning" +#define JACK_DBUS_ERROR_SERVER_RUNNING "org.jackaudio.Error.ServerRunning" #define JACK_DBUS_ERROR_UNKNOWN_DRIVER "org.jackaudio.Error.UnknownDriver" #define JACK_DBUS_ERROR_UNKNOWN_INTERNAL "org.jackaudio.Error.UnknownInternal" #define JACK_DBUS_ERROR_UNKNOWN_PARAMETER "org.jackaudio.Error.UnknownParameter" diff --git a/doxyfile b/doxyfile index 45b36fda..084836cd 100644 --- a/doxyfile +++ b/doxyfile @@ -31,7 +31,7 @@ PROJECT_NAME = "Jack2" # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = 1.9.7 +PROJECT_NUMBER = 1.9.8 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. diff --git a/example-clients/jack_control b/example-clients/jack_control index 1d06436b..b90bfd5c 100755 --- a/example-clients/jack_control +++ b/example-clients/jack_control @@ -116,6 +116,8 @@ def main(): print " dp - get parameters of currently selected driver" print " dpd - get long description for driver parameter" print " dps - set driver parameter" + print " asd - add slave driver" + print " rsd - remove slave driver" print " il - get list of available internals" print " ip - get parameters of given internal" print " ipd - get long description for internal parameter" @@ -305,6 +307,26 @@ def main(): name = sys.argv[index] index += 1 result = control_iface.UnloadInternal(name) + elif arg == 'asd': + print "--- add slave driver" + + if index >= len(sys.argv): + print "add slave driver command requires driver name argument" + sys.exit() + + name = sys.argv[index] + index += 1 + result = control_iface.AddSlaveDriver(name) + elif arg == 'rsd': + print "--- remove slave driver" + + if index >= len(sys.argv): + print "remove slave driver command requires driver name argument" + sys.exit() + + name = sys.argv[index] + index += 1 + result = control_iface.RemoveSlaveDriver(name) else: print "Unknown command '%s'" % arg except dbus.DBusException, e: diff --git a/example-clients/latent_client.c b/example-clients/latent_client.c index 67217832..9384d98a 100644 --- a/example-clients/latent_client.c +++ b/example-clients/latent_client.c @@ -1,4 +1,4 @@ -/** @file simple_client.c +/** @file latent_client.c * * @brief This simple client demonstrates the most basic features of JACK * as they would be used by many applications. @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include @@ -19,12 +19,12 @@ jack_client_t *client; jack_default_audio_sample_t *delay_line; jack_nframes_t delay_index; -jack_nframes_t latency = 1024; - -#ifdef WIN32 -#define jack_sleep(val) Sleep((val)) -#else -#define jack_sleep(val) usleep((val) * 1000) +jack_nframes_t latency = 1024; + +#ifdef WIN32 +#define jack_sleep(val) Sleep((val)) +#else +#define jack_sleep(val) usleep((val) * 1000) #endif /** @@ -213,3 +213,4 @@ main (int argc, char *argv[]) jack_client_close (client); exit (0); } + diff --git a/example-clients/midi_latency_test.c b/example-clients/midi_latency_test.c new file mode 100644 index 00000000..60d13882 --- /dev/null +++ b/example-clients/midi_latency_test.c @@ -0,0 +1,777 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +/* + * This program is used to measure MIDI latency and jitter. It writes MIDI + * messages to one port and calculates how long it takes before it reads the + * same MIDI message over another port. It was written to calculate the + * latency and jitter of hardware and JACK hardware drivers, but might have + * other practical applications. + * + * The latency results of the program include the latency introduced by the + * JACK system. Because JACK has sample accurate MIDI, the same latency + * imposed on audio is also imposed on MIDI going through the system. Make + * sure you take this into account before complaining to me or (*especially*) + * other JACK developers about reported MIDI latency. + * + * The jitter results are a little more interesting. The program attempts to + * calculate 'average jitter' and 'peak jitter', as defined here: + * + * http://openmuse.org/transport/fidelity.html + * + * It also outputs a jitter plot, which gives you a more specific idea about + * the MIDI jitter for the ports you're testing. This is useful for catching + * extreme jitter values, and for analyzing the amount of truth in the + * technical specifications for your MIDI interface(s). :) + * + * This program is loosely based on 'alsa-midi-latency-test' in the ALSA test + * suite. + * + * To port this program to non-POSIX platforms, you'll have to include + * implementations for semaphores and command-line argument handling. + */ + +#include +#include +#include +#include +#include + +#include + +#include +#include + +#ifdef WIN32 +#include +#include +#else +#include +#endif + +#include + +#define ABS(x) (((x) >= 0) ? (x) : (-(x))) + +#ifdef WIN32 +typedef HANDLE semaphore_t; +#else +typedef sem_t *semaphore_t; +#endif + +const char *ERROR_RESERVE = "could not reserve MIDI event on port buffer"; +const char *ERROR_SHUTDOWN = "the JACK server has been shutdown"; +const char *ERROR_TIMEOUT1 = "timed out while waiting for MIDI message"; + +const char *SOURCE_EVENT_RESERVE = "jack_midi_event_reserve"; +const char *SOURCE_PROCESS = "handle_process"; +const char *SOURCE_SHUTDOWN = "handle_shutdown"; +const char *SOURCE_SIGNAL_SEMAPHORE = "signal_semaphore"; +const char *SOURCE_WAIT_SEMAPHORE = "wait_semaphore"; + +jack_client_t *client; +const char *error_message; +const char *error_source; +jack_nframes_t highest_latency; +jack_time_t highest_latency_time; +jack_latency_range_t in_latency_range; +jack_port_t *in_port; +semaphore_t init_semaphore; +jack_nframes_t last_activity; +jack_time_t last_activity_time; +jack_time_t *latency_time_values; +jack_nframes_t *latency_values; +jack_nframes_t lowest_latency; +jack_time_t lowest_latency_time; +jack_midi_data_t *message_1; +jack_midi_data_t *message_2; +size_t messages_received; +size_t messages_sent; +size_t message_size; +jack_latency_range_t out_latency_range; +jack_port_t *out_port; +semaphore_t process_semaphore; +int process_state; +char *program_name; +jack_port_t *remote_in_port; +jack_port_t *remote_out_port; +size_t samples; +int timeout; +jack_nframes_t total_latency; +jack_time_t total_latency_time; +size_t unexpected_messages; +size_t xrun_count; + +static void signal_handler(int sig) +{ + jack_client_close(client); + fprintf(stderr, "signal received, exiting ...\n"); + exit(0); +} + +#ifdef WIN32 +char semaphore_error_msg[1024]; +#endif + +static void +output_error(const char *source, const char *message); + +static void +output_usage(); + +static void +set_process_error(const char *source, const char *message); + +static int +signal_semaphore(semaphore_t semaphore); + +static int +wait_semaphore(semaphore_t semaphore, int block); + +static semaphore_t +create_semaphore(int id) +{ + semaphore_t semaphore; + +#ifdef WIN32 + semaphore = CreateSemaphore(NULL, 0, 1, NULL); +#elif defined (__APPLE__) + char name[128]; + sprintf(name, "midi_sem_%d", id); + semaphore = sem_open(name, O_CREAT, 0777, 0); + if (semaphore == (sem_t *) SEM_FAILED) { + semaphore = NULL; + } +#else + semaphore = malloc(sizeof(semaphore_t)); + if (semaphore != NULL) { + if (sem_init(semaphore, 0, 0)) { + free(semaphore); + semaphore = NULL; + } + } +#endif + + return semaphore; +} + +static void +destroy_semaphore(semaphore_t semaphore, int id) +{ + +#ifdef WIN32 + CloseHandle(semaphore); +#else + sem_destroy(semaphore); +#ifdef __APPLE__ + { + char name[128]; + sprintf(name, "midi_sem_%d", id); + sem_unlink(name); + } +#else + free(semaphore); +#endif +#endif + +} + +static void +die(const char *source, const char *error_message) +{ + output_error(source, error_message); + output_usage(); + exit(EXIT_FAILURE); +} + +static const char * +get_semaphore_error() +{ + +#ifdef WIN32 + DWORD error = GetLastError(); + if (! FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, error, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + semaphore_error_msg, 1024, NULL)) { + snprintf(semaphore_error_msg, 1023, "Unknown OS error code '%d'", + error); + } + return semaphore_error_msg; +#else + return strerror(errno); +#endif + +} + +static void +handle_info(const char *message) +{ + /* Suppress info */ +} + +static int +handle_process(jack_nframes_t frames, void *arg) +{ + jack_midi_data_t *buffer; + jack_midi_event_t event; + jack_nframes_t event_count; + jack_nframes_t event_time; + jack_nframes_t frame; + size_t i; + jack_nframes_t last_frame_time; + jack_midi_data_t *message; + jack_time_t microseconds; + void *port_buffer; + jack_time_t time; + jack_midi_clear_buffer(jack_port_get_buffer(out_port, frames)); + switch (process_state) { + + case 0: + /* State: initializing */ + switch (wait_semaphore(init_semaphore, 0)) { + case -1: + set_process_error(SOURCE_WAIT_SEMAPHORE, get_semaphore_error()); + // Fallthrough on purpose + case 0: + return 0; + } + highest_latency = 0; + lowest_latency = 0; + messages_received = 0; + messages_sent = 0; + process_state = 1; + total_latency = 0; + total_latency_time = 0; + unexpected_messages = 0; + xrun_count = 0; + jack_port_get_latency_range(remote_in_port, JackCaptureLatency, + &in_latency_range); + jack_port_get_latency_range(remote_out_port, JackPlaybackLatency, + &out_latency_range); + goto send_message; + + case 1: + /* State: processing */ + port_buffer = jack_port_get_buffer(in_port, frames); + event_count = jack_midi_get_event_count(port_buffer); + last_frame_time = jack_last_frame_time(client); + for (i = 0; i < event_count; i++) { + jack_midi_event_get(&event, port_buffer, i); + message = (messages_received % 2) ? message_2 : message_1; + if ((event.size == message_size) && + (! memcmp(message, event.buffer, + message_size * sizeof(jack_midi_data_t)))) { + goto found_message; + } + unexpected_messages++; + } + microseconds = jack_frames_to_time(client, last_frame_time) - + last_activity_time; + if ((microseconds / 1000000) >= timeout) { + set_process_error(SOURCE_PROCESS, ERROR_TIMEOUT1); + } + break; + found_message: + event_time = last_frame_time + event.time; + frame = event_time - last_activity; + time = jack_frames_to_time(client, event_time) - last_activity_time; + if ((! highest_latency) || (frame > highest_latency)) { + highest_latency = frame; + highest_latency_time = time; + } + if ((! lowest_latency) || (frame < lowest_latency)) { + lowest_latency = frame; + lowest_latency_time = time; + } + latency_time_values[messages_received] = time; + latency_values[messages_received] = frame; + total_latency += frame; + total_latency_time += time; + messages_received++; + if (messages_received == samples) { + process_state = 2; + if (! signal_semaphore(process_semaphore)) { + // Sigh ... + die(SOURCE_SIGNAL_SEMAPHORE, get_semaphore_error()); + } + break; + } + send_message: + frame = (jack_nframes_t) ((((double) rand()) / RAND_MAX) * frames); + if (frame >= frames) { + frame = frames - 1; + } + port_buffer = jack_port_get_buffer(out_port, frames); + buffer = jack_midi_event_reserve(port_buffer, frame, message_size); + if (buffer == NULL) { + set_process_error(SOURCE_EVENT_RESERVE, ERROR_RESERVE); + break; + } + message = (messages_sent % 2) ? message_2 : message_1; + memcpy(buffer, message, message_size * sizeof(jack_midi_data_t)); + last_activity = jack_last_frame_time(client) + frame; + last_activity_time = jack_frames_to_time(client, last_activity); + messages_sent++; + + case 2: + /* State: finished - do nothing */ + + case -1: + /* State: error - do nothing */ + ; + + } + return 0; +} + +static void +handle_shutdown(void *arg) +{ + set_process_error(SOURCE_SHUTDOWN, ERROR_SHUTDOWN); +} + +static int +handle_xrun(void *arg) +{ + xrun_count++; + return 0; +} + +static void +output_error(const char *source, const char *message) +{ + fprintf(stderr, "%s: %s: %s\n", program_name, source, message); +} + +static void +output_usage() +{ + fprintf(stderr, "Usage: %s [options] out-port-name in-port-name\n\n" + "\t-h, --help print program usage\n" + "\t-m, --message-size=size set size of MIDI messages to send\n" + "\t-s, --samples=n number of MIDI messages to send\n" + "\t-t, --timeout=seconds wait time before giving up on message\n" + "\n", program_name); +} + +static unsigned long +parse_positive_number_arg(char *s, char *name) +{ + char *end_ptr; + unsigned long result; + errno = 0; + result = strtoul(s, &end_ptr, 10); + if (errno) { + die(name, strerror(errno)); + } + if (*s == '\0') { + die(name, "argument value cannot be empty"); + } + if (*end_ptr != '\0') { + die(name, "invalid value"); + } + if (! result) { + die(name, "must be a positive number"); + } + return result; +} + +static void +set_process_error(const char *source, const char *message) +{ + error_source = source; + error_message = message; + process_state = -1; + if (! signal_semaphore(process_semaphore)) { + // Sigh + output_error(source, message); + die(SOURCE_SIGNAL_SEMAPHORE, get_semaphore_error()); + } +} + +static int +signal_semaphore(semaphore_t semaphore) +{ + +#ifdef WIN32 + return ReleaseSemaphore(semaphore, 1, NULL); +#else + return ! sem_post(semaphore); +#endif + +} + +static int +wait_semaphore(semaphore_t semaphore, int block) +{ + +#ifdef WIN32 + DWORD result = WaitForSingleObject(semaphore, block ? INFINITE : 0); + switch (result) { + case WAIT_OBJECT_0: + return 1; + case WAIT_TIMEOUT: + return 0; + } + return -1; +#else + if (block) { + while (sem_wait(semaphore)) { + if (errno != EINTR) { + return -1; + } + } + } else { + while (sem_trywait(semaphore)) { + switch (errno) { + case EAGAIN: + return 0; + case EINTR: + continue; + default: + return -1; + } + } + } + return 1; +#endif + +} + +int +main(int argc, char **argv) +{ + size_t jitter_plot[101]; + size_t latency_plot[101]; + int long_index = 0; + struct option long_options[] = { + {"help", 0, NULL, 'h'}, + {"message-size", 1, NULL, 'm'}, + {"samples", 1, NULL, 's'}, + {"timeout", 1, NULL, 't'} + }; + char *option_string = "hm:s:t:"; + int show_usage = 0; + error_message = NULL; + message_size = 3; + program_name = argv[0]; + samples = 1024; + timeout = 5; + + for (;;) { + char c = getopt_long(argc, argv, option_string, long_options, + &long_index); + switch (c) { + case 'h': + show_usage = 1; + break; + case 'm': + message_size = parse_positive_number_arg(optarg, "message-size"); + break; + case 's': + samples = parse_positive_number_arg(optarg, "samples"); + break; + case 't': + timeout = parse_positive_number_arg(optarg, "timeout"); + break; + default: + { + char *s = "'- '"; + s[2] = c; + die(s, "invalid switch"); + } + case -1: + if (show_usage) { + output_usage(); + exit(EXIT_SUCCESS); + } + goto parse_port_names; + case 1: + /* end of switch :) */ + ; + } + } + parse_port_names: + if ((argc - optind) != 2) { + output_usage(); + return EXIT_FAILURE; + } + latency_values = malloc(sizeof(jack_nframes_t) * samples); + if (latency_values == NULL) { + error_message = strerror(errno); + error_source = "malloc"; + goto show_error; + } + latency_time_values = malloc(sizeof(jack_time_t) * samples); + if (latency_time_values == NULL) { + error_message = strerror(errno); + error_source = "malloc"; + goto free_latency_values; + } + message_1 = malloc(message_size * sizeof(jack_midi_data_t)); + if (message_1 == NULL) { + error_message = strerror(errno); + error_source = "malloc"; + goto free_latency_time_values; + } + message_2 = malloc(message_size * sizeof(jack_midi_data_t)); + if (message_2 == NULL) { + error_message = strerror(errno); + error_source = "malloc"; + goto free_message_1; + } + switch (message_size) { + case 1: + message_1[0] = 0xf6; + message_2[0] = 0xfe; + break; + case 2: + message_1[0] = 0xc0; + message_1[1] = 0x00; + message_2[0] = 0xd0; + message_2[1] = 0x7f; + break; + case 3: + message_1[0] = 0x80; + message_1[1] = 0x00; + message_1[2] = 0x00; + message_2[0] = 0x90; + message_2[1] = 0x7f; + message_2[2] = 0x7f; + break; + default: + message_1[0] = 0xf0; + memset(message_1 + 1, 0, + (message_size - 2) * sizeof(jack_midi_data_t)); + message_1[message_size - 1] = 0xf7; + message_2[0] = 0xf0; + memset(message_2 + 1, 0x7f, + (message_size - 2) * sizeof(jack_midi_data_t)); + message_2[message_size - 1] = 0xf7; + } + + /* install a signal handler to properly quits jack client */ +#ifdef WIN32 + signal(SIGINT, signal_handler); + signal(SIGABRT, signal_handler); + signal(SIGTERM, signal_handler); +#else + signal(SIGQUIT, signal_handler); + signal(SIGTERM, signal_handler); + signal(SIGHUP, signal_handler); + signal(SIGINT, signal_handler); +#endif + + client = jack_client_open(program_name, JackNullOption, NULL); + if (client == NULL) { + error_message = "failed to open JACK client"; + error_source = "jack_client_open"; + goto free_message_2; + } + remote_in_port = jack_port_by_name(client, argv[optind + 1]); + if (remote_in_port == NULL) { + error_message = "invalid port name"; + error_source = argv[optind + 1]; + goto close_client; + } + remote_out_port = jack_port_by_name(client, argv[optind]); + if (remote_out_port == NULL) { + error_message = "invalid port name"; + error_source = argv[optind]; + goto close_client; + } + in_port = jack_port_register(client, "in", JACK_DEFAULT_MIDI_TYPE, + JackPortIsInput, 0); + if (in_port == NULL) { + error_message = "failed to register MIDI-in port"; + error_source = "jack_port_register"; + goto close_client; + } + out_port = jack_port_register(client, "out", JACK_DEFAULT_MIDI_TYPE, + JackPortIsOutput, 0); + if (out_port == NULL) { + error_message = "failed to register MIDI-out port"; + error_source = "jack_port_register"; + goto unregister_in_port; + } + if (jack_set_process_callback(client, handle_process, NULL)) { + error_message = "failed to set process callback"; + error_source = "jack_set_process_callback"; + goto unregister_out_port; + } + if (jack_set_xrun_callback(client, handle_xrun, NULL)) { + error_message = "failed to set xrun callback"; + error_source = "jack_set_xrun_callback"; + goto unregister_out_port; + } + jack_on_shutdown(client, handle_shutdown, NULL); + jack_set_info_function(handle_info); + process_state = 0; + init_semaphore = create_semaphore(0); + if (init_semaphore == NULL) { + error_message = get_semaphore_error(); + error_source = "create_semaphore"; + goto unregister_out_port; + } + process_semaphore = create_semaphore(1); + if (process_semaphore == NULL) { + error_message = get_semaphore_error(); + error_source = "create_semaphore"; + goto destroy_init_semaphore; + } + if (jack_activate(client)) { + error_message = "could not activate client"; + error_source = "jack_activate"; + goto destroy_process_semaphore; + } + if (jack_connect(client, jack_port_name(out_port), + jack_port_name(remote_out_port))) { + error_message = "could not connect MIDI out port"; + error_source = "jack_connect"; + goto deactivate_client; + } + if (jack_connect(client, jack_port_name(remote_in_port), + jack_port_name(in_port))) { + error_message = "could not connect MIDI in port"; + error_source = "jack_connect"; + goto deactivate_client; + } + if (! signal_semaphore(init_semaphore)) { + error_message = get_semaphore_error(); + error_source = "post_semaphore"; + goto deactivate_client; + } + if (wait_semaphore(process_semaphore, 1) == -1) { + error_message = get_semaphore_error(); + error_source = "wait_semaphore"; + goto deactivate_client; + } + if (process_state == 2) { + double average_latency = ((double) total_latency) / samples; + double average_latency_time = total_latency_time / samples; + size_t i; + double latency_plot_offset = + floor(((double) lowest_latency_time) / 100.0) / 10.0; + double sample_rate = (double) jack_get_sample_rate(client); + jack_nframes_t total_jitter = 0; + jack_time_t total_jitter_time = 0; + for (i = 0; i <= 100; i++) { + jitter_plot[i] = 0; + latency_plot[i] = 0; + } + for (i = 0; i < samples; i++) { + double latency_time_value = (double) latency_time_values[i]; + double latency_plot_time = + (latency_time_value / 1000.0) - latency_plot_offset; + double jitter_time = ABS(average_latency_time - + latency_time_value); + if (latency_plot_time >= 10.0) { + (latency_plot[100])++; + } else { + (latency_plot[(int) (latency_plot_time * 10.0)])++; + } + if (jitter_time >= 10000.0) { + (jitter_plot[100])++; + } else { + (jitter_plot[(int) (jitter_time / 100.0)])++; + } + total_jitter += ABS(average_latency - + ((double) latency_values[i])); + total_jitter_time += jitter_time; + } + printf("Reported out-port latency: %.2f-%.2f ms (%u-%u frames)\n" + "Reported in-port latency: %.2f-%.2f ms (%u-%u frames)\n" + "Average latency: %.2f ms (%.2f frames)\n" + "Lowest latency: %.2f ms (%u frames)\n" + "Highest latency: %.2f ms (%u frames)\n" + "Peak MIDI jitter: %.2f ms (%u frames)\n" + "Average MIDI jitter: %.2f ms (%.2f frames)\n", + (out_latency_range.min / sample_rate) * 1000.0, + (out_latency_range.max / sample_rate) * 1000.0, + out_latency_range.min, out_latency_range.max, + (in_latency_range.min / sample_rate) * 1000.0, + (in_latency_range.max / sample_rate) * 1000.0, + in_latency_range.min, in_latency_range.max, + average_latency_time / 1000.0, average_latency, + lowest_latency_time / 1000.0, lowest_latency, + highest_latency_time / 1000.0, highest_latency, + (highest_latency_time - lowest_latency_time) / 1000.0, + highest_latency - lowest_latency, + (total_jitter_time / 1000.0) / samples, + ((double) total_jitter) / samples); + printf("\nJitter Plot:\n"); + for (i = 0; i < 100; i++) { + if (jitter_plot[i]) { + printf("%.1f - %.1f ms: %u\n", ((float) i) / 10.0, + ((float) (i + 1)) / 10.0, jitter_plot[i]); + } + } + if (jitter_plot[100]) { + printf(" > 10 ms: %u\n", jitter_plot[100]); + } + printf("\nLatency Plot:\n"); + for (i = 0; i < 100; i++) { + if (latency_plot[i]) { + printf("%.1f - %.1f ms: %u\n", + latency_plot_offset + (((float) i) / 10.0), + latency_plot_offset + (((float) (i + 1)) / 10.0), + latency_plot[i]); + } + } + if (latency_plot[100]) { + printf(" > %.1f ms: %u\n", latency_plot_offset + 10.0, + latency_plot[100]); + } + } + printf("\nMessages sent: %d\n" + "Messages received: %d\n", + messages_sent, messages_received); + if (unexpected_messages) { + printf("Unexpected messages received: %d\n", unexpected_messages); + } + if (xrun_count) { + printf("Xruns: %d (messages may have been lost)\n", xrun_count); + } + deactivate_client: + jack_deactivate(client); + destroy_process_semaphore: + destroy_semaphore(process_semaphore, 1); + destroy_init_semaphore: + destroy_semaphore(init_semaphore, 0); + unregister_out_port: + jack_port_unregister(client, out_port); + unregister_in_port: + jack_port_unregister(client, in_port); + close_client: + jack_client_close(client); + free_message_2: + free(message_2); + free_message_1: + free(message_1); + free_latency_time_values: + free(latency_time_values); + free_latency_values: + free(latency_values); + if (error_message != NULL) { + show_error: + output_error(error_source, error_message); + exit(EXIT_FAILURE); + } + return EXIT_SUCCESS; +} diff --git a/example-clients/showtime.c b/example-clients/showtime.c index af413e89..b40589fc 100644 --- a/example-clients/showtime.c +++ b/example-clients/showtime.c @@ -35,7 +35,7 @@ showtime () transport_state = jack_transport_query (client, ¤t); frame_time = jack_frame_time (client); - printf ("frame = %u frame_time = %u usecs = %lld \t", current.frame, frame_time, current.usecs); + printf ("frame = %u frame_time = %u usecs = %ld \t", current.frame, frame_time, current.usecs); switch (transport_state) { case JackTransportStopped: diff --git a/example-clients/thru_client.c b/example-clients/thru_client.c index 426fa6bc..d47fbe15 100644 --- a/example-clients/thru_client.c +++ b/example-clients/thru_client.c @@ -1,4 +1,4 @@ -/** @file simple_client.c +/** @file thru_client.c * * @brief This simple through client demonstrates the basic features of JACK * as they would be used by many applications. diff --git a/example-clients/tw.c b/example-clients/tw.c index b583720e..339f1c37 100644 --- a/example-clients/tw.c +++ b/example-clients/tw.c @@ -1,4 +1,4 @@ -/** @file simple_client.c +/** @file tw.c * * @brief This simple client demonstrates the basic features of JACK * as they would be used by many applications. @@ -42,56 +42,56 @@ _process (jack_nframes_t nframes) { jack_default_audio_sample_t *in, *out; jack_transport_state_t ts = jack_transport_query(client, NULL); - + if (ts == JackTransportRolling) { - + if (client_state == Init) client_state = Run; - + in = jack_port_get_buffer (input_port, nframes); out = jack_port_get_buffer (output_port, nframes); memcpy (out, in, sizeof (jack_default_audio_sample_t) * nframes); - + } else if (ts == JackTransportStopped) { - + if (client_state == Run) { client_state = Exit; return -1; // to stop the thread } } - return 0; + return 0; } -static void* jack_thread(void *arg) +static void* jack_thread(void *arg) { jack_client_t* client = (jack_client_t*) arg; - + while (1) { - + jack_nframes_t frames = jack_cycle_wait (client); int status = _process(frames); jack_cycle_signal (client, status); - + /* Possibly do something else after signaling next clients in the graph */ - + /* End condition */ if (status != 0) - return 0; + return 0; } - + /* not reached*/ return 0; } /* -static void* jack_thread(void *arg) +static void* jack_thread(void *arg) { jack_client_t* client = (jack_client_t*) arg; - + while (1) { jack_nframes_t frames; int status; @@ -103,7 +103,7 @@ static void* jack_thread(void *arg) frames = jack_cycle_wait (client); status = _process(frames); jack_cycle_signal (client, status); - // cycle 3 + // cycle 3 frames = jack_cycle_wait (client); status = _process(frames); jack_cycle_signal (client, status); @@ -112,7 +112,7 @@ static void* jack_thread(void *arg) status = _process(frames); jack_cycle_signal (client, status); } - + return 0; } */ @@ -172,8 +172,8 @@ main (int argc, char *argv[]) /* tell the JACK server to call `process()' whenever there is work to be done. - */ - if (jack_set_process_thread(client, jack_thread, client) < 0) + */ + if (jack_set_process_thread(client, jack_thread, client) < 0) exit(1); /* tell the JACK server to call `jack_shutdown()' if @@ -183,7 +183,7 @@ main (int argc, char *argv[]) jack_on_shutdown (client, jack_shutdown, 0); - /* display the current sample rate. + /* display the current sample rate. */ printf ("engine sample rate: %" PRIu32 "\n", @@ -231,7 +231,7 @@ main (int argc, char *argv[]) } free (ports); - + ports = jack_get_ports (client, NULL, NULL, JackPortIsPhysical|JackPortIsInput); if (ports == NULL) { @@ -244,7 +244,7 @@ main (int argc, char *argv[]) } free (ports); - + /* install a signal handler to properly quits jack client */ signal(SIGQUIT, signal_handler); signal(SIGTERM, signal_handler); diff --git a/example-clients/wait.c b/example-clients/wait.c index 81870321..9150bb63 100644 --- a/example-clients/wait.c +++ b/example-clients/wait.c @@ -40,7 +40,7 @@ main (int argc, char *argv[]) int wait_timeout = 0; time_t start_timestamp; - + struct option long_options[] = { { "server", 1, 0, 's' }, { "wait", 0, 0, 'w' }, diff --git a/example-clients/wscript b/example-clients/wscript index d32c1f75..9c70e27a 100644 --- a/example-clients/wscript +++ b/example-clients/wscript @@ -29,6 +29,7 @@ example_programs = { 'jack_net_master' : 'netmaster.c', 'jack_latent_client' : 'latent_client.c', 'jack_midi_dump' : 'midi_dump.c', + 'jack_midi_latency_test' : 'midi_latency_test.c' } example_libs = { diff --git a/example-clients/zombie.c b/example-clients/zombie.c index a3a2dadd..fb3cd24e 100644 --- a/example-clients/zombie.c +++ b/example-clients/zombie.c @@ -1,6 +1,6 @@ /* Copyright (C) 2002 Jeremy Hall - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or @@ -30,18 +30,18 @@ int count = 0; jack_port_t* output_port; static int -process(jack_nframes_t nframes, void* arg) +process(jack_nframes_t nframes, void* arg) { if (count++ == 1000) { printf("process block\n"); //while (1) {} sleep(1); } - + return 0; } -static void +static void shutdown (void *arg) { printf("shutdown \n"); @@ -57,7 +57,7 @@ main (int argc, char *argv[]) fprintf (stderr, "jack server not running?\n"); goto error; } - + jack_set_process_callback (client, process, NULL); jack_on_shutdown(client, shutdown, NULL); output_port = jack_port_register (client, "port1", JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput, 0); @@ -67,9 +67,9 @@ main (int argc, char *argv[]) fprintf (stderr, "cannot activate client"); goto error; } - + jack_connect(client, jack_port_name(output_port), "coreaudio:Built-in Audio:in2"); - + while (running) { sleep(1); printf ("run\n"); @@ -78,9 +78,9 @@ main (int argc, char *argv[]) jack_deactivate (client); jack_client_close (client); return 0; - + error: - if (client) + if (client) jack_client_close (client); return 1; } diff --git a/linux/alsa/JackAlsaAdapter.cpp b/linux/alsa/JackAlsaAdapter.cpp index ba847851..070dacd4 100644 --- a/linux/alsa/JackAlsaAdapter.cpp +++ b/linux/alsa/JackAlsaAdapter.cpp @@ -259,7 +259,7 @@ extern "C" i++; strcpy ( desc->params[i].name, "inchannels" ); desc->params[i].character = 'i'; - desc->params[i].type = JackDriverParamUInt; + desc->params[i].type = JackDriverParamInt; desc->params[i].value.i = 0; strcpy ( desc->params[i].short_desc, "Number of capture channels (defaults to hardware max)" ); @@ -268,7 +268,7 @@ extern "C" i++; strcpy ( desc->params[i].name, "outchannels" ); desc->params[i].character = 'o'; - desc->params[i].type = JackDriverParamUInt; + desc->params[i].type = JackDriverParamInt; desc->params[i].value.i = 0; strcpy ( desc->params[i].short_desc, "Number of playback channels (defaults to hardware max)" ); @@ -277,7 +277,7 @@ extern "C" i++; strcpy(desc->params[i].name, "quality"); desc->params[i].character = 'q'; - desc->params[i].type = JackDriverParamInt; + desc->params[i].type = JackDriverParamUInt; desc->params[i].value.ui = 0; strcpy(desc->params[i].short_desc, "Resample algorithm quality (0 - 4)"); strcpy(desc->params[i].long_desc, desc->params[i].short_desc); @@ -285,7 +285,7 @@ extern "C" i++; strcpy(desc->params[i].name, "ring-buffer"); desc->params[i].character = 'g'; - desc->params[i].type = JackDriverParamInt; + desc->params[i].type = JackDriverParamUInt; desc->params[i].value.ui = 32768; strcpy(desc->params[i].short_desc, "Fixed ringbuffer size"); strcpy(desc->params[i].long_desc, "Fixed ringbuffer size (if not set => automatic adaptative)"); diff --git a/linux/alsa/JackAlsaDriver.cpp b/linux/alsa/JackAlsaDriver.cpp index b42e9693..470d46df 100644 --- a/linux/alsa/JackAlsaDriver.cpp +++ b/linux/alsa/JackAlsaDriver.cpp @@ -55,8 +55,11 @@ int JackAlsaDriver::SetBufferSize(jack_nframes_t buffer_size) ((alsa_driver_t *)fDriver)->frame_rate); if (res == 0) { // update fEngineControl and fGraphManager - JackAudioDriver::SetBufferSize(buffer_size); // never fails + JackAudioDriver::SetBufferSize(buffer_size); // Generic change, never fails + // ALSA specific + UpdateLatencies(); } else { + // Restore old values alsa_driver_reset_parameters((alsa_driver_t *)fDriver, fEngineControl->fBufferSize, ((alsa_driver_t *)fDriver)->user_nperiods, ((alsa_driver_t *)fDriver)->frame_rate); @@ -65,6 +68,29 @@ int JackAlsaDriver::SetBufferSize(jack_nframes_t buffer_size) return res; } +void JackAlsaDriver::UpdateLatencies() +{ + jack_latency_range_t range; + alsa_driver_t* alsa_driver = (alsa_driver_t*)fDriver; + + for (int i = 0; i < fCaptureChannels; i++) { + range.min = range.max = alsa_driver->frames_per_cycle + alsa_driver->capture_frame_latency; + fGraphManager->GetPort(fCapturePortList[i])->SetLatencyRange(JackCaptureLatency, &range); + } + + for (int i = 0; i < fPlaybackChannels; i++) { + // Add one buffer more latency if "async" mode is used... + range.min = range.max = (alsa_driver->frames_per_cycle * (alsa_driver->user_nperiods - 1)) + + ((fEngineControl->fSyncMode) ? 0 : fEngineControl->fBufferSize) + alsa_driver->playback_frame_latency; + fGraphManager->GetPort(fPlaybackPortList[i])->SetLatencyRange(JackPlaybackLatency, &range); + // Monitor port + if (fWithMonitorPorts) { + range.min = range.max = alsa_driver->frames_per_cycle; + fGraphManager->GetPort(fMonitorPortList[i])->SetLatencyRange(JackCaptureLatency, &range); + } + } +} + int JackAlsaDriver::Attach() { JackPort* port; @@ -72,7 +98,6 @@ int JackAlsaDriver::Attach() unsigned long port_flags = (unsigned long)CaptureDriverFlags; char name[JACK_CLIENT_NAME_SIZE + JACK_PORT_NAME_SIZE]; char alias[JACK_CLIENT_NAME_SIZE + JACK_PORT_NAME_SIZE]; - jack_latency_range_t range; assert(fCaptureChannels < DRIVER_PORT_NUM); assert(fPlaybackChannels < DRIVER_PORT_NUM); @@ -97,8 +122,6 @@ int JackAlsaDriver::Attach() } port = fGraphManager->GetPort(port_index); port->SetAlias(alias); - range.min = range.max = alsa_driver->frames_per_cycle + alsa_driver->capture_frame_latency; - port->SetLatencyRange(JackCaptureLatency, &range); fCapturePortList[i] = port_index; jack_log("JackAlsaDriver::Attach fCapturePortList[i] %ld ", port_index); } @@ -114,11 +137,6 @@ int JackAlsaDriver::Attach() } port = fGraphManager->GetPort(port_index); port->SetAlias(alias); - // Add one buffer more latency if "async" mode is used... - range.min = range.max = (alsa_driver->frames_per_cycle * (alsa_driver->user_nperiods - 1)) + - ((fEngineControl->fSyncMode) ? 0 : fEngineControl->fBufferSize) + alsa_driver->playback_frame_latency; - - port->SetLatencyRange(JackPlaybackLatency, &range); fPlaybackPortList[i] = port_index; jack_log("JackAlsaDriver::Attach fPlaybackPortList[i] %ld ", port_index); @@ -129,14 +147,13 @@ int JackAlsaDriver::Attach() if ((port_index = fGraphManager->AllocatePort(fClientControl.fRefNum, name, JACK_DEFAULT_AUDIO_TYPE, MonitorDriverFlags, fEngineControl->fBufferSize)) == NO_PORT) { jack_error ("ALSA: cannot register monitor port for %s", name); } else { - port = fGraphManager->GetPort(port_index); - range.min = range.max = alsa_driver->frames_per_cycle; - port->SetLatencyRange(JackCaptureLatency, &range); fMonitorPortList[i] = port_index; } } } + UpdateLatencies(); + if (alsa_driver->midi) { int err = (alsa_driver->midi->attach)(alsa_driver->midi); if (err) @@ -275,7 +292,7 @@ int JackAlsaDriver::Open(jack_nframes_t nframes, } } - fDriver = alsa_driver_new ("alsa_pcm", (char*)playback_driver_name, (char*)capture_driver_name, + fDriver = alsa_driver_new ((char*)"alsa_pcm", (char*)playback_driver_name, (char*)capture_driver_name, NULL, nframes, user_nperiods, @@ -828,7 +845,7 @@ SERVER_EXPORT const jack_driver_desc_t* driver_get_descriptor () i++; strcpy (params[i].name, "inchannels"); params[i].character = 'i'; - params[i].type = JackDriverParamUInt; + params[i].type = JackDriverParamInt; params[i].value.i = 0; strcpy (params[i].short_desc, "Number of capture channels (defaults to hardware max)"); @@ -837,7 +854,7 @@ SERVER_EXPORT const jack_driver_desc_t* driver_get_descriptor () i++; strcpy (params[i].name, "outchannels"); params[i].character = 'o'; - params[i].type = JackDriverParamUInt; + params[i].type = JackDriverParamInt; params[i].value.i = 0; strcpy (params[i].short_desc, "Number of playback channels (defaults to hardware max)"); @@ -855,7 +872,7 @@ SERVER_EXPORT const jack_driver_desc_t* driver_get_descriptor () strcpy (params[i].name, "input-latency"); params[i].character = 'I'; params[i].type = JackDriverParamUInt; - params[i].value.i = 0; + params[i].value.ui = 0; strcpy (params[i].short_desc, "Extra input latency (frames)"); strcpy (params[i].long_desc, params[i].short_desc); @@ -863,7 +880,7 @@ SERVER_EXPORT const jack_driver_desc_t* driver_get_descriptor () strcpy (params[i].name, "output-latency"); params[i].character = 'O'; params[i].type = JackDriverParamUInt; - params[i].value.i = 0; + params[i].value.ui = 0; strcpy (params[i].short_desc, "Extra output latency (frames)"); strcpy (params[i].long_desc, params[i].short_desc); diff --git a/linux/alsa/JackAlsaDriver.h b/linux/alsa/JackAlsaDriver.h index 6d42b91a..a88d4a01 100644 --- a/linux/alsa/JackAlsaDriver.h +++ b/linux/alsa/JackAlsaDriver.h @@ -42,6 +42,8 @@ class JackAlsaDriver : public JackAudioDriver int fReservedCaptureDevice; int fReservedPlaybackDevice; + void UpdateLatencies(); + public: JackAlsaDriver(const char* name, const char* alias, JackLockedEngine* engine, JackSynchro* table) diff --git a/linux/alsa/alsa_driver.c b/linux/alsa/alsa_driver.c index 536cfb6c..5fe3635c 100644 --- a/linux/alsa/alsa_driver.c +++ b/linux/alsa/alsa_driver.c @@ -204,8 +204,8 @@ alsa_driver_ice1712_hardware (alsa_driver_t *driver) static int alsa_driver_usx2y_hardware (alsa_driver_t *driver) { - driver->hw = jack_alsa_usx2y_hw_new (driver); - return 0; + driver->hw = jack_alsa_usx2y_hw_new (driver); + return 0; } */ diff --git a/linux/alsarawmidi/JackALSARawMidiDriver.cpp b/linux/alsarawmidi/JackALSARawMidiDriver.cpp new file mode 100755 index 00000000..42771357 --- /dev/null +++ b/linux/alsarawmidi/JackALSARawMidiDriver.cpp @@ -0,0 +1,614 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include +#include +#include + +#include + +#include "JackALSARawMidiDriver.h" +#include "JackEngineControl.h" +#include "JackError.h" +#include "JackMidiUtil.h" + +using Jack::JackALSARawMidiDriver; + +JackALSARawMidiDriver::JackALSARawMidiDriver(const char *name, + const char *alias, + JackLockedEngine *engine, + JackSynchro *table): + JackMidiDriver(name, alias, engine, table) +{ + thread = new JackThread(this); + fCaptureChannels = 0; + fds[0] = -1; + fds[1] = -1; + fPlaybackChannels = 0; + input_ports = 0; + output_ports = 0; + poll_fds = 0; +} + +JackALSARawMidiDriver::~JackALSARawMidiDriver() +{ + delete thread; +} + +int +JackALSARawMidiDriver::Attach() +{ + const char *alias; + jack_nframes_t buffer_size = fEngineControl->fBufferSize; + jack_port_id_t index; + jack_nframes_t latency = buffer_size; + jack_latency_range_t latency_range; + const char *name; + JackPort *port; + latency_range.max = latency; + latency_range.min = latency; + for (int i = 0; i < fCaptureChannels; i++) { + JackALSARawMidiInputPort *input_port = input_ports[i]; + name = input_port->GetName(); + index = fGraphManager->AllocatePort(fClientControl.fRefNum, name, + JACK_DEFAULT_MIDI_TYPE, + CaptureDriverFlags, buffer_size); + if (index == NO_PORT) { + jack_error("JackALSARawMidiDriver::Attach - cannot register input " + "port with name '%s'.", name); + // X: Do we need to deallocate ports? + return -1; + } + alias = input_port->GetAlias(); + port = fGraphManager->GetPort(index); + port->SetAlias(alias); + port->SetLatencyRange(JackCaptureLatency, &latency_range); + fCapturePortList[i] = index; + + jack_info("JackALSARawMidiDriver::Attach - input port registered " + "(name='%s', alias='%s').", name, alias); + + } + if (! fEngineControl->fSyncMode) { + latency += buffer_size; + latency_range.max = latency; + latency_range.min = latency; + } + for (int i = 0; i < fPlaybackChannels; i++) { + JackALSARawMidiOutputPort *output_port = output_ports[i]; + name = output_port->GetName(); + index = fGraphManager->AllocatePort(fClientControl.fRefNum, name, + JACK_DEFAULT_MIDI_TYPE, + PlaybackDriverFlags, buffer_size); + if (index == NO_PORT) { + jack_error("JackALSARawMidiDriver::Attach - cannot register " + "output port with name '%s'.", name); + // X: Do we need to deallocate ports? + return -1; + } + alias = output_port->GetAlias(); + port = fGraphManager->GetPort(index); + port->SetAlias(alias); + port->SetLatencyRange(JackPlaybackLatency, &latency_range); + fPlaybackPortList[i] = index; + + jack_info("JackALSARawMidiDriver::Attach - output port registered " + "(name='%s', alias='%s').", name, alias); + + } + return 0; +} + +int +JackALSARawMidiDriver::Close() +{ + // Generic MIDI driver close + int result = JackMidiDriver::Close(); + + if (input_ports) { + for (int i = 0; i < fCaptureChannels; i++) { + delete input_ports[i]; + } + delete[] input_ports; + input_ports = 0; + } + if (output_ports) { + for (int i = 0; i < fPlaybackChannels; i++) { + delete output_ports[i]; + } + delete[] output_ports; + output_ports = 0; + } + return result; +} + +bool +JackALSARawMidiDriver::Execute() +{ + jack_nframes_t timeout_frame = 0; + for (;;) { + jack_nframes_t process_frame; + unsigned short revents; + jack_nframes_t *timeout_frame_ptr; + if (! timeout_frame) { + timeout_frame_ptr = 0; + } else { + timeout_frame_ptr = &timeout_frame; + } + if (Poll(timeout_frame_ptr) == -1) { + if (errno == EINTR) { + continue; + } + jack_error("JackALSARawMidiDriver::Execute - poll error: %s", + strerror(errno)); + break; + } + revents = poll_fds[0].revents; + if (revents & POLLHUP) { + // Driver is being stopped. + break; + } + if (revents & (~ POLLIN)) { + jack_error("JackALSARawMidiDriver::Execute - unexpected poll " + "event on pipe file descriptor."); + break; + } + timeout_frame = 0; + for (int i = 0; i < fCaptureChannels; i++) { + if (! input_ports[i]->ProcessALSA(&process_frame)) { + jack_error("JackALSARawMidiDriver::Execute - a fatal error " + "occurred while processing ALSA input events."); + goto cleanup; + } + if (process_frame && ((! timeout_frame) || + (process_frame < timeout_frame))) { + timeout_frame = process_frame; + } + } + for (int i = 0; i < fPlaybackChannels; i++) { + if (! output_ports[i]->ProcessALSA(fds[0], &process_frame)) { + jack_error("JackALSARawMidiDriver::Execute - a fatal error " + "occurred while processing ALSA output events."); + goto cleanup; + } + if (process_frame && ((! timeout_frame) || + (process_frame < timeout_frame))) { + timeout_frame = process_frame; + } + } + } + cleanup: + close(fds[0]); + fds[0] = -1; + + jack_info("JackALSARawMidiDriver::Execute - ALSA thread exiting."); + + return false; +} + +void +JackALSARawMidiDriver:: +GetDeviceInfo(snd_ctl_t *control, snd_rawmidi_info_t *info, + std::vector *info_list) +{ + snd_rawmidi_info_set_subdevice(info, 0); + int code = snd_ctl_rawmidi_info(control, info); + if (code) { + if (code != -ENOENT) { + HandleALSAError("GetDeviceInfo", "snd_ctl_rawmidi_info", code); + } + return; + } + unsigned int count = snd_rawmidi_info_get_subdevices_count(info); + for (unsigned int i = 0; i < count; i++) { + snd_rawmidi_info_set_subdevice(info, i); + int code = snd_ctl_rawmidi_info(control, info); + if (code) { + HandleALSAError("GetDeviceInfo", "snd_ctl_rawmidi_info", code); + continue; + } + snd_rawmidi_info_t *info_copy; + code = snd_rawmidi_info_malloc(&info_copy); + if (code) { + HandleALSAError("GetDeviceInfo", "snd_rawmidi_info_malloc", code); + continue; + } + snd_rawmidi_info_copy(info_copy, info); + try { + info_list->push_back(info_copy); + } catch (std::bad_alloc &e) { + snd_rawmidi_info_free(info_copy); + jack_error("JackALSARawMidiDriver::GetDeviceInfo - " + "std::vector::push_back: %s", e.what()); + } + } +} + +void +JackALSARawMidiDriver::HandleALSAError(const char *driver_func, + const char *alsa_func, int code) +{ + jack_error("JackALSARawMidiDriver::%s - %s: %s", driver_func, alsa_func, + snd_strerror(code)); +} + +bool +JackALSARawMidiDriver::Init() +{ + set_threaded_log_function(); + if (thread->AcquireSelfRealTime(fEngineControl->fServerPriority + 1)) { + jack_error("JackALSARawMidiDriver::Init - could not acquire realtime " + "scheduling. Continuing anyway."); + } + return true; +} + +int +JackALSARawMidiDriver::Open(bool capturing, bool playing, int in_channels, + int out_channels, bool monitor, + const char *capture_driver_name, + const char *playback_driver_name, + jack_nframes_t capture_latency, + jack_nframes_t playback_latency) +{ + snd_rawmidi_info_t *info; + int code = snd_rawmidi_info_malloc(&info); + if (code) { + HandleALSAError("Open", "snd_rawmidi_info_malloc", code); + return -1; + } + std::vector in_info_list; + std::vector out_info_list; + for (int card = -1;;) { + int code = snd_card_next(&card); + if (code) { + HandleALSAError("Open", "snd_card_next", code); + continue; + } + if (card == -1) { + break; + } + char name[32]; + snprintf(name, sizeof(name), "hw:%d", card); + snd_ctl_t *control; + code = snd_ctl_open(&control, name, SND_CTL_NONBLOCK); + if (code) { + HandleALSAError("Open", "snd_ctl_open", code); + continue; + } + for (int device = -1;;) { + code = snd_ctl_rawmidi_next_device(control, &device); + if (code) { + HandleALSAError("Open", "snd_ctl_rawmidi_next_device", code); + continue; + } + if (device == -1) { + break; + } + snd_rawmidi_info_set_device(info, device); + snd_rawmidi_info_set_stream(info, SND_RAWMIDI_STREAM_INPUT); + GetDeviceInfo(control, info, &in_info_list); + snd_rawmidi_info_set_stream(info, SND_RAWMIDI_STREAM_OUTPUT); + GetDeviceInfo(control, info, &out_info_list); + } + snd_ctl_close(control); + } + snd_rawmidi_info_free(info); + size_t potential_inputs = in_info_list.size(); + size_t potential_outputs = out_info_list.size(); + if (! (potential_inputs || potential_outputs)) { + jack_error("JackALSARawMidiDriver::Open - no ALSA raw MIDI input or " + "output ports found."); + return -1; + } + + // XXX: Can't use auto_ptr here. These are arrays, and require the + // delete[] operator. + std::auto_ptr input_ptr; + if (potential_inputs) { + input_ports = new JackALSARawMidiInputPort *[potential_inputs]; + input_ptr.reset(input_ports); + } + std::auto_ptr output_ptr; + if (potential_outputs) { + output_ports = new JackALSARawMidiOutputPort *[potential_outputs]; + output_ptr.reset(output_ports); + } + + size_t num_inputs = 0; + size_t num_outputs = 0; + for (size_t i = 0; i < potential_inputs; i++) { + snd_rawmidi_info_t *info = in_info_list.at(i); + try { + input_ports[num_inputs] = new JackALSARawMidiInputPort(info, i); + + jack_info("JackALSARawMidiDriver::Open - Input port: card=%d, " + "device=%d, subdevice=%d, id=%s, name=%s, subdevice " + "name=%s", + snd_rawmidi_info_get_card(info), + snd_rawmidi_info_get_device(info), + snd_rawmidi_info_get_subdevice(info), + snd_rawmidi_info_get_id(info), + snd_rawmidi_info_get_name(info), + snd_rawmidi_info_get_subdevice_name(info)); + + num_inputs++; + } catch (std::exception e) { + jack_error("JackALSARawMidiDriver::Open - while creating new " + "JackALSARawMidiInputPort: %s", e.what()); + } + snd_rawmidi_info_free(info); + } + for (size_t i = 0; i < potential_outputs; i++) { + snd_rawmidi_info_t *info = out_info_list.at(i); + try { + output_ports[num_outputs] = new JackALSARawMidiOutputPort(info, i); + + jack_info("JackALSARawMidiDriver::Open - Output port: card=%d, " + "device=%d, subdevice=%d, id=%s, name=%s, subdevice " + "name=%s", + snd_rawmidi_info_get_card(info), + snd_rawmidi_info_get_device(info), + snd_rawmidi_info_get_subdevice(info), + snd_rawmidi_info_get_id(info), + snd_rawmidi_info_get_name(info), + snd_rawmidi_info_get_subdevice_name(info)); + + num_outputs++; + } catch (std::exception e) { + jack_error("JackALSARawMidiDriver::Open - while creating new " + "JackALSARawMidiOutputPort: %s", e.what()); + } + snd_rawmidi_info_free(info); + } + if (num_inputs || num_outputs) { + if (! JackMidiDriver::Open(capturing, playing, num_inputs, num_outputs, + monitor, capture_driver_name, + playback_driver_name, capture_latency, + playback_latency)) { + if (potential_inputs) { + input_ptr.release(); + } + if (potential_outputs) { + output_ptr.release(); + } + return 0; + } + jack_error("JackALSARawMidiDriver::Open - JackMidiDriver::Open error"); + } else { + jack_error("JackALSARawMidiDriver::Open - none of the potential " + "inputs or outputs were successfully opened."); + } + Close(); + return -1; +} + +int +JackALSARawMidiDriver::Poll(const jack_nframes_t *wakeup_frame) +{ + struct timespec timeout; + struct timespec *timeout_ptr; + if (! wakeup_frame) { + timeout_ptr = 0; + } else { + timeout_ptr = &timeout; + jack_time_t next_time = GetTimeFromFrames(*wakeup_frame); + jack_time_t now = GetMicroSeconds(); + if (next_time <= now) { + timeout.tv_sec = 0; + timeout.tv_nsec = 0; + } else { + jack_time_t wait_time = next_time - now; + timeout.tv_sec = wait_time / 1000000; + timeout.tv_nsec = (wait_time % 1000000) * 1000; + } + } + return ppoll(poll_fds, poll_fd_count, timeout_ptr, 0); +} + +int +JackALSARawMidiDriver::Read() +{ + jack_nframes_t buffer_size = fEngineControl->fBufferSize; + for (int i = 0; i < fCaptureChannels; i++) { + if (! input_ports[i]->ProcessJack(GetInputBuffer(i), buffer_size)) { + return -1; + } + } + return 0; +} + +int +JackALSARawMidiDriver::Start() +{ + + jack_info("JackALSARawMidiDriver::Start - Starting 'alsarawmidi' driver."); + + JackMidiDriver::Start(); + poll_fd_count = 1; + for (int i = 0; i < fCaptureChannels; i++) { + poll_fd_count += input_ports[i]->GetPollDescriptorCount(); + } + for (int i = 0; i < fPlaybackChannels; i++) { + poll_fd_count += output_ports[i]->GetPollDescriptorCount(); + } + try { + poll_fds = new pollfd[poll_fd_count]; + } catch (std::bad_alloc e) { + jack_error("JackALSARawMidiDriver::Start - creating poll descriptor " + "structures failed: %s", e.what()); + return -1; + } + int flags; + struct pollfd *poll_fd_iter; + if (pipe(fds) == -1) { + jack_error("JackALSARawMidiDriver::Start - while creating wake pipe: " + "%s", strerror(errno)); + goto free_poll_descriptors; + } + flags = fcntl(fds[0], F_GETFL); + if (flags == -1) { + jack_error("JackALSARawMidiDriver::Start = while getting flags for " + "read file descriptor: %s", strerror(errno)); + goto close_fds; + } + if (fcntl(fds[0], F_SETFL, flags | O_NONBLOCK) == -1) { + jack_error("JackALSARawMidiDriver::Start - while setting non-blocking " + "mode for read file descriptor: %s", strerror(errno)); + goto close_fds; + } + flags = fcntl(fds[1], F_GETFL); + if (flags == -1) { + jack_error("JackALSARawMidiDriver::Start = while getting flags for " + "write file descriptor: %s", strerror(errno)); + goto close_fds; + } + if (fcntl(fds[1], F_SETFL, flags | O_NONBLOCK) == -1) { + jack_error("JackALSARawMidiDriver::Start - while setting non-blocking " + "mode for write file descriptor: %s", strerror(errno)); + goto close_fds; + } + poll_fds[0].events = POLLERR | POLLIN | POLLNVAL; + poll_fds[0].fd = fds[0]; + poll_fd_iter = poll_fds + 1; + for (int i = 0; i < fCaptureChannels; i++) { + JackALSARawMidiInputPort *input_port = input_ports[i]; + input_port->PopulatePollDescriptors(poll_fd_iter); + poll_fd_iter += input_port->GetPollDescriptorCount(); + } + for (int i = 0; i < fPlaybackChannels; i++) { + JackALSARawMidiOutputPort *output_port = output_ports[i]; + output_port->PopulatePollDescriptors(poll_fd_iter); + poll_fd_iter += output_port->GetPollDescriptorCount(); + } + + jack_info("JackALSARawMidiDriver::Start - starting ALSA thread ..."); + + if (! thread->StartSync()) { + + jack_info("JackALSARawMidiDriver::Start - started ALSA thread."); + + return 0; + } + jack_error("JackALSARawMidiDriver::Start - failed to start MIDI " + "processing thread."); + close_fds: + close(fds[1]); + fds[1] = -1; + close(fds[0]); + fds[0] = -1; + free_poll_descriptors: + delete[] poll_fds; + poll_fds = 0; + return -1; +} + +int +JackALSARawMidiDriver::Stop() +{ + jack_info("JackALSARawMidiDriver::Stop - stopping 'alsarawmidi' driver."); + + if (fds[1] != -1) { + close(fds[1]); + fds[1] = -1; + } + int result; + const char *verb; + switch (thread->GetStatus()) { + case JackThread::kIniting: + case JackThread::kStarting: + result = thread->Kill(); + verb = "kill"; + break; + case JackThread::kRunning: + result = thread->Stop(); + verb = "stop"; + break; + default: + result = 0; + verb = 0; + } + if (fds[0] != -1) { + close(fds[0]); + fds[0] = -1; + } + if (poll_fds) { + delete[] poll_fds; + poll_fds = 0; + } + if (result) { + jack_error("JackALSARawMidiDriver::Stop - could not %s MIDI " + "processing thread.", verb); + } + return result; +} + +int +JackALSARawMidiDriver::Write() +{ + jack_nframes_t buffer_size = fEngineControl->fBufferSize; + int write_fd = fds[1]; + for (int i = 0; i < fPlaybackChannels; i++) { + if (! output_ports[i]->ProcessJack(GetOutputBuffer(i), buffer_size, + write_fd)) { + return -1; + } + } + return 0; +} + +#ifdef __cplusplus +extern "C" { +#endif + + SERVER_EXPORT jack_driver_desc_t * + driver_get_descriptor() + { + jack_driver_desc_t *desc = + (jack_driver_desc_t *) malloc(sizeof(jack_driver_desc_t)); + if (desc) { + strcpy(desc->desc, "Alternative ALSA raw MIDI backend."); + strcpy(desc->name, "alsarawmidi"); + + // X: There could be parameters here regarding setting I/O buffer + // sizes. I don't think MIDI drivers can accept parameters right + // now without being set as the main driver. + desc->nparams = 0; + desc->params = 0; + } + return desc; + } + + SERVER_EXPORT Jack::JackDriverClientInterface * + driver_initialize(Jack::JackLockedEngine *engine, Jack::JackSynchro *table, + const JSList *params) + { + Jack::JackDriverClientInterface *driver = + new Jack::JackALSARawMidiDriver("system_midi", "alsarawmidi", + engine, table); + if (driver->Open(1, 1, 0, 0, false, "midi in", "midi out", 0, 0)) { + delete driver; + driver = 0; + } + return driver; + } + +#ifdef __cplusplus +} +#endif diff --git a/linux/alsarawmidi/JackALSARawMidiDriver.h b/linux/alsarawmidi/JackALSARawMidiDriver.h new file mode 100755 index 00000000..4dfa05bc --- /dev/null +++ b/linux/alsarawmidi/JackALSARawMidiDriver.h @@ -0,0 +1,98 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#ifndef __JackALSARawMidiDriver__ +#define __JackALSARawMidiDriver__ + +#include + +#include +#include + +#include "JackALSARawMidiInputPort.h" +#include "JackALSARawMidiOutputPort.h" +#include "JackMidiDriver.h" +#include "JackThread.h" + +namespace Jack { + + class JackALSARawMidiDriver: + public JackMidiDriver, public JackRunnableInterface { + + private: + + int fds[2]; + JackALSARawMidiInputPort **input_ports; + JackALSARawMidiOutputPort **output_ports; + nfds_t poll_fd_count; + struct pollfd *poll_fds; + JackThread *thread; + + void + GetDeviceInfo(snd_ctl_t *control, snd_rawmidi_info_t *info, + std::vector *info_list); + + void + HandleALSAError(const char *driver_func, const char *alsa_func, + int code); + + int + Poll(const jack_nframes_t *wakeup_frame); + + public: + + JackALSARawMidiDriver(const char *name, const char *alias, + JackLockedEngine *engine, JackSynchro *table); + ~JackALSARawMidiDriver(); + + int + Attach(); + + int + Close(); + + bool + Execute(); + + bool + Init(); + + int + Open(bool capturing, bool playing, int in_channels, int out_channels, + bool monitoring, const char *capture_driver_name, + const char *playback_driver_name, jack_nframes_t capture_latency, + jack_nframes_t playback_latency); + + int + Read(); + + int + Start(); + + int + Stop(); + + int + Write(); + + }; + +} + +#endif diff --git a/linux/alsarawmidi/JackALSARawMidiInputPort.cpp b/linux/alsarawmidi/JackALSARawMidiInputPort.cpp new file mode 100755 index 00000000..b81c5783 --- /dev/null +++ b/linux/alsarawmidi/JackALSARawMidiInputPort.cpp @@ -0,0 +1,143 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include + +#include "JackALSARawMidiInputPort.h" +#include "JackMidiUtil.h" + +using Jack::JackALSARawMidiInputPort; + +JackALSARawMidiInputPort::JackALSARawMidiInputPort(snd_rawmidi_info_t *info, + size_t index, + size_t max_bytes, + size_t max_messages): + JackALSARawMidiPort(info, index) +{ + alsa_event = 0; + jack_event = 0; + receive_queue = new JackALSARawMidiReceiveQueue(rawmidi, max_bytes); + std::auto_ptr receive_ptr(receive_queue); + thread_queue = new JackMidiAsyncQueue(max_bytes, max_messages); + std::auto_ptr thread_ptr(thread_queue); + write_queue = new JackMidiBufferWriteQueue(); + std::auto_ptr write_ptr(write_queue); + raw_queue = new JackMidiRawInputWriteQueue(thread_queue, max_bytes, + max_messages); + write_ptr.release(); + thread_ptr.release(); + receive_ptr.release(); +} + +JackALSARawMidiInputPort::~JackALSARawMidiInputPort() +{ + delete raw_queue; + delete receive_queue; + delete thread_queue; + delete write_queue; +} + +jack_nframes_t +JackALSARawMidiInputPort::EnqueueALSAEvent() +{ + switch (raw_queue->EnqueueEvent(alsa_event)) { + case JackMidiWriteQueue::BUFFER_FULL: + // Processing events early might free up some space in the raw queue. + raw_queue->Process(); + switch (raw_queue->EnqueueEvent(alsa_event)) { + case JackMidiWriteQueue::BUFFER_TOO_SMALL: + jack_error("JackALSARawMidiInputPort::Process - **BUG** " + "JackMidiRawInputWriteQueue::EnqueueEvent returned " + "`BUFFER_FULL` and then returned `BUFFER_TOO_SMALL` " + "after a `Process()` call."); + // Fallthrough on purpose + case JackMidiWriteQueue::OK: + return 0; + default: + ; + } + break; + case JackMidiWriteQueue::BUFFER_TOO_SMALL: + jack_error("JackALSARawMidiInputPort::Execute - The thread queue " + "couldn't enqueue a %d-byte packet. Dropping event.", + alsa_event->size); + // Fallthrough on purpose + case JackMidiWriteQueue::OK: + return 0; + default: + ; + } + jack_nframes_t alsa_time = alsa_event->time; + jack_nframes_t next_time = raw_queue->Process(); + return (next_time < alsa_time) ? next_time : alsa_time; +} + +bool +JackALSARawMidiInputPort::ProcessALSA(jack_nframes_t *frame) +{ + unsigned short revents; + if (! ProcessPollEvents(&revents)) { + return false; + } + if (alsa_event) { + *frame = EnqueueALSAEvent(); + if (*frame) { + return true; + } + } + if (revents & POLLIN) { + for (alsa_event = receive_queue->DequeueEvent(); alsa_event; + alsa_event = receive_queue->DequeueEvent()) { + *frame = EnqueueALSAEvent(); + if (*frame) { + return true; + } + } + } + *frame = raw_queue->Process(); + return true; +} + +bool +JackALSARawMidiInputPort::ProcessJack(JackMidiBuffer *port_buffer, + jack_nframes_t frames) +{ + write_queue->ResetMidiBuffer(port_buffer, frames); + if (! jack_event) { + jack_event = thread_queue->DequeueEvent(); + } + for (; jack_event; jack_event = thread_queue->DequeueEvent()) { + + // We add `frames` so that MIDI events align with audio as closely as + // possible. + switch (write_queue->EnqueueEvent(jack_event, frames)) { + case JackMidiWriteQueue::BUFFER_TOO_SMALL: + jack_error("JackALSARawMidiInputPort::ProcessJack - The write " + "queue couldn't enqueue a %d-byte event. Dropping " + "event.", jack_event->size); + // Fallthrough on purpose + case JackMidiWriteQueue::OK: + continue; + default: + ; + } + break; + } + return true; +} diff --git a/linux/alsarawmidi/JackALSARawMidiInputPort.h b/linux/alsarawmidi/JackALSARawMidiInputPort.h new file mode 100755 index 00000000..55ad2278 --- /dev/null +++ b/linux/alsarawmidi/JackALSARawMidiInputPort.h @@ -0,0 +1,62 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#ifndef __JackALSARawMidiInputPort__ +#define __JackALSARawMidiInputPort__ + +#include "JackALSARawMidiPort.h" +#include "JackALSARawMidiReceiveQueue.h" +#include "JackMidiAsyncQueue.h" +#include "JackMidiBufferWriteQueue.h" +#include "JackMidiRawInputWriteQueue.h" + +namespace Jack { + + class JackALSARawMidiInputPort: public JackALSARawMidiPort { + + private: + + jack_midi_event_t *alsa_event; + jack_midi_event_t *jack_event; + JackMidiRawInputWriteQueue *raw_queue; + JackALSARawMidiReceiveQueue *receive_queue; + JackMidiAsyncQueue *thread_queue; + JackMidiBufferWriteQueue *write_queue; + + jack_nframes_t + EnqueueALSAEvent(); + + public: + + JackALSARawMidiInputPort(snd_rawmidi_info_t *info, size_t index, + size_t max_bytes=4096, + size_t max_messages=1024); + ~JackALSARawMidiInputPort(); + + bool + ProcessALSA(jack_nframes_t *frame); + + bool + ProcessJack(JackMidiBuffer *port_buffer, jack_nframes_t frames); + + }; + +} + +#endif diff --git a/linux/alsarawmidi/JackALSARawMidiOutputPort.cpp b/linux/alsarawmidi/JackALSARawMidiOutputPort.cpp new file mode 100755 index 00000000..1b9a19bb --- /dev/null +++ b/linux/alsarawmidi/JackALSARawMidiOutputPort.cpp @@ -0,0 +1,172 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include + +#include "JackALSARawMidiOutputPort.h" + +using Jack::JackALSARawMidiOutputPort; + +JackALSARawMidiOutputPort::JackALSARawMidiOutputPort(snd_rawmidi_info_t *info, + size_t index, + size_t max_bytes, + size_t max_messages): + JackALSARawMidiPort(info, index) +{ + alsa_event = 0; + blocked = false; + read_queue = new JackMidiBufferReadQueue(); + std::auto_ptr read_ptr(read_queue); + send_queue = new JackALSARawMidiSendQueue(rawmidi); + std::auto_ptr send_ptr(send_queue); + thread_queue = new JackMidiAsyncQueue(max_bytes, max_messages); + std::auto_ptr thread_ptr(thread_queue); + raw_queue = new JackMidiRawOutputWriteQueue(send_queue, max_bytes, + max_messages, max_messages); + thread_ptr.release(); + send_ptr.release(); + read_ptr.release(); +} + +JackALSARawMidiOutputPort::~JackALSARawMidiOutputPort() +{ + delete raw_queue; + delete read_queue; + delete send_queue; + delete thread_queue; +} + +jack_midi_event_t * +JackALSARawMidiOutputPort::DequeueALSAEvent(int read_fd) +{ + jack_midi_event_t *event = thread_queue->DequeueEvent(); + if (event) { + char c; + ssize_t result = read(read_fd, &c, 1); + if (! result) { + jack_error("JackALSARawMidiOutputPort::DequeueALSAEvent - **BUG** " + "An event was dequeued from the thread queue, but no " + "byte was available for reading from the pipe file " + "descriptor."); + } else if (result < 0) { + jack_error("JackALSARawMidiOutputPort::DequeueALSAEvent - error " + "reading a byte from the pipe file descriptor: %s", + strerror(errno)); + } + } + return event; +} + +bool +JackALSARawMidiOutputPort::ProcessALSA(int read_fd, jack_nframes_t *frame) +{ + unsigned short revents; + if (! ProcessPollEvents(&revents)) { + return false; + } + if (blocked) { + if (! (revents & POLLOUT)) { + *frame = 0; + return true; + } + blocked = false; + } + if (! alsa_event) { + alsa_event = DequeueALSAEvent(read_fd); + } + for (; alsa_event; alsa_event = DequeueALSAEvent(read_fd)) { + switch (raw_queue->EnqueueEvent(alsa_event)) { + case JackMidiWriteQueue::BUFFER_FULL: + // Try to free up some space by processing events early. + raw_queue->Process(); + switch (raw_queue->EnqueueEvent(alsa_event)) { + case JackMidiWriteQueue::BUFFER_TOO_SMALL: + jack_error("JackALSARawMidiOutputPort::ProcessALSA - **BUG** " + "JackMidiRawOutputWriteQueue::EnqueueEvent " + "returned `BUFFER_FULL`, and then returned " + "`BUFFER_TOO_SMALL` after a Process() call."); + // Fallthrough on purpose + case JackMidiWriteQueue::OK: + continue; + default: + ; + } + goto process_events; + case JackMidiWriteQueue::BUFFER_TOO_SMALL: + jack_error("JackALSARawMidiOutputPort::ProcessALSA - The raw " + "output queue couldn't enqueue a %d-byte event. " + "Dropping event.", alsa_event->size); + // Fallthrough on purpose + case JackMidiWriteQueue::OK: + continue; + default: + ; + } + break; + } + process_events: + *frame = raw_queue->Process(); + blocked = send_queue->IsBlocked(); + if (blocked) { + + jack_info("JackALSARawMidiOutputPort::ProcessALSA - MIDI port is " + "blocked"); + + SetPollEventMask(POLLERR | POLLNVAL | POLLOUT); + *frame = 0; + } else { + SetPollEventMask(POLLERR | POLLNVAL); + } + return true; +} + +bool +JackALSARawMidiOutputPort::ProcessJack(JackMidiBuffer *port_buffer, + jack_nframes_t frames, int write_fd) +{ + read_queue->ResetMidiBuffer(port_buffer); + for (jack_midi_event_t *event = read_queue->DequeueEvent(); event; + event = read_queue->DequeueEvent()) { + if (event->size > thread_queue->GetAvailableSpace()) { + jack_error("JackALSARawMidiOutputPort::ProcessJack - The thread " + "queue doesn't have enough room to enqueue a %d-byte " + "event. Dropping event.", event->size); + continue; + } + char c = 1; + ssize_t result = write(write_fd, &c, 1); + assert(result <= 1); + if (result < 0) { + jack_error("JackALSARawMidiOutputPort::ProcessJack - error " + "writing a byte to the pipe file descriptor: %s", + strerror(errno)); + return false; + } + if (! result) { + // Recoverable. + jack_error("JackALSARawMidiOutputPort::ProcessJack - Couldn't " + "write a byte to the pipe file descriptor. Dropping " + "event."); + } else { + assert(thread_queue->EnqueueEvent(event, frames) == + JackMidiWriteQueue::OK); + } + } + return true; +} diff --git a/linux/alsarawmidi/JackALSARawMidiOutputPort.h b/linux/alsarawmidi/JackALSARawMidiOutputPort.h new file mode 100755 index 00000000..6707e381 --- /dev/null +++ b/linux/alsarawmidi/JackALSARawMidiOutputPort.h @@ -0,0 +1,63 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#ifndef __JackALSARawMidiOutputPort__ +#define __JackALSARawMidiOutputPort__ + +#include "JackALSARawMidiPort.h" +#include "JackALSARawMidiSendQueue.h" +#include "JackMidiAsyncQueue.h" +#include "JackMidiBufferReadQueue.h" +#include "JackMidiRawOutputWriteQueue.h" + +namespace Jack { + + class JackALSARawMidiOutputPort: public JackALSARawMidiPort { + + private: + + jack_midi_event_t *alsa_event; + bool blocked; + JackMidiRawOutputWriteQueue *raw_queue; + JackMidiBufferReadQueue *read_queue; + JackALSARawMidiSendQueue *send_queue; + JackMidiAsyncQueue *thread_queue; + + jack_midi_event_t * + DequeueALSAEvent(int read_fd); + + public: + + JackALSARawMidiOutputPort(snd_rawmidi_info_t *info, size_t index, + size_t max_bytes=4096, + size_t max_messages=1024); + ~JackALSARawMidiOutputPort(); + + bool + ProcessALSA(int read_fd, jack_nframes_t *frame); + + bool + ProcessJack(JackMidiBuffer *port_buffer, jack_nframes_t frames, + int write_fd); + + }; + +} + +#endif diff --git a/linux/alsarawmidi/JackALSARawMidiPort.cpp b/linux/alsarawmidi/JackALSARawMidiPort.cpp new file mode 100755 index 00000000..021241cf --- /dev/null +++ b/linux/alsarawmidi/JackALSARawMidiPort.cpp @@ -0,0 +1,191 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include +#include + +#include "JackALSARawMidiPort.h" +#include "JackError.h" + +using Jack::JackALSARawMidiPort; + +JackALSARawMidiPort::JackALSARawMidiPort(snd_rawmidi_info_t *info, + size_t index) +{ + int card = snd_rawmidi_info_get_card(info); + unsigned int device = snd_rawmidi_info_get_device(info); + unsigned int subdevice = snd_rawmidi_info_get_subdevice(info); + char device_id[32]; + snprintf(device_id, sizeof(device_id), "hw:%d,%d,%d", card, device, + subdevice); + const char *alias_prefix; + const char *error_message; + snd_rawmidi_t **in; + snd_rawmidi_t **out; + const char *name_suffix; + if (snd_rawmidi_info_get_stream(info) == SND_RAWMIDI_STREAM_OUTPUT) { + alias_prefix = "system:midi_playback_"; + in = 0; + name_suffix = "out"; + out = &rawmidi; + } else { + alias_prefix = "system:midi_capture_"; + in = &rawmidi; + name_suffix = "in"; + out = 0; + } + const char *device_name; + const char *func; + int code = snd_rawmidi_open(in, out, device_id, SND_RAWMIDI_NONBLOCK); + if (code) { + error_message = snd_strerror(code); + func = "snd_rawmidi_open"; + goto handle_error; + } + snd_rawmidi_params_t *params; + code = snd_rawmidi_params_malloc(¶ms); + if (code) { + error_message = snd_strerror(code); + func = "snd_rawmidi_params_malloc"; + goto close; + } + code = snd_rawmidi_params_current(rawmidi, params); + if (code) { + error_message = snd_strerror(code); + func = "snd_rawmidi_params_current"; + goto free_params; + } + code = snd_rawmidi_params_set_avail_min(rawmidi, params, 1); + if (code) { + error_message = snd_strerror(code); + func = "snd_rawmidi_params_set_avail_min"; + goto free_params; + } + + // Smallest valid buffer size. + code = snd_rawmidi_params_set_buffer_size(rawmidi, params, 32); + if (code) { + error_message = snd_strerror(code); + func = "snd_rawmidi_params_set_buffer_size"; + goto free_params; + } + + code = snd_rawmidi_params_set_no_active_sensing(rawmidi, params, 1); + if (code) { + error_message = snd_strerror(code); + func = "snd_rawmidi_params_set_no_active_sensing"; + goto free_params; + } + code = snd_rawmidi_params(rawmidi, params); + if (code) { + error_message = snd_strerror(code); + func = "snd_rawmidi_params"; + goto free_params; + } + snd_rawmidi_params_free(params); + num_fds = snd_rawmidi_poll_descriptors_count(rawmidi); + if (! num_fds) { + error_message = "returned '0' count for poll descriptors"; + func = "snd_rawmidi_poll_descriptors_count"; + goto close; + } + snprintf(alias, sizeof(alias), "%s%d", alias_prefix, index + 1); + snprintf(name, sizeof(name), "system:%d-%d %s %d %s", card + 1, device + 1, + snd_rawmidi_info_get_name(info), subdevice + 1, name_suffix); + return; + free_params: + snd_rawmidi_params_free(params); + close: + snd_rawmidi_close(rawmidi); + handle_error: + throw std::runtime_error(std::string(func) + ": " + error_message); +} + +JackALSARawMidiPort::~JackALSARawMidiPort() +{ + if (rawmidi) { + int code = snd_rawmidi_close(rawmidi); + if (code) { + jack_error("JackALSARawMidiPort::~JackALSARawMidiPort - " + "snd_rawmidi_close: %s", snd_strerror(code)); + } + rawmidi = 0; + } +} + +const char * +JackALSARawMidiPort::GetAlias() +{ + return alias; +} + +const char * +JackALSARawMidiPort::GetName() +{ + return name; +} + +int +JackALSARawMidiPort::GetPollDescriptorCount() +{ + return num_fds; +} + +bool +JackALSARawMidiPort::PopulatePollDescriptors(struct pollfd *poll_fd) +{ + bool result = snd_rawmidi_poll_descriptors(rawmidi, poll_fd, num_fds) == + num_fds; + if (result) { + poll_fds = poll_fd; + } + return result; +} + +bool +JackALSARawMidiPort::ProcessPollEvents(unsigned short *revents) +{ + int code = snd_rawmidi_poll_descriptors_revents(rawmidi, poll_fds, num_fds, + revents); + if (code) { + jack_error("JackALSARawMidiPort::ProcessPollEvents - " + "snd_rawmidi_poll_descriptors_revents: %s", + snd_strerror(code)); + return false; + } + if ((*revents) & POLLNVAL) { + jack_error("JackALSARawMidiPort::ProcessPollEvents - the file " + "descriptor is invalid."); + return false; + } + if ((*revents) & POLLERR) { + jack_error("JackALSARawMidiPort::ProcessPollEvents - an error has " + "occurred on the device or stream."); + return false; + } + return true; +} + +void +JackALSARawMidiPort::SetPollEventMask(unsigned short events) +{ + for (int i = 0; i < num_fds; i++) { + (poll_fds + i)->events = events; + } +} diff --git a/linux/alsarawmidi/JackALSARawMidiPort.h b/linux/alsarawmidi/JackALSARawMidiPort.h new file mode 100755 index 00000000..16d1a006 --- /dev/null +++ b/linux/alsarawmidi/JackALSARawMidiPort.h @@ -0,0 +1,72 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#ifndef __JackALSARawMidiPort__ +#define __JackALSARawMidiPort__ + +#include +#include + +#include "JackConstants.h" + +namespace Jack { + + class JackALSARawMidiPort { + + private: + + char alias[JACK_CLIENT_NAME_SIZE + JACK_PORT_NAME_SIZE]; + char name[JACK_CLIENT_NAME_SIZE + JACK_PORT_NAME_SIZE]; + int num_fds; + struct pollfd *poll_fds; + + protected: + + snd_rawmidi_t *rawmidi; + + bool + ProcessPollEvents(unsigned short *revents); + + void + SetPollEventMask(unsigned short events); + + public: + + JackALSARawMidiPort(snd_rawmidi_info_t *info, size_t index); + + virtual + ~JackALSARawMidiPort(); + + const char * + GetAlias(); + + const char * + GetName(); + + int + GetPollDescriptorCount(); + + bool + PopulatePollDescriptors(struct pollfd *poll_fd); + + }; + +} + +#endif diff --git a/linux/alsarawmidi/JackALSARawMidiReceiveQueue.cpp b/linux/alsarawmidi/JackALSARawMidiReceiveQueue.cpp new file mode 100755 index 00000000..61af8e91 --- /dev/null +++ b/linux/alsarawmidi/JackALSARawMidiReceiveQueue.cpp @@ -0,0 +1,54 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include "JackALSARawMidiReceiveQueue.h" +#include "JackError.h" +#include "JackMidiUtil.h" + +using Jack::JackALSARawMidiReceiveQueue; + +JackALSARawMidiReceiveQueue:: +JackALSARawMidiReceiveQueue(snd_rawmidi_t *rawmidi, size_t buffer_size) +{ + buffer = new jack_midi_data_t[buffer_size]; + this->buffer_size = buffer_size; + this->rawmidi = rawmidi; +} + +JackALSARawMidiReceiveQueue::~JackALSARawMidiReceiveQueue() +{ + delete[] buffer; +} + +jack_midi_event_t * +JackALSARawMidiReceiveQueue::DequeueEvent() +{ + ssize_t result = snd_rawmidi_read(rawmidi, buffer, buffer_size); + if (result > 0) { + event.buffer = buffer; + event.size = (size_t) result; + event.time = GetCurrentFrame(); + return &event; + } + if (result && (result != -EWOULDBLOCK)) { + jack_error("JackALSARawMidiReceiveQueue::DequeueEvent - " + "snd_rawmidi_read: %s", snd_strerror(result)); + } + return 0; +} diff --git a/linux/alsarawmidi/JackALSARawMidiReceiveQueue.h b/linux/alsarawmidi/JackALSARawMidiReceiveQueue.h new file mode 100755 index 00000000..ffe4ea5f --- /dev/null +++ b/linux/alsarawmidi/JackALSARawMidiReceiveQueue.h @@ -0,0 +1,51 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#ifndef __JackALSARawMidiReceiveQueue__ +#define __JackALSARawMidiReceiveQueue__ + +#include + +#include "JackMidiReceiveQueue.h" + +namespace Jack { + + class JackALSARawMidiReceiveQueue: public JackMidiReceiveQueue { + + private: + + jack_midi_data_t *buffer; + size_t buffer_size; + jack_midi_event_t event; + snd_rawmidi_t *rawmidi; + + public: + + JackALSARawMidiReceiveQueue(snd_rawmidi_t *rawmidi, + size_t buffer_size=4096); + ~JackALSARawMidiReceiveQueue(); + + jack_midi_event_t * + DequeueEvent(); + + }; + +} + +#endif diff --git a/linux/alsarawmidi/JackALSARawMidiSendQueue.cpp b/linux/alsarawmidi/JackALSARawMidiSendQueue.cpp new file mode 100755 index 00000000..156986a7 --- /dev/null +++ b/linux/alsarawmidi/JackALSARawMidiSendQueue.cpp @@ -0,0 +1,59 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include + +#include "JackALSARawMidiSendQueue.h" +#include "JackMidiUtil.h" + +using Jack::JackALSARawMidiSendQueue; + +JackALSARawMidiSendQueue::JackALSARawMidiSendQueue(snd_rawmidi_t *rawmidi) +{ + this->rawmidi = rawmidi; + blocked = false; +} + +Jack::JackMidiWriteQueue::EnqueueResult +JackALSARawMidiSendQueue::EnqueueEvent(jack_nframes_t time, size_t size, + jack_midi_data_t *buffer) +{ + assert(size == 1); + if (time > GetCurrentFrame()) { + return EVENT_EARLY; + } + ssize_t result = snd_rawmidi_write(rawmidi, buffer, 1); + switch (result) { + case 1: + blocked = false; + return OK; + case -EWOULDBLOCK: + blocked = true; + return BUFFER_FULL; + } + jack_error("JackALSARawMidiSendQueue::EnqueueEvent - snd_rawmidi_write: " + "%s", snd_strerror(result)); + return EN_ERROR; +} + +bool +JackALSARawMidiSendQueue::IsBlocked() +{ + return blocked; +} diff --git a/linux/alsarawmidi/JackALSARawMidiSendQueue.h b/linux/alsarawmidi/JackALSARawMidiSendQueue.h new file mode 100755 index 00000000..2d904b3a --- /dev/null +++ b/linux/alsarawmidi/JackALSARawMidiSendQueue.h @@ -0,0 +1,51 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#ifndef __JackALSARawMidiSendQueue__ +#define __JackALSARawMidiSendQueue__ + +#include + +#include "JackMidiSendQueue.h" + +namespace Jack { + + class JackALSARawMidiSendQueue: public JackMidiSendQueue { + + private: + + bool blocked; + snd_rawmidi_t *rawmidi; + + public: + + JackALSARawMidiSendQueue(snd_rawmidi_t *rawmidi); + + JackMidiWriteQueue::EnqueueResult + EnqueueEvent(jack_nframes_t time, size_t size, + jack_midi_data_t *buffer); + + bool + IsBlocked(); + + }; + +} + +#endif diff --git a/linux/firewire/JackFFADODriver.cpp b/linux/firewire/JackFFADODriver.cpp index 2f855f37..62f10ad1 100644 --- a/linux/firewire/JackFFADODriver.cpp +++ b/linux/firewire/JackFFADODriver.cpp @@ -36,8 +36,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. #include #include "JackFFADODriver.h" -#include "JackFFADOMidiInput.h" -#include "JackFFADOMidiOutput.h" +#include "JackFFADOMidiInputPort.h" +#include "JackFFADOMidiOutputPort.h" #include "JackEngineControl.h" #include "JackClientControl.h" #include "JackPort.h" @@ -94,14 +94,9 @@ JackFFADODriver::ffado_driver_read (ffado_driver_t * driver, jack_nframes_t nfra /* process the midi data */ for (chn = 0; chn < driver->capture_nchannels; chn++) { if (driver->capture_channels[chn].stream_type == ffado_stream_type_midi) { - JackFFADOMidiInput *midi_input = (JackFFADOMidiInput *) driver->capture_channels[chn].midi_input; + JackFFADOMidiInputPort *midi_input = (JackFFADOMidiInputPort *) driver->capture_channels[chn].midi_input; JackMidiBuffer *buffer = (JackMidiBuffer *) fGraphManager->GetBuffer(fCapturePortList[chn], nframes); - if (! buffer) { - continue; - } - midi_input->SetInputBuffer(driver->capture_channels[chn].midi_buffer); - midi_input->SetPortBuffer(buffer); - midi_input->Process(nframes); + midi_input->Process(buffer, driver->capture_channels[chn].midi_buffer, nframes); } } @@ -138,16 +133,9 @@ JackFFADODriver::ffado_driver_write (ffado_driver_t * driver, jack_nframes_t nfr memset(midi_buffer, 0, nframes * sizeof(uint32_t)); buf = (jack_default_audio_sample_t *) fGraphManager->GetBuffer(fPlaybackPortList[chn], nframes); ffado_streaming_set_playback_stream_buffer(driver->dev, chn, (char *)(midi_buffer)); - /* if the returned buffer is invalid, continue */ - if (!buf) { - ffado_streaming_playback_stream_onoff(driver->dev, chn, 0); - continue; - } - ffado_streaming_playback_stream_onoff(driver->dev, chn, 1); - JackFFADOMidiOutput *midi_output = (JackFFADOMidiOutput *) driver->playback_channels[chn].midi_output; - midi_output->SetPortBuffer((JackMidiBuffer *) buf); - midi_output->SetOutputBuffer(midi_buffer); - midi_output->Process(nframes); + ffado_streaming_playback_stream_onoff(driver->dev, chn, buf ? 1 : 0); + JackFFADOMidiOutputPort *midi_output = (JackFFADOMidiOutputPort *) driver->playback_channels[chn].midi_output; + midi_output->Process((JackMidiBuffer *) buf, midi_buffer, nframes); } else { // always have a valid buffer ffado_streaming_set_playback_stream_buffer(driver->dev, chn, (char *)(driver->nullbuffer)); @@ -155,9 +143,7 @@ JackFFADODriver::ffado_driver_write (ffado_driver_t * driver, jack_nframes_t nfr } } } - ffado_streaming_transfer_playback_buffers(driver->dev); - printExit(); return 0; } @@ -476,7 +462,7 @@ int JackFFADODriver::Attach() printError(" cannot enable port %s", buf); } - driver->capture_channels[chn].midi_input = new JackFFADOMidiInput(); + driver->capture_channels[chn].midi_input = new JackFFADOMidiInputPort(); // setup the midi buffer driver->capture_channels[chn].midi_buffer = (uint32_t *)calloc(driver->period_size, sizeof(uint32_t)); @@ -557,12 +543,12 @@ int JackFFADODriver::Attach() // This constructor optionally accepts arguments for the // non-realtime buffer size and the realtime buffer size. Ideally, // these would become command-line options for the FFADO driver. - driver->playback_channels[chn].midi_output = new JackFFADOMidiOutput(); + driver->playback_channels[chn].midi_output = new JackFFADOMidiOutputPort(); driver->playback_channels[chn].midi_buffer = (uint32_t *)calloc(driver->period_size, sizeof(uint32_t)); port = fGraphManager->GetPort(port_index); - range.min = range.max = (driver->period_size * (driver->device_options.nb_buffers - 1)) + driver->playback_frame_latency; + range.min = range.max = (driver->period_size * (driver->device_options.nb_buffers - 1)) + ((fEngineControl->fSyncMode) ? 0 : fEngineControl->fBufferSize) + driver->playback_frame_latency; port->SetLatencyRange(JackPlaybackLatency, &range); fPlaybackPortList[chn] = port_index; jack_log("JackFFADODriver::Attach fPlaybackPortList[i] %ld ", port_index); @@ -600,7 +586,7 @@ int JackFFADODriver::Detach() if (driver->capture_channels[chn].midi_buffer) free(driver->capture_channels[chn].midi_buffer); if (driver->capture_channels[chn].midi_input) - delete ((JackFFADOMidiInput *) (driver->capture_channels[chn].midi_input)); + delete ((JackFFADOMidiInputPort *) (driver->capture_channels[chn].midi_input)); } free(driver->capture_channels); @@ -608,7 +594,7 @@ int JackFFADODriver::Detach() if (driver->playback_channels[chn].midi_buffer) free(driver->playback_channels[chn].midi_buffer); if (driver->playback_channels[chn].midi_output) - delete ((JackFFADOMidiOutput *) (driver->playback_channels[chn].midi_output)); + delete ((JackFFADOMidiOutputPort *) (driver->playback_channels[chn].midi_output)); } free(driver->playback_channels); diff --git a/linux/firewire/JackFFADOMidiInput.cpp b/linux/firewire/JackFFADOMidiInput.cpp deleted file mode 100644 index 38ed539b..00000000 --- a/linux/firewire/JackFFADOMidiInput.cpp +++ /dev/null @@ -1,59 +0,0 @@ -/* -Copyright (C) 2009 Devin Anderson - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as published by -the Free Software Foundation; either version 2.1 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -*/ - -#include - -#include "JackFFADOMidiInput.h" - -namespace Jack { - -JackFFADOMidiInput::JackFFADOMidiInput(size_t buffer_size): - JackPhysicalMidiInput(buffer_size) -{ - new_period = true; -} - -JackFFADOMidiInput::~JackFFADOMidiInput() -{ - // Empty -} - -jack_nframes_t -JackFFADOMidiInput::Receive(jack_midi_data_t *datum, - jack_nframes_t current_frame, - jack_nframes_t total_frames) -{ - assert(input_buffer); - if (! new_period) { - current_frame += 8; - } else { - new_period = false; - } - for (; current_frame < total_frames; current_frame += 8) { - uint32_t data = input_buffer[current_frame]; - if (data & 0xff000000) { - *datum = (jack_midi_data_t) (data & 0xff); - return current_frame; - } - } - new_period = true; - return total_frames; -} - -} diff --git a/linux/firewire/JackFFADOMidiInputPort.cpp b/linux/firewire/JackFFADOMidiInputPort.cpp new file mode 100644 index 00000000..3923bbe0 --- /dev/null +++ b/linux/firewire/JackFFADOMidiInputPort.cpp @@ -0,0 +1,94 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include + +#include "JackFFADOMidiInputPort.h" +#include "JackMidiUtil.h" + +using Jack::JackFFADOMidiInputPort; + +JackFFADOMidiInputPort::JackFFADOMidiInputPort(size_t max_bytes) +{ + event = 0; + receive_queue = new JackFFADOMidiReceiveQueue(); + std::auto_ptr receive_queue_ptr(receive_queue); + write_queue = new JackMidiBufferWriteQueue(); + std::auto_ptr write_queue_ptr(write_queue); + raw_queue = new JackMidiRawInputWriteQueue(write_queue, max_bytes, + max_bytes); + write_queue_ptr.release(); + receive_queue_ptr.release(); +} + +JackFFADOMidiInputPort::~JackFFADOMidiInputPort() +{ + delete raw_queue; + delete receive_queue; + delete write_queue; +} + +void +JackFFADOMidiInputPort::Process(JackMidiBuffer *port_buffer, + uint32_t *input_buffer, jack_nframes_t frames) +{ + receive_queue->ResetInputBuffer(input_buffer, frames); + write_queue->ResetMidiBuffer(port_buffer, frames); + jack_nframes_t boundary_frame = GetLastFrame() + frames; + if (! event) { + event = receive_queue->DequeueEvent(); + } + for (; event; event = receive_queue->DequeueEvent()) { + switch (raw_queue->EnqueueEvent(event)) { + case JackMidiWriteQueue::BUFFER_FULL: + + // Processing events early might free up some space in the raw + // input queue. + + raw_queue->Process(boundary_frame); + switch (raw_queue->EnqueueEvent(event)) { + case JackMidiWriteQueue::BUFFER_TOO_SMALL: + // This shouldn't really happen. It indicates a bug if it + // does. + jack_error("JackFFADOMidiInputPort::Process - **BUG** " + "JackMidiRawInputWriteQueue::EnqueueEvent returned " + "`BUFFER_FULL`, and then returned " + "`BUFFER_TOO_SMALL` after a `Process()` call."); + // Fallthrough on purpose + case JackMidiWriteQueue::OK: + continue; + default: + return; + } + case JackMidiWriteQueue::BUFFER_TOO_SMALL: + jack_error("JackFFADOMidiInputPort::Process - The write queue " + "couldn't enqueue a %d-byte event. Dropping event.", + event->size); + // Fallthrough on purpose + case JackMidiWriteQueue::OK: + continue; + default: + // This is here to stop compliers from warning us about not + // handling enumeration values. + ; + } + break; + } + raw_queue->Process(boundary_frame); +} diff --git a/linux/firewire/JackFFADOMidiInputPort.h b/linux/firewire/JackFFADOMidiInputPort.h new file mode 100644 index 00000000..f4c70a80 --- /dev/null +++ b/linux/firewire/JackFFADOMidiInputPort.h @@ -0,0 +1,51 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#ifndef __JackFFADOMidiInputPort__ +#define __JackFFADOMidiInputPort__ + +#include "JackFFADOMidiReceiveQueue.h" +#include "JackMidiBufferWriteQueue.h" +#include "JackMidiRawInputWriteQueue.h" + +namespace Jack { + + class JackFFADOMidiInputPort { + + private: + + jack_midi_event_t *event; + JackMidiRawInputWriteQueue *raw_queue; + JackFFADOMidiReceiveQueue *receive_queue; + JackMidiBufferWriteQueue *write_queue; + + public: + + JackFFADOMidiInputPort(size_t max_bytes=4096); + ~JackFFADOMidiInputPort(); + + void + Process(JackMidiBuffer *port_buffer, uint32_t *input_buffer, + jack_nframes_t frames); + + }; + +} + +#endif diff --git a/linux/firewire/JackFFADOMidiOutput.cpp b/linux/firewire/JackFFADOMidiOutput.cpp deleted file mode 100644 index 995f2d28..00000000 --- a/linux/firewire/JackFFADOMidiOutput.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/* -Copyright (C) 2009 Devin Anderson - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as published by -the Free Software Foundation; either version 2.1 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -*/ - -#include - -#include "JackError.h" -#include "JackFFADOMidiOutput.h" - -namespace Jack { - -JackFFADOMidiOutput::JackFFADOMidiOutput(size_t non_rt_buffer_size, - size_t rt_buffer_size): - JackPhysicalMidiOutput(non_rt_buffer_size, rt_buffer_size) -{ - // Empty -} - -JackFFADOMidiOutput::~JackFFADOMidiOutput() -{ - // Empty -} - -jack_nframes_t -JackFFADOMidiOutput::Advance(jack_nframes_t current_frame) -{ - if (current_frame % 8) { - current_frame = (current_frame & (~ ((jack_nframes_t) 7))) + 8; - } - return current_frame; -} - -jack_nframes_t -JackFFADOMidiOutput::Send(jack_nframes_t current_frame, jack_midi_data_t datum) -{ - assert(output_buffer); - - jack_log("JackFFADOMidiOutput::Send (%d) - Sending '%x' byte.", - current_frame, (unsigned int) datum); - - output_buffer[current_frame] = 0x01000000 | ((uint32_t) datum); - return current_frame + 8; -} - -} diff --git a/linux/firewire/JackFFADOMidiOutputPort.cpp b/linux/firewire/JackFFADOMidiOutputPort.cpp new file mode 100644 index 00000000..b916c8c5 --- /dev/null +++ b/linux/firewire/JackFFADOMidiOutputPort.cpp @@ -0,0 +1,98 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include + +#include "JackFFADOMidiOutputPort.h" +#include "JackMidiUtil.h" + +using Jack::JackFFADOMidiOutputPort; + +JackFFADOMidiOutputPort::JackFFADOMidiOutputPort(size_t non_rt_size, + size_t max_non_rt_messages, + size_t max_rt_messages) +{ + event = 0; + read_queue = new JackMidiBufferReadQueue(); + std::auto_ptr read_queue_ptr(read_queue); + send_queue = new JackFFADOMidiSendQueue(); + std::auto_ptr send_queue_ptr(send_queue); + raw_queue = new JackMidiRawOutputWriteQueue(send_queue, non_rt_size, + max_non_rt_messages, + max_rt_messages); + send_queue_ptr.release(); + read_queue_ptr.release(); +} + +JackFFADOMidiOutputPort::~JackFFADOMidiOutputPort() +{ + delete raw_queue; + delete read_queue; + delete send_queue; +} + +void +JackFFADOMidiOutputPort::Process(JackMidiBuffer *port_buffer, + uint32_t *output_buffer, + jack_nframes_t frames) +{ + read_queue->ResetMidiBuffer(port_buffer); + send_queue->ResetOutputBuffer(output_buffer, frames); + jack_nframes_t boundary_frame = GetLastFrame() + frames; + if (! event) { + event = read_queue->DequeueEvent(); + } + for (; event; event = read_queue->DequeueEvent()) { + switch (raw_queue->EnqueueEvent(event)) { + case JackMidiWriteQueue::BUFFER_FULL: + + // Processing events early might free up some space in the raw + // output queue. + + raw_queue->Process(boundary_frame); + switch (raw_queue->EnqueueEvent(event)) { + case JackMidiWriteQueue::BUFFER_TOO_SMALL: + // This shouldn't really happen. It indicates a bug if it + // does. + jack_error("JackFFADOMidiOutputPort::Process - **BUG** " + "JackMidiRawOutputWriteQueue::EnqueueEvent " + "returned `BUFFER_FULL`, and then returned " + "`BUFFER_TOO_SMALL` after a `Process()` call."); + // Fallthrough on purpose + case JackMidiWriteQueue::OK: + continue; + default: + return; + } + case JackMidiWriteQueue::BUFFER_TOO_SMALL: + jack_error("JackFFADOMidiOutputPort::Process - The write queue " + "couldn't enqueue a %d-byte event. Dropping event.", + event->size); + // Fallthrough on purpose + case JackMidiWriteQueue::OK: + continue; + default: + // This is here to stop compliers from warning us about not + // handling enumeration values. + ; + } + break; + } + raw_queue->Process(boundary_frame); +} diff --git a/linux/firewire/JackFFADOMidiOutputPort.h b/linux/firewire/JackFFADOMidiOutputPort.h new file mode 100644 index 00000000..4ca309bb --- /dev/null +++ b/linux/firewire/JackFFADOMidiOutputPort.h @@ -0,0 +1,53 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#ifndef __JackFFADOMidiOutputPort__ +#define __JackFFADOMidiOutputPort__ + +#include "JackFFADOMidiSendQueue.h" +#include "JackMidiBufferReadQueue.h" +#include "JackMidiRawOutputWriteQueue.h" + +namespace Jack { + + class JackFFADOMidiOutputPort { + + private: + + jack_midi_event_t *event; + JackMidiRawOutputWriteQueue *raw_queue; + JackMidiBufferReadQueue *read_queue; + JackFFADOMidiSendQueue *send_queue; + + public: + + JackFFADOMidiOutputPort(size_t non_rt_size=4096, + size_t max_non_rt_messages=1024, + size_t max_rt_messages=128); + ~JackFFADOMidiOutputPort(); + + void + Process(JackMidiBuffer *port_buffer, uint32_t *output_buffer, + jack_nframes_t frames); + + }; + +} + +#endif diff --git a/linux/firewire/JackFFADOMidiReceiveQueue.cpp b/linux/firewire/JackFFADOMidiReceiveQueue.cpp new file mode 100644 index 00000000..4b67f329 --- /dev/null +++ b/linux/firewire/JackFFADOMidiReceiveQueue.cpp @@ -0,0 +1,55 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include "JackFFADOMidiReceiveQueue.h" +#include "JackMidiUtil.h" + +using Jack::JackFFADOMidiReceiveQueue; + +JackFFADOMidiReceiveQueue::JackFFADOMidiReceiveQueue() +{ + // Empty +} + +jack_midi_event_t * +JackFFADOMidiReceiveQueue::DequeueEvent() +{ + for (; index < length; index += 8) { + uint32_t data = input_buffer[index]; + if (data & 0xff000000) { + byte = (jack_midi_data_t) (data & 0xff); + event.buffer = &byte; + event.size = 1; + event.time = last_frame + index; + index += 8; + return &event; + } + } + return 0; +} + +void +JackFFADOMidiReceiveQueue::ResetInputBuffer(uint32_t *input_buffer, + jack_nframes_t length) +{ + this->input_buffer = input_buffer; + index = 0; + last_frame = GetLastFrame(); + this->length = length; +} diff --git a/linux/firewire/JackFFADOMidiInput.h b/linux/firewire/JackFFADOMidiReceiveQueue.h similarity index 59% rename from linux/firewire/JackFFADOMidiInput.h rename to linux/firewire/JackFFADOMidiReceiveQueue.h index 12dc043c..7647869d 100644 --- a/linux/firewire/JackFFADOMidiInput.h +++ b/linux/firewire/JackFFADOMidiReceiveQueue.h @@ -1,5 +1,5 @@ /* -Copyright (C) 2009 Devin Anderson +Copyright (C) 2010 Devin Anderson This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by @@ -17,35 +17,33 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#ifndef __JackFFADOMidiInput__ -#define __JackFFADOMidiInput__ +#ifndef __JackFFADOMidiReceiveQueue__ +#define __JackFFADOMidiReceiveQueue__ -#include "JackPhysicalMidiInput.h" +#include "JackMidiReceiveQueue.h" namespace Jack { - class JackFFADOMidiInput: public JackPhysicalMidiInput { + class JackFFADOMidiReceiveQueue: public JackMidiReceiveQueue { private: + jack_midi_data_t byte; + jack_midi_event_t event; + jack_nframes_t index; uint32_t *input_buffer; - bool new_period; - - protected: - - jack_nframes_t - Receive(jack_midi_data_t *, jack_nframes_t, jack_nframes_t); + jack_nframes_t last_frame; + jack_nframes_t length; public: - JackFFADOMidiInput(size_t buffer_size=1024); - ~JackFFADOMidiInput(); + JackFFADOMidiReceiveQueue(); + + jack_midi_event_t * + DequeueEvent(); - inline void - SetInputBuffer(uint32_t *input_buffer) - { - this->input_buffer = input_buffer; - } + void + ResetInputBuffer(uint32_t *input_buffer, jack_nframes_t length); }; diff --git a/linux/firewire/JackFFADOMidiSendQueue.cpp b/linux/firewire/JackFFADOMidiSendQueue.cpp new file mode 100644 index 00000000..97fdf17d --- /dev/null +++ b/linux/firewire/JackFFADOMidiSendQueue.cpp @@ -0,0 +1,64 @@ +/* +Copyright (C) 2010 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include + +#include "JackFFADOMidiSendQueue.h" +#include "JackMidiUtil.h" + +using Jack::JackFFADOMidiSendQueue; + +JackFFADOMidiSendQueue::JackFFADOMidiSendQueue() +{ + // Empty +} + +Jack::JackMidiWriteQueue::EnqueueResult +JackFFADOMidiSendQueue::EnqueueEvent(jack_nframes_t time, size_t size, + jack_midi_data_t *buffer) +{ + assert(size == 1); + jack_nframes_t relative_time = (time < last_frame) ? 0 : time - last_frame; + if (index < relative_time) { + index = (relative_time % 8) ? + (relative_time & (~ ((jack_nframes_t) 7))) + 8 : relative_time; + } + if (index >= length) { + return BUFFER_FULL; + } + output_buffer[index] = 0x01000000 | ((uint32_t) *buffer); + index += 8; + return OK; +} + +jack_nframes_t +JackFFADOMidiSendQueue::GetNextScheduleFrame() +{ + return last_frame + index; +} + +void +JackFFADOMidiSendQueue::ResetOutputBuffer(uint32_t *output_buffer, + jack_nframes_t length) +{ + index = 0; + last_frame = GetLastFrame(); + this->length = length; + this->output_buffer = output_buffer; +} diff --git a/linux/firewire/JackFFADOMidiOutput.h b/linux/firewire/JackFFADOMidiSendQueue.h similarity index 58% rename from linux/firewire/JackFFADOMidiOutput.h rename to linux/firewire/JackFFADOMidiSendQueue.h index 309e7f61..f395f13d 100644 --- a/linux/firewire/JackFFADOMidiOutput.h +++ b/linux/firewire/JackFFADOMidiSendQueue.h @@ -1,5 +1,5 @@ /* -Copyright (C) 2009 Devin Anderson +Copyright (C) 2010 Devin Anderson This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by @@ -17,38 +17,35 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#ifndef __JackFFADOMidiOutput__ -#define __JackFFADOMidiOutput__ +#ifndef __JackFFADOMidiSendQueue__ +#define __JackFFADOMidiSendQueue__ -#include "JackPhysicalMidiOutput.h" +#include "JackMidiSendQueue.h" namespace Jack { - class JackFFADOMidiOutput: public JackPhysicalMidiOutput { + class JackFFADOMidiSendQueue: public JackMidiSendQueue { private: + jack_nframes_t index; + jack_nframes_t last_frame; + jack_nframes_t length; uint32_t *output_buffer; - protected: - - jack_nframes_t - Advance(jack_nframes_t); + public: - jack_nframes_t - Send(jack_nframes_t, jack_midi_data_t); + JackFFADOMidiSendQueue(); - public: + EnqueueResult + EnqueueEvent(jack_nframes_t time, size_t size, + jack_midi_data_t *buffer); - JackFFADOMidiOutput(size_t non_rt_buffer_size=1024, - size_t rt_buffer_size=64); - ~JackFFADOMidiOutput(); + jack_nframes_t + GetNextScheduleFrame(); - inline void - SetOutputBuffer(uint32_t *output_buffer) - { - this->output_buffer = output_buffer; - } + void + ResetOutputBuffer(uint32_t *output_buffer, jack_nframes_t length); }; diff --git a/linux/wscript b/linux/wscript index 5675c3dc..3306b880 100644 --- a/linux/wscript +++ b/linux/wscript @@ -57,15 +57,25 @@ def build(bld): 'alsa/ice1712.c' ] + alsarawmidi_driver_src = ['alsarawmidi/JackALSARawMidiDriver.cpp', + 'alsarawmidi/JackALSARawMidiInputPort.cpp', + 'alsarawmidi/JackALSARawMidiOutputPort.cpp', + 'alsarawmidi/JackALSARawMidiPort.cpp', + 'alsarawmidi/JackALSARawMidiReceiveQueue.cpp', + 'alsarawmidi/JackALSARawMidiSendQueue.cpp' + ] + ffado_driver_src = ['firewire/JackFFADODriver.cpp', - 'firewire/JackFFADOMidiInput.cpp', - 'firewire/JackFFADOMidiOutput.cpp', - '../common/JackPhysicalMidiInput.cpp', - '../common/JackPhysicalMidiOutput.cpp' + 'firewire/JackFFADOMidiInputPort.cpp', + 'firewire/JackFFADOMidiOutputPort.cpp', + 'firewire/JackFFADOMidiReceiveQueue.cpp', + 'firewire/JackFFADOMidiSendQueue.cpp' ] if bld.env['BUILD_DRIVER_ALSA'] == True: create_jack_driver_obj(bld, 'alsa', alsa_driver_src, "ALSA") + create_jack_driver_obj(bld, 'alsarawmidi', alsarawmidi_driver_src, + "ALSA") if bld.env['BUILD_DRIVER_FREEBOB'] == True: create_jack_driver_obj(bld, 'freebob', 'freebob/JackFreebobDriver.cpp', "LIBFREEBOB") diff --git a/macosx/Jack-Info.plist b/macosx/Jack-Info.plist index 0d714313..ef6c3bfa 100644 --- a/macosx/Jack-Info.plist +++ b/macosx/Jack-Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable Jackservermp CFBundleGetInfoString - Jackdmp 1.9.7, @03-11 Paul Davis, Grame + Jackdmp 1.9.8, @03-11 Paul Davis, Grame CFBundleIdentifier com.grame.Jackmp CFBundleInfoDictionaryVersion @@ -19,6 +19,6 @@ CFBundleSignature ???? CFBundleVersion - 1.9.7 + 1.9.8 diff --git a/macosx/JackMachThread.h b/macosx/JackMachThread.h index eae474f2..bb9e18f0 100644 --- a/macosx/JackMachThread.h +++ b/macosx/JackMachThread.h @@ -70,7 +70,7 @@ typedef unsigned char Boolean; #include "JackPosixThread.h" #ifndef MY_TARGET_OS_IPHONE -#import +#include #endif #include diff --git a/macosx/Jackdmp.xcodeproj/project.pbxproj b/macosx/Jackdmp.xcodeproj/project.pbxproj index dbcdbe05..5961dd82 100644 --- a/macosx/Jackdmp.xcodeproj/project.pbxproj +++ b/macosx/Jackdmp.xcodeproj/project.pbxproj @@ -50,6 +50,7 @@ 4B66550E127C356E00753A79 /* PBXTargetDependency */, 4B38120313269CCB00C61B14 /* PBXTargetDependency */, 4B8F16FC1329169F0002AD73 /* PBXTargetDependency */, + 4B20220C133A9C370019E213 /* PBXTargetDependency */, ); name = "All Universal 32/64 bits"; productName = All; @@ -107,6 +108,12 @@ /* Begin PBXBuildFile section */ 4B0A28ED0D520852002EFF74 /* tw.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B0A28EC0D520852002EFF74 /* tw.c */; }; 4B0A29260D52108E002EFF74 /* tw.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B0A28EC0D520852002EFF74 /* tw.c */; }; + 4B193991133F321500547810 /* JackFilters.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B193990133F321500547810 /* JackFilters.h */; }; + 4B193992133F321500547810 /* JackFilters.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B193990133F321500547810 /* JackFilters.h */; }; + 4B193993133F321500547810 /* JackFilters.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B193990133F321500547810 /* JackFilters.h */; }; + 4B193994133F321500547810 /* JackFilters.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B193990133F321500547810 /* JackFilters.h */; }; + 4B193995133F321500547810 /* JackFilters.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B193990133F321500547810 /* JackFilters.h */; }; + 4B193996133F321500547810 /* JackFilters.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B193990133F321500547810 /* JackFilters.h */; }; 4B19B3130E2362E800DD4A82 /* JackAudioAdapter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B19B3060E2362E700DD4A82 /* JackAudioAdapter.cpp */; }; 4B19B3140E2362E800DD4A82 /* JackAudioAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B19B3070E2362E700DD4A82 /* JackAudioAdapter.h */; }; 4B19B3150E2362E800DD4A82 /* JackAudioAdapterInterface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B19B3080E2362E700DD4A82 /* JackAudioAdapterInterface.cpp */; }; @@ -114,6 +121,7 @@ 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 */; }; + 4B20220A133A9C1C0019E213 /* midi_latency_test.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B202209133A9C1C0019E213 /* midi_latency_test.c */; }; 4B2209E112F6BBF300E5DC26 /* JackSocketServerChannel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BC3B6B30E703B8D0066E42F /* JackSocketServerChannel.cpp */; }; 4B2209E212F6BBF400E5DC26 /* JackSocketServerChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BC3B6B40E703B8D0066E42F /* JackSocketServerChannel.h */; }; 4B2209E312F6BBF500E5DC26 /* JackSocketServerNotifyChannel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BC3B6B50E703B8D0066E42F /* JackSocketServerNotifyChannel.cpp */; }; @@ -317,6 +325,38 @@ 4B363F230DEB0AB0001F72D9 /* monitor_client.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B363F220DEB0AB0001F72D9 /* monitor_client.c */; }; 4B363F3E0DEB0C31001F72D9 /* showtime.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B363F3D0DEB0C31001F72D9 /* showtime.c */; }; 4B363F760DEB0D7D001F72D9 /* impulse_grabber.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B363F750DEB0D7D001F72D9 /* impulse_grabber.c */; }; + 4B370A24133DD7E300237B68 /* JackCoreMidiInputPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B370A14133DD7E200237B68 /* JackCoreMidiInputPort.cpp */; }; + 4B370A25133DD7E300237B68 /* JackCoreMidiInputPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B370A15133DD7E200237B68 /* JackCoreMidiInputPort.h */; }; + 4B370A26133DD7E300237B68 /* JackCoreMidiOutputPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B370A16133DD7E200237B68 /* JackCoreMidiOutputPort.cpp */; }; + 4B370A27133DD7E300237B68 /* JackCoreMidiOutputPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B370A17133DD7E200237B68 /* JackCoreMidiOutputPort.h */; }; + 4B370A28133DD7E300237B68 /* JackCoreMidiPhysicalInputPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B370A18133DD7E200237B68 /* JackCoreMidiPhysicalInputPort.cpp */; }; + 4B370A29133DD7E300237B68 /* JackCoreMidiPhysicalInputPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B370A19133DD7E200237B68 /* JackCoreMidiPhysicalInputPort.h */; }; + 4B370A2A133DD7E300237B68 /* JackCoreMidiPhysicalOutputPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B370A1A133DD7E300237B68 /* JackCoreMidiPhysicalOutputPort.cpp */; }; + 4B370A2B133DD7E300237B68 /* JackCoreMidiPhysicalOutputPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B370A1B133DD7E300237B68 /* JackCoreMidiPhysicalOutputPort.h */; }; + 4B370A2C133DD7E300237B68 /* JackCoreMidiPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B370A1C133DD7E300237B68 /* JackCoreMidiPort.cpp */; }; + 4B370A2D133DD7E300237B68 /* JackCoreMidiPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B370A1D133DD7E300237B68 /* JackCoreMidiPort.h */; }; + 4B370A2E133DD7E300237B68 /* JackCoreMidiUtil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B370A1E133DD7E300237B68 /* JackCoreMidiUtil.cpp */; }; + 4B370A2F133DD7E300237B68 /* JackCoreMidiUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B370A1F133DD7E300237B68 /* JackCoreMidiUtil.h */; }; + 4B370A30133DD7E300237B68 /* JackCoreMidiVirtualInputPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B370A20133DD7E300237B68 /* JackCoreMidiVirtualInputPort.cpp */; }; + 4B370A31133DD7E300237B68 /* JackCoreMidiVirtualInputPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B370A21133DD7E300237B68 /* JackCoreMidiVirtualInputPort.h */; }; + 4B370A32133DD7E300237B68 /* JackCoreMidiVirtualOutputPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B370A22133DD7E300237B68 /* JackCoreMidiVirtualOutputPort.cpp */; }; + 4B370A33133DD7E300237B68 /* JackCoreMidiVirtualOutputPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B370A23133DD7E300237B68 /* JackCoreMidiVirtualOutputPort.h */; }; + 4B370A34133DD7E300237B68 /* JackCoreMidiInputPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B370A14133DD7E200237B68 /* JackCoreMidiInputPort.cpp */; }; + 4B370A35133DD7E300237B68 /* JackCoreMidiInputPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B370A15133DD7E200237B68 /* JackCoreMidiInputPort.h */; }; + 4B370A36133DD7E300237B68 /* JackCoreMidiOutputPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B370A16133DD7E200237B68 /* JackCoreMidiOutputPort.cpp */; }; + 4B370A37133DD7E300237B68 /* JackCoreMidiOutputPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B370A17133DD7E200237B68 /* JackCoreMidiOutputPort.h */; }; + 4B370A38133DD7E300237B68 /* JackCoreMidiPhysicalInputPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B370A18133DD7E200237B68 /* JackCoreMidiPhysicalInputPort.cpp */; }; + 4B370A39133DD7E300237B68 /* JackCoreMidiPhysicalInputPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B370A19133DD7E200237B68 /* JackCoreMidiPhysicalInputPort.h */; }; + 4B370A3A133DD7E300237B68 /* JackCoreMidiPhysicalOutputPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B370A1A133DD7E300237B68 /* JackCoreMidiPhysicalOutputPort.cpp */; }; + 4B370A3B133DD7E300237B68 /* JackCoreMidiPhysicalOutputPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B370A1B133DD7E300237B68 /* JackCoreMidiPhysicalOutputPort.h */; }; + 4B370A3C133DD7E300237B68 /* JackCoreMidiPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B370A1C133DD7E300237B68 /* JackCoreMidiPort.cpp */; }; + 4B370A3D133DD7E300237B68 /* JackCoreMidiPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B370A1D133DD7E300237B68 /* JackCoreMidiPort.h */; }; + 4B370A3E133DD7E300237B68 /* JackCoreMidiUtil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B370A1E133DD7E300237B68 /* JackCoreMidiUtil.cpp */; }; + 4B370A3F133DD7E300237B68 /* JackCoreMidiUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B370A1F133DD7E300237B68 /* JackCoreMidiUtil.h */; }; + 4B370A40133DD7E300237B68 /* JackCoreMidiVirtualInputPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B370A20133DD7E300237B68 /* JackCoreMidiVirtualInputPort.cpp */; }; + 4B370A41133DD7E300237B68 /* JackCoreMidiVirtualInputPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B370A21133DD7E300237B68 /* JackCoreMidiVirtualInputPort.h */; }; + 4B370A42133DD7E300237B68 /* JackCoreMidiVirtualOutputPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B370A22133DD7E300237B68 /* JackCoreMidiVirtualOutputPort.cpp */; }; + 4B370A43133DD7E300237B68 /* JackCoreMidiVirtualOutputPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B370A23133DD7E300237B68 /* JackCoreMidiVirtualOutputPort.h */; }; 4B3811FB13269C8300C61B14 /* latent_client.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B3811FA13269C8300C61B14 /* latent_client.c */; }; 4B3811FC13269C8300C61B14 /* latent_client.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B3811FA13269C8300C61B14 /* latent_client.c */; }; 4B3814201327AA6800C61B14 /* iodelay.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B38141F1327AA6800C61B14 /* iodelay.cpp */; }; @@ -595,6 +635,42 @@ 4B94334A10A5E666002A187F /* systemdeps.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B94334910A5E666002A187F /* systemdeps.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4B94334B10A5E666002A187F /* systemdeps.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B94334910A5E666002A187F /* systemdeps.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4B95BCAE0D913073000F7695 /* control.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B95BCAD0D913073000F7695 /* control.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4B97B6381344B3C100794F57 /* JackMidiAsyncQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B193931133F311400547810 /* JackMidiAsyncQueue.cpp */; }; + 4B97B6391344B3C300794F57 /* JackMidiAsyncQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B193932133F311400547810 /* JackMidiAsyncQueue.h */; }; + 4B97B63A1344B3C700794F57 /* JackMidiAsyncWaitQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B19393B133F313000547810 /* JackMidiAsyncWaitQueue.cpp */; }; + 4B97B63D1344B3EC00794F57 /* JackMidiAsyncWaitQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B19393C133F313000547810 /* JackMidiAsyncWaitQueue.h */; }; + 4B97B63E1344B3F100794F57 /* JackMidiBufferReadQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B19395D133F317300547810 /* JackMidiBufferReadQueue.cpp */; }; + 4B97B6411344B40C00794F57 /* JackMidiBufferReadQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B19395E133F317300547810 /* JackMidiBufferReadQueue.h */; }; + 4B97B6531344B41E00794F57 /* JackMidiBufferWriteQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B193968133F319000547810 /* JackMidiBufferWriteQueue.cpp */; }; + 4B97B6541344B42400794F57 /* JackMidiBufferWriteQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B193969133F319000547810 /* JackMidiBufferWriteQueue.h */; }; + 4B97B6561344B43600794F57 /* JackMidiReadQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B193946133F315200547810 /* JackMidiReadQueue.h */; }; + 4B97B6571344B43A00794F57 /* JackMidiReadQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B193945133F315200547810 /* JackMidiReadQueue.cpp */; }; + 4B97B6581344B43F00794F57 /* JackMidiReceiveQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B193973133F31CB00547810 /* JackMidiReceiveQueue.cpp */; }; + 4B97B6591344B44800794F57 /* JackMidiReceiveQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B193974133F31CB00547810 /* JackMidiReceiveQueue.h */; }; + 4B97B65A1344B44F00794F57 /* JackMidiSendQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B193975133F31CB00547810 /* JackMidiSendQueue.cpp */; }; + 4B97B65B1344B45600794F57 /* JackMidiSendQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B193976133F31CB00547810 /* JackMidiSendQueue.h */; }; + 4B97B65C1344B45D00794F57 /* JackMidiUtil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B193977133F31CB00547810 /* JackMidiUtil.cpp */; }; + 4B97B65D1344B46400794F57 /* JackMidiUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B193978133F31CB00547810 /* JackMidiUtil.h */; }; + 4B97B65E1344B46B00794F57 /* JackMidiWriteQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B193979133F31CB00547810 /* JackMidiWriteQueue.cpp */; }; + 4B97B65F1344B47100794F57 /* JackMidiWriteQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B19397A133F31CB00547810 /* JackMidiWriteQueue.h */; }; + 4B97B6601344B48F00794F57 /* JackMidiAsyncQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B193931133F311400547810 /* JackMidiAsyncQueue.cpp */; }; + 4B97B6611344B49500794F57 /* JackMidiAsyncQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B193932133F311400547810 /* JackMidiAsyncQueue.h */; }; + 4B97B6621344B49C00794F57 /* JackMidiAsyncWaitQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B19393B133F313000547810 /* JackMidiAsyncWaitQueue.cpp */; }; + 4B97B6631344B4A800794F57 /* JackMidiAsyncWaitQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B19393C133F313000547810 /* JackMidiAsyncWaitQueue.h */; }; + 4B97B6641344B4AE00794F57 /* JackMidiBufferReadQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B19395D133F317300547810 /* JackMidiBufferReadQueue.cpp */; }; + 4B97B6651344B4B500794F57 /* JackMidiBufferReadQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B19395E133F317300547810 /* JackMidiBufferReadQueue.h */; }; + 4B97B6671344B4C700794F57 /* JackMidiBufferWriteQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B193969133F319000547810 /* JackMidiBufferWriteQueue.h */; }; + 4B97B6691344B4CE00794F57 /* JackMidiBufferWriteQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B193968133F319000547810 /* JackMidiBufferWriteQueue.cpp */; }; + 4B97B66E1344B4D500794F57 /* JackMidiReadQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B193945133F315200547810 /* JackMidiReadQueue.cpp */; }; + 4B97B66F1344B4DC00794F57 /* JackMidiReadQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B193946133F315200547810 /* JackMidiReadQueue.h */; }; + 4B97B6701344B4E300794F57 /* JackMidiReceiveQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B193973133F31CB00547810 /* JackMidiReceiveQueue.cpp */; }; + 4B97B6711344B4EA00794F57 /* JackMidiReceiveQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B193974133F31CB00547810 /* JackMidiReceiveQueue.h */; }; + 4B97B6721344B4F000794F57 /* JackMidiSendQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B193975133F31CB00547810 /* JackMidiSendQueue.cpp */; }; + 4B97B6781344B50800794F57 /* JackMidiSendQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B193976133F31CB00547810 /* JackMidiSendQueue.h */; }; + 4B97B6791344B50F00794F57 /* JackMidiUtil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B193977133F31CB00547810 /* JackMidiUtil.cpp */; }; + 4B97B67A1344B51600794F57 /* JackMidiUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B193978133F31CB00547810 /* JackMidiUtil.h */; }; + 4B97B67B1344B51D00794F57 /* JackMidiWriteQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B193979133F31CB00547810 /* JackMidiWriteQueue.cpp */; }; + 4B97B67C1344B52800794F57 /* JackMidiWriteQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B19397A133F31CB00547810 /* JackMidiWriteQueue.h */; }; 4B9A25B50DBF8330006E9FBC /* JackError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B9A25B30DBF8330006E9FBC /* JackError.cpp */; }; 4B9A25B60DBF8330006E9FBC /* JackError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B9A25B30DBF8330006E9FBC /* JackError.cpp */; }; 4B9A26010DBF8584006E9FBC /* jslist.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B9A26000DBF8584006E9FBC /* jslist.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -754,18 +830,6 @@ 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 */; }; - 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 */; }; - 4BCBCE6010C4FE3F00450FFE /* JackPhysicalMidiOutput.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BCBCE5C10C4FE3F00450FFE /* JackPhysicalMidiOutput.h */; }; - 4BCBCE6110C4FE3F00450FFE /* JackPhysicalMidiInput.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BCBCE5910C4FE3F00450FFE /* JackPhysicalMidiInput.cpp */; }; - 4BCBCE6210C4FE3F00450FFE /* JackPhysicalMidiInput.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BCBCE5A10C4FE3F00450FFE /* JackPhysicalMidiInput.h */; }; - 4BCBCE6310C4FE3F00450FFE /* JackPhysicalMidiOutput.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BCBCE5B10C4FE3F00450FFE /* JackPhysicalMidiOutput.cpp */; }; - 4BCBCE6410C4FE3F00450FFE /* JackPhysicalMidiOutput.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BCBCE5C10C4FE3F00450FFE /* JackPhysicalMidiOutput.h */; }; - 4BCBCE6510C4FE3F00450FFE /* JackPhysicalMidiInput.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BCBCE5910C4FE3F00450FFE /* JackPhysicalMidiInput.cpp */; }; - 4BCBCE6610C4FE3F00450FFE /* JackPhysicalMidiInput.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BCBCE5A10C4FE3F00450FFE /* JackPhysicalMidiInput.h */; }; - 4BCBCE6710C4FE3F00450FFE /* JackPhysicalMidiOutput.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BCBCE5B10C4FE3F00450FFE /* JackPhysicalMidiOutput.cpp */; }; - 4BCBCE6810C4FE3F00450FFE /* JackPhysicalMidiOutput.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BCBCE5C10C4FE3F00450FFE /* JackPhysicalMidiOutput.h */; }; 4BCC87960D57168300A7FEB1 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BCC87950D57168300A7FEB1 /* Accelerate.framework */; }; 4BCC87970D57168300A7FEB1 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BCC87950D57168300A7FEB1 /* Accelerate.framework */; }; 4BCC87980D57168300A7FEB1 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BCC87950D57168300A7FEB1 /* Accelerate.framework */; }; @@ -877,6 +941,13 @@ remoteGlobalIDString = 4B19B2F60E23620F00DD4A82; remoteInfo = audioadapter; }; + 4B20220B133A9C370019E213 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4B2021DC133A9BA40019E213; + remoteInfo = "jack_midi_latency 64 bits"; + }; 4B224B330E65BA330066BE5B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; @@ -1430,9 +1501,6 @@ 4B05A0640DF72BC000840F4C /* usx2y.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = usx2y.c; path = ../linux/alsa/usx2y.c; sourceTree = SOURCE_ROOT; }; 4B05A0650DF72BC000840F4C /* usx2y.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = usx2y.h; path = ../linux/alsa/usx2y.h; sourceTree = SOURCE_ROOT; }; 4B05A07D0DF72BC000840F4C /* driver.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = driver.h; path = ../linux/driver.h; sourceTree = SOURCE_ROOT; }; - 4B05A07F0DF72BC000840F4C /* ffado_driver.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ffado_driver.h; path = ../linux/firewire/ffado_driver.h; sourceTree = SOURCE_ROOT; }; - 4B05A0800DF72BC000840F4C /* JackFFADODriver.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackFFADODriver.cpp; path = ../linux/firewire/JackFFADODriver.cpp; sourceTree = SOURCE_ROOT; }; - 4B05A0810DF72BC000840F4C /* JackFFADODriver.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JackFFADODriver.h; path = ../linux/firewire/JackFFADODriver.h; sourceTree = SOURCE_ROOT; }; 4B05A0830DF72BC000840F4C /* freebob_driver.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = freebob_driver.h; path = ../linux/freebob/freebob_driver.h; sourceTree = SOURCE_ROOT; }; 4B05A0840DF72BC000840F4C /* JackFreebobDriver.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackFreebobDriver.cpp; path = ../linux/freebob/JackFreebobDriver.cpp; sourceTree = SOURCE_ROOT; }; 4B05A0850DF72BC000840F4C /* JackFreebobDriver.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JackFreebobDriver.h; path = ../linux/freebob/JackFreebobDriver.h; sourceTree = SOURCE_ROOT; }; @@ -1457,6 +1525,25 @@ 4B0A28E60D52073D002EFF74 /* jack_thread_wait */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_thread_wait; sourceTree = BUILT_PRODUCTS_DIR; }; 4B0A28EC0D520852002EFF74 /* tw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = tw.c; path = "../example-clients/tw.c"; sourceTree = SOURCE_ROOT; }; 4B0A292D0D52108E002EFF74 /* jack_thread_wait */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_thread_wait; sourceTree = BUILT_PRODUCTS_DIR; }; + 4B193931133F311400547810 /* JackMidiAsyncQueue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackMidiAsyncQueue.cpp; path = ../common/JackMidiAsyncQueue.cpp; sourceTree = SOURCE_ROOT; }; + 4B193932133F311400547810 /* JackMidiAsyncQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackMidiAsyncQueue.h; path = ../common/JackMidiAsyncQueue.h; sourceTree = SOURCE_ROOT; }; + 4B19393B133F313000547810 /* JackMidiAsyncWaitQueue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackMidiAsyncWaitQueue.cpp; path = ../common/JackMidiAsyncWaitQueue.cpp; sourceTree = SOURCE_ROOT; }; + 4B19393C133F313000547810 /* JackMidiAsyncWaitQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackMidiAsyncWaitQueue.h; path = ../common/JackMidiAsyncWaitQueue.h; sourceTree = SOURCE_ROOT; }; + 4B193945133F315200547810 /* JackMidiReadQueue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackMidiReadQueue.cpp; path = ../common/JackMidiReadQueue.cpp; sourceTree = SOURCE_ROOT; }; + 4B193946133F315200547810 /* JackMidiReadQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackMidiReadQueue.h; path = ../common/JackMidiReadQueue.h; sourceTree = SOURCE_ROOT; }; + 4B19395D133F317300547810 /* JackMidiBufferReadQueue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackMidiBufferReadQueue.cpp; path = ../common/JackMidiBufferReadQueue.cpp; sourceTree = SOURCE_ROOT; }; + 4B19395E133F317300547810 /* JackMidiBufferReadQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackMidiBufferReadQueue.h; path = ../common/JackMidiBufferReadQueue.h; sourceTree = SOURCE_ROOT; }; + 4B193968133F319000547810 /* JackMidiBufferWriteQueue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackMidiBufferWriteQueue.cpp; path = ../common/JackMidiBufferWriteQueue.cpp; sourceTree = SOURCE_ROOT; }; + 4B193969133F319000547810 /* JackMidiBufferWriteQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackMidiBufferWriteQueue.h; path = ../common/JackMidiBufferWriteQueue.h; sourceTree = SOURCE_ROOT; }; + 4B193973133F31CB00547810 /* JackMidiReceiveQueue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackMidiReceiveQueue.cpp; path = ../common/JackMidiReceiveQueue.cpp; sourceTree = SOURCE_ROOT; }; + 4B193974133F31CB00547810 /* JackMidiReceiveQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackMidiReceiveQueue.h; path = ../common/JackMidiReceiveQueue.h; sourceTree = SOURCE_ROOT; }; + 4B193975133F31CB00547810 /* JackMidiSendQueue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackMidiSendQueue.cpp; path = ../common/JackMidiSendQueue.cpp; sourceTree = SOURCE_ROOT; }; + 4B193976133F31CB00547810 /* JackMidiSendQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackMidiSendQueue.h; path = ../common/JackMidiSendQueue.h; sourceTree = SOURCE_ROOT; }; + 4B193977133F31CB00547810 /* JackMidiUtil.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackMidiUtil.cpp; path = ../common/JackMidiUtil.cpp; sourceTree = SOURCE_ROOT; }; + 4B193978133F31CB00547810 /* JackMidiUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackMidiUtil.h; path = ../common/JackMidiUtil.h; sourceTree = SOURCE_ROOT; }; + 4B193979133F31CB00547810 /* JackMidiWriteQueue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackMidiWriteQueue.cpp; path = ../common/JackMidiWriteQueue.cpp; sourceTree = SOURCE_ROOT; }; + 4B19397A133F31CB00547810 /* JackMidiWriteQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackMidiWriteQueue.h; path = ../common/JackMidiWriteQueue.h; sourceTree = SOURCE_ROOT; }; + 4B193990133F321500547810 /* JackFilters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackFilters.h; path = ../common/JackFilters.h; sourceTree = SOURCE_ROOT; }; 4B19B3000E23620F00DD4A82 /* audioadapter.so */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = audioadapter.so; sourceTree = BUILT_PRODUCTS_DIR; }; 4B19B3060E2362E700DD4A82 /* JackAudioAdapter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackAudioAdapter.cpp; path = ../common/JackAudioAdapter.cpp; sourceTree = SOURCE_ROOT; }; 4B19B3070E2362E700DD4A82 /* JackAudioAdapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackAudioAdapter.h; path = ../common/JackAudioAdapter.h; sourceTree = SOURCE_ROOT; }; @@ -1466,6 +1553,8 @@ 4B19B30E0E2362E700DD4A82 /* JackLibSampleRateResampler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackLibSampleRateResampler.cpp; path = ../common/JackLibSampleRateResampler.cpp; sourceTree = SOURCE_ROOT; }; 4B19B30F0E2362E700DD4A82 /* JackLibSampleRateResampler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackLibSampleRateResampler.h; path = ../common/JackLibSampleRateResampler.h; sourceTree = SOURCE_ROOT; }; 4B19B3120E2362E700DD4A82 /* JackResampler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackResampler.cpp; path = ../common/JackResampler.cpp; sourceTree = SOURCE_ROOT; }; + 4B2021E6133A9BA40019E213 /* jack_midi_latency_test */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_midi_latency_test; sourceTree = BUILT_PRODUCTS_DIR; }; + 4B202209133A9C1C0019E213 /* midi_latency_test.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = midi_latency_test.c; path = "../example-clients/midi_latency_test.c"; sourceTree = SOURCE_ROOT; }; 4B2C28F908DAD01E00249230 /* JackGlobals.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackGlobals.cpp; path = ../common/JackGlobals.cpp; sourceTree = SOURCE_ROOT; }; 4B3224E510A3156800838A8E /* jack_netone.so */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = jack_netone.so; sourceTree = BUILT_PRODUCTS_DIR; }; 4B3224E810A315B100838A8E /* JackNetOneDriver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackNetOneDriver.cpp; path = ../common/JackNetOneDriver.cpp; sourceTree = SOURCE_ROOT; }; @@ -1478,6 +1567,29 @@ 4B32256110A3187800838A8E /* jack_netsource */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_netsource; sourceTree = BUILT_PRODUCTS_DIR; }; 4B32256310A318E300838A8E /* netsource.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = netsource.c; path = "../example-clients/netsource.c"; sourceTree = SOURCE_ROOT; }; 4B32257B10A3190C00838A8E /* jack_netsource */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_netsource; sourceTree = BUILT_PRODUCTS_DIR; }; + 4B349826133A6AF500D130AB /* JackALSARawMidiDriver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackALSARawMidiDriver.cpp; path = ../linux/alsarawmidi/JackALSARawMidiDriver.cpp; sourceTree = SOURCE_ROOT; }; + 4B349827133A6AF500D130AB /* JackALSARawMidiDriver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackALSARawMidiDriver.h; path = ../linux/alsarawmidi/JackALSARawMidiDriver.h; sourceTree = SOURCE_ROOT; }; + 4B349828133A6AF500D130AB /* JackALSARawMidiInputPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackALSARawMidiInputPort.cpp; path = ../linux/alsarawmidi/JackALSARawMidiInputPort.cpp; sourceTree = SOURCE_ROOT; }; + 4B349829133A6AF500D130AB /* JackALSARawMidiInputPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackALSARawMidiInputPort.h; path = ../linux/alsarawmidi/JackALSARawMidiInputPort.h; sourceTree = SOURCE_ROOT; }; + 4B34982A133A6AF500D130AB /* JackALSARawMidiOutputPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackALSARawMidiOutputPort.cpp; path = ../linux/alsarawmidi/JackALSARawMidiOutputPort.cpp; sourceTree = SOURCE_ROOT; }; + 4B34982B133A6AF500D130AB /* JackALSARawMidiOutputPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackALSARawMidiOutputPort.h; path = ../linux/alsarawmidi/JackALSARawMidiOutputPort.h; sourceTree = SOURCE_ROOT; }; + 4B34982C133A6AF500D130AB /* JackALSARawMidiPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackALSARawMidiPort.cpp; path = ../linux/alsarawmidi/JackALSARawMidiPort.cpp; sourceTree = SOURCE_ROOT; }; + 4B34982D133A6AF500D130AB /* JackALSARawMidiPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackALSARawMidiPort.h; path = ../linux/alsarawmidi/JackALSARawMidiPort.h; sourceTree = SOURCE_ROOT; }; + 4B34982E133A6AF500D130AB /* JackALSARawMidiReceiveQueue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackALSARawMidiReceiveQueue.cpp; path = ../linux/alsarawmidi/JackALSARawMidiReceiveQueue.cpp; sourceTree = SOURCE_ROOT; }; + 4B34982F133A6AF500D130AB /* JackALSARawMidiReceiveQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackALSARawMidiReceiveQueue.h; path = ../linux/alsarawmidi/JackALSARawMidiReceiveQueue.h; sourceTree = SOURCE_ROOT; }; + 4B349830133A6AF500D130AB /* JackALSARawMidiSendQueue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackALSARawMidiSendQueue.cpp; path = ../linux/alsarawmidi/JackALSARawMidiSendQueue.cpp; sourceTree = SOURCE_ROOT; }; + 4B349831133A6AF500D130AB /* JackALSARawMidiSendQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackALSARawMidiSendQueue.h; path = ../linux/alsarawmidi/JackALSARawMidiSendQueue.h; sourceTree = SOURCE_ROOT; }; + 4B349838133A6B6F00D130AB /* ffado_driver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ffado_driver.h; path = ../linux/firewire/ffado_driver.h; sourceTree = SOURCE_ROOT; }; + 4B349839133A6B6F00D130AB /* JackFFADODriver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackFFADODriver.cpp; path = ../linux/firewire/JackFFADODriver.cpp; sourceTree = SOURCE_ROOT; }; + 4B34983A133A6B6F00D130AB /* JackFFADODriver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackFFADODriver.h; path = ../linux/firewire/JackFFADODriver.h; sourceTree = SOURCE_ROOT; }; + 4B34983B133A6B6F00D130AB /* JackFFADOMidiInputPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackFFADOMidiInputPort.cpp; path = ../linux/firewire/JackFFADOMidiInputPort.cpp; sourceTree = SOURCE_ROOT; }; + 4B34983C133A6B6F00D130AB /* JackFFADOMidiInputPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackFFADOMidiInputPort.h; path = ../linux/firewire/JackFFADOMidiInputPort.h; sourceTree = SOURCE_ROOT; }; + 4B34983D133A6B6F00D130AB /* JackFFADOMidiOutputPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackFFADOMidiOutputPort.cpp; path = ../linux/firewire/JackFFADOMidiOutputPort.cpp; sourceTree = SOURCE_ROOT; }; + 4B34983E133A6B6F00D130AB /* JackFFADOMidiOutputPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackFFADOMidiOutputPort.h; path = ../linux/firewire/JackFFADOMidiOutputPort.h; sourceTree = SOURCE_ROOT; }; + 4B34983F133A6B6F00D130AB /* JackFFADOMidiReceiveQueue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackFFADOMidiReceiveQueue.cpp; path = ../linux/firewire/JackFFADOMidiReceiveQueue.cpp; sourceTree = SOURCE_ROOT; }; + 4B349840133A6B6F00D130AB /* JackFFADOMidiReceiveQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackFFADOMidiReceiveQueue.h; path = ../linux/firewire/JackFFADOMidiReceiveQueue.h; sourceTree = SOURCE_ROOT; }; + 4B349841133A6B6F00D130AB /* JackFFADOMidiSendQueue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackFFADOMidiSendQueue.cpp; path = ../linux/firewire/JackFFADOMidiSendQueue.cpp; sourceTree = SOURCE_ROOT; }; + 4B349842133A6B6F00D130AB /* JackFFADOMidiSendQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackFFADOMidiSendQueue.h; path = ../linux/firewire/JackFFADOMidiSendQueue.h; sourceTree = SOURCE_ROOT; }; 4B35C4250D4731D1000DE7AE /* jackdmp */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jackdmp; sourceTree = BUILT_PRODUCTS_DIR; }; 4B35C4830D4731D1000DE7AE /* Jackmp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Jackmp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 4B35C4FC0D4731D1000DE7AE /* Jackservermp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Jackservermp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -1518,6 +1630,22 @@ 4B363F3D0DEB0C31001F72D9 /* showtime.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = showtime.c; path = "../example-clients/showtime.c"; sourceTree = SOURCE_ROOT; }; 4B363F720DEB0D4E001F72D9 /* jack_impulse_grabber */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_impulse_grabber; sourceTree = BUILT_PRODUCTS_DIR; }; 4B363F750DEB0D7D001F72D9 /* impulse_grabber.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = impulse_grabber.c; path = "../example-clients/impulse_grabber.c"; sourceTree = SOURCE_ROOT; }; + 4B370A14133DD7E200237B68 /* JackCoreMidiInputPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackCoreMidiInputPort.cpp; path = ../../coremidi/JackCoreMidiInputPort.cpp; sourceTree = BUILT_PRODUCTS_DIR; }; + 4B370A15133DD7E200237B68 /* JackCoreMidiInputPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackCoreMidiInputPort.h; path = ../../coremidi/JackCoreMidiInputPort.h; sourceTree = BUILT_PRODUCTS_DIR; }; + 4B370A16133DD7E200237B68 /* JackCoreMidiOutputPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackCoreMidiOutputPort.cpp; path = ../../coremidi/JackCoreMidiOutputPort.cpp; sourceTree = BUILT_PRODUCTS_DIR; }; + 4B370A17133DD7E200237B68 /* JackCoreMidiOutputPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackCoreMidiOutputPort.h; path = ../../coremidi/JackCoreMidiOutputPort.h; sourceTree = BUILT_PRODUCTS_DIR; }; + 4B370A18133DD7E200237B68 /* JackCoreMidiPhysicalInputPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackCoreMidiPhysicalInputPort.cpp; path = ../../coremidi/JackCoreMidiPhysicalInputPort.cpp; sourceTree = BUILT_PRODUCTS_DIR; }; + 4B370A19133DD7E200237B68 /* JackCoreMidiPhysicalInputPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackCoreMidiPhysicalInputPort.h; path = ../../coremidi/JackCoreMidiPhysicalInputPort.h; sourceTree = BUILT_PRODUCTS_DIR; }; + 4B370A1A133DD7E300237B68 /* JackCoreMidiPhysicalOutputPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackCoreMidiPhysicalOutputPort.cpp; path = ../../coremidi/JackCoreMidiPhysicalOutputPort.cpp; sourceTree = BUILT_PRODUCTS_DIR; }; + 4B370A1B133DD7E300237B68 /* JackCoreMidiPhysicalOutputPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackCoreMidiPhysicalOutputPort.h; path = ../../coremidi/JackCoreMidiPhysicalOutputPort.h; sourceTree = BUILT_PRODUCTS_DIR; }; + 4B370A1C133DD7E300237B68 /* JackCoreMidiPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackCoreMidiPort.cpp; path = ../../coremidi/JackCoreMidiPort.cpp; sourceTree = BUILT_PRODUCTS_DIR; }; + 4B370A1D133DD7E300237B68 /* JackCoreMidiPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackCoreMidiPort.h; path = ../../coremidi/JackCoreMidiPort.h; sourceTree = BUILT_PRODUCTS_DIR; }; + 4B370A1E133DD7E300237B68 /* JackCoreMidiUtil.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackCoreMidiUtil.cpp; path = ../../coremidi/JackCoreMidiUtil.cpp; sourceTree = BUILT_PRODUCTS_DIR; }; + 4B370A1F133DD7E300237B68 /* JackCoreMidiUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackCoreMidiUtil.h; path = ../../coremidi/JackCoreMidiUtil.h; sourceTree = BUILT_PRODUCTS_DIR; }; + 4B370A20133DD7E300237B68 /* JackCoreMidiVirtualInputPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackCoreMidiVirtualInputPort.cpp; path = ../../coremidi/JackCoreMidiVirtualInputPort.cpp; sourceTree = BUILT_PRODUCTS_DIR; }; + 4B370A21133DD7E300237B68 /* JackCoreMidiVirtualInputPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackCoreMidiVirtualInputPort.h; path = ../../coremidi/JackCoreMidiVirtualInputPort.h; sourceTree = BUILT_PRODUCTS_DIR; }; + 4B370A22133DD7E300237B68 /* JackCoreMidiVirtualOutputPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackCoreMidiVirtualOutputPort.cpp; path = ../../coremidi/JackCoreMidiVirtualOutputPort.cpp; sourceTree = BUILT_PRODUCTS_DIR; }; + 4B370A23133DD7E300237B68 /* JackCoreMidiVirtualOutputPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackCoreMidiVirtualOutputPort.h; path = ../../coremidi/JackCoreMidiVirtualOutputPort.h; sourceTree = BUILT_PRODUCTS_DIR; }; 4B37C20306DF1FBE0016E567 /* CALatencyLog.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = CALatencyLog.cpp; path = /Developer/Examples/CoreAudio/PublicUtility/CALatencyLog.cpp; sourceTree = ""; }; 4B37C20406DF1FBE0016E567 /* CALatencyLog.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = CALatencyLog.h; path = /Developer/Examples/CoreAudio/PublicUtility/CALatencyLog.h; sourceTree = ""; }; 4B37C20906DF1FE20016E567 /* latency.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = latency.c; path = /Developer/Examples/CoreAudio/PublicUtility/latency.c; sourceTree = ""; }; @@ -1642,10 +1770,6 @@ 4BC3B6B90E703BCC0066E42F /* JackNetUnixSocket.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackNetUnixSocket.cpp; path = ../posix/JackNetUnixSocket.cpp; sourceTree = SOURCE_ROOT; }; 4BC3B6BA0E703BCC0066E42F /* JackNetUnixSocket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackNetUnixSocket.h; path = ../posix/JackNetUnixSocket.h; sourceTree = SOURCE_ROOT; }; 4BC8326D0DF42C7D00DD1C93 /* JackMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackMutex.h; path = ../common/JackMutex.h; sourceTree = SOURCE_ROOT; }; - 4BCBCE5910C4FE3F00450FFE /* JackPhysicalMidiInput.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackPhysicalMidiInput.cpp; path = ../common/JackPhysicalMidiInput.cpp; sourceTree = SOURCE_ROOT; }; - 4BCBCE5A10C4FE3F00450FFE /* JackPhysicalMidiInput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackPhysicalMidiInput.h; path = ../common/JackPhysicalMidiInput.h; sourceTree = SOURCE_ROOT; }; - 4BCBCE5B10C4FE3F00450FFE /* JackPhysicalMidiOutput.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackPhysicalMidiOutput.cpp; path = ../common/JackPhysicalMidiOutput.cpp; sourceTree = SOURCE_ROOT; }; - 4BCBCE5C10C4FE3F00450FFE /* JackPhysicalMidiOutput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackPhysicalMidiOutput.h; path = ../common/JackPhysicalMidiOutput.h; sourceTree = SOURCE_ROOT; }; 4BCC87950D57168300A7FEB1 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = /System/Library/Frameworks/Accelerate.framework; sourceTree = ""; }; 4BD4B4D409BACD9600750C0F /* JackTransportEngine.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JackTransportEngine.h; path = ../common/JackTransportEngine.h; sourceTree = SOURCE_ROOT; }; 4BD4B4D509BACD9600750C0F /* JackTransportEngine.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackTransportEngine.cpp; path = ../common/JackTransportEngine.cpp; sourceTree = SOURCE_ROOT; }; @@ -1783,6 +1907,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 4B2021E0133A9BA40019E213 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 4B3224E010A3156800838A8E /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -2559,6 +2690,7 @@ 4B3811971326884E00C61B14 /* jack_latent_client */, 4B8F16E513290DC80002AD73 /* jack_midi_dump */, 4B8F16F213290E0E0002AD73 /* jack_midi_dump */, + 4B2021E6133A9BA40019E213 /* jack_midi_latency_test */, ); name = Products; sourceTree = ""; @@ -2566,6 +2698,7 @@ 4B03383E0797E19900686131 /* Simple clients */ = { isa = PBXGroup; children = ( + 4B202209133A9C1C0019E213 /* midi_latency_test.c */, 4B8F16F41329161E0002AD73 /* midi_dump.c */, 4B3811FA13269C8300C61B14 /* latent_client.c */, 4B6654FB127C350100753A79 /* server_control.cpp */, @@ -2595,9 +2728,10 @@ 4B05A0420DF72B8500840F4C /* Linux */ = { isa = PBXGroup; children = ( + 4B349837133A6B6F00D130AB /* firewire */, + 4B349825133A6AF500D130AB /* alsarawmidi */, 4B05A04C0DF72BC000840F4C /* alsa */, 4B05A07D0DF72BC000840F4C /* driver.h */, - 4B05A07E0DF72BC000840F4C /* firewire */, 4B05A0820DF72BC000840F4C /* freebob */, ); name = Linux; @@ -2634,17 +2768,6 @@ path = ../linux/alsa; sourceTree = SOURCE_ROOT; }; - 4B05A07E0DF72BC000840F4C /* firewire */ = { - isa = PBXGroup; - children = ( - 4B05A07F0DF72BC000840F4C /* ffado_driver.h */, - 4B05A0800DF72BC000840F4C /* JackFFADODriver.cpp */, - 4B05A0810DF72BC000840F4C /* JackFFADODriver.h */, - ); - name = firewire; - path = ../linux/firewire; - sourceTree = SOURCE_ROOT; - }; 4B05A0820DF72BC000840F4C /* freebob */ = { isa = PBXGroup; children = ( @@ -2709,6 +2832,45 @@ name = Adapter; sourceTree = ""; }; + 4B349825133A6AF500D130AB /* alsarawmidi */ = { + isa = PBXGroup; + children = ( + 4B349826133A6AF500D130AB /* JackALSARawMidiDriver.cpp */, + 4B349827133A6AF500D130AB /* JackALSARawMidiDriver.h */, + 4B349828133A6AF500D130AB /* JackALSARawMidiInputPort.cpp */, + 4B349829133A6AF500D130AB /* JackALSARawMidiInputPort.h */, + 4B34982A133A6AF500D130AB /* JackALSARawMidiOutputPort.cpp */, + 4B34982B133A6AF500D130AB /* JackALSARawMidiOutputPort.h */, + 4B34982C133A6AF500D130AB /* JackALSARawMidiPort.cpp */, + 4B34982D133A6AF500D130AB /* JackALSARawMidiPort.h */, + 4B34982E133A6AF500D130AB /* JackALSARawMidiReceiveQueue.cpp */, + 4B34982F133A6AF500D130AB /* JackALSARawMidiReceiveQueue.h */, + 4B349830133A6AF500D130AB /* JackALSARawMidiSendQueue.cpp */, + 4B349831133A6AF500D130AB /* JackALSARawMidiSendQueue.h */, + ); + name = alsarawmidi; + path = ../linux/alsarawmidi; + sourceTree = SOURCE_ROOT; + }; + 4B349837133A6B6F00D130AB /* firewire */ = { + isa = PBXGroup; + children = ( + 4B349838133A6B6F00D130AB /* ffado_driver.h */, + 4B349839133A6B6F00D130AB /* JackFFADODriver.cpp */, + 4B34983A133A6B6F00D130AB /* JackFFADODriver.h */, + 4B34983B133A6B6F00D130AB /* JackFFADOMidiInputPort.cpp */, + 4B34983C133A6B6F00D130AB /* JackFFADOMidiInputPort.h */, + 4B34983D133A6B6F00D130AB /* JackFFADOMidiOutputPort.cpp */, + 4B34983E133A6B6F00D130AB /* JackFFADOMidiOutputPort.h */, + 4B34983F133A6B6F00D130AB /* JackFFADOMidiReceiveQueue.cpp */, + 4B349840133A6B6F00D130AB /* JackFFADOMidiReceiveQueue.h */, + 4B349841133A6B6F00D130AB /* JackFFADOMidiSendQueue.cpp */, + 4B349842133A6B6F00D130AB /* JackFFADOMidiSendQueue.h */, + ); + name = firewire; + path = ../linux/firewire; + sourceTree = SOURCE_ROOT; + }; 4B37C20006DF1F900016E567 /* Latency */ = { isa = PBXGroup; children = ( @@ -2889,6 +3051,7 @@ 4BA550FB05E2420000569492 /* Engine */ = { isa = PBXGroup; children = ( + 4B193990133F321500547810 /* JackFilters.h */, 4B5F253D0DEE9B8F0041E486 /* JackLockedEngine.h */, 4BF8D2130834F02800C94B91 /* JackEngine.h */, 4BF8D2140834F02800C94B91 /* JackEngine.cpp */, @@ -2994,10 +3157,40 @@ 4BF3390D0F8B86AF0080FB5B /* MIDI */ = { isa = PBXGroup; children = ( - 4BCBCE5910C4FE3F00450FFE /* JackPhysicalMidiInput.cpp */, - 4BCBCE5A10C4FE3F00450FFE /* JackPhysicalMidiInput.h */, - 4BCBCE5B10C4FE3F00450FFE /* JackPhysicalMidiOutput.cpp */, - 4BCBCE5C10C4FE3F00450FFE /* JackPhysicalMidiOutput.h */, + 4B193973133F31CB00547810 /* JackMidiReceiveQueue.cpp */, + 4B193974133F31CB00547810 /* JackMidiReceiveQueue.h */, + 4B193975133F31CB00547810 /* JackMidiSendQueue.cpp */, + 4B193976133F31CB00547810 /* JackMidiSendQueue.h */, + 4B193977133F31CB00547810 /* JackMidiUtil.cpp */, + 4B193978133F31CB00547810 /* JackMidiUtil.h */, + 4B193979133F31CB00547810 /* JackMidiWriteQueue.cpp */, + 4B19397A133F31CB00547810 /* JackMidiWriteQueue.h */, + 4B193968133F319000547810 /* JackMidiBufferWriteQueue.cpp */, + 4B193969133F319000547810 /* JackMidiBufferWriteQueue.h */, + 4B19395D133F317300547810 /* JackMidiBufferReadQueue.cpp */, + 4B19395E133F317300547810 /* JackMidiBufferReadQueue.h */, + 4B193945133F315200547810 /* JackMidiReadQueue.cpp */, + 4B193946133F315200547810 /* JackMidiReadQueue.h */, + 4B19393B133F313000547810 /* JackMidiAsyncWaitQueue.cpp */, + 4B19393C133F313000547810 /* JackMidiAsyncWaitQueue.h */, + 4B193931133F311400547810 /* JackMidiAsyncQueue.cpp */, + 4B193932133F311400547810 /* JackMidiAsyncQueue.h */, + 4B370A14133DD7E200237B68 /* JackCoreMidiInputPort.cpp */, + 4B370A15133DD7E200237B68 /* JackCoreMidiInputPort.h */, + 4B370A16133DD7E200237B68 /* JackCoreMidiOutputPort.cpp */, + 4B370A17133DD7E200237B68 /* JackCoreMidiOutputPort.h */, + 4B370A18133DD7E200237B68 /* JackCoreMidiPhysicalInputPort.cpp */, + 4B370A19133DD7E200237B68 /* JackCoreMidiPhysicalInputPort.h */, + 4B370A1A133DD7E300237B68 /* JackCoreMidiPhysicalOutputPort.cpp */, + 4B370A1B133DD7E300237B68 /* JackCoreMidiPhysicalOutputPort.h */, + 4B370A1C133DD7E300237B68 /* JackCoreMidiPort.cpp */, + 4B370A1D133DD7E300237B68 /* JackCoreMidiPort.h */, + 4B370A1E133DD7E300237B68 /* JackCoreMidiUtil.cpp */, + 4B370A1F133DD7E300237B68 /* JackCoreMidiUtil.h */, + 4B370A20133DD7E300237B68 /* JackCoreMidiVirtualInputPort.cpp */, + 4B370A21133DD7E300237B68 /* JackCoreMidiVirtualInputPort.h */, + 4B370A22133DD7E300237B68 /* JackCoreMidiVirtualOutputPort.cpp */, + 4B370A23133DD7E300237B68 /* JackCoreMidiVirtualOutputPort.h */, 4BF3391F0F8B873E0080FB5B /* JackMidiDriver.cpp */, 4BF339200F8B873E0080FB5B /* JackMidiDriver.h */, 4BF339140F8B86DC0080FB5B /* JackCoreMidiDriver.h */, @@ -3086,6 +3279,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 4B2021DD133A9BA40019E213 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 4B3224D810A3156800838A8E /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -3181,6 +3381,7 @@ 4B8A38F0117B827900664E07 /* JackSocket.h in Headers */, 4B8A38F7117B82B200664E07 /* JackSocketClientChannel.h in Headers */, 4B5160A813215E8B00BB7DCB /* systemdeps.h in Headers */, + 4B193993133F321500547810 /* JackFilters.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3243,8 +3444,6 @@ 4BF339220F8B873E0080FB5B /* JackMidiDriver.h in Headers */, 4BDCDBD21001FD0200B15929 /* JackWaitThreadedDriver.h in Headers */, 4BDCDC0A1001FDA800B15929 /* JackArgParser.h in Headers */, - 4BCBCE6210C4FE3F00450FFE /* JackPhysicalMidiInput.h in Headers */, - 4BCBCE6410C4FE3F00450FFE /* JackPhysicalMidiOutput.h in Headers */, 4B88D04311298BEE007A87C1 /* weakjack.h in Headers */, 4B88D04411298BEE007A87C1 /* weakmacros.h in Headers */, 4BC2CA5A113C6CB80076717C /* JackNetInterface.h in Headers */, @@ -3254,6 +3453,16 @@ 4B8A38B0117B812500664E07 /* JackSocketServerChannel.h in Headers */, 4B8A38C4117B814000664E07 /* JackSocketServerNotifyChannel.h in Headers */, 4B5160AA13215ED900BB7DCB /* systemdeps.h in Headers */, + 4B193995133F321500547810 /* JackFilters.h in Headers */, + 4B97B6611344B49500794F57 /* JackMidiAsyncQueue.h in Headers */, + 4B97B6631344B4A800794F57 /* JackMidiAsyncWaitQueue.h in Headers */, + 4B97B6651344B4B500794F57 /* JackMidiBufferReadQueue.h in Headers */, + 4B97B6671344B4C700794F57 /* JackMidiBufferWriteQueue.h in Headers */, + 4B97B66F1344B4DC00794F57 /* JackMidiReadQueue.h in Headers */, + 4B97B6711344B4EA00794F57 /* JackMidiReceiveQueue.h in Headers */, + 4B97B6781344B50800794F57 /* JackMidiSendQueue.h in Headers */, + 4B97B67A1344B51600794F57 /* JackMidiUtil.h in Headers */, + 4B97B67C1344B52800794F57 /* JackMidiWriteQueue.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3549,6 +3758,7 @@ 4B88D04111298BEE007A87C1 /* weakjack.h in Headers */, 4B88D04211298BEE007A87C1 /* weakmacros.h in Headers */, 4B5160A913215EBF00BB7DCB /* systemdeps.h in Headers */, + 4B193994133F321500547810 /* JackFilters.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3640,6 +3850,7 @@ 4B88D03C11298BEE007A87C1 /* weakmacros.h in Headers */, 4B2209ED12F6BC2200E5DC26 /* JackSocket.h in Headers */, 4B2209EF12F6BC2500E5DC26 /* JackSocketClientChannel.h in Headers */, + 4B193991133F321500547810 /* JackFilters.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3706,8 +3917,6 @@ 4BECB2F60F4451C10091B70A /* JackProcessSync.h in Headers */, 4BF339240F8B873E0080FB5B /* JackMidiDriver.h in Headers */, 4B94334B10A5E666002A187F /* systemdeps.h in Headers */, - 4BCBCE5E10C4FE3F00450FFE /* JackPhysicalMidiInput.h in Headers */, - 4BCBCE6010C4FE3F00450FFE /* JackPhysicalMidiOutput.h in Headers */, 4B88D03D11298BEE007A87C1 /* weakjack.h in Headers */, 4B88D03E11298BEE007A87C1 /* weakmacros.h in Headers */, 4BC2CA56113C6C940076717C /* JackNetInterface.h in Headers */, @@ -3716,6 +3925,16 @@ 4B2209E412F6BBF600E5DC26 /* JackSocketServerNotifyChannel.h in Headers */, 4B2209E712F6BC0300E5DC26 /* JackSocket.h in Headers */, 4B2209EA12F6BC1600E5DC26 /* JackSocketNotifyChannel.h in Headers */, + 4B193992133F321500547810 /* JackFilters.h in Headers */, + 4B97B6391344B3C300794F57 /* JackMidiAsyncQueue.h in Headers */, + 4B97B63D1344B3EC00794F57 /* JackMidiAsyncWaitQueue.h in Headers */, + 4B97B6411344B40C00794F57 /* JackMidiBufferReadQueue.h in Headers */, + 4B97B6541344B42400794F57 /* JackMidiBufferWriteQueue.h in Headers */, + 4B97B6561344B43600794F57 /* JackMidiReadQueue.h in Headers */, + 4B97B6591344B44800794F57 /* JackMidiReceiveQueue.h in Headers */, + 4B97B65B1344B45600794F57 /* JackMidiSendQueue.h in Headers */, + 4B97B65D1344B46400794F57 /* JackMidiUtil.h in Headers */, + 4B97B65F1344B47100794F57 /* JackMidiWriteQueue.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3901,13 +4120,12 @@ 4BA3396D10B2E36800190E3B /* JackMidiDriver.h in Headers */, 4BA3396E10B2E36800190E3B /* JackWaitThreadedDriver.h in Headers */, 4BA3396F10B2E36800190E3B /* JackArgParser.h in Headers */, - 4BCBCE6610C4FE3F00450FFE /* JackPhysicalMidiInput.h in Headers */, - 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 */, 4B5160AE13215EF900BB7DCB /* systemdeps.h in Headers */, + 4B193996133F321500547810 /* JackFilters.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3944,6 +4162,14 @@ buildActionMask = 2147483647; files = ( 4BDCDB951001FB9C00B15929 /* JackCoreMidiDriver.h in Headers */, + 4B370A35133DD7E300237B68 /* JackCoreMidiInputPort.h in Headers */, + 4B370A37133DD7E300237B68 /* JackCoreMidiOutputPort.h in Headers */, + 4B370A39133DD7E300237B68 /* JackCoreMidiPhysicalInputPort.h in Headers */, + 4B370A3B133DD7E300237B68 /* JackCoreMidiPhysicalOutputPort.h in Headers */, + 4B370A3D133DD7E300237B68 /* JackCoreMidiPort.h in Headers */, + 4B370A3F133DD7E300237B68 /* JackCoreMidiUtil.h in Headers */, + 4B370A41133DD7E300237B68 /* JackCoreMidiVirtualInputPort.h in Headers */, + 4B370A43133DD7E300237B68 /* JackCoreMidiVirtualOutputPort.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4004,6 +4230,14 @@ buildActionMask = 2147483647; files = ( 4BF3391A0F8B86DC0080FB5B /* JackCoreMidiDriver.h in Headers */, + 4B370A25133DD7E300237B68 /* JackCoreMidiInputPort.h in Headers */, + 4B370A27133DD7E300237B68 /* JackCoreMidiOutputPort.h in Headers */, + 4B370A29133DD7E300237B68 /* JackCoreMidiPhysicalInputPort.h in Headers */, + 4B370A2B133DD7E300237B68 /* JackCoreMidiPhysicalOutputPort.h in Headers */, + 4B370A2D133DD7E300237B68 /* JackCoreMidiPort.h in Headers */, + 4B370A2F133DD7E300237B68 /* JackCoreMidiUtil.h in Headers */, + 4B370A31133DD7E300237B68 /* JackCoreMidiVirtualInputPort.h in Headers */, + 4B370A33133DD7E300237B68 /* JackCoreMidiVirtualOutputPort.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4137,6 +4371,25 @@ productReference = 4B19B3000E23620F00DD4A82 /* audioadapter.so */; productType = "com.apple.product-type.library.dynamic"; }; + 4B2021DC133A9BA40019E213 /* jack_midi_latency 64 bits */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4B2021E2133A9BA40019E213 /* Build configuration list for PBXNativeTarget "jack_midi_latency 64 bits" */; + buildPhases = ( + 4B2021DD133A9BA40019E213 /* Headers */, + 4B2021DE133A9BA40019E213 /* Sources */, + 4B2021E0133A9BA40019E213 /* Frameworks */, + 4B2021E1133A9BA40019E213 /* Rez */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "jack_midi_latency 64 bits"; + productInstallPath = /usr/local/bin; + productName = jack_metro; + productReference = 4B2021E6133A9BA40019E213 /* jack_midi_latency_test */; + productType = "com.apple.product-type.tool"; + }; 4B3224D710A3156800838A8E /* jack_netone Universal */ = { isa = PBXNativeTarget; buildConfigurationList = 4B3224E110A3156800838A8E /* Build configuration list for PBXNativeTarget "jack_netone Universal" */; @@ -5864,6 +6117,7 @@ 4B35C50A0D4731D1000DE7AE /* jack_midiseq 64 bits */, 4B35C5160D4731D1000DE7AE /* jack_midisine 64 bits */, 4B8F16E813290E0E0002AD73 /* jack_midi_dump 64 bits */, + 4B2021DC133A9BA40019E213 /* jack_midi_latency 64 bits */, 4B35C5220D4731D1000DE7AE /* jack_metro 64 bits */, 4B35C52E0D4731D1000DE7AE /* jack_lsp 64 bits */, 4B35C53A0D4731D1000DE7AE /* jack_connect 64 bits */, @@ -5966,6 +6220,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 4B2021E1133A9BA40019E213 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 4B32255C10A3187800838A8E /* Rez */ = { isa = PBXRezBuildPhase; buildActionMask = 2147483647; @@ -6474,6 +6735,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 4B2021DE133A9BA40019E213 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4B20220A133A9C1C0019E213 /* midi_latency_test.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 4B3224DC10A3156800838A8E /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -6610,14 +6879,21 @@ 4BF339210F8B873E0080FB5B /* JackMidiDriver.cpp in Sources */, 4BDCDBD11001FD0100B15929 /* JackWaitThreadedDriver.cpp in Sources */, 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 */, 4B8A38A7117B80D300664E07 /* JackSocket.cpp in Sources */, 4B8A38AE117B811100664E07 /* JackSocketNotifyChannel.cpp in Sources */, 4B8A38B1117B812D00664E07 /* JackSocketServerChannel.cpp in Sources */, 4B8A38B2117B813400664E07 /* JackSocketServerNotifyChannel.cpp in Sources */, + 4B97B6601344B48F00794F57 /* JackMidiAsyncQueue.cpp in Sources */, + 4B97B6621344B49C00794F57 /* JackMidiAsyncWaitQueue.cpp in Sources */, + 4B97B6641344B4AE00794F57 /* JackMidiBufferReadQueue.cpp in Sources */, + 4B97B6691344B4CE00794F57 /* JackMidiBufferWriteQueue.cpp in Sources */, + 4B97B66E1344B4D500794F57 /* JackMidiReadQueue.cpp in Sources */, + 4B97B6701344B4E300794F57 /* JackMidiReceiveQueue.cpp in Sources */, + 4B97B6721344B4F000794F57 /* JackMidiSendQueue.cpp in Sources */, + 4B97B6791344B50F00794F57 /* JackMidiUtil.cpp in Sources */, + 4B97B67B1344B51D00794F57 /* JackMidiWriteQueue.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7064,14 +7340,21 @@ 4BBAE4110F42FA6100B8BD3F /* JackEngineProfiling.cpp in Sources */, 4BECB2F50F4451C10091B70A /* JackProcessSync.cpp in Sources */, 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 */, 4B2209E112F6BBF300E5DC26 /* JackSocketServerChannel.cpp in Sources */, 4B2209E312F6BBF500E5DC26 /* JackSocketServerNotifyChannel.cpp in Sources */, 4B2209E612F6BC0200E5DC26 /* JackSocket.cpp in Sources */, 4B2209E912F6BC1500E5DC26 /* JackSocketNotifyChannel.cpp in Sources */, + 4B97B6381344B3C100794F57 /* JackMidiAsyncQueue.cpp in Sources */, + 4B97B63A1344B3C700794F57 /* JackMidiAsyncWaitQueue.cpp in Sources */, + 4B97B63E1344B3F100794F57 /* JackMidiBufferReadQueue.cpp in Sources */, + 4B97B6531344B41E00794F57 /* JackMidiBufferWriteQueue.cpp in Sources */, + 4B97B6571344B43A00794F57 /* JackMidiReadQueue.cpp in Sources */, + 4B97B6581344B43F00794F57 /* JackMidiReceiveQueue.cpp in Sources */, + 4B97B65A1344B44F00794F57 /* JackMidiSendQueue.cpp in Sources */, + 4B97B65C1344B45D00794F57 /* JackMidiUtil.cpp in Sources */, + 4B97B65E1344B46B00794F57 /* JackMidiWriteQueue.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7260,8 +7543,6 @@ 4BA339A210B2E36800190E3B /* JackMidiDriver.cpp in Sources */, 4BA339A310B2E36800190E3B /* JackWaitThreadedDriver.cpp in Sources */, 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 */, ); @@ -7304,6 +7585,14 @@ buildActionMask = 2147483647; files = ( 4BDCDB971001FB9C00B15929 /* JackCoreMidiDriver.cpp in Sources */, + 4B370A34133DD7E300237B68 /* JackCoreMidiInputPort.cpp in Sources */, + 4B370A36133DD7E300237B68 /* JackCoreMidiOutputPort.cpp in Sources */, + 4B370A38133DD7E300237B68 /* JackCoreMidiPhysicalInputPort.cpp in Sources */, + 4B370A3A133DD7E300237B68 /* JackCoreMidiPhysicalOutputPort.cpp in Sources */, + 4B370A3C133DD7E300237B68 /* JackCoreMidiPort.cpp in Sources */, + 4B370A3E133DD7E300237B68 /* JackCoreMidiUtil.cpp in Sources */, + 4B370A40133DD7E300237B68 /* JackCoreMidiVirtualInputPort.cpp in Sources */, + 4B370A42133DD7E300237B68 /* JackCoreMidiVirtualOutputPort.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7369,6 +7658,14 @@ buildActionMask = 2147483647; files = ( 4BF3391B0F8B86DC0080FB5B /* JackCoreMidiDriver.cpp in Sources */, + 4B370A24133DD7E300237B68 /* JackCoreMidiInputPort.cpp in Sources */, + 4B370A26133DD7E300237B68 /* JackCoreMidiOutputPort.cpp in Sources */, + 4B370A28133DD7E300237B68 /* JackCoreMidiPhysicalInputPort.cpp in Sources */, + 4B370A2A133DD7E300237B68 /* JackCoreMidiPhysicalOutputPort.cpp in Sources */, + 4B370A2C133DD7E300237B68 /* JackCoreMidiPort.cpp in Sources */, + 4B370A2E133DD7E300237B68 /* JackCoreMidiUtil.cpp in Sources */, + 4B370A30133DD7E300237B68 /* JackCoreMidiVirtualInputPort.cpp in Sources */, + 4B370A32133DD7E300237B68 /* JackCoreMidiVirtualOutputPort.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7470,6 +7767,11 @@ target = 4B19B2F60E23620F00DD4A82 /* audioadapter Universal */; targetProxy = 4B19B32B0E23636E00DD4A82 /* PBXContainerItemProxy */; }; + 4B20220C133A9C370019E213 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 4B2021DC133A9BA40019E213 /* jack_midi_latency 64 bits */; + targetProxy = 4B20220B133A9C370019E213 /* PBXContainerItemProxy */; + }; 4B224B340E65BA330066BE5B /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 4B5E08BF0E5B66EE00BEE4E0 /* netadapter Universal */; @@ -8054,7 +8356,7 @@ OTHER_CFLAGS = ""; OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; OTHER_LDFLAGS = ( - /usr/local/lib/libsamplerate.a, + /opt/local/lib/libsamplerate.a, "-framework", Jackservermp, "-framework", @@ -8173,6 +8475,101 @@ }; name = Default; }; + 4B2021E3133A9BA40019E213 /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; + ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + COPY_PHASE_STRIP = NO; + FRAMEWORK_SEARCH_PATHS = ""; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + HEADER_SEARCH_PATHS = ../common; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ( + "-framework", + Jackmp, + "-framework", + CoreFoundation, + ); + OTHER_REZFLAGS = ""; + PRODUCT_NAME = jack_midi_latency_test; + REZ_EXECUTABLE = YES; + SDKROOT = ""; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + ZERO_LINK = YES; + }; + name = Development; + }; + 4B2021E4133A9BA40019E213 /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; + ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + COPY_PHASE_STRIP = YES; + FRAMEWORK_SEARCH_PATHS = ""; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + HEADER_SEARCH_PATHS = ../common; + MACOSX_DEPLOYMENT_TARGET = 10.4; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ( + "-framework", + Jackmp, + "-framework", + CoreFoundation, + ); + OTHER_REZFLAGS = ""; + PRODUCT_NAME = jack_midi_latency_test; + REZ_EXECUTABLE = YES; + SDKROOT = ""; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + ZERO_LINK = NO; + }; + name = Deployment; + }; + 4B2021E5133A9BA40019E213 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + ppc64, + ppc, + i386, + x86_64, + ); + FRAMEWORK_SEARCH_PATHS = ""; + HEADER_SEARCH_PATHS = ../common; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ( + "-framework", + Jackmp, + "-framework", + CoreFoundation, + ); + OTHER_REZFLAGS = ""; + PRODUCT_NAME = jack_midisine; + REZ_EXECUTABLE = YES; + SDKROOT = ""; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + }; + name = Default; + }; 4B3224E210A3156800838A8E /* Development */ = { isa = XCBuildConfiguration; buildSettings = { @@ -8734,7 +9131,7 @@ ); OTHER_LDFLAGS = ( "-framework", - Jackdmp, + Jackservermp, "-framework", CoreAudio, "-framework", @@ -9105,6 +9502,7 @@ "-D__SMP__", "-DMACH_RPC_MACH_SEMA", "$(OTHER_CPLUSPLUSFLAGS_QUOTED_FOR_TARGET_1)", + "$(OTHER_CPLUSPLUSFLAGS_QUOTED_FOR_TARGET_2)", ); OTHER_CPLUSPLUSFLAGS_QUOTED_FOR_TARGET_1 = "-DADDON_DIR=\\\"/usr/local/lib/jackmp\\\""; OTHER_LDFLAGS = ( @@ -9115,7 +9513,7 @@ CoreAudio, ); OTHER_REZFLAGS = ""; - PRODUCT_NAME = Jackdmp; + PRODUCT_NAME = Jackservermp; REZ_EXECUTABLE = NO; SDKROOT = ""; SECTORDER_FLAGS = ""; @@ -11113,7 +11511,7 @@ OTHER_CPLUSPLUSFLAGS = "-DMACH_RPC_MACH_SEMA"; OTHER_LDFLAGS = ( "-framework", - Jackdmp, + Jackservermp, "-framework", CoreAudio, "-framework", @@ -11263,7 +11661,7 @@ OTHER_LDFLAGS = ( libportaudio.a, "-framework", - Jackdmp, + Jackservermp, "-framework", AudioToolbox, "-framework", @@ -11412,7 +11810,7 @@ OTHER_CPLUSPLUSFLAGS = "-DMACH_RPC_MACH_SEMA"; OTHER_LDFLAGS = ( "-framework", - Jackdmp, + Jackservermp, "-framework", CoreAudio, "-framework", @@ -11550,7 +11948,7 @@ OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; OTHER_LDFLAGS = ( "-framework", - Jackdmp, + Jackservermp, "-framework", CoreAudio, "-framework", @@ -16062,7 +16460,7 @@ CoreAudio, ); OTHER_REZFLAGS = ""; - PRODUCT_NAME = Jackdmp; + PRODUCT_NAME = Jackservermp; REZ_EXECUTABLE = NO; SDKROOT = ""; SECTORDER_FLAGS = ""; @@ -17073,7 +17471,7 @@ OTHER_CFLAGS = ""; OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; OTHER_LDFLAGS = ( - /usr/local/lib/libsamplerate.a, + /opt/local/lib/libsamplerate.a, "-framework", Jackservermp, "-framework", @@ -17222,7 +17620,7 @@ OTHER_CFLAGS = ""; OTHER_CPLUSPLUSFLAGS = "-DMACH_RPC_MACH_SEMA"; OTHER_LDFLAGS = ( - /usr/local/lib/libsamplerate.a, + /opt/local/lib/libsamplerate.a, "-framework", Jackservermp, "-framework", @@ -18769,6 +19167,16 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Default; }; + 4B2021E2133A9BA40019E213 /* Build configuration list for PBXNativeTarget "jack_midi_latency 64 bits" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4B2021E3133A9BA40019E213 /* Development */, + 4B2021E4133A9BA40019E213 /* Deployment */, + 4B2021E5133A9BA40019E213 /* Default */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; 4B3224E110A3156800838A8E /* Build configuration list for PBXNativeTarget "jack_netone Universal" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/macosx/coreaudio/JackCoreAudioAdapter.cpp b/macosx/coreaudio/JackCoreAudioAdapter.cpp index c1e9dc5e..f77a5e3a 100644 --- a/macosx/coreaudio/JackCoreAudioAdapter.cpp +++ b/macosx/coreaudio/JackCoreAudioAdapter.cpp @@ -168,7 +168,7 @@ OSStatus JackCoreAudioAdapter::SRNotificationCallback(AudioDeviceID inDevice, switch (inPropertyID) { case kAudioDevicePropertyNominalSampleRate: { - jack_log("JackCoreAudioDriver::SRNotificationCallback kAudioDevicePropertyNominalSampleRate"); + jack_log("JackCoreAudioAdapter::SRNotificationCallback kAudioDevicePropertyNominalSampleRate"); driver->fState = true; break; } @@ -430,12 +430,15 @@ OSStatus JackCoreAudioAdapter::GetDefaultDevice(AudioDeviceID* id) jack_log("GetDefaultDevice: input = %ld output = %ld", inDefault, outDefault); // Get the device only if default input and output are the same - if (inDefault == outDefault) { - *id = inDefault; - return noErr; - } else { + if (inDefault != outDefault) { jack_error("Default input and output devices are not the same !!"); return kAudioHardwareBadDeviceError; + } else if (inDefault == 0) { + jack_error("Default input and output devices are null !!"); + return kAudioHardwareBadDeviceError; + } else { + *id = inDefault; + return noErr; } } @@ -444,20 +447,16 @@ OSStatus JackCoreAudioAdapter::GetTotalChannels(AudioDeviceID device, int& chann OSStatus err = noErr; UInt32 outSize; Boolean outWritable; - AudioBufferList* bufferList = 0; channelCount = 0; err = AudioDeviceGetPropertyInfo(device, 0, isInput, kAudioDevicePropertyStreamConfiguration, &outSize, &outWritable); if (err == noErr) { - bufferList = (AudioBufferList*)malloc(outSize); + AudioBufferList bufferList[outSize]; err = AudioDeviceGetProperty(device, 0, isInput, kAudioDevicePropertyStreamConfiguration, &outSize, bufferList); if (err == noErr) { for (unsigned int i = 0; i < bufferList->mNumberBuffers; i++) channelCount += bufferList->mBuffers[i].mNumberChannels; } - - if (bufferList) - free(bufferList); } return err; @@ -604,7 +603,7 @@ int JackCoreAudioAdapter::SetupDevices(const char* capture_driver_uid, // Use default driver in duplex mode } else { - jack_log("JackCoreAudioDriver::Open default driver"); + jack_log("JackCoreAudioAdapter::Open default driver"); if (GetDefaultDevice(&fDeviceID) != noErr) { jack_error("Cannot open default device in duplex mode, so aggregate default input and default output"); @@ -1030,14 +1029,14 @@ OSStatus JackCoreAudioAdapter::DestroyAggregateDevice() osErr = AudioObjectGetPropertyDataSize(fPluginID, &pluginAOPA, 0, NULL, &outDataSize); if (osErr != noErr) { - jack_error("JackCoreAudioDriver::DestroyAggregateDevice : AudioObjectGetPropertyDataSize error"); + jack_error("JackCoreAudioAdapter::DestroyAggregateDevice : AudioObjectGetPropertyDataSize error"); printError(osErr); return osErr; } osErr = AudioObjectGetPropertyData(fPluginID, &pluginAOPA, 0, NULL, &outDataSize, &fDeviceID); if (osErr != noErr) { - jack_error("JackCoreAudioDriver::DestroyAggregateDevice : AudioObjectGetPropertyData error"); + jack_error("JackCoreAudioAdapter::DestroyAggregateDevice : AudioObjectGetPropertyData error"); printError(osErr); return osErr; } @@ -1115,18 +1114,18 @@ OSStatus JackCoreAudioAdapter::CreateAggregateDeviceAux(vector ca for (UInt32 i = 0; i < captureDeviceID.size(); i++) { if (SetupSampleRateAux(captureDeviceID[i], samplerate) < 0) { - jack_error("JackCoreAudioDriver::CreateAggregateDevice : cannot set SR of input device"); + jack_error("JackCoreAudioAdapter::CreateAggregateDevice : cannot set SR of input device"); } else { // Check clock domain osErr = AudioDeviceGetProperty(captureDeviceID[i], 0, kAudioDeviceSectionGlobal, kAudioDevicePropertyClockDomain, &outSize, &clockdomain); if (osErr != 0) { - jack_error("JackCoreAudioDriver::CreateAggregateDevice : kAudioDevicePropertyClockDomain error"); + jack_error("JackCoreAudioAdapter::CreateAggregateDevice : kAudioDevicePropertyClockDomain error"); printError(osErr); } else { keptclockdomain = (keptclockdomain == 0) ? clockdomain : keptclockdomain; - jack_log("JackCoreAudioDriver::CreateAggregateDevice : input clockdomain = %d", clockdomain); + jack_log("JackCoreAudioAdapter::CreateAggregateDevice : input clockdomain = %d", clockdomain); if (clockdomain != 0 && clockdomain != keptclockdomain) { - jack_error("JackCoreAudioDriver::CreateAggregateDevice : devices do not share the same clock!! clock drift compensation would be needed..."); + jack_error("JackCoreAudioAdapter::CreateAggregateDevice : devices do not share the same clock!! clock drift compensation would be needed..."); need_clock_drift_compensation = true; } } @@ -1135,18 +1134,18 @@ OSStatus JackCoreAudioAdapter::CreateAggregateDeviceAux(vector ca for (UInt32 i = 0; i < playbackDeviceID.size(); i++) { if (SetupSampleRateAux(playbackDeviceID[i], samplerate) < 0) { - jack_error("JackCoreAudioDriver::CreateAggregateDevice : cannot set SR of output device"); + jack_error("JackCoreAudioAdapter::CreateAggregateDevice : cannot set SR of output device"); } else { // Check clock domain osErr = AudioDeviceGetProperty(playbackDeviceID[i], 0, kAudioDeviceSectionGlobal, kAudioDevicePropertyClockDomain, &outSize, &clockdomain); if (osErr != 0) { - jack_error("JackCoreAudioDriver::CreateAggregateDevice : kAudioDevicePropertyClockDomain error"); + jack_error("JackCoreAudioAdapter::CreateAggregateDevice : kAudioDevicePropertyClockDomain error"); printError(osErr); } else { keptclockdomain = (keptclockdomain == 0) ? clockdomain : keptclockdomain; - jack_log("JackCoreAudioDriver::CreateAggregateDevice : output clockdomain = %d", clockdomain); + jack_log("JackCoreAudioAdapter::CreateAggregateDevice : output clockdomain = %d", clockdomain); if (clockdomain != 0 && clockdomain != keptclockdomain) { - jack_error("JackCoreAudioDriver::CreateAggregateDevice : devices do not share the same clock!! clock drift compensation would be needed..."); + jack_error("JackCoreAudioAdapter::CreateAggregateDevice : devices do not share the same clock!! clock drift compensation would be needed..."); need_clock_drift_compensation = true; } } @@ -1175,7 +1174,7 @@ OSStatus JackCoreAudioAdapter::CreateAggregateDeviceAux(vector ca osErr = AudioHardwareGetPropertyInfo(kAudioHardwarePropertyPlugInForBundleID, &outSize, &outWritable); if (osErr != noErr) { - jack_error("JackCoreAudioDriver::CreateAggregateDevice : AudioHardwareGetPropertyInfo kAudioHardwarePropertyPlugInForBundleID error"); + jack_error("JackCoreAudioAdapter::CreateAggregateDevice : AudioHardwareGetPropertyInfo kAudioHardwarePropertyPlugInForBundleID error"); printError(osErr); return osErr; } @@ -1191,7 +1190,7 @@ OSStatus JackCoreAudioAdapter::CreateAggregateDeviceAux(vector ca osErr = AudioHardwareGetProperty(kAudioHardwarePropertyPlugInForBundleID, &outSize, &pluginAVT); if (osErr != noErr) { - jack_error("JackCoreAudioDriver::CreateAggregateDevice : AudioHardwareGetProperty kAudioHardwarePropertyPlugInForBundleID error"); + jack_error("JackCoreAudioAdapter::CreateAggregateDevice : AudioHardwareGetProperty kAudioHardwarePropertyPlugInForBundleID error"); printError(osErr); return osErr; } @@ -1218,13 +1217,13 @@ OSStatus JackCoreAudioAdapter::CreateAggregateDeviceAux(vector ca SInt32 system; Gestalt(gestaltSystemVersion, &system); - jack_log("JackCoreAudioDriver::CreateAggregateDevice : system version = %x limit = %x", system, 0x00001054); + jack_log("JackCoreAudioAdapter::CreateAggregateDevice : system version = %x limit = %x", system, 0x00001054); // Starting with 10.5.4 systems, the AD can be internal... (better) if (system < 0x00001054) { - jack_log("JackCoreAudioDriver::CreateAggregateDevice : public aggregate device...."); + jack_log("JackCoreAudioAdapter::CreateAggregateDevice : public aggregate device...."); } else { - jack_log("JackCoreAudioDriver::CreateAggregateDevice : private aggregate device...."); + jack_log("JackCoreAudioAdapter::CreateAggregateDevice : private aggregate device...."); CFDictionaryAddValue(aggDeviceDict, CFSTR(kAudioAggregateDeviceIsPrivateKey), AggregateDeviceNumberRef); } @@ -1306,14 +1305,14 @@ OSStatus JackCoreAudioAdapter::CreateAggregateDeviceAux(vector ca osErr = AudioObjectGetPropertyDataSize(fPluginID, &pluginAOPA, 0, NULL, &outDataSize); if (osErr != noErr) { - jack_error("JackCoreAudioDriver::CreateAggregateDevice : AudioObjectGetPropertyDataSize error"); + jack_error("JackCoreAudioAdapter::CreateAggregateDevice : AudioObjectGetPropertyDataSize error"); printError(osErr); goto error; } osErr = AudioObjectGetPropertyData(fPluginID, &pluginAOPA, sizeof(aggDeviceDict), &aggDeviceDict, &outDataSize, outAggregateDevice); if (osErr != noErr) { - jack_error("JackCoreAudioDriver::CreateAggregateDevice : AudioObjectGetPropertyData error"); + jack_error("JackCoreAudioAdapter::CreateAggregateDevice : AudioObjectGetPropertyData error"); printError(osErr); goto error; } @@ -1332,7 +1331,7 @@ OSStatus JackCoreAudioAdapter::CreateAggregateDeviceAux(vector ca outDataSize = sizeof(CFMutableArrayRef); osErr = AudioObjectSetPropertyData(*outAggregateDevice, &pluginAOPA, 0, NULL, outDataSize, &subDevicesArray); if (osErr != noErr) { - jack_error("JackCoreAudioDriver::CreateAggregateDevice : AudioObjectSetPropertyData for sub-device list error"); + jack_error("JackCoreAudioAdapter::CreateAggregateDevice : AudioObjectSetPropertyData for sub-device list error"); printError(osErr); goto error; } @@ -1352,7 +1351,7 @@ OSStatus JackCoreAudioAdapter::CreateAggregateDeviceAux(vector ca outDataSize = sizeof(CFStringRef); osErr = AudioObjectSetPropertyData(*outAggregateDevice, &pluginAOPA, 0, NULL, outDataSize, &captureDeviceUID[0]); // First apture is master... if (osErr != noErr) { - jack_error("JackCoreAudioDriver::CreateAggregateDevice : AudioObjectSetPropertyData for master device error"); + jack_error("JackCoreAudioAdapter::CreateAggregateDevice : AudioObjectSetPropertyData for master device error"); printError(osErr); goto error; } @@ -1370,19 +1369,19 @@ OSStatus JackCoreAudioAdapter::CreateAggregateDeviceAux(vector ca // Get the property data size osErr = AudioObjectGetPropertyDataSize(*outAggregateDevice, &theAddressOwned, theQualifierDataSize, theQualifierData, &outSize); if (osErr != noErr) { - jack_error("JackCoreAudioDriver::CreateAggregateDevice kAudioObjectPropertyOwnedObjects error"); + jack_error("JackCoreAudioAdapter::CreateAggregateDevice kAudioObjectPropertyOwnedObjects error"); printError(osErr); } // Calculate the number of object IDs subDevicesNum = outSize / sizeof(AudioObjectID); - jack_info("JackCoreAudioDriver::CreateAggregateDevice clock drift compensation, number of sub-devices = %d", subDevicesNum); + jack_info("JackCoreAudioAdapter::CreateAggregateDevice clock drift compensation, number of sub-devices = %d", subDevicesNum); AudioObjectID subDevices[subDevicesNum]; outSize = sizeof(subDevices); osErr = AudioObjectGetPropertyData(*outAggregateDevice, &theAddressOwned, theQualifierDataSize, theQualifierData, &outSize, subDevices); if (osErr != noErr) { - jack_error("JackCoreAudioDriver::CreateAggregateDevice kAudioObjectPropertyOwnedObjects error"); + jack_error("JackCoreAudioAdapter::CreateAggregateDevice kAudioObjectPropertyOwnedObjects error"); printError(osErr); } @@ -1391,7 +1390,7 @@ OSStatus JackCoreAudioAdapter::CreateAggregateDeviceAux(vector ca UInt32 theDriftCompensationValue = 1; osErr = AudioObjectSetPropertyData(subDevices[index], &theAddressDrift, 0, NULL, sizeof(UInt32), &theDriftCompensationValue); if (osErr != noErr) { - jack_error("JackCoreAudioDriver::CreateAggregateDevice kAudioSubDevicePropertyDriftCompensation error"); + jack_error("JackCoreAudioAdapter::CreateAggregateDevice kAudioSubDevicePropertyDriftCompensation error"); printError(osErr); } } @@ -1512,7 +1511,7 @@ extern "C" strcpy(desc->params[i].name, "channels"); desc->params[i].character = 'c'; desc->params[i].type = JackDriverParamInt; - desc->params[i].value.ui = -1; + desc->params[i].value.i = -1; strcpy(desc->params[i].short_desc, "Maximum number of channels"); strcpy(desc->params[i].long_desc, "Maximum number of channels. If -1, max possible number of channels will be used"); @@ -1520,7 +1519,7 @@ extern "C" strcpy(desc->params[i].name, "inchannels"); desc->params[i].character = 'i'; desc->params[i].type = JackDriverParamInt; - desc->params[i].value.ui = -1; + desc->params[i].value.i = -1; strcpy(desc->params[i].short_desc, "Maximum number of input channels"); strcpy(desc->params[i].long_desc, "Maximum number of input channels. If -1, max possible number of input channels will be used"); @@ -1528,7 +1527,7 @@ extern "C" strcpy(desc->params[i].name, "outchannels"); desc->params[i].character = 'o'; desc->params[i].type = JackDriverParamInt; - desc->params[i].value.ui = -1; + desc->params[i].value.i = -1; strcpy(desc->params[i].short_desc, "Maximum number of output channels"); strcpy(desc->params[i].long_desc, "Maximum number of output channels. If -1, max possible number of output channels will be used"); diff --git a/macosx/coreaudio/JackCoreAudioDriver.cpp b/macosx/coreaudio/JackCoreAudioDriver.cpp index 83806646..1c26ce65 100644 --- a/macosx/coreaudio/JackCoreAudioDriver.cpp +++ b/macosx/coreaudio/JackCoreAudioDriver.cpp @@ -195,7 +195,7 @@ OSStatus JackCoreAudioDriver::Render(void *inRefCon, driver->fCurrentTime = (AudioTimeStamp *)inTimeStamp; driver->fDriverOutputData = ioData; - // Setup threadded based log function once... + // Setup threaded based log function et get RT thread parameters once... if (set_threaded_log_function()) { jack_log("set_threaded_log_function"); @@ -216,8 +216,11 @@ OSStatus JackCoreAudioDriver::Render(void *inRefCon, int JackCoreAudioDriver::Read() { - OSStatus err = AudioUnitRender(fAUHAL, fActionFags, fCurrentTime, 1, fEngineControl->fBufferSize, fJackInputData); - return (err == noErr) ? 0 : -1; + if (fCaptureChannels > 0) { // Calling AudioUnitRender with no input returns a '????' error (callback setting issue ??), so hack to avoid it here... + return (AudioUnitRender(fAUHAL, fActionFags, fCurrentTime, 1, fEngineControl->fBufferSize, fJackInputData) == noErr) ? 0 : -1; + } else { + return 0; + } } int JackCoreAudioDriver::Write() @@ -386,12 +389,15 @@ OSStatus JackCoreAudioDriver::GetDefaultDevice(AudioDeviceID* id) jack_log("GetDefaultDevice: input = %ld output = %ld", inDefault, outDefault); // Get the device only if default input and output are the same - if (inDefault == outDefault) { - *id = inDefault; - return noErr; - } else { + if (inDefault != outDefault) { jack_error("Default input and output devices are not the same !!"); return kAudioHardwareBadDeviceError; + } else if (inDefault == 0) { + jack_error("Default input and output devices are null !!"); + return kAudioHardwareBadDeviceError; + } else { + *id = inDefault; + return noErr; } } @@ -1549,7 +1555,6 @@ error: int JackCoreAudioDriver::Close() { jack_log("JackCoreAudioDriver::Close"); - Stop(); // Generic audio driver close int res = JackAudioDriver::Close(); @@ -1561,6 +1566,53 @@ int JackCoreAudioDriver::Close() return res; } +void JackCoreAudioDriver::UpdateLatencies() +{ + UInt32 size; + OSStatus err; + jack_latency_range_t range; + range.max = fEngineControl->fBufferSize; + range.min = fEngineControl->fBufferSize; + + for (int i = 0; i < fCaptureChannels; i++) { + size = sizeof(UInt32); + UInt32 value1 = 0; + UInt32 value2 = 0; + err = AudioDeviceGetProperty(fDeviceID, 0, true, kAudioDevicePropertyLatency, &size, &value1); + if (err != noErr) + jack_log("AudioDeviceGetProperty kAudioDevicePropertyLatency error"); + err = AudioDeviceGetProperty(fDeviceID, 0, true, kAudioDevicePropertySafetyOffset, &size, &value2); + if (err != noErr) + jack_log("AudioDeviceGetProperty kAudioDevicePropertySafetyOffset error"); + + range.min = range.max = fEngineControl->fBufferSize + value1 + value2 + fCaptureLatency; + fGraphManager->GetPort(fCapturePortList[i])->SetLatencyRange(JackCaptureLatency, &range); + } + + for (int i = 0; i < fPlaybackChannels; i++) { + size = sizeof(UInt32); + UInt32 value1 = 0; + UInt32 value2 = 0; + err = AudioDeviceGetProperty(fDeviceID, 0, false, kAudioDevicePropertyLatency, &size, &value1); + if (err != noErr) + jack_log("AudioDeviceGetProperty kAudioDevicePropertyLatency error"); + err = AudioDeviceGetProperty(fDeviceID, 0, false, kAudioDevicePropertySafetyOffset, &size, &value2); + if (err != noErr) + jack_log("AudioDeviceGetProperty kAudioDevicePropertySafetyOffset error"); + + // Add more latency if "async" mode is used... + range.min = range.max + = fEngineControl->fBufferSize + ((fEngineControl->fSyncMode) ? 0 : fEngineControl->fBufferSize * fIOUsage) + value1 + value2 + fPlaybackLatency; + fGraphManager->GetPort(fPlaybackPortList[i])->SetLatencyRange(JackPlaybackLatency, &range); + + // Monitor port + if (fWithMonitorPorts) { + range.min = range.max = fEngineControl->fBufferSize; + fGraphManager->GetPort(fMonitorPortList[i])->SetLatencyRange(JackCaptureLatency, &range); + } + } +} + int JackCoreAudioDriver::Attach() { OSStatus err; @@ -1571,7 +1623,6 @@ int JackCoreAudioDriver::Attach() char channel_name[64]; char name[JACK_CLIENT_NAME_SIZE + JACK_PORT_NAME_SIZE]; char alias[JACK_CLIENT_NAME_SIZE + JACK_PORT_NAME_SIZE]; - jack_latency_range_t range; jack_log("JackCoreAudioDriver::Attach fBufferSize %ld fSampleRate %ld", fEngineControl->fBufferSize, fEngineControl->fSampleRate); @@ -1596,20 +1647,8 @@ int JackCoreAudioDriver::Attach() return -1; } - size = sizeof(UInt32); - UInt32 value1 = 0; - UInt32 value2 = 0; - err = AudioDeviceGetProperty(fDeviceID, 0, true, kAudioDevicePropertyLatency, &size, &value1); - if (err != noErr) - jack_log("AudioDeviceGetProperty kAudioDevicePropertyLatency error"); - err = AudioDeviceGetProperty(fDeviceID, 0, true, kAudioDevicePropertySafetyOffset, &size, &value2); - if (err != noErr) - jack_log("AudioDeviceGetProperty kAudioDevicePropertySafetyOffset error"); - port = fGraphManager->GetPort(port_index); port->SetAlias(alias); - range.min = range.max = fEngineControl->fBufferSize + value1 + value2 + fCaptureLatency; - port->SetLatencyRange(JackCaptureLatency, &range); fCapturePortList[i] = port_index; } @@ -1634,21 +1673,8 @@ int JackCoreAudioDriver::Attach() return -1; } - size = sizeof(UInt32); - UInt32 value1 = 0; - UInt32 value2 = 0; - err = AudioDeviceGetProperty(fDeviceID, 0, false, kAudioDevicePropertyLatency, &size, &value1); - if (err != noErr) - jack_log("AudioDeviceGetProperty kAudioDevicePropertyLatency error"); - err = AudioDeviceGetProperty(fDeviceID, 0, false, kAudioDevicePropertySafetyOffset, &size, &value2); - if (err != noErr) - jack_log("AudioDeviceGetProperty kAudioDevicePropertySafetyOffset error"); - port = fGraphManager->GetPort(port_index); port->SetAlias(alias); - // Add more latency if "async" mode is used... - range.min = range.max = fEngineControl->fBufferSize + ((fEngineControl->fSyncMode) ? 0 : fEngineControl->fBufferSize * fIOUsage) + value1 + value2 + fPlaybackLatency; - port->SetLatencyRange(JackPlaybackLatency, &range); fPlaybackPortList[i] = port_index; // Monitor ports @@ -1659,14 +1685,13 @@ int JackCoreAudioDriver::Attach() jack_error("Cannot register monitor port for %s", name); return -1; } else { - port = fGraphManager->GetPort(port_index); - range.min = range.max = fEngineControl->fBufferSize; - port->SetLatencyRange(JackCaptureLatency, &range); fMonitorPortList[i] = port_index; } } } + UpdateLatencies(); + // Input buffers do no change : prepare them only once for (int i = 0; i < fCaptureChannels; i++) { fJackInputData->mBuffers[i].mData = GetInputBuffer(i); @@ -1714,17 +1739,19 @@ int JackCoreAudioDriver::Stop() int JackCoreAudioDriver::SetBufferSize(jack_nframes_t buffer_size) { - OSStatus err; UInt32 outSize = sizeof(UInt32); - err = AudioDeviceSetProperty(fDeviceID, NULL, 0, false, kAudioDevicePropertyBufferFrameSize, outSize, &buffer_size); + OSStatus err = AudioDeviceSetProperty(fDeviceID, NULL, 0, false, kAudioDevicePropertyBufferFrameSize, outSize, &buffer_size); if (err != noErr) { jack_error("Cannot set buffer size %ld", buffer_size); printError(err); return -1; } - JackAudioDriver::SetBufferSize(buffer_size); // never fails + JackAudioDriver::SetBufferSize(buffer_size); // Generic change, never fails + + // CoreAudio specific + UpdateLatencies(); // Input buffers do no change : prepare them only once for (int i = 0; i < fCaptureChannels; i++) { @@ -1820,7 +1847,7 @@ extern "C" strcpy(desc->params[i].name, "channels"); desc->params[i].character = 'c'; desc->params[i].type = JackDriverParamInt; - desc->params[i].value.ui = -1; + desc->params[i].value.i = -1; strcpy(desc->params[i].short_desc, "Maximum number of channels"); strcpy(desc->params[i].long_desc, "Maximum number of channels. If -1, max possible number of channels will be used"); @@ -1828,7 +1855,7 @@ extern "C" strcpy(desc->params[i].name, "inchannels"); desc->params[i].character = 'i'; desc->params[i].type = JackDriverParamInt; - desc->params[i].value.ui = -1; + desc->params[i].value.i = -1; strcpy(desc->params[i].short_desc, "Maximum number of input channels"); strcpy(desc->params[i].long_desc, "Maximum number of input channels. If -1, max possible number of input channels will be used"); @@ -1836,7 +1863,7 @@ extern "C" strcpy(desc->params[i].name, "outchannels"); desc->params[i].character = 'o'; desc->params[i].type = JackDriverParamInt; - desc->params[i].value.ui = -1; + desc->params[i].value.i = -1; strcpy(desc->params[i].short_desc, "Maximum number of output channels"); strcpy(desc->params[i].long_desc, "Maximum number of output channels. If -1, max possible number of output channels will be used"); @@ -1897,7 +1924,7 @@ extern "C" strcpy(desc->params[i].name, "input-latency"); desc->params[i].character = 'I'; desc->params[i].type = JackDriverParamUInt; - desc->params[i].value.i = 0; + desc->params[i].value.ui = 0; strcpy(desc->params[i].short_desc, "Extra input latency (frames)"); strcpy(desc->params[i].long_desc, desc->params[i].short_desc); @@ -1905,7 +1932,7 @@ extern "C" strcpy(desc->params[i].name, "output-latency"); desc->params[i].character = 'O'; desc->params[i].type = JackDriverParamUInt; - desc->params[i].value.i = 0; + desc->params[i].value.ui = 0; strcpy(desc->params[i].short_desc, "Extra output latency (frames)"); strcpy(desc->params[i].long_desc, desc->params[i].short_desc); @@ -1929,7 +1956,7 @@ extern "C" strcpy(desc->params[i].name, "async-latency"); desc->params[i].character = 'L'; desc->params[i].type = JackDriverParamUInt; - desc->params[i].value.i = 100; + desc->params[i].value.ui = 100; strcpy(desc->params[i].short_desc, "Extra output latency in asynchronous mode (percent)"); strcpy(desc->params[i].long_desc, desc->params[i].short_desc); @@ -1937,7 +1964,7 @@ extern "C" strcpy(desc->params[i].name, "grain"); desc->params[i].character = 'G'; desc->params[i].type = JackDriverParamUInt; - desc->params[i].value.i = 100; + desc->params[i].value.ui = 100; strcpy(desc->params[i].short_desc, "Computation grain in RT thread (percent)"); strcpy(desc->params[i].long_desc, desc->params[i].short_desc); diff --git a/macosx/coreaudio/JackCoreAudioDriver.h b/macosx/coreaudio/JackCoreAudioDriver.h index b0ccbe10..c0513609 100644 --- a/macosx/coreaudio/JackCoreAudioDriver.h +++ b/macosx/coreaudio/JackCoreAudioDriver.h @@ -40,7 +40,7 @@ typedef UInt8 CAAudioHardwareDeviceSectionID; #define kAudioDeviceSectionOutput ((CAAudioHardwareDeviceSectionID)0x00) #define kAudioDeviceSectionGlobal ((CAAudioHardwareDeviceSectionID)0x00) #define kAudioDeviceSectionWildcard ((CAAudioHardwareDeviceSectionID)0xFF) - + #define WAIT_COUNTER 60 /*! @@ -74,13 +74,13 @@ class JackCoreAudioDriver : public JackAudioDriver float fIOUsage; float fComputationGrain; bool fClockDriftCompensate; - - /* + + /* #ifdef MAC_OS_X_VERSION_10_5 AudioDeviceIOProcID fMesureCallbackID; #endif */ - + static OSStatus Render(void *inRefCon, AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, @@ -106,13 +106,13 @@ class JackCoreAudioDriver : public JackAudioDriver OSStatus GetDefaultOutputDevice(AudioDeviceID* id); OSStatus GetDeviceNameFromID(AudioDeviceID id, char* name); OSStatus GetTotalChannels(AudioDeviceID device, int& channelCount, bool isInput); - + // Setup OSStatus CreateAggregateDevice(AudioDeviceID captureDeviceID, AudioDeviceID playbackDeviceID, jack_nframes_t samplerate, AudioDeviceID* outAggregateDevice); OSStatus CreateAggregateDeviceAux(vector captureDeviceID, vector playbackDeviceID, jack_nframes_t samplerate, AudioDeviceID* outAggregateDevice); OSStatus DestroyAggregateDevice(); bool IsAggregateDevice(AudioDeviceID device); - + int SetupDevices(const char* capture_driver_uid, const char* playback_driver_uid, char* capture_driver_name, @@ -146,10 +146,12 @@ class JackCoreAudioDriver : public JackAudioDriver int AddListeners(); void RemoveListeners(); - + bool TakeHogAux(AudioDeviceID deviceID, bool isInput); bool TakeHog(); + void UpdateLatencies(); + public: JackCoreAudioDriver(const char* name, const char* alias, JackLockedEngine* engine, JackSynchro* table); diff --git a/macosx/coremidi/JackCoreMidiDriver.cpp b/macosx/coremidi/JackCoreMidiDriver.cpp index 1cb7176b..292e771f 100644 --- a/macosx/coremidi/JackCoreMidiDriver.cpp +++ b/macosx/coremidi/JackCoreMidiDriver.cpp @@ -1,5 +1,6 @@ /* Copyright (C) 2009 Grame +Copyright (C) 2011 Devin Anderson This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,345 +18,620 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#include + +#include + #include "JackCoreMidiDriver.h" -#include "JackGraphManager.h" -#include "JackServer.h" +#include "JackCoreMidiUtil.h" #include "JackEngineControl.h" -#include "JackDriverLoader.h" -#include -#include -#include -#include -#include +using Jack::JackCoreMidiDriver; + +/////////////////////////////////////////////////////////////////////////////// +// Static callbacks +/////////////////////////////////////////////////////////////////////////////// -namespace Jack +void +JackCoreMidiDriver::HandleInputEvent(const MIDIPacketList *packet_list, + void *driver, void *port) { + ((JackCoreMidiPhysicalInputPort *) port)->ProcessCoreMidi(packet_list); +} -static MIDITimeStamp MIDIGetCurrentHostTime() +void +JackCoreMidiDriver::HandleNotificationEvent(const MIDINotification *message, + void *driver) { - return mach_absolute_time(); + ((JackCoreMidiDriver *) driver)->HandleNotification(message); } -void JackCoreMidiDriver::ReadProcAux(const MIDIPacketList *pktlist, jack_ringbuffer_t* ringbuffer) +/////////////////////////////////////////////////////////////////////////////// +// Class +/////////////////////////////////////////////////////////////////////////////// + +JackCoreMidiDriver::JackCoreMidiDriver(const char *name, const char *alias, + JackLockedEngine *engine, + JackSynchro *table): + JackMidiDriver(name, alias, engine, table) { - // Write the number of packets - size_t size = jack_ringbuffer_write_space(ringbuffer); - if (size < sizeof(UInt32)) { - jack_error("ReadProc : ring buffer is full, skip events..."); - return; + mach_timebase_info_data_t info; + kern_return_t result = mach_timebase_info(&info); + if (result != KERN_SUCCESS) { + throw std::runtime_error(mach_error_string(result)); } + client = 0; + fCaptureChannels = 0; + fPlaybackChannels = 0; + num_physical_inputs = 0; + num_physical_outputs = 0; + num_virtual_inputs = 0; + num_virtual_outputs = 0; + physical_input_ports = 0; + physical_output_ports = 0; + time_ratio = (((double) info.numer) / info.denom) / 1000.0; + virtual_input_ports = 0; + virtual_output_ports = 0; +} - jack_ringbuffer_write(ringbuffer, (char*)&pktlist->numPackets, sizeof(UInt32)); +JackCoreMidiDriver::~JackCoreMidiDriver() +{} - for (unsigned int i = 0; i < pktlist->numPackets; ++i) { +int +JackCoreMidiDriver::Attach() +{ + jack_nframes_t buffer_size = fEngineControl->fBufferSize; + jack_port_id_t index; + jack_nframes_t latency = buffer_size; + jack_latency_range_t latency_range; + const char *name; + JackPort *port; + JackCoreMidiPort *port_obj; + latency_range.max = latency; + latency_range.min = latency; + + // Physical inputs + for (int i = 0; i < num_physical_inputs; i++) { + port_obj = physical_input_ports[i]; + name = port_obj->GetName(); + index = fGraphManager->AllocatePort(fClientControl.fRefNum, name, + JACK_DEFAULT_MIDI_TYPE, + CaptureDriverFlags, buffer_size); + if (index == NO_PORT) { + jack_error("JackCoreMidiDriver::Attach - cannot register physical " + "input port with name '%s'.", name); + // X: Do we need to deallocate ports? + return -1; + } + port = fGraphManager->GetPort(index); + port->SetAlias(port_obj->GetAlias()); + port->SetLatencyRange(JackCaptureLatency, &latency_range); + fCapturePortList[i] = index; + } - MIDIPacket *packet = (MIDIPacket *)pktlist->packet; + // Virtual inputs + for (int i = 0; i < num_virtual_inputs; i++) { + port_obj = virtual_input_ports[i]; + name = port_obj->GetName(); + index = fGraphManager->AllocatePort(fClientControl.fRefNum, name, + JACK_DEFAULT_MIDI_TYPE, + CaptureDriverFlags, buffer_size); + if (index == NO_PORT) { + jack_error("JackCoreMidiDriver::Attach - cannot register virtual " + "input port with name '%s'.", name); + // X: Do we need to deallocate ports? + return -1; + } + port = fGraphManager->GetPort(index); + port->SetAlias(port_obj->GetAlias()); + port->SetLatencyRange(JackCaptureLatency, &latency_range); + fCapturePortList[num_physical_inputs + i] = index; + } - // TODO : use timestamp + if (! fEngineControl->fSyncMode) { + latency += buffer_size; + latency_range.max = latency; + latency_range.min = latency; + } - // Check available size first.. - size = jack_ringbuffer_write_space(ringbuffer); - if (size < (sizeof(UInt16) + packet->length)) { - jack_error("ReadProc : ring buffer is full, skip events..."); - return; + // Physical outputs + for (int i = 0; i < num_physical_outputs; i++) { + port_obj = physical_output_ports[i]; + name = port_obj->GetName(); + index = fGraphManager->AllocatePort(fClientControl.fRefNum, name, + JACK_DEFAULT_MIDI_TYPE, + PlaybackDriverFlags, buffer_size); + if (index == NO_PORT) { + jack_error("JackCoreMidiDriver::Attach - cannot register physical " + "output port with name '%s'.", name); + // X: Do we need to deallocate ports? + return -1; } - // Write length of each packet first - jack_ringbuffer_write(ringbuffer, (char*)&packet->length, sizeof(UInt16)); - // Write event actual data - jack_ringbuffer_write(ringbuffer, (char*)packet->data, packet->length); + port = fGraphManager->GetPort(index); + port->SetAlias(port_obj->GetAlias()); + port->SetLatencyRange(JackPlaybackLatency, &latency_range); + fPlaybackPortList[i] = index; + } - packet = MIDIPacketNext(packet); + // Virtual outputs + for (int i = 0; i < num_virtual_outputs; i++) { + port_obj = virtual_output_ports[i]; + name = port_obj->GetName(); + index = fGraphManager->AllocatePort(fClientControl.fRefNum, name, + JACK_DEFAULT_MIDI_TYPE, + PlaybackDriverFlags, buffer_size); + if (index == NO_PORT) { + jack_error("JackCoreMidiDriver::Attach - cannot register virtual " + "output port with name '%s'.", name); + // X: Do we need to deallocate ports? + return -1; + } + port = fGraphManager->GetPort(index); + port->SetAlias(port_obj->GetAlias()); + port->SetLatencyRange(JackPlaybackLatency, &latency_range); + fPlaybackPortList[num_physical_outputs + i] = index; } -} -void JackCoreMidiDriver::ReadProc(const MIDIPacketList *pktlist, void *refCon, void *connRefCon) -{ - jack_ringbuffer_t* ringbuffer = (jack_ringbuffer_t*)connRefCon; - ReadProcAux(pktlist, ringbuffer); + return 0; } -void JackCoreMidiDriver::ReadVirtualProc(const MIDIPacketList *pktlist, void *refCon, void *connRefCon) +int +JackCoreMidiDriver::Close() { - jack_ringbuffer_t* ringbuffer = (jack_ringbuffer_t*)refCon; - ReadProcAux(pktlist, ringbuffer); + // Generic MIDI driver close + int result = JackMidiDriver::Close(); + + OSStatus status; + if (physical_input_ports) { + for (int i = 0; i < num_physical_inputs; i++) { + delete physical_input_ports[i]; + } + delete[] physical_input_ports; + num_physical_inputs = 0; + physical_input_ports = 0; + status = MIDIPortDispose(internal_input); + if (status != noErr) { + WriteMacOSError("JackCoreMidiDriver::Close", "MIDIPortDispose", + status); + result = -1; + } + } + if (physical_output_ports) { + for (int i = 0; i < num_physical_outputs; i++) { + delete physical_output_ports[i]; + } + delete[] physical_output_ports; + num_physical_outputs = 0; + physical_output_ports = 0; + status = MIDIPortDispose(internal_output); + if (status != noErr) { + WriteMacOSError("JackCoreMidiDriver::Close", "MIDIPortDispose", + status); + result = -1; + } + } + if (virtual_input_ports) { + for (int i = 0; i < num_virtual_inputs; i++) { + delete virtual_input_ports[i]; + } + delete[] virtual_input_ports; + num_virtual_inputs = 0; + virtual_input_ports = 0; + } + if (virtual_output_ports) { + for (int i = 0; i < num_virtual_outputs; i++) { + delete virtual_output_ports[i]; + } + delete[] virtual_output_ports; + num_virtual_outputs = 0; + virtual_output_ports = 0; + } + if (client) { + status = MIDIClientDispose(client); + if (status != noErr) { + WriteMacOSError("JackCoreMidiDriver::Close", "MIDIClientDispose", + status); + result = -1; + } + client = 0; + } + return result; } -void JackCoreMidiDriver::NotifyProc(const MIDINotification *message, void *refCon) +void +JackCoreMidiDriver::HandleNotification(const MIDINotification *message) { - jack_log("NotifyProc %d", message->messageID); + // Empty } -JackCoreMidiDriver::JackCoreMidiDriver(const char* name, const char* alias, JackLockedEngine* engine, JackSynchro* table) - : JackMidiDriver(name, alias, engine, table), fMidiClient(NULL), fInputPort(NULL), fOutputPort(NULL), fRealCaptureChannels(0), fRealPlaybackChannels(0) -{} - -JackCoreMidiDriver::~JackCoreMidiDriver() -{} - -int JackCoreMidiDriver::Open(bool capturing, - bool playing, - int inchannels, - int outchannels, - bool monitor, - const char* capture_driver_name, - const char* playback_driver_name, - jack_nframes_t capture_latency, - jack_nframes_t playback_latency) - { - OSStatus err; - CFStringRef coutputStr; - std::string str; - - // Get real input/output number - fRealCaptureChannels = MIDIGetNumberOfSources(); - fRealPlaybackChannels = MIDIGetNumberOfDestinations(); - - // Generic JackMidiDriver Open - if (JackMidiDriver::Open(capturing, playing, inchannels + fRealCaptureChannels, outchannels + fRealPlaybackChannels, monitor, capture_driver_name, playback_driver_name, capture_latency, playback_latency) != 0) +int +JackCoreMidiDriver::Open(bool capturing, bool playing, int in_channels, + int out_channels, bool monitor, + const char* capture_driver_name, + const char* playback_driver_name, + jack_nframes_t capture_latency, + jack_nframes_t playback_latency) +{ + int pi_count = 0; + int po_count = 0; + int vi_count = 0; + int vo_count = 0; + ItemCount potential_po_count; + ItemCount potential_pi_count; + + CFStringRef name = CFStringCreateWithCString(0, "JackMidi", + CFStringGetSystemEncoding()); + if (! name) { + jack_error("JackCoreMidiDriver::Open - failed to allocate memory for " + "client name string"); return -1; + } - coutputStr = CFStringCreateWithCString(0, "JackMidi", CFStringGetSystemEncoding()); - err = MIDIClientCreate(coutputStr, NotifyProc, this, &fMidiClient); - CFRelease(coutputStr); - if (!fMidiClient) { - jack_error("Cannot create CoreMidi client"); - goto error; - } - - err = MIDIInputPortCreate(fMidiClient, CFSTR("Input port"), ReadProc, this, &fInputPort); - if (!fInputPort) { - jack_error("Cannot open CoreMidi in port\n"); - goto error; - } + OSStatus status = MIDIClientCreate(name, HandleNotificationEvent, this, + &client); - err = MIDIOutputPortCreate(fMidiClient, CFSTR("Output port"), &fOutputPort); - if (!fOutputPort) { - jack_error("Cannot open CoreMidi out port\n"); - goto error; - } + CFRelease(name); + if (status != noErr) { + WriteMacOSError("JackCoreMidiDriver::Close", "MIDIClientCreate", + status); + return -1; + } + char *client_name = fClientControl.fName; + + // Allocate and connect physical inputs + potential_pi_count = MIDIGetNumberOfSources(); + if (potential_pi_count) { + status = MIDIInputPortCreate(client, CFSTR("Physical Input Port"), + HandleInputEvent, this, &internal_input); + if (status != noErr) { + WriteMacOSError("JackCoreMidiDriver::Open", "MIDIInputPortCreate", + status); + goto destroy_virtual_output_ports; + } + try { + physical_input_ports = + new JackCoreMidiPhysicalInputPort*[potential_pi_count]; + } catch (std::exception e) { + jack_error("JackCoreMidiDriver::Open - while creating physical " + "input port array: %s", e.what()); + goto destroy_internal_input_port; + } + for (ItemCount i = 0; i < potential_pi_count; i++) { + try { + physical_input_ports[pi_count] = + new JackCoreMidiPhysicalInputPort(fAliasName, client_name, + capture_driver_name, i, + client, internal_input, + time_ratio); + } catch (std::exception e) { + jack_error("JackCoreMidiDriver::Open - while creating " + "physical input port: %s", e.what()); + goto destroy_internal_input_port; + } + pi_count++; + } + } - fMidiDestination = new MIDIEndpointRef[inchannels + fRealCaptureChannels]; - assert(fMidiDestination); + // Allocate and connect physical outputs + potential_po_count = MIDIGetNumberOfDestinations(); + if (potential_po_count) { + status = MIDIOutputPortCreate(client, CFSTR("Physical Output Port"), + &internal_output); + if (status != noErr) { + WriteMacOSError("JackCoreMidiDriver::Open", "MIDIOutputPortCreate", + status); + goto destroy_physical_input_ports; + } + try { + physical_output_ports = + new JackCoreMidiPhysicalOutputPort*[potential_po_count]; + } catch (std::exception e) { + jack_error("JackCoreMidiDriver::Open - while creating physical " + "output port array: %s", e.what()); + goto destroy_internal_output_port; + } + for (ItemCount i = 0; i < potential_po_count; i++) { + try { + physical_output_ports[po_count] = + new JackCoreMidiPhysicalOutputPort(fAliasName, client_name, + playback_driver_name, i, + client, internal_output, + time_ratio); + } catch (std::exception e) { + jack_error("JackCoreMidiDriver::Open - while creating " + "physical output port: %s", e.what()); + goto destroy_internal_output_port; + } + po_count++; + } + } - // Virtual input - for (int i = 0; i < inchannels; i++) { - std::stringstream num; - num << i; - str = "JackMidi" + num.str(); - coutputStr = CFStringCreateWithCString(0, str.c_str(), CFStringGetSystemEncoding()); - err = MIDIDestinationCreate(fMidiClient, coutputStr, ReadVirtualProc, fRingBuffer[i], &fMidiDestination[i]); - CFRelease(coutputStr); - if (!fMidiDestination[i]) { - jack_error("Cannot create CoreMidi destination"); - goto error; + // Allocate and connect virtual inputs + if (in_channels) { + try { + virtual_input_ports = + new JackCoreMidiVirtualInputPort*[in_channels]; + } catch (std::exception e) { + jack_error("JackCoreMidiDriver::Open - while creating virtual " + "input port array: %s", e.what()); + goto destroy_client; + } + for (vi_count = 0; vi_count < in_channels; vi_count++) { + try { + virtual_input_ports[vi_count] = + new JackCoreMidiVirtualInputPort(fAliasName, client_name, + capture_driver_name, + vi_count + pi_count, client, + time_ratio); + } catch (std::exception e) { + jack_error("JackCoreMidiDriver::Open - while creating virtual " + "input port: %s", e.what()); + goto destroy_virtual_input_ports; + } } } - // Real input - for (int i = 0; i < fRealCaptureChannels; i++) { - fMidiDestination[i + inchannels] = MIDIGetSource(i); - MIDIPortConnectSource(fInputPort, fMidiDestination[i + inchannels], fRingBuffer[i + inchannels]); + // Allocate and connect virtual outputs + if (out_channels) { + try { + virtual_output_ports = + new JackCoreMidiVirtualOutputPort*[out_channels]; + } catch (std::exception e) { + jack_error("JackCoreMidiDriver::Open - while creating virtual " + "output port array: %s", e.what()); + goto destroy_virtual_input_ports; + } + for (vo_count = 0; vo_count < out_channels; vo_count++) { + try { + virtual_output_ports[vo_count] = + new JackCoreMidiVirtualOutputPort(fAliasName, client_name, + playback_driver_name, + vo_count + po_count, client, + time_ratio); + } catch (std::exception e) { + jack_error("JackCoreMidiDriver::Open - while creating virtual " + "output port: %s", e.what()); + goto destroy_virtual_output_ports; + } + } } - fMidiSource = new MIDIEndpointRef[outchannels + fRealPlaybackChannels]; - assert(fMidiSource); - // Virtual output - for (int i = 0; i < outchannels; i++) { - std::stringstream num; - num << i; - str = "JackMidi" + num.str(); - coutputStr = CFStringCreateWithCString(0, str.c_str(), CFStringGetSystemEncoding()); - err = MIDISourceCreate(fMidiClient, coutputStr, &fMidiSource[i]); - CFRelease(coutputStr); - if (!fMidiSource[i]) { - jack_error("Cannot create CoreMidi source"); - goto error; - } + if (! (pi_count || po_count || in_channels || out_channels)) { + jack_error("JackCoreMidiDriver::Open - no CoreMIDI inputs or outputs " + "found, and no virtual ports allocated."); + } else if (! JackMidiDriver::Open(capturing, playing, + in_channels + pi_count, + out_channels + po_count, monitor, + capture_driver_name, + playback_driver_name, capture_latency, + playback_latency)) { + num_physical_inputs = pi_count; + num_physical_outputs = po_count; + num_virtual_inputs = in_channels; + num_virtual_outputs = out_channels; + return 0; } - // Real output - for (int i = 0; i < fRealPlaybackChannels; i++) { - fMidiSource[i + outchannels] = MIDIGetDestination(i); + // Cleanup + if (physical_output_ports) { + for (int i = 0; i < po_count; i++) { + delete physical_output_ports[i]; + } + delete[] physical_output_ports; + physical_output_ports = 0; } + destroy_internal_output_port: + status = MIDIPortDispose(internal_output); + if (status != noErr) { + WriteMacOSError("JackCoreMidiDriver::Open", "MIDIPortDispose", status); + } + destroy_physical_input_ports: + if (physical_input_ports) { + for (int i = 0; i < pi_count; i++) { + delete physical_input_ports[i]; + } + delete[] physical_input_ports; + physical_input_ports = 0; + } + destroy_internal_input_port: + status = MIDIPortDispose(internal_input); + if (status != noErr) { + WriteMacOSError("JackCoreMidiDriver::Open", "MIDIPortDispose", status); + } + destroy_virtual_output_ports: + if (virtual_output_ports) { + for (int i = 0; i < vo_count; i++) { + delete virtual_output_ports[i]; + } + delete[] virtual_output_ports; + virtual_output_ports = 0; + } + destroy_virtual_input_ports: + if (virtual_input_ports) { + for (int i = 0; i < vi_count; i++) { + delete virtual_input_ports[i]; + } + delete[] virtual_input_ports; + virtual_input_ports = 0; + } + destroy_client: + status = MIDIClientDispose(client); + if (status != noErr) { + WriteMacOSError("JackCoreMidiDriver::Open", "MIDIClientDispose", + status); + } + client = 0; + return -1; +} +int +JackCoreMidiDriver::Read() +{ + jack_nframes_t buffer_size = fEngineControl->fBufferSize; + for (int i = 0; i < num_physical_inputs; i++) { + physical_input_ports[i]->ProcessJack(GetInputBuffer(i), buffer_size); + } + for (int i = 0; i < num_virtual_inputs; i++) { + virtual_input_ports[i]-> + ProcessJack(GetInputBuffer(num_physical_inputs + i), buffer_size); + } return 0; - -error: - Close(); - return -1; } -int JackCoreMidiDriver::Close() +int +JackCoreMidiDriver::Start() { - // Generic midi driver close - int res = JackMidiDriver::Close(); + jack_info("JackCoreMidiDriver::Start - Starting driver."); - if (fInputPort) - MIDIPortDispose(fInputPort); + JackMidiDriver::Start(); - if (fOutputPort) - MIDIPortDispose(fOutputPort); + int pi_count = 0; + int po_count = 0; + int vi_count = 0; + int vo_count = 0; - // Only dispose "virtual" endpoints - for (int i = 0; i < fCaptureChannels - fRealCaptureChannels; i++) { - if (fMidiDestination) - MIDIEndpointDispose(fMidiDestination[i]); - } - delete[] fMidiDestination; + jack_info("JackCoreMidiDriver::Start - Enabling physical input ports."); - // Only dispose "virtual" endpoints - for (int i = 0; i < fPlaybackChannels - fRealPlaybackChannels; i++) { - if (fMidiSource[i]) - MIDIEndpointDispose(fMidiSource[i]); + for (; pi_count < num_physical_inputs; pi_count++) { + if (physical_input_ports[pi_count]->Start() < 0) { + jack_error("JackCoreMidiDriver::Start - Failed to enable physical " + "input port."); + goto stop_physical_input_ports; + } } - delete[] fMidiSource; - if (fMidiClient) - MIDIClientDispose(fMidiClient); + jack_info("JackCoreMidiDriver::Start - Enabling physical output ports."); - return res; -} - -int JackCoreMidiDriver::Attach() -{ - OSStatus err; - JackPort* port; - CFStringRef pname; - jack_port_id_t port_index; - char name[JACK_CLIENT_NAME_SIZE + JACK_PORT_NAME_SIZE]; - char endpoint_name[JACK_CLIENT_NAME_SIZE + JACK_PORT_NAME_SIZE]; - char alias[JACK_CLIENT_NAME_SIZE + JACK_PORT_NAME_SIZE]; - int i; - - jack_log("JackCoreMidiDriver::Attach fBufferSize = %ld fSampleRate = %ld", fEngineControl->fBufferSize, fEngineControl->fSampleRate); - - for (i = 0; i < fCaptureChannels; i++) { - - err = MIDIObjectGetStringProperty(fMidiDestination[i], kMIDIPropertyName, &pname); - if (err == noErr) { - CFStringGetCString(pname, endpoint_name, sizeof(endpoint_name), 0); - CFRelease(pname); - snprintf(alias, sizeof(alias) - 1, "%s:%s:out%d", fAliasName, endpoint_name, i + 1); - } else { - snprintf(alias, sizeof(alias) - 1, "%s:%s:out%d", fAliasName, fCaptureDriverName, i + 1); + for (; po_count < num_physical_outputs; po_count++) { + if (physical_output_ports[po_count]->Start() < 0) { + jack_error("JackCoreMidiDriver::Start - Failed to enable physical " + "output port."); + goto stop_physical_output_ports; } - - snprintf(name, sizeof(name) - 1, "%s:capture_%d", fClientControl.fName, i + 1); - if ((port_index = fGraphManager->AllocatePort(fClientControl.fRefNum, name, JACK_DEFAULT_MIDI_TYPE, CaptureDriverFlags, fEngineControl->fBufferSize)) == NO_PORT) { - jack_error("driver: cannot register port for %s", name); - return -1; - } - port = fGraphManager->GetPort(port_index); - port->SetAlias(alias); - fCapturePortList[i] = port_index; - jack_log("JackCoreMidiDriver::Attach fCapturePortList[i] port_index = %ld", port_index); } - for (i = 0; i < fPlaybackChannels; i++) { + jack_info("JackCoreMidiDriver::Start - Enabling virtual input ports."); - err = MIDIObjectGetStringProperty(fMidiSource[i], kMIDIPropertyName, &pname); - if (err == noErr) { - CFStringGetCString(pname, endpoint_name, sizeof(endpoint_name), 0); - CFRelease(pname); - snprintf(alias, sizeof(alias) - 1, "%s:%s:in%d", fAliasName, endpoint_name, i + 1); - } else { - snprintf(alias, sizeof(alias) - 1, "%s:%s:in%d", fAliasName, fPlaybackDriverName, i + 1); + for (; vi_count < num_virtual_inputs; vi_count++) { + if (virtual_input_ports[vi_count]->Start() < 0) { + jack_error("JackCoreMidiDriver::Start - Failed to enable virtual " + "input port."); + goto stop_virtual_input_ports; } + } - snprintf(name, sizeof(name) - 1, "%s:playback_%d", fClientControl.fName, i + 1); - if ((port_index = fGraphManager->AllocatePort(fClientControl.fRefNum, name, JACK_DEFAULT_MIDI_TYPE, PlaybackDriverFlags, fEngineControl->fBufferSize)) == NO_PORT) { - jack_error("driver: cannot register port for %s", name); - return -1; + jack_info("JackCoreMidiDriver::Start - Enabling virtual output ports."); + + for (; vo_count < num_virtual_outputs; vo_count++) { + if (virtual_output_ports[vo_count]->Start() < 0) { + jack_error("JackCoreMidiDriver::Start - Failed to enable virtual " + "output port."); + goto stop_virtual_output_ports; } - port = fGraphManager->GetPort(port_index); - port->SetAlias(alias); - fPlaybackPortList[i] = port_index; - jack_log("JackCoreMidiDriver::Attach fPlaybackPortList[i] port_index = %ld", port_index); } - return 0; -} -int JackCoreMidiDriver::Read() -{ - for (int chan = 0; chan < fCaptureChannels; chan++) { - - if (fGraphManager->GetConnectionsNum(fCapturePortList[chan]) > 0) { + jack_info("JackCoreMidiDriver::Start - Driver started."); - // Get JACK port - JackMidiBuffer* midi_buffer = GetInputBuffer(chan); + return 0; - if (jack_ringbuffer_read_space(fRingBuffer[chan]) == 0) { - // Reset buffer - midi_buffer->Reset(midi_buffer->nframes); - } else { + stop_virtual_output_ports: + for (int i = 0; i < vo_count; i++) { + if (virtual_output_ports[i]->Stop() < 0) { + jack_error("JackCoreMidiDriver::Start - Failed to disable virtual " + "output port."); + } + } + stop_virtual_input_ports: + for (int i = 0; i < vi_count; i++) { + if (virtual_input_ports[i]->Stop() < 0) { + jack_error("JackCoreMidiDriver::Start - Failed to disable virtual " + "input port."); + } + } + stop_physical_output_ports: + for (int i = 0; i < po_count; i++) { + if (physical_output_ports[i]->Stop() < 0) { + jack_error("JackCoreMidiDriver::Start - Failed to disable " + "physical output port."); + } + } + stop_physical_input_ports: + for (int i = 0; i < pi_count; i++) { + if (physical_input_ports[i]->Stop() < 0) { + jack_error("JackCoreMidiDriver::Start - Failed to disable " + "physical input port."); + } + } - while (jack_ringbuffer_read_space(fRingBuffer[chan]) > 0) { + return -1; +} - // Read event number - int ev_count = 0; - jack_ringbuffer_read(fRingBuffer[chan], (char*)&ev_count, sizeof(int)); +int +JackCoreMidiDriver::Stop() +{ + int result = 0; - for (int j = 0; j < ev_count; j++) { - // Read event length - UInt16 event_len; - jack_ringbuffer_read(fRingBuffer[chan], (char*)&event_len, sizeof(UInt16)); - // Read event actual data - jack_midi_data_t* dest = midi_buffer->ReserveEvent(0, event_len); - jack_ringbuffer_read(fRingBuffer[chan], (char*)dest, event_len); - } - } - } + jack_info("JackCoreMidiDriver::Stop - disabling physical input ports."); - } else { - // Consume ring buffer - jack_ringbuffer_read_advance(fRingBuffer[chan], jack_ringbuffer_read_space(fRingBuffer[chan])); + for (int i = 0; i < num_physical_inputs; i++) { + if (physical_input_ports[i]->Stop() < 0) { + jack_error("JackCoreMidiDriver::Stop - Failed to disable physical " + "input port."); + result = -1; } } - return 0; -} - -int JackCoreMidiDriver::Write() -{ - MIDIPacketList* pktlist = (MIDIPacketList*)fMIDIBuffer; - for (int chan = 0; chan < fPlaybackChannels; chan++) { + jack_info("JackCoreMidiDriver::Stop - disabling physical output ports."); - if (fGraphManager->GetConnectionsNum(fPlaybackPortList[chan]) > 0) { + for (int i = 0; i < num_physical_outputs; i++) { + if (physical_output_ports[i]->Stop() < 0) { + jack_error("JackCoreMidiDriver::Stop - Failed to disable physical " + "output port."); + result = -1; + } + } - MIDIPacket* packet = MIDIPacketListInit(pktlist); - JackMidiBuffer* midi_buffer = GetOutputBuffer(chan); + jack_info("JackCoreMidiDriver::Stop - disabling virtual input ports."); - // TODO : use timestamp + for (int i = 0; i < num_virtual_inputs; i++) { + if (virtual_input_ports[i]->Stop() < 0) { + jack_error("JackCoreMidiDriver::Stop - Failed to disable virtual " + "input port."); + result = -1; + } + } - for (unsigned int j = 0; j < midi_buffer->event_count; j++) { - JackMidiEvent* ev = &midi_buffer->events[j]; - packet = MIDIPacketListAdd(pktlist, sizeof(fMIDIBuffer), packet, MIDIGetCurrentHostTime(), ev->size, ev->GetData(midi_buffer)); - } + jack_info("JackCoreMidiDriver::Stop - disabling virtual output ports."); - if (packet) { - if (chan < fPlaybackChannels - fRealPlaybackChannels) { - OSStatus err = MIDIReceived(fMidiSource[chan], pktlist); - if (err != noErr) - jack_error("MIDIReceived error"); - } else { - OSStatus err = MIDISend(fOutputPort, fMidiSource[chan], pktlist); - if (err != noErr) - jack_error("MIDISend error"); - } - } + for (int i = 0; i < num_virtual_outputs; i++) { + if (virtual_output_ports[i]->Stop() < 0) { + jack_error("JackCoreMidiDriver::Stop - Failed to disable virtual " + "output port."); + result = -1; } } - return 0; + return result; } -} // end of namespace +int +JackCoreMidiDriver::Write() +{ + jack_nframes_t buffer_size = fEngineControl->fBufferSize; + for (int i = 0; i < num_physical_outputs; i++) { + physical_output_ports[i]->ProcessJack(GetOutputBuffer(i), buffer_size); + } + for (int i = 0; i < num_virtual_outputs; i++) { + virtual_output_ports[i]-> + ProcessJack(GetOutputBuffer(num_physical_outputs + i), + buffer_size); + } + return 0; +} #ifdef __cplusplus -extern "C" -{ +extern "C" { #endif SERVER_EXPORT jack_driver_desc_t * driver_get_descriptor() @@ -373,7 +649,7 @@ extern "C" i = 0; strcpy(desc->params[i].name, "inchannels"); desc->params[i].character = 'i'; - desc->params[i].type = JackDriverParamInt; + desc->params[i].type = JackDriverParamUInt; desc->params[i].value.ui = 0; strcpy(desc->params[i].short_desc, "CoreMIDI virtual bus"); strcpy(desc->params[i].long_desc, desc->params[i].short_desc); @@ -381,7 +657,7 @@ extern "C" i++; strcpy(desc->params[i].name, "outchannels"); desc->params[i].character = 'o'; - desc->params[i].type = JackDriverParamInt; + desc->params[i].type = JackDriverParamUInt; desc->params[i].value.ui = 0; strcpy(desc->params[i].short_desc, "CoreMIDI virtual bus"); strcpy(desc->params[i].long_desc, desc->params[i].short_desc); @@ -423,4 +699,3 @@ extern "C" #ifdef __cplusplus } #endif - diff --git a/macosx/coremidi/JackCoreMidiDriver.h b/macosx/coremidi/JackCoreMidiDriver.h index a99b35a0..c5a26f5b 100644 --- a/macosx/coremidi/JackCoreMidiDriver.h +++ b/macosx/coremidi/JackCoreMidiDriver.h @@ -1,5 +1,6 @@ /* Copyright (C) 2009 Grame +Copyright (C) 2011 Devin Anderson This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -20,61 +21,74 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. #ifndef __JackCoreMidiDriver__ #define __JackCoreMidiDriver__ -#include +#include "JackCoreMidiPhysicalInputPort.h" +#include "JackCoreMidiPhysicalOutputPort.h" +#include "JackCoreMidiVirtualInputPort.h" +#include "JackCoreMidiVirtualOutputPort.h" #include "JackMidiDriver.h" -#include "JackTime.h" -namespace Jack -{ +namespace Jack { -/*! -\brief The CoreMidi driver. -*/ - -class JackCoreMidiDriver : public JackMidiDriver -{ + class JackCoreMidiDriver: public JackMidiDriver { private: - MIDIClientRef fMidiClient; - MIDIPortRef fInputPort; - MIDIPortRef fOutputPort; - MIDIEndpointRef* fMidiDestination; - MIDIEndpointRef* fMidiSource; + static void + HandleInputEvent(const MIDIPacketList *packet_list, void *driver, + void *port); + + static void + HandleNotificationEvent(const MIDINotification *message, void *driver); + + void + HandleNotification(const MIDINotification *message); + + MIDIClientRef client; + MIDIPortRef internal_input; + MIDIPortRef internal_output; + int num_physical_inputs; + int num_physical_outputs; + int num_virtual_inputs; + int num_virtual_outputs; + JackCoreMidiPhysicalInputPort **physical_input_ports; + JackCoreMidiPhysicalOutputPort **physical_output_ports; + double time_ratio; + JackCoreMidiVirtualInputPort **virtual_input_ports; + JackCoreMidiVirtualOutputPort **virtual_output_ports; + + public: - char fMIDIBuffer[BUFFER_SIZE_MAX * sizeof(jack_default_audio_sample_t)]; + JackCoreMidiDriver(const char* name, const char* alias, + JackLockedEngine* engine, JackSynchro* table); - int fRealCaptureChannels; - int fRealPlaybackChannels; + ~JackCoreMidiDriver(); - static void ReadProcAux(const MIDIPacketList *pktlist, jack_ringbuffer_t* ringbuffer); - static void ReadProc(const MIDIPacketList *pktlist, void *refCon, void *connRefCon); - static void ReadVirtualProc(const MIDIPacketList *pktlist, void *refCon, void *connRefCon); - static void NotifyProc(const MIDINotification *message, void *refCon); + int + Attach(); - public: + int + Close(); + + int + Open(bool capturing, bool playing, int num_inputs, int num_outputs, + bool monitor, const char* capture_driver_name, + const char* playback_driver_name, jack_nframes_t capture_latency, + jack_nframes_t playback_latency); - JackCoreMidiDriver(const char* name, const char* alias, JackLockedEngine* engine, JackSynchro* table); - virtual ~JackCoreMidiDriver(); + int + Read(); - int Open( bool capturing, - bool playing, - int chan_in, - int chan_out, - bool monitor, - const char* capture_driver_name, - const char* playback_driver_name, - jack_nframes_t capture_latency, - jack_nframes_t playback_latency); - int Close(); + int + Start(); - int Attach(); + int + Stop(); - int Read(); - int Write(); + int + Write(); -}; + }; -} // end of namespace +} #endif diff --git a/macosx/coremidi/JackCoreMidiInputPort.cpp b/macosx/coremidi/JackCoreMidiInputPort.cpp new file mode 100644 index 00000000..fb4bc961 --- /dev/null +++ b/macosx/coremidi/JackCoreMidiInputPort.cpp @@ -0,0 +1,184 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include +#include + +#include "JackCoreMidiInputPort.h" +#include "JackMidiUtil.h" +//#include "types.h" + +using Jack::JackCoreMidiInputPort; + +JackCoreMidiInputPort::JackCoreMidiInputPort(double time_ratio, + size_t max_bytes, + size_t max_messages): + JackCoreMidiPort(time_ratio) +{ + thread_queue = new JackMidiAsyncQueue(max_bytes, max_messages); + std::auto_ptr thread_queue_ptr(thread_queue); + write_queue = new JackMidiBufferWriteQueue(); + std::auto_ptr write_queue_ptr(write_queue); + sysex_buffer = new jack_midi_data_t[max_bytes]; + write_queue_ptr.release(); + thread_queue_ptr.release(); + jack_event = 0; +} + +JackCoreMidiInputPort::~JackCoreMidiInputPort() +{ + delete thread_queue; + delete write_queue; + delete[] sysex_buffer; +} + +jack_nframes_t +JackCoreMidiInputPort::GetFramesFromTimeStamp(MIDITimeStamp timestamp) +{ + return GetFramesFromTime((jack_time_t) (timestamp * time_ratio)); +} + +void +JackCoreMidiInputPort::Initialize(const char *alias_name, + const char *client_name, + const char *driver_name, int index, + MIDIEndpointRef endpoint) +{ + JackCoreMidiPort::Initialize(alias_name, client_name, driver_name, index, endpoint, false); +} + +void +JackCoreMidiInputPort::ProcessCoreMidi(const MIDIPacketList *packet_list) +{ + set_threaded_log_function(); + + unsigned int packet_count = packet_list->numPackets; + assert(packet_count); + MIDIPacket *packet = (MIDIPacket *) packet_list->packet; + for (unsigned int i = 0; i < packet_count; i++) { + jack_midi_data_t *data = packet->data; + size_t size = packet->length; + assert(size); + jack_midi_event_t event; + + // XX: There might be dragons in my spaghetti. This code is begging + // for a rewrite. + + if (sysex_bytes_sent) { + if (data[0] & 0x80) { + jack_error("JackCoreMidiInputPort::ProcessCoreMidi - System " + "exclusive message aborted."); + sysex_bytes_sent = 0; + goto parse_event; + } + buffer_sysex_bytes: + if ((sysex_bytes_sent + size) <= sizeof(sysex_buffer)) { + memcpy(sysex_buffer + sysex_bytes_sent, packet, + size * sizeof(jack_midi_data_t)); + } + sysex_bytes_sent += size; + if (data[size - 1] == 0xf7) { + if (sysex_bytes_sent > sizeof(sysex_buffer)) { + jack_error("JackCoreMidiInputPort::ProcessCoreMidi - " + "Could not buffer a %d-byte system exclusive " + "message. Discarding message.", + sysex_bytes_sent); + sysex_bytes_sent = 0; + goto get_next_packet; + } + event.buffer = sysex_buffer; + event.size = sysex_bytes_sent; + sysex_bytes_sent = 0; + goto send_event; + } + goto get_next_packet; + } + + parse_event: + if (data[0] == 0xf0) { + if (data[size - 1] != 0xf7) { + goto buffer_sysex_bytes; + } + } + event.buffer = data; + event.size = size; + + send_event: + event.time = GetFramesFromTimeStamp(packet->timeStamp); + switch (thread_queue->EnqueueEvent(&event)) { + case JackMidiWriteQueue::BUFFER_FULL: + jack_error("JackCoreMidiInputPort::ProcessCoreMidi - The thread " + "queue buffer is full. Dropping event."); + break; + case JackMidiWriteQueue::BUFFER_TOO_SMALL: + jack_error("JackCoreMidiInputPort::ProcessCoreMidi - The thread " + "queue couldn't enqueue a %d-byte packet. Dropping " + "event.", event.size); + break; + default: + ; + } + + get_next_packet: + packet = MIDIPacketNext(packet); + assert(packet); + } +} + +void +JackCoreMidiInputPort::ProcessJack(JackMidiBuffer *port_buffer, + jack_nframes_t frames) +{ + write_queue->ResetMidiBuffer(port_buffer, frames); + if (! jack_event) { + jack_event = thread_queue->DequeueEvent(); + } + + for (; jack_event; jack_event = thread_queue->DequeueEvent()) { + // Add 'frames' to MIDI events to align with audio. + switch (write_queue->EnqueueEvent(jack_event, frames)) { + case JackMidiWriteQueue::BUFFER_TOO_SMALL: + jack_error("JackCoreMidiInputPort::ProcessJack - The write queue " + "couldn't enqueue a %d-byte event. Dropping event.", + jack_event->size); + // Fallthrough on purpose + case JackMidiWriteQueue::OK: + continue; + default: + ; + } + break; + } +} + +bool +JackCoreMidiInputPort::Start() +{ + // Hack: Get rid of any messages that might have come in before starting + // the engine. + while (thread_queue->DequeueEvent()); + sysex_bytes_sent = 0; + return true; +} + +bool +JackCoreMidiInputPort::Stop() +{ + return true; +} diff --git a/macosx/coremidi/JackCoreMidiInputPort.h b/macosx/coremidi/JackCoreMidiInputPort.h new file mode 100644 index 00000000..3950c70c --- /dev/null +++ b/macosx/coremidi/JackCoreMidiInputPort.h @@ -0,0 +1,73 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#ifndef __JackCoreMidiInputPort__ +#define __JackCoreMidiInputPort__ + +#include "JackCoreMidiPort.h" +#include "JackMidiAsyncQueue.h" +#include "JackMidiBufferWriteQueue.h" + +namespace Jack { + + class JackCoreMidiInputPort: public JackCoreMidiPort { + + private: + + jack_nframes_t + GetFramesFromTimeStamp(MIDITimeStamp timestamp); + + jack_midi_event_t *jack_event; + jack_midi_data_t *sysex_buffer; + size_t sysex_bytes_sent; + JackMidiAsyncQueue *thread_queue; + JackMidiBufferWriteQueue *write_queue; + + protected: + + void + Initialize(const char *alias_name, const char *client_name, + const char *driver_name, int index, + MIDIEndpointRef endpoint); + + public: + + JackCoreMidiInputPort(double time_ratio, size_t max_bytes=4096, + size_t max_messages=1024); + + virtual + ~JackCoreMidiInputPort(); + + void + ProcessCoreMidi(const MIDIPacketList *packet_list); + + void + ProcessJack(JackMidiBuffer *port_buffer, jack_nframes_t frames); + + bool + Start(); + + bool + Stop(); + + }; + +} + +#endif diff --git a/macosx/coremidi/JackCoreMidiOutputPort.cpp b/macosx/coremidi/JackCoreMidiOutputPort.cpp new file mode 100644 index 00000000..9a66b88d --- /dev/null +++ b/macosx/coremidi/JackCoreMidiOutputPort.cpp @@ -0,0 +1,249 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include +#include +#include +#include +#include + +#include "JackCoreMidiOutputPort.h" +#include "JackMidiUtil.h" +#include "JackTime.h" + +using Jack::JackCoreMidiOutputPort; + +JackCoreMidiOutputPort::JackCoreMidiOutputPort(double time_ratio, + size_t max_bytes, + size_t max_messages): + JackCoreMidiPort(time_ratio) +{ + read_queue = new JackMidiBufferReadQueue(); + std::auto_ptr read_queue_ptr(read_queue); + thread_queue = new JackMidiAsyncQueue(max_bytes, max_messages); + std::auto_ptr thread_queue_ptr(thread_queue); + thread = new JackThread(this); + std::auto_ptr thread_ptr(thread); + sprintf(semaphore_name, "coremidi_%p", this); + thread_queue_semaphore = sem_open(semaphore_name, O_CREAT, 0777, 0); + if (thread_queue_semaphore == (sem_t *) SEM_FAILED) { + throw std::runtime_error(strerror(errno)); + } + advance_schedule_time = 0; + thread_ptr.release(); + thread_queue_ptr.release(); + read_queue_ptr.release(); +} + +JackCoreMidiOutputPort::~JackCoreMidiOutputPort() +{ + delete thread; + sem_destroy(thread_queue_semaphore); + sem_unlink(semaphore_name); + delete read_queue; + delete thread_queue; +} + +bool +JackCoreMidiOutputPort::Execute() +{ + jack_midi_event_t *event = 0; + MIDIPacketList *packet_list = (MIDIPacketList *) packet_buffer; + for (;;) { + MIDIPacket *packet = MIDIPacketListInit(packet_list); + assert(packet); + if (! event) { + event = GetCoreMidiEvent(true); + } + jack_midi_data_t *data = event->buffer; + jack_nframes_t send_frame = event->time; + jack_time_t send_time = + GetTimeFromFrames(send_frame) - advance_schedule_time; + size_t size = event->size; + MIDITimeStamp timestamp = GetTimeStampFromFrames(send_frame); + packet = MIDIPacketListAdd(packet_list, PACKET_BUFFER_SIZE, packet, + timestamp, size, data); + if (packet) { + while (GetMicroSeconds() < send_time) { + event = GetCoreMidiEvent(false); + if (! event) { + break; + } + packet = MIDIPacketListAdd(packet_list, sizeof(packet_buffer), + packet, + GetTimeStampFromFrames(event->time), + event->size, event->buffer); + if (! packet) { + break; + } + } + SendPacketList(packet_list); + } else { + + // We have a large system exclusive event. We'll have to send it + // out in multiple packets. + size_t bytes_sent = 0; + do { + packet = MIDIPacketListInit(packet_list); + assert(packet); + size_t num_bytes = 0; + for (; bytes_sent < size; bytes_sent += num_bytes) { + size_t num_bytes = size - bytes_sent; + + // We use 256 because the MIDIPacket struct defines the + // size of the 'data' member to be 256 bytes. I believe + // this prevents packets from being dynamically allocated + // by 'MIDIPacketListAdd', but I might be wrong. + if (num_bytes > 256) { + num_bytes = 256; + } + packet = MIDIPacketListAdd(packet_list, + sizeof(packet_buffer), packet, + timestamp, num_bytes, + data + bytes_sent); + if (! packet) { + break; + } + } + if (! SendPacketList(packet_list)) { + // An error occurred. The error message has already been + // output. We lick our wounds and move along. + break; + } + } while (bytes_sent < size); + event = 0; + } + } + return false; +} + +jack_midi_event_t * +JackCoreMidiOutputPort::GetCoreMidiEvent(bool block) +{ + if (! block) { + if (sem_trywait(thread_queue_semaphore)) { + if (errno != EAGAIN) { + jack_error("JackCoreMidiOutputPort::Execute - sem_trywait: %s", + strerror(errno)); + } + return 0; + } + } else { + while (sem_wait(thread_queue_semaphore)) { + if (errno != EINTR) { + jack_error("JackCoreMidiOutputPort::Execute - sem_wait: %s", + strerror(errno)); + return 0; + } + } + } + return thread_queue->DequeueEvent(); +} + +MIDITimeStamp +JackCoreMidiOutputPort::GetTimeStampFromFrames(jack_nframes_t frames) +{ + return GetTimeFromFrames(frames) / time_ratio; +} + +bool +JackCoreMidiOutputPort::Init() +{ + set_threaded_log_function(); + + // OSX only, values read in RT CoreMidi thread + UInt64 period = 0; + UInt64 computation = 250 * 1000; + UInt64 constraint = 500 * 1000; + thread->SetParams(period, computation, constraint); + + if (thread->AcquireSelfRealTime()) { + jack_error("JackCoreMidiOutputPort::Init - could not acquire realtime " + "scheduling. Continuing anyway."); + } + return true; +} + +void +JackCoreMidiOutputPort::Initialize(const char *alias_name, + const char *client_name, + const char *driver_name, int index, + MIDIEndpointRef endpoint, + SInt32 advance_schedule_time) +{ + JackCoreMidiPort::Initialize(alias_name, client_name, driver_name, index, + endpoint, true); + assert(advance_schedule_time >= 0); + this->advance_schedule_time = advance_schedule_time; +} + +void +JackCoreMidiOutputPort::ProcessJack(JackMidiBuffer *port_buffer, + jack_nframes_t frames) +{ + read_queue->ResetMidiBuffer(port_buffer); + for (jack_midi_event_t *event = read_queue->DequeueEvent(); event; + event = read_queue->DequeueEvent()) { + switch (thread_queue->EnqueueEvent(event, frames)) { + case JackMidiWriteQueue::BUFFER_FULL: + jack_error("JackCoreMidiOutputPort::ProcessJack - The thread " + "queue buffer is full. Dropping event."); + break; + case JackMidiWriteQueue::BUFFER_TOO_SMALL: + jack_error("JackCoreMidiOutputPort::ProcessJack - The thread " + "queue couldn't enqueue a %d-byte event. Dropping " + "event.", event->size); + break; + default: + if (sem_post(thread_queue_semaphore)) { + jack_error("JackCoreMidiOutputPort::ProcessJack - unexpected " + "error while posting to thread queue semaphore: %s", + strerror(errno)); + } + } + } +} + +bool +JackCoreMidiOutputPort::Start() +{ + bool result = thread->GetStatus() != JackThread::kIdle; + if (! result) { + result = ! thread->StartSync(); + if (! result) { + jack_error("JackCoreMidiOutputPort::Start - failed to start MIDI " + "processing thread."); + } + } + return result; +} + +bool +JackCoreMidiOutputPort::Stop() +{ + bool result = thread->GetStatus() == JackThread::kIdle; + if (! result) { + result = ! thread->Kill(); + if (! result) { + jack_error("JackCoreMidiOutputPort::Stop - failed to stop MIDI " + "processing thread."); + } + } + return result; +} diff --git a/macosx/coremidi/JackCoreMidiOutputPort.h b/macosx/coremidi/JackCoreMidiOutputPort.h new file mode 100644 index 00000000..a04d98b3 --- /dev/null +++ b/macosx/coremidi/JackCoreMidiOutputPort.h @@ -0,0 +1,90 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#ifndef __JackCoreMidiOutputPort__ +#define __JackCoreMidiOutputPort__ + +#include + +#include "JackCoreMidiPort.h" +#include "JackMidiAsyncQueue.h" +#include "JackMidiBufferReadQueue.h" +#include "JackThread.h" + +namespace Jack { + + class JackCoreMidiOutputPort: + public JackCoreMidiPort, public JackRunnableInterface { + + private: + + jack_midi_event_t * + GetCoreMidiEvent(bool block); + + MIDITimeStamp + GetTimeStampFromFrames(jack_nframes_t frames); + + static const size_t PACKET_BUFFER_SIZE = 65536; + + SInt32 advance_schedule_time; + char packet_buffer[PACKET_BUFFER_SIZE]; + JackMidiBufferReadQueue *read_queue; + char semaphore_name[128]; + JackThread *thread; + JackMidiAsyncQueue *thread_queue; + sem_t *thread_queue_semaphore; + + protected: + + virtual bool + SendPacketList(MIDIPacketList *packet_list) = 0; + + void + Initialize(const char *alias_name, const char *client_name, + const char *driver_name, int index, + MIDIEndpointRef endpoint, SInt32 advance_schedule_time); + + public: + + JackCoreMidiOutputPort(double time_ratio, size_t max_bytes=4096, + size_t max_messages=1024); + + virtual + ~JackCoreMidiOutputPort(); + + bool + Execute(); + + bool + Init(); + + void + ProcessJack(JackMidiBuffer *port_buffer, jack_nframes_t frames); + + bool + Start(); + + bool + Stop(); + + }; + +} + +#endif diff --git a/macosx/coremidi/JackCoreMidiPhysicalInputPort.cpp b/macosx/coremidi/JackCoreMidiPhysicalInputPort.cpp new file mode 100644 index 00000000..748dbc17 --- /dev/null +++ b/macosx/coremidi/JackCoreMidiPhysicalInputPort.cpp @@ -0,0 +1,53 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include +#include + +#include "JackCoreMidiPhysicalInputPort.h" +#include "JackCoreMidiUtil.h" + +using Jack::JackCoreMidiPhysicalInputPort; + +JackCoreMidiPhysicalInputPort:: +JackCoreMidiPhysicalInputPort(const char *alias_name, const char *client_name, + const char *driver_name, int index, + MIDIClientRef client, MIDIPortRef internal_input, + double time_ratio, size_t max_bytes, + size_t max_messages): + JackCoreMidiInputPort(time_ratio, max_bytes, max_messages) +{ + MIDIEndpointRef source = MIDIGetSource(index); + if (! source) { + // X: Is there a way to get a better error message? + std::stringstream stream; + stream << "The source at index '" << index << "' is not available"; + throw std::runtime_error(stream.str().c_str()); + } + OSStatus status = MIDIPortConnectSource(internal_input, source, this); + if (status != noErr) { + throw std::runtime_error(GetMacOSErrorString(status)); + } + Initialize(alias_name, client_name, driver_name, index, source); +} + +JackCoreMidiPhysicalInputPort::~JackCoreMidiPhysicalInputPort() +{ + // Empty +} diff --git a/macosx/coremidi/JackCoreMidiPhysicalInputPort.h b/macosx/coremidi/JackCoreMidiPhysicalInputPort.h new file mode 100644 index 00000000..83f0f2dd --- /dev/null +++ b/macosx/coremidi/JackCoreMidiPhysicalInputPort.h @@ -0,0 +1,45 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#ifndef __JackCoreMidiPhysicalInputPort__ +#define __JackCoreMidiPhysicalInputPort__ + +#include "JackCoreMidiInputPort.h" + +namespace Jack { + + class JackCoreMidiPhysicalInputPort: public JackCoreMidiInputPort { + + public: + + JackCoreMidiPhysicalInputPort(const char *alias_name, + const char *client_name, + const char *driver_name, int index, + MIDIClientRef client, + MIDIPortRef internal_input, + double time_ratio, size_t max_bytes=4096, + size_t max_messages=1024); + + ~JackCoreMidiPhysicalInputPort(); + + }; + +} + +#endif diff --git a/macosx/coremidi/JackCoreMidiPhysicalOutputPort.cpp b/macosx/coremidi/JackCoreMidiPhysicalOutputPort.cpp new file mode 100644 index 00000000..d8a4af25 --- /dev/null +++ b/macosx/coremidi/JackCoreMidiPhysicalOutputPort.cpp @@ -0,0 +1,78 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include +#include + +#include "JackCoreMidiPhysicalOutputPort.h" +#include "JackCoreMidiUtil.h" + +using Jack::JackCoreMidiPhysicalOutputPort; + +JackCoreMidiPhysicalOutputPort:: +JackCoreMidiPhysicalOutputPort(const char *alias_name, const char *client_name, + const char *driver_name, int index, + MIDIClientRef client, + MIDIPortRef internal_output, double time_ratio, + size_t max_bytes, + size_t max_messages): + JackCoreMidiOutputPort(time_ratio, max_bytes, + max_messages) +{ + MIDIEndpointRef destination = MIDIGetDestination(index); + if (! destination) { + // X: Can we get a better error message? + std::stringstream stream; + stream << "The destination at index '" << index + << "' is not available"; + throw std::runtime_error(stream.str().c_str()); + } + SInt32 advance_schedule_time; + OSStatus status = + MIDIObjectGetIntegerProperty(destination, + kMIDIPropertyAdvanceScheduleTimeMuSec, + &advance_schedule_time); + if (status != noErr) { + WriteMacOSError("JackCoreMidiPhysicalOutputPort [constructor]", + "MIDIObjectGetIntegerProperty", status); + advance_schedule_time = 0; + } else if (advance_schedule_time < 0) { + advance_schedule_time = 0; + } + Initialize(alias_name, client_name, driver_name, index, destination, + advance_schedule_time); + this->internal_output = internal_output; +} + +JackCoreMidiPhysicalOutputPort::~JackCoreMidiPhysicalOutputPort() +{ + // Empty +} + +bool +JackCoreMidiPhysicalOutputPort::SendPacketList(MIDIPacketList *packet_list) +{ + OSStatus status = MIDISend(internal_output, endpoint, packet_list); + bool result = status == noErr; + if (! result) { + WriteMacOSError("JackCoreMidiPhysicalOutputPort::SendPacketList", + "MIDISend", status); + } + return result; +} diff --git a/macosx/coremidi/JackCoreMidiPhysicalOutputPort.h b/macosx/coremidi/JackCoreMidiPhysicalOutputPort.h new file mode 100644 index 00000000..9d641180 --- /dev/null +++ b/macosx/coremidi/JackCoreMidiPhysicalOutputPort.h @@ -0,0 +1,55 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#ifndef __JackCoreMidiPhysicalOutputPort__ +#define __JackCoreMidiPhysicalOutputPort__ + +#include "JackCoreMidiOutputPort.h" + +namespace Jack { + + class JackCoreMidiPhysicalOutputPort: public JackCoreMidiOutputPort { + + private: + + MIDIPortRef internal_output; + + protected: + + bool + SendPacketList(MIDIPacketList *packet_list); + + public: + + JackCoreMidiPhysicalOutputPort(const char *alias_name, + const char *client_name, + const char *driver_name, int index, + MIDIClientRef client, + MIDIPortRef internal_output, + double time_ratio, + size_t max_bytes=4096, + size_t max_messages=1024); + + ~JackCoreMidiPhysicalOutputPort(); + + }; + +} + +#endif diff --git a/macosx/coremidi/JackCoreMidiPort.cpp b/macosx/coremidi/JackCoreMidiPort.cpp new file mode 100644 index 00000000..7b2fd6db --- /dev/null +++ b/macosx/coremidi/JackCoreMidiPort.cpp @@ -0,0 +1,93 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include + +#include "JackCoreMidiPort.h" +#include "JackCoreMidiUtil.h" +#include "JackError.h" + +using Jack::JackCoreMidiPort; + +JackCoreMidiPort::JackCoreMidiPort(double time_ratio) +{ + initialized = false; + this->time_ratio = time_ratio; +} + +JackCoreMidiPort::~JackCoreMidiPort() +{ + // Empty +} + +const char * +JackCoreMidiPort::GetAlias() +{ + assert(initialized); + return alias; +} + +MIDIEndpointRef +JackCoreMidiPort::GetEndpoint() +{ + assert(initialized); + return endpoint; +} + +const char * +JackCoreMidiPort::GetName() +{ + assert(initialized); + return name; +} + +void +JackCoreMidiPort::Initialize(const char *alias_name, const char *client_name, + const char *driver_name, int index, + MIDIEndpointRef endpoint, bool is_output) +{ + char endpoint_name[JACK_CLIENT_NAME_SIZE + JACK_PORT_NAME_SIZE]; + CFStringRef endpoint_name_ref; + int num = index + 1; + Boolean res; + OSStatus result = MIDIObjectGetStringProperty(endpoint, kMIDIPropertyName, + &endpoint_name_ref); + if (result != noErr) { + WriteMacOSError("JackCoreMidiPort::Initialize", + "MIDIObjectGetStringProperty", result); + goto get_basic_alias; + } + res = CFStringGetCString(endpoint_name_ref, endpoint_name, + sizeof(endpoint_name), 0); + CFRelease(endpoint_name_ref); + if (!res) { + jack_error("JackCoreMidiPort::Initialize - failed to allocate memory " + "for endpoint name."); + get_basic_alias: + snprintf(alias, sizeof(alias) - 1, "%s:%s:%s%d", alias_name, + driver_name, is_output ? "in" : "out", num); + } else { + snprintf(alias, sizeof(alias) - 1, "%s:%s:%s%d", alias_name, + endpoint_name, is_output ? "in" : "out", num); + } + snprintf(name, sizeof(name) - 1, "%s:%s_%d", client_name, + is_output ? "playback" : "capture", num); + this->endpoint = endpoint; + initialized = true; +} diff --git a/macosx/coremidi/JackCoreMidiPort.h b/macosx/coremidi/JackCoreMidiPort.h new file mode 100644 index 00000000..21055c31 --- /dev/null +++ b/macosx/coremidi/JackCoreMidiPort.h @@ -0,0 +1,67 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#ifndef __JackCoreMidiPort__ +#define __JackCoreMidiPort__ + +#include + +#include "JackConstants.h" + +namespace Jack { + + class JackCoreMidiPort { + + private: + + char alias[JACK_CLIENT_NAME_SIZE + JACK_PORT_NAME_SIZE]; + bool initialized; + char name[JACK_CLIENT_NAME_SIZE + JACK_PORT_NAME_SIZE]; + + protected: + + MIDIEndpointRef + GetEndpoint(); + + void + Initialize(const char *alias_name, const char *client_name, + const char *driver_name, int index, + MIDIEndpointRef endpoint, bool is_output); + + double time_ratio; + MIDIEndpointRef endpoint; + + public: + + JackCoreMidiPort(double time_ratio); + + virtual + ~JackCoreMidiPort(); + + const char * + GetAlias(); + + const char * + GetName(); + + }; + +} + +#endif diff --git a/macosx/coremidi/JackCoreMidiUtil.cpp b/macosx/coremidi/JackCoreMidiUtil.cpp new file mode 100644 index 00000000..d976e936 --- /dev/null +++ b/macosx/coremidi/JackCoreMidiUtil.cpp @@ -0,0 +1,43 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include + +#include "JackError.h" +#include "JackCoreMidiUtil.h" + +std::string +Jack::GetMacOSErrorString(OSStatus status) +{ + const char *message = GetMacOSStatusErrorString(status); + if (! message) { + std::stringstream stream; + stream << "error (code: '" << status << "')"; + return stream.str(); + } + return std::string(message); +} + +void +Jack::WriteMacOSError(const char *jack_function, const char *mac_function, + OSStatus status) +{ + jack_error("%s - %s: %s", jack_function, mac_function, + GetMacOSErrorString(status).c_str()); +} diff --git a/macosx/coremidi/JackCoreMidiUtil.h b/macosx/coremidi/JackCoreMidiUtil.h new file mode 100644 index 00000000..4f24fc5b --- /dev/null +++ b/macosx/coremidi/JackCoreMidiUtil.h @@ -0,0 +1,39 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#ifndef __JackCoreMidiUtil__ +#define __JackCoreMidiUtil__ + +#include + +#include +#include + +namespace Jack { + + std::string + GetMacOSErrorString(OSStatus status); + + void + WriteMacOSError(const char *jack_function, const char *mac_function, + OSStatus status); + +} + +#endif diff --git a/macosx/coremidi/JackCoreMidiVirtualInputPort.cpp b/macosx/coremidi/JackCoreMidiVirtualInputPort.cpp new file mode 100644 index 00000000..874a644d --- /dev/null +++ b/macosx/coremidi/JackCoreMidiVirtualInputPort.cpp @@ -0,0 +1,75 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include +#include + +#include "JackCoreMidiUtil.h" +#include "JackCoreMidiVirtualInputPort.h" + +using Jack::JackCoreMidiVirtualInputPort; + +/////////////////////////////////////////////////////////////////////////////// +// Static callbacks +/////////////////////////////////////////////////////////////////////////////// + +void +JackCoreMidiVirtualInputPort:: +HandleInputEvent(const MIDIPacketList *packet_list, void *port, + void */*src_ref*/) +{ + ((JackCoreMidiVirtualInputPort *) port)->ProcessCoreMidi(packet_list); +} + +/////////////////////////////////////////////////////////////////////////////// +// Class +/////////////////////////////////////////////////////////////////////////////// + +JackCoreMidiVirtualInputPort:: +JackCoreMidiVirtualInputPort(const char *alias_name, const char *client_name, + const char *driver_name, int index, + MIDIClientRef client, double time_ratio, + size_t max_bytes, size_t max_messages): + JackCoreMidiInputPort(time_ratio, max_bytes, max_messages) +{ + std::stringstream stream; + stream << "virtual" << (index + 1); + CFStringRef name = CFStringCreateWithCString(0, stream.str().c_str(), + CFStringGetSystemEncoding()); + if (! name) { + throw std::bad_alloc(); + } + MIDIEndpointRef destination; + OSStatus status = MIDIDestinationCreate(client, name, HandleInputEvent, + this, &destination); + CFRelease(name); + if (status != noErr) { + throw std::runtime_error(GetMacOSErrorString(status)); + } + Initialize(alias_name, client_name, driver_name, index, destination); +} + +JackCoreMidiVirtualInputPort::~JackCoreMidiVirtualInputPort() +{ + OSStatus status = MIDIEndpointDispose(GetEndpoint()); + if (status != noErr) { + WriteMacOSError("JackCoreMidiVirtualInputPort [destructor]", + "MIDIEndpointDispose", status); + } +} diff --git a/macosx/coremidi/JackCoreMidiVirtualInputPort.h b/macosx/coremidi/JackCoreMidiVirtualInputPort.h new file mode 100644 index 00000000..e48126c4 --- /dev/null +++ b/macosx/coremidi/JackCoreMidiVirtualInputPort.h @@ -0,0 +1,50 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#ifndef __JackCoreMidiVirtualInputPort__ +#define __JackCoreMidiVirtualInputPort__ + +#include "JackCoreMidiInputPort.h" + +namespace Jack { + + class JackCoreMidiVirtualInputPort: public JackCoreMidiInputPort { + + private: + + static void + HandleInputEvent(const MIDIPacketList *packet_list, void *port, + void *src_ref); + + public: + + JackCoreMidiVirtualInputPort(const char *alias_name, + const char *client_name, + const char *driver_name, int index, + MIDIClientRef client, double time_ratio, + size_t max_bytes=4096, + size_t max_messages=1024); + + ~JackCoreMidiVirtualInputPort(); + + }; + +} + +#endif diff --git a/macosx/coremidi/JackCoreMidiVirtualOutputPort.cpp b/macosx/coremidi/JackCoreMidiVirtualOutputPort.cpp new file mode 100644 index 00000000..0d8bc173 --- /dev/null +++ b/macosx/coremidi/JackCoreMidiVirtualOutputPort.cpp @@ -0,0 +1,72 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include +#include + +#include "JackCoreMidiUtil.h" +#include "JackCoreMidiVirtualOutputPort.h" + +using Jack::JackCoreMidiVirtualOutputPort; + +JackCoreMidiVirtualOutputPort:: +JackCoreMidiVirtualOutputPort(const char *alias_name, const char *client_name, + const char *driver_name, int index, + MIDIClientRef client, double time_ratio, + size_t max_bytes, + size_t max_messages): + JackCoreMidiOutputPort(time_ratio, max_bytes, + max_messages) +{ + std::stringstream stream; + stream << "virtual" << (index + 1); + CFStringRef name = CFStringCreateWithCString(0, stream.str().c_str(), + CFStringGetSystemEncoding()); + if (! name) { + throw std::bad_alloc(); + } + MIDIEndpointRef source; + OSStatus status = MIDISourceCreate(client, name, &source); + CFRelease(name); + if (status != noErr) { + throw std::runtime_error(GetMacOSErrorString(status)); + } + Initialize(alias_name, client_name, driver_name, index, source, 0); +} + +JackCoreMidiVirtualOutputPort::~JackCoreMidiVirtualOutputPort() +{ + OSStatus status = MIDIEndpointDispose(GetEndpoint()); + if (status != noErr) { + WriteMacOSError("JackCoreMidiVirtualOutputPort [destructor]", + "MIDIEndpointDispose", status); + } +} + +bool +JackCoreMidiVirtualOutputPort::SendPacketList(MIDIPacketList *packet_list) +{ + OSStatus status = MIDIReceived(endpoint, packet_list); + bool result = status == noErr; + if (! result) { + WriteMacOSError("JackCoreMidiVirtualOutputPort::SendPacketList", + "MIDIReceived", status); + } + return result; +} diff --git a/macosx/coremidi/JackCoreMidiVirtualOutputPort.h b/macosx/coremidi/JackCoreMidiVirtualOutputPort.h new file mode 100644 index 00000000..61529a98 --- /dev/null +++ b/macosx/coremidi/JackCoreMidiVirtualOutputPort.h @@ -0,0 +1,49 @@ +/* +Copyright (C) 2011 Devin Anderson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#ifndef __JackCoreMidiVirtualOutputPort__ +#define __JackCoreMidiVirtualOutputPort__ + +#include "JackCoreMidiOutputPort.h" + +namespace Jack { + + class JackCoreMidiVirtualOutputPort: public JackCoreMidiOutputPort { + + protected: + + bool + SendPacketList(MIDIPacketList *packet_list); + + public: + + JackCoreMidiVirtualOutputPort(const char *alias_name, + const char *client_name, + const char *driver_name, int index, + MIDIClientRef client, double time_ratio, + size_t max_bytes=4096, + size_t max_messages=1024); + + ~JackCoreMidiVirtualOutputPort(); + + }; + +} + +#endif diff --git a/posix/JackNetUnixSocket.h b/posix/JackNetUnixSocket.h index 34e69b05..10fc2331 100644 --- a/posix/JackNetUnixSocket.h +++ b/posix/JackNetUnixSocket.h @@ -40,6 +40,7 @@ namespace Jack class SERVER_EXPORT JackNetUnixSocket { private: + int fSockfd; int fPort; int fTimeOut; @@ -50,7 +51,9 @@ namespace Jack int WaitRead(); int WaitWrite(); #endif + public: + JackNetUnixSocket(); JackNetUnixSocket ( const char* ip, int port ); JackNetUnixSocket ( const JackNetUnixSocket& ); diff --git a/posix/JackPosixThread.cpp b/posix/JackPosixThread.cpp index aed3796b..cae2c493 100644 --- a/posix/JackPosixThread.cpp +++ b/posix/JackPosixThread.cpp @@ -232,6 +232,8 @@ int JackPosixThread::AcquireRealTimeImp(jack_native_thread_t thread, int priorit memset(&rtparam, 0, sizeof(rtparam)); rtparam.sched_priority = priority; + jack_log("JackPosixThread::AcquireRealTimeImp priority = %d", priority); + if ((res = pthread_setschedparam(thread, JACK_SCHED_POLICY, &rtparam)) != 0) { jack_error("Cannot use real-time scheduling (RR/%d)" "(%d: %s)", rtparam.sched_priority, res, diff --git a/posix/JackSocketServerChannel.cpp b/posix/JackSocketServerChannel.cpp index 3008e307..2c5f267e 100644 --- a/posix/JackSocketServerChannel.cpp +++ b/posix/JackSocketServerChannel.cpp @@ -571,7 +571,7 @@ bool JackSocketServerChannel::Execute() return true; } catch (JackQuitException& e) { - jack_log("JackMachServerChannel::Execute JackQuitException"); + jack_log("JackSocketServerChannel::Execute JackQuitException"); return false; } } diff --git a/solaris/oss/JackBoomerDriver.cpp b/solaris/oss/JackBoomerDriver.cpp index fc054541..63446f14 100644 --- a/solaris/oss/JackBoomerDriver.cpp +++ b/solaris/oss/JackBoomerDriver.cpp @@ -106,14 +106,14 @@ static inline void CopyAndConvertOut(void *dst, jack_sample_t *src, size_t nfram case 24: { signed int *s32dst = (signed int*)dst; s32dst += channel; - sample_move_d24_sS((char*)s32dst, src, nframes, byte_skip, NULL); + sample_move_d24_sS((char*)s32dst, src, nframes, byte_skip, NULL); break; - } + } case 32: { signed int *s32dst = (signed int*)dst; s32dst += channel; sample_move_d32u24_sS((char*)s32dst, src, nframes, byte_skip, NULL); - break; + break; } } } @@ -127,7 +127,7 @@ void JackBoomerDriver::SetSampleFormat() fSampleSize = 4; break; case 32: /* native-endian 32-bit integer */ - fSampleFormat = AFMT_S32_NE; + fSampleFormat = AFMT_S32_NE; fSampleSize = 4; break; case 16: /* native-endian 16-bit integer */ @@ -144,13 +144,13 @@ void JackBoomerDriver::DisplayDeviceInfo() oss_audioinfo ai_in, ai_out; memset(&info, 0, sizeof(audio_buf_info)); int cap = 0; - + // Duplex cards : http://manuals.opensound.com/developer/full_duplex.html jack_info("Audio Interface Description :"); jack_info("Sampling Frequency : %d, Sample Format : %d, Mode : %d", fEngineControl->fSampleRate, fSampleFormat, fRWMode); - + if (fRWMode & kWrite) { - + oss_sysinfo si; if (ioctl(fOutFD, OSS_SYSINFO, &si) == -1) { jack_error("JackBoomerDriver::DisplayDeviceInfo OSS_SYSINFO failed : %s@%i, errno = %d", __FILE__, __LINE__, errno); @@ -162,18 +162,18 @@ void JackBoomerDriver::DisplayDeviceInfo() jack_info("OSS numaudioengines %d", si.numaudioengines); jack_info("OSS numcards %d", si.numcards); } - + jack_info("Output capabilities - %d channels : ", fPlaybackChannels); jack_info("Output block size = %d", fOutputBufferSize); - + if (ioctl(fOutFD, SNDCTL_DSP_GETOSPACE, &info) == -1) { jack_error("JackBoomerDriver::DisplayDeviceInfo SNDCTL_DSP_GETOSPACE failed : %s@%i, errno = %d", __FILE__, __LINE__, errno); } else { - jack_info("output space info: fragments = %d, fragstotal = %d, fragsize = %d, bytes = %d", + jack_info("output space info: fragments = %d, fragstotal = %d, fragsize = %d, bytes = %d", info.fragments, info.fragstotal, info.fragsize, info.bytes); fFragmentSize = info.fragsize; } - + if (ioctl(fOutFD, SNDCTL_DSP_GETCAPS, &cap) == -1) { jack_error("JackBoomerDriver::DisplayDeviceInfo SNDCTL_DSP_GETCAPS failed : %s@%i, errno = %d", __FILE__, __LINE__, errno); } else { @@ -186,10 +186,10 @@ void JackBoomerDriver::DisplayDeviceInfo() if (cap & DSP_CAP_MULTI) jack_info(" DSP_CAP_MULTI"); if (cap & DSP_CAP_BIND) jack_info(" DSP_CAP_BIND"); } - } - + } + if (fRWMode & kRead) { - + oss_sysinfo si; if (ioctl(fInFD, OSS_SYSINFO, &si) == -1) { jack_error("JackBoomerDriver::DisplayDeviceInfo OSS_SYSINFO failed : %s@%i, errno = %d", __FILE__, __LINE__, errno); @@ -201,14 +201,14 @@ void JackBoomerDriver::DisplayDeviceInfo() jack_info("OSS numaudioengines %d", si.numaudioengines); jack_info("OSS numcards %d", si.numcards); } - + jack_info("Input capabilities - %d channels : ", fCaptureChannels); jack_info("Input block size = %d", fInputBufferSize); - - if (ioctl(fInFD, SNDCTL_DSP_GETISPACE, &info) == -1) { + + if (ioctl(fInFD, SNDCTL_DSP_GETISPACE, &info) == -1) { jack_error("JackBoomerDriver::DisplayDeviceInfo SNDCTL_DSP_GETOSPACE failed : %s@%i, errno = %d", __FILE__, __LINE__, errno); } else { - jack_info("input space info: fragments = %d, fragstotal = %d, fragsize = %d, bytes = %d", + jack_info("input space info: fragments = %d, fragstotal = %d, fragsize = %d, bytes = %d", info.fragments, info.fragstotal, info.fragsize, info.bytes); } @@ -225,31 +225,30 @@ void JackBoomerDriver::DisplayDeviceInfo() if (cap & DSP_CAP_BIND) jack_info(" DSP_CAP_BIND"); } } - + if (ai_in.rate_source != ai_out.rate_source) { jack_info("Warning : input and output are not necessarily driven by the same clock!"); } } JackBoomerDriver::JackBoomerDriver(const char* name, const char* alias, JackLockedEngine* engine, JackSynchro* table) - : JackAudioDriver(name, alias, engine, table), - fInFD(-1), fOutFD(-1), fBits(0), - fSampleFormat(0), fNperiods(0), fSampleSize(0), fFragmentSize(0), - fRWMode(0), fExcl(false), fSyncIO(false), - fInputBufferSize(0), fOutputBufferSize(0), - fInputBuffer(NULL), fOutputBuffer(NULL), - fInputThread(&fInputHandler), fOutputThread(&fOutputHandler), - fInputHandler(this), fOutputHandler(this) - + : JackAudioDriver(name, alias, engine, table), + fInFD(-1), fOutFD(-1), fBits(0), + fSampleFormat(0), fNperiods(0), fSampleSize(0), fFragmentSize(0), + fRWMode(0), fExcl(false), fSyncIO(false), + fInputBufferSize(0), fOutputBufferSize(0), + fInputBuffer(NULL), fOutputBuffer(NULL), + fInputThread(&fInputHandler), fOutputThread(&fOutputHandler), + fInputHandler(this), fOutputHandler(this) { - sem_init(&fReadSema, 0, 0); - sem_init(&fWriteSema, 0, 0); + sem_init(&fReadSema, 0, 0); + sem_init(&fWriteSema, 0, 0); } JackBoomerDriver::~JackBoomerDriver() { - sem_destroy(&fReadSema); - sem_destroy(&fWriteSema); + sem_destroy(&fReadSema); + sem_destroy(&fWriteSema); } int JackBoomerDriver::OpenInput() @@ -260,8 +259,9 @@ int JackBoomerDriver::OpenInput() int cur_sample_format; jack_nframes_t cur_sample_rate; - if (fCaptureChannels == 0) fCaptureChannels = 2; - + if (fCaptureChannels == 0) + fCaptureChannels = 2; + if ((fInFD = open(fCaptureDriverName, O_RDONLY | ((fExcl) ? O_EXCL : 0))) < 0) { jack_error("JackBoomerDriver::OpenInput failed to open device : %s@%i, errno = %d", __FILE__, __LINE__, errno); return -1; @@ -276,7 +276,7 @@ int JackBoomerDriver::OpenInput() } } - gFragFormat = (2 << 16) + int2pow2(fEngineControl->fBufferSize * fSampleSize * fCaptureChannels); + gFragFormat = (2 << 16) + int2pow2(fEngineControl->fBufferSize * fSampleSize * fCaptureChannels); if (ioctl(fInFD, SNDCTL_DSP_SETFRAGMENT, &gFragFormat) == -1) { jack_error("JackBoomerDriver::OpenInput failed to set fragments : %s@%i, errno = %d", __FILE__, __LINE__, errno); goto error; @@ -290,7 +290,7 @@ int JackBoomerDriver::OpenInput() if (cur_sample_format != fSampleFormat) { jack_info("JackBoomerDriver::OpenInput driver forced the sample format %ld", fSampleFormat); } - + cur_capture_channels = fCaptureChannels; if (ioctl(fInFD, SNDCTL_DSP_CHANNELS, &fCaptureChannels) == -1) { jack_error("JackBoomerDriver::OpenInput failed to set channels : %s@%i, errno = %d", __FILE__, __LINE__, errno); @@ -299,7 +299,7 @@ int JackBoomerDriver::OpenInput() if (cur_capture_channels != fCaptureChannels) { jack_info("JackBoomerDriver::OpenInput driver forced the number of capture channels %ld", fCaptureChannels); } - + cur_sample_rate = fEngineControl->fSampleRate; if (ioctl(fInFD, SNDCTL_DSP_SPEED, &fEngineControl->fSampleRate) == -1) { jack_error("JackBoomerDriver::OpenInput failed to set sample rate : %s@%i, errno = %d", __FILE__, __LINE__, errno); @@ -315,7 +315,7 @@ int JackBoomerDriver::OpenInput() fInputBuffer = (void*)calloc(fInputBufferSize, 1); assert(fInputBuffer); return 0; - + error: ::close(fInFD); return -1; @@ -329,28 +329,29 @@ int JackBoomerDriver::OpenOutput() int cur_playback_channels; jack_nframes_t cur_sample_rate; - if (fPlaybackChannels == 0) fPlaybackChannels = 2; - + if (fPlaybackChannels == 0) + fPlaybackChannels = 2; + if ((fOutFD = open(fPlaybackDriverName, O_WRONLY | ((fExcl) ? O_EXCL : 0))) < 0) { jack_error("JackBoomerDriver::OpenOutput failed to open device : %s@%i, errno = %d", __FILE__, __LINE__, errno); return -1; } jack_log("JackBoomerDriver::OpenOutput output fOutFD = %d", fOutFD); - + if (fExcl) { if (ioctl(fOutFD, SNDCTL_DSP_COOKEDMODE, &flags) == -1) { jack_error("JackBoomerDriver::OpenOutput failed to set cooked mode : %s@%i, errno = %d", __FILE__, __LINE__, errno); goto error; - } - } + } + } - gFragFormat = (2 << 16) + int2pow2(fEngineControl->fBufferSize * fSampleSize * fPlaybackChannels); + gFragFormat = (2 << 16) + int2pow2(fEngineControl->fBufferSize * fSampleSize * fPlaybackChannels); if (ioctl(fOutFD, SNDCTL_DSP_SETFRAGMENT, &gFragFormat) == -1) { jack_error("JackBoomerDriver::OpenOutput failed to set fragments : %s@%i, errno = %d", __FILE__, __LINE__, errno); goto error; } - + cur_sample_format = fSampleFormat; if (ioctl(fOutFD, SNDCTL_DSP_SETFMT, &fSampleFormat) == -1) { jack_error("JackBoomerDriver::OpenOutput failed to set format : %s@%i, errno = %d", __FILE__, __LINE__, errno); @@ -359,7 +360,7 @@ int JackBoomerDriver::OpenOutput() if (cur_sample_format != fSampleFormat) { jack_info("JackBoomerDriver::OpenOutput driver forced the sample format %ld", fSampleFormat); } - + cur_playback_channels = fPlaybackChannels; if (ioctl(fOutFD, SNDCTL_DSP_CHANNELS, &fPlaybackChannels) == -1) { jack_error("JackBoomerDriver::OpenOutput failed to set channels : %s@%i, errno = %d", __FILE__, __LINE__, errno); @@ -380,33 +381,33 @@ int JackBoomerDriver::OpenOutput() // Just set the write size to the value we want... fOutputBufferSize = fEngineControl->fBufferSize * fSampleSize * fPlaybackChannels; - + fOutputBuffer = (void*)calloc(fOutputBufferSize, 1); assert(fOutputBuffer); return 0; - + error: ::close(fOutFD); return -1; } int JackBoomerDriver::Open(jack_nframes_t nframes, - int user_nperiods, - jack_nframes_t samplerate, - bool capturing, - bool playing, - int inchannels, - int outchannels, - bool excl, - bool monitor, - const char* capture_driver_uid, - const char* playback_driver_uid, - jack_nframes_t capture_latency, - jack_nframes_t playback_latency, - int bits, bool syncio) + int user_nperiods, + jack_nframes_t samplerate, + bool capturing, + bool playing, + int inchannels, + int outchannels, + bool excl, + bool monitor, + const char* capture_driver_uid, + const char* playback_driver_uid, + jack_nframes_t capture_latency, + jack_nframes_t playback_latency, + int bits, bool syncio) { // Generic JackAudioDriver Open - if (JackAudioDriver::Open(nframes, samplerate, capturing, playing, inchannels, outchannels, monitor, + if (JackAudioDriver::Open(nframes, samplerate, capturing, playing, inchannels, outchannels, monitor, capture_driver_uid, playback_driver_uid, capture_latency, playback_latency) != 0) { return -1; } else { @@ -422,12 +423,12 @@ int JackBoomerDriver::Open(jack_nframes_t nframes, fExcl = excl; fNperiods = (user_nperiods == 0) ? 1 : user_nperiods ; fSyncIO = syncio; - + #ifdef JACK_MONITOR // Force memory page in memset(&gCycleTable, 0, sizeof(gCycleTable)); #endif - + if (OpenAux() < 0) { Close(); return -1; @@ -441,14 +442,14 @@ int JackBoomerDriver::Close() { #ifdef JACK_MONITOR FILE* file = fopen("OSSProfiling.log", "w"); - + if (file) { jack_info("Writing OSS driver timing data...."); for (int i = 1; i < std::min(gCycleReadCount, gCycleWriteCount); i++) { int d1 = gCycleTable.fTable[i].fAfterRead - gCycleTable.fTable[i].fBeforeRead; int d2 = gCycleTable.fTable[i].fAfterReadConvert - gCycleTable.fTable[i].fAfterRead; int d3 = gCycleTable.fTable[i].fAfterWrite - gCycleTable.fTable[i].fBeforeWrite; - int d4 = gCycleTable.fTable[i].fBeforeWrite - gCycleTable.fTable[i].fBeforeWriteConvert; + int d4 = gCycleTable.fTable[i].fBeforeWrite - gCycleTable.fTable[i].fBeforeWriteConvert; fprintf(file, "%d \t %d \t %d \t %d \t \n", d1, d2, d3, d4); } fclose(file); @@ -461,7 +462,7 @@ int JackBoomerDriver::Close() if (file == NULL) { jack_error("JackBoomerDriver::Close cannot open TimingOSS.plot file"); } else { - + fprintf(file, "set grid\n"); fprintf(file, "set title \"OSS audio driver timing\"\n"); fprintf(file, "set xlabel \"audio cycles\"\n"); @@ -470,10 +471,10 @@ int JackBoomerDriver::Close() \"OSSProfiling.log\" using 2 title \"Driver read convert duration\" with lines, \ \"OSSProfiling.log\" using 3 title \"Driver write wait\" with lines, \ \"OSSProfiling.log\" using 4 title \"Driver write convert duration\" with lines\n"); - + fprintf(file, "set output 'TimingOSS.pdf\n"); fprintf(file, "set terminal pdf\n"); - + fprintf(file, "set grid\n"); fprintf(file, "set title \"OSS audio driver timing\"\n"); fprintf(file, "set xlabel \"audio cycles\"\n"); @@ -482,12 +483,12 @@ int JackBoomerDriver::Close() \"OSSProfiling.log\" using 2 title \"Driver read convert duration\" with lines, \ \"OSSProfiling.log\" using 3 title \"Driver write wait\" with lines, \ \"OSSProfiling.log\" using 4 title \"Driver write convert duration\" with lines\n"); - + fclose(file); } #endif int res = JackAudioDriver::Close(); - CloseAux(); + CloseAux(); return res; } @@ -498,12 +499,12 @@ int JackBoomerDriver::OpenAux() if ((fRWMode & kRead) && (OpenInput() < 0)) { return -1; } - - if ((fRWMode & kWrite) && (OpenOutput() < 0)) { + + if ((fRWMode & kWrite) && (OpenOutput() < 0)) { return -1; } - - DisplayDeviceInfo(); + + DisplayDeviceInfo(); return 0; } @@ -513,16 +514,16 @@ void JackBoomerDriver::CloseAux() close(fInFD); fInFD = -1; } - + if (fRWMode & kWrite && fOutFD >= 0) { close(fOutFD); fOutFD = -1; } - + if (fInputBuffer) free(fInputBuffer); fInputBuffer = NULL; - + if (fOutputBuffer) free(fOutputBuffer); fOutputBuffer = NULL; @@ -533,29 +534,29 @@ int JackBoomerDriver::Start() jack_log("JackBoomerDriver::Start"); JackAudioDriver::Start(); - // Input/output synchronisation + // Input/output synchronisation if (fInFD >= 0 && fOutFD >= 0 && fSyncIO) { - jack_log("JackBoomerDriver::Start sync input/output"); + jack_log("JackBoomerDriver::Start sync input/output"); // Create and fill synch group int id; oss_syncgroup group; group.id = 0; - + group.mode = PCM_ENABLE_INPUT; - if (ioctl(fInFD, SNDCTL_DSP_SYNCGROUP, &group) == -1) + if (ioctl(fInFD, SNDCTL_DSP_SYNCGROUP, &group) == -1) jack_error("JackBoomerDriver::Start failed to use SNDCTL_DSP_SYNCGROUP : %s@%i, errno = %d", __FILE__, __LINE__, errno); - + group.mode = PCM_ENABLE_OUTPUT; - if (ioctl(fOutFD, SNDCTL_DSP_SYNCGROUP, &group) == -1) + if (ioctl(fOutFD, SNDCTL_DSP_SYNCGROUP, &group) == -1) jack_error("JackBoomerDriver::Start failed to use SNDCTL_DSP_SYNCGROUP : %s@%i, errno = %d", __FILE__, __LINE__, errno); // Prefill output buffer : 2 fragments of silence as described in http://manuals.opensound.com/developer/synctest.c.html#LOC6 char* silence_buf = (char*)malloc(fFragmentSize); memset(silence_buf, 0, fFragmentSize); - jack_log ("JackBoomerDriver::Start prefill size = %d", fFragmentSize); + jack_log ("JackBoomerDriver::Start prefill size = %d", fFragmentSize); for (int i = 0; i < 2; i++) { ssize_t count = ::write(fOutFD, silence_buf, fFragmentSize); @@ -569,12 +570,12 @@ int JackBoomerDriver::Start() // Start input/output in sync id = group.id; - if (ioctl(fInFD, SNDCTL_DSP_SYNCSTART, &id) == -1) + if (ioctl(fInFD, SNDCTL_DSP_SYNCSTART, &id) == -1) jack_error("JackBoomerDriver::Start failed to use SNDCTL_DSP_SYNCSTART : %s@%i, errno = %d", __FILE__, __LINE__, errno); } else if (fOutFD >= 0) { - - // Maybe necessary to write an empty output buffer first time : see http://manuals.opensound.com/developer/fulldup.c.html + + // Maybe necessary to write an empty output buffer first time : see http://manuals.opensound.com/developer/fulldup.c.html memset(fOutputBuffer, 0, fOutputBufferSize); // Prefill ouput buffer @@ -584,8 +585,8 @@ int JackBoomerDriver::Start() jack_error("JackBoomerDriver::Start error bytes written = %ld", count); } } - } - + } + // Start input thread only when needed if (fInFD >= 0) { if (fInputThread.StartSync() < 0) { @@ -627,44 +628,44 @@ bool JackBoomerDriver::JackBoomerDriverInput::Init() if (fDriver->fInputThread.AcquireRealTime(GetEngineControl()->fServerPriority) < 0) { jack_error("AcquireRealTime error"); } else { - set_threaded_log_function(); + set_threaded_log_function(); } } - + return true; } // TODO : better error handling bool JackBoomerDriver::JackBoomerDriverInput::Execute() { - + #ifdef JACK_MONITOR gCycleTable.fTable[gCycleReadCount].fBeforeRead = GetMicroSeconds(); #endif audio_errinfo ei_in; - ssize_t count = ::read(fDriver->fInFD, fDriver->fInputBuffer, fDriver->fInputBufferSize); - + ssize_t count = ::read(fDriver->fInFD, fDriver->fInputBuffer, fDriver->fInputBufferSize); + #ifdef JACK_MONITOR if (count > 0 && count != (int)fDriver->fInputBufferSize) jack_log("JackBoomerDriverInput::Execute count = %ld", count / (fDriver->fSampleSize * fDriver->fCaptureChannels)); gCycleTable.fTable[gCycleReadCount].fAfterRead = GetMicroSeconds(); #endif - + // XRun detection if (ioctl(fDriver->fInFD, SNDCTL_DSP_GETERROR, &ei_in) == 0) { if (ei_in.rec_overruns > 0 ) { jack_error("JackBoomerDriverInput::Execute overruns"); jack_time_t cur_time = GetMicroSeconds(); - fDriver->NotifyXRun(cur_time, float(cur_time - fDriver->fBeginDateUst)); // Better this value than nothing... + fDriver->NotifyXRun(cur_time, float(cur_time - fDriver->fBeginDateUst)); // Better this value than nothing... } if (ei_in.rec_errorcount > 0 && ei_in.rec_lasterror != 0) { jack_error("%d OSS rec event(s), last=%05d:%d", ei_in.rec_errorcount, ei_in.rec_lasterror, ei_in.rec_errorparm); } - } - + } + if (count < 0) { jack_log("JackBoomerDriverInput::Execute error = %s", strerror(errno)); } else if (count < (int)fDriver->fInputBufferSize) { @@ -675,11 +676,11 @@ bool JackBoomerDriver::JackBoomerDriverInput::Execute() fDriver->CycleTakeBeginTime(); for (int i = 0; i < fDriver->fCaptureChannels; i++) { if (fDriver->fGraphManager->GetConnectionsNum(fDriver->fCapturePortList[i]) > 0) { - CopyAndConvertIn(fDriver->GetInputBuffer(i), - fDriver->fInputBuffer, - fDriver->fEngineControl->fBufferSize, - i, - fDriver->fCaptureChannels * fDriver->fSampleSize, + CopyAndConvertIn(fDriver->GetInputBuffer(i), + fDriver->fInputBuffer, + fDriver->fEngineControl->fBufferSize, + i, + fDriver->fCaptureChannels * fDriver->fSampleSize, fDriver->fBits); } } @@ -707,18 +708,18 @@ bool JackBoomerDriver::JackBoomerDriverOutput::Init() if (fDriver->fOutputThread.AcquireRealTime(GetEngineControl()->fServerPriority) < 0) { jack_error("AcquireRealTime error"); } else { - set_threaded_log_function(); + set_threaded_log_function(); } } - + int delay; if (ioctl(fDriver->fOutFD, SNDCTL_DSP_GETODELAY, &delay) == -1) { jack_error("JackBoomerDriverOutput::Init error get out delay : %s@%i, errno = %d", __FILE__, __LINE__, errno); } - + delay /= fDriver->fSampleSize * fDriver->fPlaybackChannels; jack_info("JackBoomerDriverOutput::Init output latency frames = %ld", delay); - + return true; } @@ -730,21 +731,21 @@ bool JackBoomerDriver::JackBoomerDriverOutput::Execute() #ifdef JACK_MONITOR gCycleTable.fTable[gCycleWriteCount].fBeforeWriteConvert = GetMicroSeconds(); #endif - + for (int i = 0; i < fDriver->fPlaybackChannels; i++) { if (fDriver->fGraphManager->GetConnectionsNum(fDriver->fPlaybackPortList[i]) > 0) { - CopyAndConvertOut(fDriver->fOutputBuffer, - fDriver->GetOutputBuffer(i), - fDriver->fEngineControl->fBufferSize, - i, - fDriver->fPlaybackChannels * fDriver->fSampleSize, + CopyAndConvertOut(fDriver->fOutputBuffer, + fDriver->GetOutputBuffer(i), + fDriver->fEngineControl->fBufferSize, + i, + fDriver->fPlaybackChannels * fDriver->fSampleSize, fDriver->fBits); } } - + #ifdef JACK_MONITOR gCycleTable.fTable[gCycleWriteCount].fBeforeWrite = GetMicroSeconds(); -#endif +#endif ssize_t count = ::write(fDriver->fOutFD, fDriver->fOutputBuffer, fDriver->fOutputBufferSize); @@ -762,20 +763,20 @@ bool JackBoomerDriver::JackBoomerDriverOutput::Execute() if (ei_out.play_underruns > 0) { jack_error("JackBoomerDriverOutput::Execute underruns"); jack_time_t cur_time = GetMicroSeconds(); - fDriver->NotifyXRun(cur_time, float(cur_time - fDriver->fBeginDateUst)); // Better this value than nothing... + fDriver->NotifyXRun(cur_time, float(cur_time - fDriver->fBeginDateUst)); // Better this value than nothing... } if (ei_out.play_errorcount > 0 && ei_out.play_lasterror != 0) { jack_error("%d OSS play event(s), last=%05d:%d",ei_out.play_errorcount, ei_out.play_lasterror, ei_out.play_errorparm); } } - + if (count < 0) { jack_log("JackBoomerDriverOutput::Execute error = %s", strerror(errno)); } else if (count < (int)fDriver->fOutputBufferSize) { jack_error("JackBoomerDriverOutput::Execute error bytes written = %ld", count); } - + // Duplex : sync with read thread if (fDriver->fInFD >= 0 && fDriver->fOutFD >= 0) { fDriver->SynchronizeWrite(); @@ -802,12 +803,11 @@ void JackBoomerDriver::SynchronizeWrite() int JackBoomerDriver::SetBufferSize(jack_nframes_t buffer_size) { - CloseAux(); - JackAudioDriver::SetBufferSize(buffer_size); // never fails + CloseAux(); + JackAudioDriver::SetBufferSize(buffer_size); // Generic change, never fails return OpenAux(); } - } // end of namespace #ifdef __cplusplus @@ -823,7 +823,7 @@ SERVER_EXPORT jack_driver_desc_t* driver_get_descriptor() strcpy(desc->name, "boomer"); // size MUST be less then JACK_DRIVER_NAME_MAX + 1 strcpy(desc->desc, "Boomer/OSS API based audio backend"); // size MUST be less then JACK_DRIVER_PARAM_DESC + 1 - + desc->nparams = OSS_DRIVER_N_PARAMS; desc->params = (jack_driver_param_desc_t*)calloc(desc->nparams, sizeof(jack_driver_param_desc_t)); @@ -866,7 +866,7 @@ SERVER_EXPORT jack_driver_desc_t* driver_get_descriptor() desc->params[i].value.ui = OSS_DRIVER_DEF_INS; strcpy(desc->params[i].short_desc, "Capture channels"); strcpy(desc->params[i].long_desc, desc->params[i].short_desc); - + i++; strcpy(desc->params[i].name, "outchannels"); desc->params[i].character = 'o'; @@ -874,7 +874,7 @@ SERVER_EXPORT jack_driver_desc_t* driver_get_descriptor() desc->params[i].value.ui = OSS_DRIVER_DEF_OUTS; strcpy(desc->params[i].short_desc, "Playback channels"); strcpy(desc->params[i].long_desc, desc->params[i].short_desc); - + i++; strcpy(desc->params[i].name, "excl"); desc->params[i].character = 'e'; @@ -890,7 +890,7 @@ SERVER_EXPORT jack_driver_desc_t* driver_get_descriptor() strcpy(desc->params[i].value.str, OSS_DRIVER_DEF_DEV); strcpy(desc->params[i].short_desc, "Input device"); strcpy(desc->params[i].long_desc, desc->params[i].short_desc); - + i++; strcpy(desc->params[i].name, "playback"); desc->params[i].character = 'P'; @@ -906,12 +906,12 @@ SERVER_EXPORT jack_driver_desc_t* driver_get_descriptor() strcpy(desc->params[i].value.str, OSS_DRIVER_DEF_DEV); strcpy(desc->params[i].short_desc, "OSS device name"); strcpy(desc->params[i].long_desc, desc->params[i].short_desc); - + i++; strcpy(desc->params[i].name, "input-latency"); desc->params[i].character = 'I'; desc->params[i].type = JackDriverParamUInt; - desc->params[i].value.i = 0; + desc->params[i].value.ui = 0; strcpy(desc->params[i].short_desc, "Extra input latency"); strcpy(desc->params[i].long_desc, desc->params[i].short_desc); @@ -919,7 +919,7 @@ SERVER_EXPORT jack_driver_desc_t* driver_get_descriptor() strcpy(desc->params[i].name, "output-latency"); desc->params[i].character = 'O'; desc->params[i].type = JackDriverParamUInt; - desc->params[i].value.i = 0; + desc->params[i].value.ui = 0; strcpy(desc->params[i].short_desc, "Extra output latency"); strcpy(desc->params[i].long_desc, desc->params[i].short_desc); @@ -953,13 +953,13 @@ EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackLockedEngine const jack_driver_param_t *param; jack_nframes_t systemic_input_latency = 0; jack_nframes_t systemic_output_latency = 0; - + for (node = params; node; node = jack_slist_next(node)) { - + param = (const jack_driver_param_t *)node->data; switch (param->character) { - + case 'r': srate = param->value.ui; break; @@ -983,7 +983,7 @@ EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackLockedEngine case 'o': chan_out = (int)param->value.ui; break; - + case 'C': capture = true; if (strcmp(param->value.str, "none") != 0) { @@ -1002,11 +1002,11 @@ EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackLockedEngine playback_pcm_name = param->value.str; capture_pcm_name = param->value.str; break; - + case 'e': excl = true; break; - + case 'I': systemic_input_latency = param->value.ui; break; @@ -1028,9 +1028,9 @@ EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackLockedEngine } Jack::JackBoomerDriver* boomer_driver = new Jack::JackBoomerDriver("system", "boomer", engine, table); - + // Special open for Boomer driver... - if (boomer_driver->Open(frames_per_interrupt, nperiods, srate, capture, playback, chan_in, chan_out, excl, + if (boomer_driver->Open(frames_per_interrupt, nperiods, srate, capture, playback, chan_in, chan_out, excl, monitor, capture_pcm_name, playback_pcm_name, systemic_input_latency, systemic_output_latency, bits, syncio) == 0) { return boomer_driver; } else { diff --git a/solaris/oss/JackOSSDriver.cpp b/solaris/oss/JackOSSDriver.cpp index 3b66740a..444fce44 100644 --- a/solaris/oss/JackOSSDriver.cpp +++ b/solaris/oss/JackOSSDriver.cpp @@ -107,12 +107,12 @@ static inline void CopyAndConvertOut(void *dst, jack_sample_t *src, size_t nfram s32dst += channel; sample_move_d24_sS((char*)s32dst, src, nframes, chcount<<2, NULL); // No dithering for now... break; - } + } case 32: { signed int *s32dst = (signed int*)dst; s32dst += channel; sample_move_d32u24_sS((char*)s32dst, src, nframes, chcount<<2, NULL); - break; + break; } } } @@ -126,7 +126,7 @@ void JackOSSDriver::SetSampleFormat() fSampleSize = sizeof(int); break; case 32: /* native-endian 32-bit integer */ - fSampleFormat = AFMT_S32_NE; + fSampleFormat = AFMT_S32_NE; fSampleSize = sizeof(int); break; case 16: /* native-endian 16-bit integer */ @@ -143,13 +143,13 @@ void JackOSSDriver::DisplayDeviceInfo() oss_audioinfo ai_in, ai_out; memset(&info, 0, sizeof(audio_buf_info)); int cap = 0; - + // Duplex cards : http://manuals.opensound.com/developer/full_duplex.html jack_info("Audio Interface Description :"); jack_info("Sampling Frequency : %d, Sample Format : %d, Mode : %d", fEngineControl->fSampleRate, fSampleFormat, fRWMode); - + if (fRWMode & kWrite) { - + oss_sysinfo si; if (ioctl(fOutFD, OSS_SYSINFO, &si) == -1) { jack_error("JackOSSDriver::DisplayDeviceInfo OSS_SYSINFO failed : %s@%i, errno = %d", __FILE__, __LINE__, errno); @@ -161,17 +161,17 @@ void JackOSSDriver::DisplayDeviceInfo() jack_info("OSS numaudioengines %d", si.numaudioengines); jack_info("OSS numcards %d", si.numcards); } - + jack_info("Output capabilities - %d channels : ", fPlaybackChannels); jack_info("Output block size = %d", fOutputBufferSize); - + if (ioctl(fOutFD, SNDCTL_DSP_GETOSPACE, &info) == -1) { jack_error("JackOSSDriver::DisplayDeviceInfo SNDCTL_DSP_GETOSPACE failed : %s@%i, errno = %d", __FILE__, __LINE__, errno); } else { - jack_info("output space info: fragments = %d, fragstotal = %d, fragsize = %d, bytes = %d", + jack_info("output space info: fragments = %d, fragstotal = %d, fragsize = %d, bytes = %d", info.fragments, info.fragstotal, info.fragsize, info.bytes); } - + if (ioctl(fOutFD, SNDCTL_DSP_GETCAPS, &cap) == -1) { jack_error("JackOSSDriver::DisplayDeviceInfo SNDCTL_DSP_GETCAPS failed : %s@%i, errno = %d", __FILE__, __LINE__, errno); } else { @@ -184,10 +184,10 @@ void JackOSSDriver::DisplayDeviceInfo() if (cap & DSP_CAP_MULTI) jack_info(" DSP_CAP_MULTI"); if (cap & DSP_CAP_BIND) jack_info(" DSP_CAP_BIND"); } - } - + } + if (fRWMode & kRead) { - + oss_sysinfo si; if (ioctl(fInFD, OSS_SYSINFO, &si) == -1) { jack_error("JackOSSDriver::DisplayDeviceInfo OSS_SYSINFO failed : %s@%i, errno = %d", __FILE__, __LINE__, errno); @@ -199,14 +199,14 @@ void JackOSSDriver::DisplayDeviceInfo() jack_info("OSS numaudioengines %d", si.numaudioengines); jack_info("OSS numcards %d", si.numcards); } - + jack_info("Input capabilities - %d channels : ", fCaptureChannels); jack_info("Input block size = %d", fInputBufferSize); - - if (ioctl(fInFD, SNDCTL_DSP_GETISPACE, &info) == -1) { + + if (ioctl(fInFD, SNDCTL_DSP_GETISPACE, &info) == -1) { jack_error("JackOSSDriver::DisplayDeviceInfo SNDCTL_DSP_GETOSPACE failed : %s@%i, errno = %d", __FILE__, __LINE__, errno); } else { - jack_info("input space info: fragments = %d, fragstotal = %d, fragsize = %d, bytes = %d", + jack_info("input space info: fragments = %d, fragstotal = %d, fragsize = %d, bytes = %d", info.fragments, info.fragstotal, info.fragsize, info.bytes); } @@ -223,7 +223,7 @@ void JackOSSDriver::DisplayDeviceInfo() if (cap & DSP_CAP_BIND) jack_info(" DSP_CAP_BIND"); } } - + if (ai_in.rate_source != ai_out.rate_source) { jack_info("Warning : input and output are not necessarily driven by the same clock!"); } @@ -238,7 +238,7 @@ int JackOSSDriver::OpenInput() jack_nframes_t cur_sample_rate; if (fCaptureChannels == 0) fCaptureChannels = 2; - + if ((fInFD = open(fCaptureDriverName, O_RDONLY | ((fExcl) ? O_EXCL : 0))) < 0) { jack_error("JackOSSDriver::OpenInput failed to open device : %s@%i, errno = %d", __FILE__, __LINE__, errno); return -1; @@ -253,7 +253,7 @@ int JackOSSDriver::OpenInput() } } - gFragFormat = (2 << 16) + int2pow2(fEngineControl->fBufferSize * fSampleSize * fCaptureChannels); + gFragFormat = (2 << 16) + int2pow2(fEngineControl->fBufferSize * fSampleSize * fCaptureChannels); if (ioctl(fInFD, SNDCTL_DSP_SETFRAGMENT, &gFragFormat) == -1) { jack_error("JackOSSDriver::OpenInput failed to set fragments : %s@%i, errno = %d", __FILE__, __LINE__, errno); goto error; @@ -267,7 +267,7 @@ int JackOSSDriver::OpenInput() if (cur_sample_format != fSampleFormat) { jack_info("JackOSSDriver::OpenInput driver forced the sample format %ld", fSampleFormat); } - + cur_capture_channels = fCaptureChannels; if (ioctl(fInFD, SNDCTL_DSP_CHANNELS, &fCaptureChannels) == -1) { jack_error("JackOSSDriver::OpenInput failed to set channels : %s@%i, errno = %d", __FILE__, __LINE__, errno); @@ -276,7 +276,7 @@ int JackOSSDriver::OpenInput() if (cur_capture_channels != fCaptureChannels) { jack_info("JackOSSDriver::OpenInput driver forced the number of capture channels %ld", fCaptureChannels); } - + cur_sample_rate = fEngineControl->fSampleRate; if (ioctl(fInFD, SNDCTL_DSP_SPEED, &fEngineControl->fSampleRate) == -1) { jack_error("JackOSSDriver::OpenInput failed to set sample rate : %s@%i, errno = %d", __FILE__, __LINE__, errno); @@ -291,7 +291,7 @@ int JackOSSDriver::OpenInput() jack_error("JackOSSDriver::OpenInput failed to get fragments : %s@%i, errno = %d", __FILE__, __LINE__, errno); goto error; } - + if (fInputBufferSize != fEngineControl->fBufferSize * fSampleSize * fCaptureChannels) { if (fIgnoreHW) { int new_buffer_size = fInputBufferSize / (fSampleSize * fCaptureChannels); @@ -306,7 +306,7 @@ int JackOSSDriver::OpenInput() fInputBuffer = (void*)calloc(fInputBufferSize, 1); assert(fInputBuffer); return 0; - + error: ::close(fInFD); return -1; @@ -321,27 +321,27 @@ int JackOSSDriver::OpenOutput() jack_nframes_t cur_sample_rate; if (fPlaybackChannels == 0) fPlaybackChannels = 2; - + if ((fOutFD = open(fPlaybackDriverName, O_WRONLY | ((fExcl) ? O_EXCL : 0))) < 0) { jack_error("JackOSSDriver::OpenOutput failed to open device : %s@%i, errno = %d", __FILE__, __LINE__, errno); return -1; } jack_log("JackOSSDriver::OpenOutput output fOutFD = %d", fOutFD); - + if (fExcl) { if (ioctl(fOutFD, SNDCTL_DSP_COOKEDMODE, &flags) == -1) { jack_error("JackOSSDriver::OpenOutput failed to set cooked mode : %s@%i, errno = %d", __FILE__, __LINE__, errno); goto error; - } - } + } + } - gFragFormat = (2 << 16) + int2pow2(fEngineControl->fBufferSize * fSampleSize * fPlaybackChannels); + gFragFormat = (2 << 16) + int2pow2(fEngineControl->fBufferSize * fSampleSize * fPlaybackChannels); if (ioctl(fOutFD, SNDCTL_DSP_SETFRAGMENT, &gFragFormat) == -1) { jack_error("JackOSSDriver::OpenOutput failed to set fragments : %s@%i, errno = %d", __FILE__, __LINE__, errno); goto error; } - + cur_sample_format = fSampleFormat; if (ioctl(fOutFD, SNDCTL_DSP_SETFMT, &fSampleFormat) == -1) { jack_error("JackOSSDriver::OpenOutput failed to set format : %s@%i, errno = %d", __FILE__, __LINE__, errno); @@ -350,7 +350,7 @@ int JackOSSDriver::OpenOutput() if (cur_sample_format != fSampleFormat) { jack_info("JackOSSDriver::OpenOutput driver forced the sample format %ld", fSampleFormat); } - + cur_playback_channels = fPlaybackChannels; if (ioctl(fOutFD, SNDCTL_DSP_CHANNELS, &fPlaybackChannels) == -1) { jack_error("JackOSSDriver::OpenOutput failed to set channels : %s@%i, errno = %d", __FILE__, __LINE__, errno); @@ -374,7 +374,7 @@ int JackOSSDriver::OpenOutput() jack_error("JackOSSDriver::OpenOutput failed to get fragments : %s@%i, errno = %d", __FILE__, __LINE__, errno); goto error; } - + if (fOutputBufferSize != fEngineControl->fBufferSize * fSampleSize * fPlaybackChannels) { if (fIgnoreHW) { int new_buffer_size = fOutputBufferSize / (fSampleSize * fPlaybackChannels); @@ -385,19 +385,19 @@ int JackOSSDriver::OpenOutput() goto error; } } - + fOutputBuffer = (void*)calloc(fOutputBufferSize, 1); fFirstCycle = true; assert(fOutputBuffer); return 0; - + error: ::close(fOutFD); return -1; } int JackOSSDriver::Open(jack_nframes_t nframes, - int user_nperiods, + int user_nperiods, jack_nframes_t samplerate, bool capturing, bool playing, @@ -413,7 +413,7 @@ int JackOSSDriver::Open(jack_nframes_t nframes, bool ignorehwbuf) { // Generic JackAudioDriver Open - if (JackAudioDriver::Open(nframes, samplerate, capturing, playing, inchannels, outchannels, monitor, + if (JackAudioDriver::Open(nframes, samplerate, capturing, playing, inchannels, outchannels, monitor, capture_driver_uid, playback_driver_uid, capture_latency, playback_latency) != 0) { return -1; } else { @@ -422,7 +422,7 @@ int JackOSSDriver::Open(jack_nframes_t nframes, jack_error("Cannot run in asynchronous mode, use the -S parameter for jackd"); return -1; } - + fRWMode |= ((capturing) ? kRead : 0); fRWMode |= ((playing) ? kWrite : 0); fBits = bits; @@ -434,7 +434,7 @@ int JackOSSDriver::Open(jack_nframes_t nframes, // Force memory page in memset(&gCycleTable, 0, sizeof(gCycleTable)); #endif - + if (OpenAux() < 0) { Close(); return -1; @@ -448,14 +448,14 @@ int JackOSSDriver::Close() { #ifdef JACK_MONITOR FILE* file = fopen("OSSProfiling.log", "w"); - + if (file) { jack_info("Writing OSS driver timing data...."); for (int i = 1; i < gCycleCount; i++) { int d1 = gCycleTable.fTable[i].fAfterRead - gCycleTable.fTable[i].fBeforeRead; int d2 = gCycleTable.fTable[i].fAfterReadConvert - gCycleTable.fTable[i].fAfterRead; int d3 = gCycleTable.fTable[i].fAfterWrite - gCycleTable.fTable[i].fBeforeWrite; - int d4 = gCycleTable.fTable[i].fBeforeWrite - gCycleTable.fTable[i].fBeforeWriteConvert; + int d4 = gCycleTable.fTable[i].fBeforeWrite - gCycleTable.fTable[i].fBeforeWriteConvert; fprintf(file, "%d \t %d \t %d \t %d \t \n", d1, d2, d3, d4); } fclose(file); @@ -468,7 +468,7 @@ int JackOSSDriver::Close() if (file == NULL) { jack_error("JackOSSDriver::Close cannot open TimingOSS.plot file"); } else { - + fprintf(file, "set grid\n"); fprintf(file, "set title \"OSS audio driver timing\"\n"); fprintf(file, "set xlabel \"audio cycles\"\n"); @@ -477,10 +477,10 @@ int JackOSSDriver::Close() \"OSSProfiling.log\" using 2 title \"Driver read convert duration\" with lines, \ \"OSSProfiling.log\" using 3 title \"Driver write wait\" with lines, \ \"OSSProfiling.log\" using 4 title \"Driver write convert duration\" with lines\n"); - + fprintf(file, "set output 'TimingOSS.pdf\n"); fprintf(file, "set terminal pdf\n"); - + fprintf(file, "set grid\n"); fprintf(file, "set title \"OSS audio driver timing\"\n"); fprintf(file, "set xlabel \"audio cycles\"\n"); @@ -489,12 +489,12 @@ int JackOSSDriver::Close() \"OSSProfiling.log\" using 2 title \"Driver read convert duration\" with lines, \ \"OSSProfiling.log\" using 3 title \"Driver write wait\" with lines, \ \"OSSProfiling.log\" using 4 title \"Driver write convert duration\" with lines\n"); - + fclose(file); } #endif int res = JackAudioDriver::Close(); - CloseAux(); + CloseAux(); return res; } @@ -506,8 +506,8 @@ int JackOSSDriver::OpenAux() if ((fRWMode & kRead) && (OpenInput() < 0)) { return -1; } - - if ((fRWMode & kWrite) && (OpenOutput() < 0)) { + + if ((fRWMode & kWrite) && (OpenOutput() < 0)) { return -1; } @@ -522,7 +522,7 @@ int JackOSSDriver::OpenAux() } */ - DisplayDeviceInfo(); + DisplayDeviceInfo(); return 0; } @@ -532,16 +532,16 @@ void JackOSSDriver::CloseAux() close(fInFD); fInFD = -1; } - + if (fRWMode & kWrite && fOutFD > 0) { close(fOutFD); fOutFD = -1; } - + if (fInputBuffer) free(fInputBuffer); fInputBuffer = NULL; - + if (fOutputBuffer) free(fOutputBuffer); fOutputBuffer = NULL; @@ -554,7 +554,7 @@ int JackOSSDriver::Read() JackDriver::CycleTakeBeginTime(); return 0; } - + ssize_t count; #ifdef JACK_MONITOR @@ -562,28 +562,28 @@ int JackOSSDriver::Read() #endif audio_errinfo ei_in; - count = ::read(fInFD, fInputBuffer, fInputBufferSize); - + count = ::read(fInFD, fInputBuffer, fInputBufferSize); + #ifdef JACK_MONITOR if (count > 0 && count != (int)fInputBufferSize) jack_log("JackOSSDriver::Read count = %ld", count / (fSampleSize * fCaptureChannels)); gCycleTable.fTable[gCycleCount].fAfterRead = GetMicroSeconds(); #endif - + // XRun detection if (ioctl(fInFD, SNDCTL_DSP_GETERROR, &ei_in) == 0) { if (ei_in.rec_overruns > 0 ) { jack_error("JackOSSDriver::Read overruns"); jack_time_t cur_time = GetMicroSeconds(); - NotifyXRun(cur_time, float(cur_time - fBeginDateUst)); // Better this value than nothing... + NotifyXRun(cur_time, float(cur_time - fBeginDateUst)); // Better this value than nothing... } if (ei_in.rec_errorcount > 0 && ei_in.rec_lasterror != 0) { jack_error("%d OSS rec event(s), last=%05d:%d", ei_in.rec_errorcount, ei_in.rec_lasterror, ei_in.rec_errorparm); } - } - + } + if (count < 0) { jack_log("JackOSSDriver::Read error = %s", strerror(errno)); return -1; @@ -603,7 +603,7 @@ int JackOSSDriver::Read() #ifdef JACK_MONITOR gCycleTable.fTable[gCycleCount].fAfterReadConvert = GetMicroSeconds(); #endif - + return 0; } } @@ -618,10 +618,10 @@ int JackOSSDriver::Write() ssize_t count; audio_errinfo ei_out; - - // Maybe necessary to write an empty output buffer first time : see http://manuals.opensound.com/developer/fulldup.c.html + + // Maybe necessary to write an empty output buffer first time : see http://manuals.opensound.com/developer/fulldup.c.html if (fFirstCycle) { - + fFirstCycle = false; memset(fOutputBuffer, 0, fOutputBufferSize); @@ -633,17 +633,17 @@ int JackOSSDriver::Write() return -1; } } - + int delay; if (ioctl(fOutFD, SNDCTL_DSP_GETODELAY, &delay) == -1) { jack_error("JackOSSDriver::Write error get out delay : %s@%i, errno = %d", __FILE__, __LINE__, errno); return -1; } - + delay /= fSampleSize * fPlaybackChannels; jack_info("JackOSSDriver::Write output latency frames = %ld", delay); } - + #ifdef JACK_MONITOR gCycleTable.fTable[gCycleCount].fBeforeWriteConvert = GetMicroSeconds(); #endif @@ -657,7 +657,7 @@ int JackOSSDriver::Write() #ifdef JACK_MONITOR gCycleTable.fTable[gCycleCount].fBeforeWrite = GetMicroSeconds(); - #endif + #endif // Keep end cycle time JackDriver::CycleTakeEndTime(); @@ -676,14 +676,14 @@ int JackOSSDriver::Write() if (ei_out.play_underruns > 0) { jack_error("JackOSSDriver::Write underruns"); jack_time_t cur_time = GetMicroSeconds(); - NotifyXRun(cur_time, float(cur_time - fBeginDateUst)); // Better this value than nothing... + NotifyXRun(cur_time, float(cur_time - fBeginDateUst)); // Better this value than nothing... } if (ei_out.play_errorcount > 0 && ei_out.play_lasterror != 0) { jack_error("%d OSS play event(s), last=%05d:%d",ei_out.play_errorcount, ei_out.play_lasterror, ei_out.play_errorparm); } } - + if (count < 0) { jack_log("JackOSSDriver::Write error = %s", strerror(errno)); return -1; @@ -697,15 +697,15 @@ int JackOSSDriver::Write() int JackOSSDriver::SetBufferSize(jack_nframes_t buffer_size) { - CloseAux(); - JackAudioDriver::SetBufferSize(buffer_size); // never fails + CloseAux(); + JackAudioDriver::SetBufferSize(buffer_size); // Generic change, never fails return OpenAux(); } int JackOSSDriver::ProcessSync() { // Read input buffers for the current cycle - if (Read() < 0) { + if (Read() < 0) { jack_error("ProcessSync: read error, skip cycle"); return 0; // Non fatal error here, skip cycle, but continue processing... } @@ -715,13 +715,13 @@ int JackOSSDriver::ProcessSync() } else { fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable); } - + // Write output buffers for the current cycle - if (Write() < 0) { + if (Write() < 0) { jack_error("JackAudioDriver::ProcessSync: write error, skip cycle"); return 0; // Non fatal error here, skip cycle, but continue processing... } - + return 0; } @@ -740,7 +740,7 @@ SERVER_EXPORT jack_driver_desc_t* driver_get_descriptor() strcpy(desc->name, "oss"); // size MUST be less then JACK_DRIVER_NAME_MAX + 1 strcpy(desc->desc, "OSS API based audio backend"); // size MUST be less then JACK_DRIVER_PARAM_DESC + 1 - + desc->nparams = OSS_DRIVER_N_PARAMS; desc->params = (jack_driver_param_desc_t*)calloc(desc->nparams, sizeof(jack_driver_param_desc_t)); @@ -783,7 +783,7 @@ SERVER_EXPORT jack_driver_desc_t* driver_get_descriptor() desc->params[i].value.ui = OSS_DRIVER_DEF_INS; strcpy(desc->params[i].short_desc, "Capture channels"); strcpy(desc->params[i].long_desc, desc->params[i].short_desc); - + i++; strcpy(desc->params[i].name, "outchannels"); desc->params[i].character = 'o'; @@ -807,7 +807,7 @@ SERVER_EXPORT jack_driver_desc_t* driver_get_descriptor() strcpy(desc->params[i].value.str, OSS_DRIVER_DEF_DEV); strcpy(desc->params[i].short_desc, "Input device"); strcpy(desc->params[i].long_desc, desc->params[i].short_desc); - + i++; strcpy(desc->params[i].name, "playback"); desc->params[i].character = 'P'; @@ -823,7 +823,7 @@ SERVER_EXPORT jack_driver_desc_t* driver_get_descriptor() strcpy(desc->params[i].value.str, OSS_DRIVER_DEF_DEV); strcpy(desc->params[i].short_desc, "OSS device name"); strcpy(desc->params[i].long_desc, desc->params[i].short_desc); - + i++; strcpy(desc->params[i].name, "ignorehwbuf"); desc->params[i].character = 'b'; @@ -831,12 +831,12 @@ SERVER_EXPORT jack_driver_desc_t* driver_get_descriptor() desc->params[i].value.i = false; strcpy(desc->params[i].short_desc, "Ignore hardware period size"); strcpy(desc->params[i].long_desc, desc->params[i].short_desc); - + i++; strcpy(desc->params[i].name, "input-latency"); desc->params[i].character = 'I'; desc->params[i].type = JackDriverParamUInt; - desc->params[i].value.i = 0; + desc->params[i].value.ui = 0; strcpy(desc->params[i].short_desc, "Extra input latency"); strcpy(desc->params[i].long_desc, desc->params[i].short_desc); @@ -844,7 +844,7 @@ SERVER_EXPORT jack_driver_desc_t* driver_get_descriptor() strcpy(desc->params[i].name, "output-latency"); desc->params[i].character = 'O'; desc->params[i].type = JackDriverParamUInt; - desc->params[i].value.i = 0; + desc->params[i].value.ui = 0; strcpy(desc->params[i].short_desc, "Extra output latency"); strcpy(desc->params[i].long_desc, desc->params[i].short_desc); @@ -870,13 +870,13 @@ EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackLockedEngine bool ignorehwbuf = false; jack_nframes_t systemic_input_latency = 0; jack_nframes_t systemic_output_latency = 0; - + for (node = params; node; node = jack_slist_next(node)) { - + param = (const jack_driver_param_t *)node->data; switch (param->character) { - + case 'r': srate = param->value.ui; break; @@ -900,7 +900,7 @@ EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackLockedEngine case 'o': chan_out = (int)param->value.ui; break; - + case 'C': capture = true; if (strcmp(param->value.str, "none") != 0) { @@ -919,7 +919,7 @@ EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackLockedEngine playback_pcm_name = param->value.str; capture_pcm_name = param->value.str; break; - + case 'b': ignorehwbuf = true; break; @@ -927,7 +927,7 @@ EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackLockedEngine case 'e': excl = true; break; - + case 'I': systemic_input_latency = param->value.ui; break; @@ -946,9 +946,9 @@ EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackLockedEngine Jack::JackOSSDriver* oss_driver = new Jack::JackOSSDriver("system", "oss", engine, table); Jack::JackDriverClientInterface* threaded_driver = new Jack::JackThreadedDriver(oss_driver); - + // Special open for OSS driver... - if (oss_driver->Open(frames_per_interrupt, nperiods, srate, capture, playback, chan_in, chan_out, + if (oss_driver->Open(frames_per_interrupt, nperiods, srate, capture, playback, chan_in, chan_out, excl, monitor, capture_pcm_name, playback_pcm_name, systemic_input_latency, systemic_output_latency, bits, ignorehwbuf) == 0) { return threaded_driver; } else { diff --git a/tests/test.cpp b/tests/test.cpp index 1a6e4a05..232be4ea 100644 --- a/tests/test.cpp +++ b/tests/test.cpp @@ -745,7 +745,9 @@ int main (int argc, char *argv[]) } jack_on_shutdown(client1, jack_shutdown, 0); - jack_on_info_shutdown(client1, jack_info_shutdown, 0); + + if (jack_on_info_shutdown) + jack_on_info_shutdown(client1, jack_info_shutdown, 0); if (jack_set_buffer_size_callback(client1, Jack_Update_Buffer_Size, 0) != 0) { printf("Error when calling buffer_size_callback !\n"); @@ -972,14 +974,14 @@ int main (int argc, char *argv[]) float factor = 0.5f; old_buffer_size = jack_get_buffer_size(client1); - Log("Testing BufferSize change & Callback...\n--> Current buffer size : %i.\n", old_buffer_size); + Log("Testing BufferSize change & Callback...\n--> Current buffer size : %d.\n", old_buffer_size); linebuf = linecount; if (jack_set_buffer_size(client1, (jack_nframes_t)(old_buffer_size * factor)) < 0) { printf("!!! ERROR !!! jack_set_buffer_size fails !\n"); } jack_sleep(1 * 1000); cur_buffer_size = jack_get_buffer_size(client1); - if ((old_buffer_size * factor) != cur_buffer_size) { + if (abs((old_buffer_size * factor) - cur_buffer_size) > 5) { // Tolerance needed for dummy driver... printf("!!! ERROR !!! Buffer size has not been changed !\n"); printf("!!! Maybe jack was compiled without the '--enable-resize' flag...\n"); } else { diff --git a/windows/JackNetWinSocket.h b/windows/JackNetWinSocket.h index bd303eff..1041fab8 100644 --- a/windows/JackNetWinSocket.h +++ b/windows/JackNetWinSocket.h @@ -1,20 +1,20 @@ /* Copyright (C) 2004-2008 Grame - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - + You should have received a copy of the GNU Lesser General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - + */ #ifndef __JackNetWinSocket__ @@ -23,7 +23,8 @@ #include "JackNetSocket.h" #ifdef __MINGW32__ #include -#include +#include +#include #endif @@ -31,9 +32,9 @@ namespace Jack { #define E(code, s) { code, s } #define NET_ERROR_CODE WSAGetLastError() -#define StrError PrintError +#define StrError PrintError - typedef uint32_t uint; + typedef uint32_t uint; typedef int SOCKLEN; typedef struct _win_net_error win_net_error_t; diff --git a/windows/JackRouter/JackRouter.cpp b/windows/JackRouter/JackRouter.cpp index e5086f8d..c5dbc495 100644 --- a/windows/JackRouter/JackRouter.cpp +++ b/windows/JackRouter/JackRouter.cpp @@ -29,13 +29,12 @@ Copyright (C) 2006 Grame #include "profport.h" /* - 08/07/2007 SL : USe jack_client_open instead of jack_client_new (automatic client renaming). 09/08/2007 SL : Add JackRouter.ini parameter file. 09/20/2007 SL : Better error report in DllRegisterServer (for Vista). 09/27/2007 SL : Add AUDO_CONNECT property in JackRouter.ini file. 10/10/2007 SL : Use ASIOSTInt32LSB instead of ASIOSTInt16LSB. - + 12/04/2011 SL : Compilation on Windows 64. */ //------------------------------------------------------------------------------------------ @@ -54,7 +53,13 @@ static const double twoRaisedTo32Reciprocal = 1. / twoRaisedTo32; #if WINDOWS #include "windows.h" #include "mmsystem.h" -#include "psapi.h" +#ifdef _WIN64 +#define JACK_ROUTER "JackRouter64.dll" +#include +#else +#define JACK_ROUTER "JackRouter.dll" +#include "./psapi.h" +#endif using namespace std; @@ -95,11 +100,11 @@ HRESULT _stdcall DllRegisterServer() LONG rc; char errstr[128]; - rc = RegisterAsioDriver (IID_ASIO_DRIVER,"JackRouter.dll","JackRouter","JackRouter","Apartment"); + rc = RegisterAsioDriver (IID_ASIO_DRIVER, JACK_ROUTER,"JackRouter","JackRouter","Apartment"); if (rc) { memset(errstr,0,128); - sprintf(errstr,"Register Server failed ! (%d)",rc); + sprintf(errstr,"Register Server failed ! (%d)", rc); MessageBox(0,(LPCTSTR)errstr,(LPCTSTR)"JackRouter",MB_OK); return -1; } @@ -115,7 +120,7 @@ HRESULT _stdcall DllUnregisterServer() LONG rc; char errstr[128]; - rc = UnregisterAsioDriver (IID_ASIO_DRIVER,"JackRouter.dll","JackRouter"); + rc = UnregisterAsioDriver (IID_ASIO_DRIVER,JACK_ROUTER,"JackRouter"); if (rc) { memset(errstr,0,128); @@ -175,7 +180,7 @@ JackRouter::JackRouter() : AsioDriver() printf("Constructor\n"); // Use "jackrouter.ini" parameters if available - HMODULE handle = LoadLibrary("JackRouter.dll"); + HMODULE handle = LoadLibrary(JACK_ROUTER); if (handle) { @@ -209,15 +214,11 @@ JackRouter::~JackRouter() { stop (); disposeBuffers (); - printf("Destructor\n"); jack_client_close(fClient); + printf("Destructor\n"); } //------------------------------------------------------------------------------------------ -#include -#include -#include -#include "psapi.h" static bool GetEXEName(DWORD dwProcessID, char* name) { diff --git a/windows/JackRouter/JackRouter.vcxproj b/windows/JackRouter/JackRouter.vcxproj new file mode 100644 index 00000000..bb9a751b --- /dev/null +++ b/windows/JackRouter/JackRouter.vcxproj @@ -0,0 +1,280 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + + DynamicLibrary + false + + + DynamicLibrary + false + + + DynamicLibrary + false + + + DynamicLibrary + false + + + + + + + + + + + + + + + + + + + + + + + .\Debug\ + .\Debug\ + true + + + .\Debug\ + .\Debug\ + true + + + .\Release\ + .\Release\ + false + + + .\Release\ + .\Release\ + false + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + Level3 + true + ..\..\..\..\..\ASIOSDK2\common;..\..\common;..\..\common\jack;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + .\Debug\ + true + .\Debug\JackRouter.pch + .\Debug\ + .\Debug\ + EnableFastChecks + + + true + _DEBUG;%(PreprocessorDefinitions) + .\Debug\JackRouter.tlb + true + Win32 + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + + + true + .\Debug\JackRouter.bsc + + + true + true + true + Windows + Debug/JackRouter_debug.dll + .\Debug\JackRouter_debug.lib + odbc32.lib;odbccp32.lib;winmm.lib;%(AdditionalDependencies) + .\JackRouter.def + + + + + MultiThreadedDebugDLL + Default + false + Disabled + true + Level3 + ..\..\..\..\..\ASIOSDK2\common;..\..\common;..\..\common\jack;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + .\Debug\ + true + .\Debug\JackRouter.pch + .\Debug\ + .\Debug\ + EnableFastChecks + + + true + _DEBUG;%(PreprocessorDefinitions) + .\Debug\JackRouter.tlb + true + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + + + true + .\Debug\JackRouter.bsc + + + true + true + true + Windows + Debug/JackRouter_debug.dll + .\Debug\JackRouter_debug.lib + odbc32.lib;odbccp32.lib;winmm.lib;%(AdditionalDependencies) + .\JackRouter.def + + + + + MultiThreadedDLL + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + ..\..\..\..\..\ASIOSDK2\common;..\..\common;..\..\common\jack;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + .\Release\ + true + .\Release\JackRouter.pch + .\Release\ + .\Release\ + + + true + NDEBUG;%(PreprocessorDefinitions) + .\Release\JackRouter.tlb + true + Win32 + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + + + true + .\Release\JackRouter.bsc + + + true + true + Windows + .\Release\JackRouter.dll + .\Release\JackRouter.lib + odbc32.lib;odbccp32.lib;winmm.lib;%(AdditionalDependencies) + .\JackRouter.def + + + + + MultiThreadedDLL + OnlyExplicitInline + true + true + MaxSpeed + true + Level3 + ..\..\..\..\..\ASIOSDK2\common;..\..\common;..\..\common\jack;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;PSAPI_VERSION=2;%(PreprocessorDefinitions) + .\Release\ + true + .\Release\JackRouter.pch + .\Release\ + .\Release\ + + + true + NDEBUG;%(PreprocessorDefinitions) + .\Release\JackRouter.tlb + true + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + + + true + .\Release\JackRouter64.bsc + + + true + true + Windows + .\Release\JackRouter64.dll + .\Release\JackRouter64.lib + odbc32.lib;odbccp32.lib;winmm.lib;%(AdditionalDependencies) + .\JackRouter.def + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/windows/JackRouter/JackRouter.vcxproj.filters b/windows/JackRouter/JackRouter.vcxproj.filters new file mode 100644 index 00000000..899efbc8 --- /dev/null +++ b/windows/JackRouter/JackRouter.vcxproj.filters @@ -0,0 +1,69 @@ + + + + + {72f2b2b0-dbea-4574-94fa-0c1ea89a3c8e} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + {9590ca0b-94c8-4c22-88b2-66724eb0ea21} + h;hpp;hxx;hm;inl + + + {9742e150-2741-4bf4-9b81-bea4aab464af} + ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + + + + + + Source Files + + + \ No newline at end of file diff --git a/windows/JackRouter/JackRouter.vcxproj.user b/windows/JackRouter/JackRouter.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/windows/JackRouter/JackRouter.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/windows/JackRouter/README b/windows/JackRouter/README index 5f2bce1d..0f59b441 100644 --- a/windows/JackRouter/README +++ b/windows/JackRouter/README @@ -1,3 +1,7 @@ This folder contains the sources for ASIO/JACK bridge ASIO driver called "JackRouter". The included project is a Microsoft VC++ 6 one. It requires some files (combase.cpp, dllentry.cpp, register.cpp) that are part on the ASIO driver SDK. The produced "JackRouter.dll" file -has to be registered in the system using the "regsvr32" tool. \ No newline at end of file +has to be registered in the system using the "regsvr32" tool. + +64 bits compilation +==================== +A Visual Studio 10 project has been added to compile 64 and 32 bits targets. \ No newline at end of file diff --git a/windows/JackRouter/resource.rc b/windows/JackRouter/resource.rc index e1580227..23387184 100644 --- a/windows/JackRouter/resource.rc +++ b/windows/JackRouter/resource.rc @@ -1,4 +1,4 @@ -//Microsoft Developer Studio generated resource script. +// Microsoft Visual C++ generated resource script. // #include "resource.h" @@ -13,15 +13,12 @@ #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// -// French (France) resources +// Français (France) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA) -#ifdef _WIN32 LANGUAGE LANG_FRENCH, SUBLANG_FRENCH #pragma code_page(1252) -#endif //_WIN32 -#ifndef _MAC ///////////////////////////////////////////////////////////////////////////// // // Version @@ -44,18 +41,14 @@ BEGIN BEGIN BLOCK "040c04b0" BEGIN - VALUE "Comments", "\0" - VALUE "CompanyName", "Grame\0" - VALUE "FileDescription", "JackRouter ASIO driver\0" - VALUE "FileVersion", "0, 2, 1, 0\0" - VALUE "InternalName", "JackRouter\0" - VALUE "LegalCopyright", "Copyright Grame © 2006-2010\0" - VALUE "LegalTrademarks", "\0" - VALUE "OriginalFilename", "JackRouter.dll\0" - VALUE "PrivateBuild", "\0" - VALUE "ProductName", "JackRouter\0" - VALUE "ProductVersion", "0, 2, 1, 0\0" - VALUE "SpecialBuild", "\0" + VALUE "CompanyName", "Grame" + VALUE "FileDescription", "JackRouter ASIO driver" + VALUE "FileVersion", "0, 2, 1, 0" + VALUE "InternalName", "JackRouter" + VALUE "LegalCopyright", "Copyright Grame © 2006-2011" + VALUE "OriginalFilename", "JackRouter.dll" + VALUE "ProductName", "JackRouter" + VALUE "ProductVersion", "0, 2, 1, 0" END END BLOCK "VarFileInfo" @@ -64,8 +57,6 @@ BEGIN END END -#endif // !_MAC - #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// @@ -73,18 +64,18 @@ END // TEXTINCLUDE // -1 TEXTINCLUDE DISCARDABLE +1 TEXTINCLUDE BEGIN "resource.h\0" END -2 TEXTINCLUDE DISCARDABLE +2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END -3 TEXTINCLUDE DISCARDABLE +3 TEXTINCLUDE BEGIN "\r\n" "\0" @@ -92,7 +83,7 @@ END #endif // APSTUDIO_INVOKED -#endif // French (France) resources +#endif // Français (France) resources ///////////////////////////////////////////////////////////////////////////// diff --git a/windows/JackWinNamedPipeServerChannel.cpp b/windows/JackWinNamedPipeServerChannel.cpp index 3723af5e..fd5a8eda 100644 --- a/windows/JackWinNamedPipeServerChannel.cpp +++ b/windows/JackWinNamedPipeServerChannel.cpp @@ -85,7 +85,7 @@ bool JackClientPipeThread::Execute() jack_log("JackClientPipeThread::Execute"); return (HandleRequest()); } catch (JackQuitException& e) { - jack_log("JackMachServerChannel::Execute JackQuitException"); + jack_log("JackClientPipeThread::Execute JackQuitException"); return false; } } diff --git a/windows/JackWinThread.cpp b/windows/JackWinThread.cpp index e3f2cdd9..042279ca 100644 --- a/windows/JackWinThread.cpp +++ b/windows/JackWinThread.cpp @@ -200,7 +200,7 @@ int JackWinThread::AcquireSelfRealTime(int priority) int JackWinThread::AcquireRealTimeImp(jack_native_thread_t thread, int priority) { - jack_log("JackWinThread::AcquireRealTime"); + jack_log("JackWinThread::AcquireRealTimeImp priority = %d", THREAD_PRIORITY_TIME_CRITICAL); if (SetThreadPriority(thread, THREAD_PRIORITY_TIME_CRITICAL)) { return 0; diff --git a/windows/Release/bin/libsamplerate-0.dll b/windows/Release/bin/libsamplerate_x86.dll similarity index 98% rename from windows/Release/bin/libsamplerate-0.dll rename to windows/Release/bin/libsamplerate_x86.dll index ceadc596214c213e1577492c1d95585e2f5e1cd4..0eb2f1047e9c05fe84bf00c667b915b81a04e1fb 100644 GIT binary patch delta 20628 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 delta 8386 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 e7Rx$Iou$Qc*7Ba^x`oa8OQ-x4 diff --git a/windows/Release/bin/portaudio_x86.dll b/windows/Release/bin/portaudio_x86.dll index ec0837463ac053d85b7aabbe011a371877532676..12f56208197225c74c41938ca0e91f21a9df3919 100644 GIT binary patch literal 193024 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 jpK67(UKhV-o~_!% zU0^K5c1Wj_GvQ293rU3KYGgB;FW(ZAne^&w4mU&i${*R3j3yeqA^V z-NHg8epZT1B^HXh1-?Us8PjeD!ORl)rY{$b$i+lAK_5FC6;S?8cI=5CfTD4$%F;o^ zL9oy#(NzI=wHM?C(E6qkE!5UKXdCDaq&yJ;w0=Drng%c%_?kLikJ`4 z$+zLGJ#+?MC1#{9VTY7(GsRJ%A{0Z#P!x^R)P(hLUdAugNs=G5#Hv$kxls>AI>~W# zE)-c}f59fEU58yJO?!0^_D<*0!6R63;CMR!3{YUl^-s(2#rq+}Ut6!{Q-7isF)Ku89mh|(OVrt=Tm0v$>)gbC zs$*fV6*~yWo}|D(dmC0EA04KA5I9HI7V;h93Z<;((Cn8&+lGmj*_zXl7b>gXjolLM!5EIwFU-+uo~>e(DN(^rp!EyQ8G z5sw+*b2V+NGk@b!5+;HSstV?L<}FqmjfxxYCen+;KKy@hk1ViP2=Zdy5^1w4ODrkZ zjDX1j`-h=WvtbJFCsdnqW{+7@2TusT(FdFgUNAqDxJtr13yLlWUSop*5t)1R0tRPr zASQWGpTYqIAsu9)B8U|NQ*6d^RFi(jUhcMlyHUdo4*{2ff0TDb@uEPL^=-aWB+wQ%CR%2#k!p3$WmAc^;_>qb*tPlZZ)e#mb zJJ|>9_LgJa4i2tT>^)*j;`iO=(w&cGx{eIlZB{MW?^|*}^`H(Om)MjVv`wWLG(j^R zmI4ff@z^_qd)?Km+@8)XvNIdQ(u zl-k!`MB9|QFAP%^WbCUi{~T}hW}?=Y`>)Z{_Y;ZJ?aXhs;AJG_gd`gaoWUt;gq5^| z6W5-MYWp_EUWTuZyrt=joz1rO1!L$p5J`sU_)Hpi4UlVVc##IQDX9VO$kRyYkd(jU z96@tC)?;@IZ2^fjB8(eDdh(x4Cg&efau)LpA)bzTDh7+48HH5HzorMB--8zoTWHTJ z*+LfCh1tw$Im!XU2X~Utu5OF|3#|WHj+|f+l75{V5d{Y*MYuh{T5fy!&F5MysnAJA0R26t9OTNms!vcc+F_&6W5%_v1?%Yy`Aw=jeoEyB=asnGEr0@?yNgc zdcOqRK@9+ZAc-0D4e*?g3s}OnY5*wB(a_wSUjHE&VIjK82Gr1}lo82Nb|p%QH_G@U ztP0Ef?JzV8=8QPzChiX1-{vw*@+5`EgpR5N}j&2^dT*_)+hmIcO|F?dHDa zOZ=!~WMjHWQrY`s!3S8B)klX*15ersI=j(&H-&sh7P`*%WiYoZH_U4?2e z%eMz^wKh_Mgo>&sb|t2cB~cx;nTqdF>_WVP_ddTCupPcb#oEXub~YZNcVUmVPX=OR z>-p^;>g)WkquqU@t~ve3e1W|UkRP@NhyeFDbKe}V3exU9ODx<=w>&29MDL(UY z!sjnc?>=>%2ZOul?*a~o{=2!;D`yby3>?*?pz}oqv-!~+;pOIPg!*%>n4|Rc9<(@m z9I@{V*CJ!pV>{jOWCRzidzF=mzMW30C1?w=R-)QTBf$U`$v)Xqjy-_C8+JEX>y*9| zb$eK4;3JJQ=2ooLr5nxfWtut?`OWa4B66ATC*#$sfqhI&ekGHT7!RCOZfaM02h{_2 zK}J9tXX-+sQ(>h1QM=uU^bp!wP`Z|_FcwjXOZU>c!ECRYl{h8QYd-1*IRM^~zFPl_ zDw`5j`YpZH(ofr@qc=^WH#I_M~s?9PlG_Dw7ovNwta2z=0G#ADwFOQHg; zO;&UoJ}M0?I$1~t5YcxDtkP|Ehjp*8R2;Vma51rMuBGSUWDzo%BeiS5)PuSyN!Gf zawJi42t;te?FLLOELLHXX~G~jPu)`DHYd76+dZzDy=7Cq4{cH`W|sslExU%QONPS? zZ7bKE%w#CQ0kA(G?Zyh)c?%W8E@$GU=}*nyO|)_{CRq6{kkZoM&nky=?d<8LJ7<5- zY~DzMbgUg#OjTW?|BSmzKQ~_30y*aS<}6=VcqfA8!<9BKw9PFQONN<;t(*v3RPSm= zAI!IhY%e`J`_n!N^?Z`#@y%)WM_Ys?vIdEy773N^_-}Mb40uxqeD>uz4pj(^yoBB1l6}-Mw?>#v zM3@y4Sny7frF zsSDdL(J7_toF2Rq0ISItw`vGnTVR@-ruD|Y+ggIucxp9%vG?_7EuZ`=opsE*?6WXX z8mb!Pgfw6#W0Qch9wYQFBMsu~3L(gvXh*#qZES}hk4;Un#%~Q1ifS4VEItFJ z38fYO%#fVvTDC{960kqROTneXkP*c?F`Zw|A?Mz%d_Z-^D= z6+zfm;XeKweD~jkZ?ax%mTw;a`uK}{hBHg5FyqPdk->1F6u(ir4DyT1se)h)iHGkpf1#i-1F-w6e=O#4*$7un1G4I=K}*R34&eUaYsq= zp6wBNX^xJ^+~Lcm{3e1NC=Eg~kH%P`|8E1q;6^YM&BO)aSmFivKcD$=&Bg!DDdW@Y z6KDPQ88Qe1Joj5Ygu{^A#JDo>x;h8byaB6$noa}^_>p+s4lV)beLM*JMxYB5=mlWp2J&J)dAND zN;cQ!qxnrL=V`O*(A=|K@F%G{6nuD8hQGdSM9y4=&P%fxd0mHHXP+cQwGr8Z@nQS* znb1{j=tHDs?gha)$c}izxIOaznV$_jbaDgD9sxQU z*NTCNMZmQ-dhmQg6x*935z{9JwhXUBU6u_ox z0SpU@s>9|P2wY%hh8**FJwB3W=DR2d86&>Kfw}PIEUoG?7RZF1dRWzVS?-r5egG<+ zzm>g0+=D<@+(UX%+B5qs*M76jShd~C!O0G@KSrC4Ri9e!SxmkF$*mmmI+dF0T}PmF zGk-VaSm}w`pBk&C9yX^Qwx^`%E2=|xN^9Y(`tn25OSjDWp5@*zwZmb+48-D@W)G#_ z+E}Tti`|4*Yk7(BtnY)Ys>9)$4+5PEjs>lu-)HFk7^&6%9Ajn%4(o@HIe>w~QmB0= zs+PO>P8n~|Pi+sL3}K1*YM`RjAkg4e&CFAkZYXOIJ&lHS)f zas}PS6V7N)#7{HjtcWDtst?WOne@<8_k!GXZ}Aw<`IdBV0e$`%yHNJU^fx~P>8Qf@ z_7-(xzFD)_a{mvyfwPF0+0$2JSPzl)1E6CTrQ`I`Bg{qtK6TPq=L)Su07t`jq^JTP1 zG@)n|jDK&yOK3gyc1oxj5}6-~5g-V^6z*Vs+_7{pAGju~$rV21iGAfL63NyI7P(Ob z;bA6mturDL$yMs)8t*0u^$0Zl=1~wzb+enRc9I&-C+K8xV)RY<2z!{J-1A6`jL5$O z-rVsOZMYGtJRR9aiMEsb0`aFj4c$d56R5pw!`_{S)t zc9}J<@CNgp(4V@@s@2jhN>Vt!+Co@B-QUNc>5@KsDE3`_uTTuwQfX5tq4zJzF4r@xrp|oVn)-t`5+Bkc{??$Ra0Xrd%Nx) zahuq0)NzlW#bT%0KU9~T>Hn&FB%k7?AIBr+K?POYSO$%dF%CaaMwQhxKJ-aPb`xY= zV^!CN3^cdxEx1!yRR_$#CaboM%1Mb&z2CP9v88~19ZL&P8v`WqdM&dUqg&~5(Y6y( zk?fuC61R)haJ#^;ae5Mu!HalWwu8vBU})qz7ZGUq6^CdeMeLa#!u9~{3%dzXJ(f;S zv8M?c5Qj9#p4{At5aUW~KujhfzkeL`Fjh@xX{!;!8d@klqTb+(G+$Q&!JT!y@iFSK z_zm%VA{57aObOKvMm8F^@h>``%3S_IIizX^N5#mQ z&(ZnZz|?mo$vYZd=y&6ich%0F?g5D-DF;`NBptuJ4YJ_q5)exV#1PhFgD!-uwjYw| z>QF5XcWw~8b-Ed;$NC@$^fJP$N%64TfpcuC8WF;gfb=z56RXXdC8}x|B3L5QqdA{O z?|Re5{4wn-83GdcRDy7iPMaP>sK?FsAUj%yh>&$?B(l~cQK70@h^E3laXG%_(lVYA z9&46h4OYaS5*3k-u1B)Vz4JR1GtDT1`C$H8&vPh>_gjkyN3&*yS+!D|nnO8%hOFXg z@G>6d7Vn9D@fUVrg(%BoN8|yoMWYcrigi7{>8NoiDbHH9G++4NpC_9CCrCU4aNFdh`I9=KkcOnoiUx{5ZMvT*T{LspmoHgG~Qm ztO>a<3BC&({kb^G2P0i}OB93yKir`81>x>lg`=5wcgt*q#S6DBjR>ckrYP89&;*54 z4@AXyxp}`}RH!-g-Il&|q`kQhC3!1JNrXfQISG=SKzaxot2VPL5)(}|q)<>cRnutI z9!Q4;u>@4i0STf0O)Q>3LO@^EvJeOP)1(8eKR|!bar-9B>-HAVWUw9{i`1uJP~#Uc z(mKE1r*zoOPvN4%L8(hmuUn89eh}4IX)d|aG_--}oZb#?WTdIO{RAwp$YGsDNmPK% z9QOA>?l~U=aEj~1c{b)!PDFsg{vr4i;H_jt)??acw6&1*ox&^5*Q8r1C!FKt8UbZ& zsZAiQ#ySbmFl&Okb#@m3lAQOY?dCx}_l?jlOgZqDwqr-Qp6o)y&|s*{7J*RUn%Mpc z)?xd{wG8Nn4M@lzQ#+l4-#`w445zdRr_gwe>CzW!C@7Y7E(Tr%FU*^N20U!DV}b~$ z9S5nidrXeoKSqry(AHJ<*YFV$A6J^P;ckziU^FpTRtwzL4I1IAi7cZfI3e){z_728 zDJP7&CfE-t95e%JJO;z+zC+5kIzze&6VD+Yqbg7;4hjllnTI3q8!dMx7B9-T1ommZ zl?kUtT@pf?-cbP36}v=d5=@YMTagXmXNHq<;nnC{7}&JiSLlJ60d^I@X^e)ZOShQM zdq7QyLLGMu?wDAVsP4d`9-s^-ESdVi9S{yQS8p4*3->9PN?%jTZzbimV$Qz@#rnru z!VZ-f!oe#{RV~B8smk{p5JGsOCg>|j#8uT|&~f@H$KLyZbX@lsT1E04ne7?=Tdn6w z%#}q@LT9Q(sO-os)J9zzbyzqW&*;Bi1tUPDq~;x49kMuB8GE8n`Ewiq_$$ybYY~|S zh=?u9?MYqzi8W6eCVLsqIVqB+7RTlXjOO<9y zsVlkZdU~HC>9uRD`Z4)BW(vm@KM5CC8HL)nWgsy`?;c4Ly2RJj*JO&rkiR@C{#C3B zRf_U5Q8ljIxK9QNlR&n5D@F47uc9w`k$p4Q7;R=$mg9O%F`D+Pmr2cwk(dqt5fBCp1Co%>G2}BD z44~JJqqK*Hn^p-PQe{x`C*Ym^@UbkT3nmasr_(WQdQkU~WV0THIugy=`H9f<;yobc zRfkSZ%8!W_2gIZ&vyoKa7=!gI7+DF5pcx2SS<`6WEd5Lls0c{Dm39YSr|suqe;?=F zjY9vD`fEIwr=GPnEk+vaWbier_hMI{0d(Cej{MZj`~{7OxsHE9!OV$u_glO|NF?r= zUXluQ2a$o6C_MnjDFfZ54(?2yYwjFVhAj`cgC7EvIn(L*;vQ5WSj|_xgX*wHjc`-R zL(Mw*mTElY!zoLr%CbhbwY|NA!no1rvFmfyA@@LEa8p| zA9NtM^G!J#SV)Er-q66^FVgO35nDm&Cxobiql9Q+p8^0ZcXxAVR$3mU{tu*PH8jgN z!aty(rag(U=uL%%_^wVRCKWm=vn4y;+TocRAQ5<-aKxd_G^l|nIrcP6gzPp@bnT4S zk=-fxG*Z`&6wn|n8b@gw{^9RNrB8%jR7@mzXXi~ zy@MW;0m{L)rV)+-1F2rV2-nbNR?utJAkg81#7y0=GeTS3*1X;?zWCzU?n`%E9>kyj zL$kTr_WmLm#qI(l#hc_O8vG4T$)skRV?I{LQB( z!v*7qkc^*8ZQhHLN+lY#v1obFbk-9B@;#TfCP2QW`NIUrw^%m=S+2jA%Qi#jRy?Y_4p)8m~9O(1plmFT-n4{m8u#gd6`xBKznj%=(^Q z|G-GooYTuHp;;OR#BR(3#>eh-zF`+^P9DCY|FvE+!M~STTcK@H)8jG`SWQoGI62jIDpEo)M@A<5}D!b|DF~ld3fw zmK3rNZAc(HW@PO0s3Fspx^vWSxI9}t(}m?BByvOJBr{1pu+@(lv=C5a2x1>z5`PoWKAV6yh|BUm#AP*F4@#LvTznud%hq!T(CkZGvSGKZgR(0S zm%Lv850sG1vf54<|C6ZD6h!qQDtvPiQ6W<~1ySM98jCI=!P0z66O}R+%IPX)jm?WM zmAUFAQ?PHwT&{O$*Z-Mtq=B>f%)W$U$Po=r1{t?-Qf43Yy$?o84jTsgPES5*^u3Ab z8}QEvOvjDKpJCUr1DYUQk4Rg_qOB+tkwEQ@EFAl7q0OHm3CtjVMNu`oHI1oi21}l2 zzk-i?e-D&Q(8s=m1&IAI>?xrcg#T{rhii#-fpb;OXX;7EZ)1RZf{P{?Q_21<_QS9j ziG6Hlz^U4?GURb=J_dvsA8IRdBS@pXI}N#|oNk`kUi&^wQxFGu)js3(s`nvS^026?L+$q;I#}D*e*gP8F?PB+ z0q-i$nl56Nc?1VLm^0nx4W2$mB}sh4`GINmLwQ3(WExKD`Zr(;W_mR1i(a;%y>=fg zA`;c_OH{wN{rHKK?YB^~Ja|lauGuW4-0H0*P4q zxhIt#FksAz#-WL5FPer0>PMKIwmziHq|nLnL))1O3DWKPVZUJRlT*&z@NqEKWyG%u z?+J`7zaem2s4~YD>UDi(PpGnJKN4%=gHn$UXJKW-5no4k?B=}MKdh^za#oeH3 zZZ$S1SUSN!FqIYb(YnnA3zSKy`9YWYX&7ruY?x+1kBn%;){U*fu< zzW{)rcVZhJ14q(<2W#f~4HJ!)zgA7o!`gLf7h)clP0FkNsx|y}w5a+0%&Zw+ zb5bsx&J1&|8%7(^0q3Ew=3I|CV;B&nTwR|7k=9jRRNP%UDbHB+0!H?v%tknf*G|?O zVZQ9Ke~1?fCmD|S#J8Z*_-nz>0pvx@edC+K<6kir--V?!Jd~Aemluy9dWlz3;%2(k56|7UBkatS29+SM$lIK

O=Y;18jfF|S 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∾^b|`Ig zv^Cj>%jXD16SkU*dfTvSQFQ=F0~&5xRNV};0&PGCz;4DpHGl&GKoigkv;(OtK?edr zEzktC0qsBskP4pRz`D>-n`<~ef>B z^7CKye=Y}}fAF5M#BIfn1bYr(VxU48+?v4Bo=;$XwkNQZwF#^*Fci>%Twp3t2`m7X z0;_=yz!qQ!um{)=90F4Af`4ErpaZ$URG<=A04xPo0~>%Xzz$#!upc-Cq^yH~U?`vi zxn%ASGcXnUi@>YB3HB?X0v+&Mi#WC32wDT&!oDL9eDc8?`l74A4`>C7 z7Qwy|?va+ZYoP}M@ZW$qqyg=uUIYIZ!awwZtKn`T!iBpg=s6%2VWc5lZPO8dgjs~R zr2haO%!7dz@@brhwF0$BXF5=ujr8VuSUbi20@y)Kqs6Qlz%+yjq?I6kP>Y~;Tm)J% zc#<9T>6M7@OoR)x{{d#wgVu&Pwga_r*K{%BHU%pDw}E#P&|U@=i(k#;4`HQJUX~-x zKr_tg;1xjJih!0rpq++zNJz)Ya1V16&<1_eDTpWZX;52%4xs5pgbP~hsfaUBdnW8j z9RNG1sqn}3h8@&&fDSkX1n>h=fp*>jgPxGwlEB)32O7W-4?>e4aRSnD8?^}t7_bK# zd=83WM`#`dz5qK1_QMdTA<&-(JAkfuv;r;X!wj_nYCF&jceUgP@kj@nNd+wxXn_9! zcr^j(gP{Ug3}hWpYoXS{O*`xw&IJu<7!KaxMM%9FSOxo)NI&#V1n2`$n{Pr~ptb`I zaMK2QEx7|yfi|)S0?;==WpLL)X1MJDEsa!wp}n?2Z3RMVE%GZsc?UEAX)qJmXCB4@ zwP@#afkt2{&3S12|15X3*0^b5DyAs&>Kt50dTnVfI{tWyb_z~#!w*)2tlYn~Q zI$#aZ0_+5S1Ww+az*Jxoa2c=+SPwi8d=B(_7x@ctKsIm*Fc(+?+y*=VJPot~`+%Q- z6ZRyqet-((0Hr`3&Q8GsKM1xx^D0k;9q z0bc?MA0)6-fuTSKPzcNdt^=BZ$AH~H;)e-r2rv;?2s{eB415Iq0-W>_(g#!mw*b!r zKLNw{Ca@CV2H+XsOW^d6k$1oxU_G!0=cjW_%BcofIk6G0-pjW?N4B1f%(8@;A3FW zm&hle5qKRq0G#p_+6_<$Tn%ghJ_L^Y8uINmV}N2{4$uVL z3eajWN{=P6W7x6mINVh@o^@m0SqeLWoydCNL~u{mi=D)Jvy<5=>{N8Eze9I-I_t~M zVEx#cERFSNXR)){0Bq3=LZ^nKD%fv24_(kO>@}UwICNS9I#h|t%!^aQD$|&c`LUg3 zV5`Yu=`4edV3{n7WwViN6dTQQ*zegGhHJWP92?I9>;jg@@>v0!z$UUuY%;r$O<@B4r>&M<%IdIFhm!|vHk-rdvUzMi zy9~Qfmt(u^3XFrUWDD6yt?V|onyq2CvpZNbyOXVDcd>QsZgvm5m#t^_VbSaXwt+p!9%2u(7PgT+!X9Ot z*kkN*_5|C^{>+|aPq8iRFYIad3~Ob7WzVwb*jDyDdx5>kwy~GkcJ?yc!Cqmn;@OKf z_Bwlmy~%d6x7ge49kz@8jqPUdvOVlQ_CEVNYiA#@57|d-FZ-B%!aimD*k|l>_66I| zzGPpquUQBChJDMvV+Yvx><9KEJIH=wKeJ!hA@&dUEBhyk-{VQ}BzlrO$9RtQ9Op^) z9PjDo>F!DKoZvap)5DYM>FMd^Imy%8bF$|Y h1p5J*+^PKMK>p8>I&vT|H&C}m= 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 Sp-FShA-M(0e}Dg>9QZ#e+SR`R literal 79872 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 diff --git a/windows/Release64/bin/libsamplerate_x86_64.dll b/windows/Release64/bin/libsamplerate_x86_64.dll new file mode 100644 index 0000000000000000000000000000000000000000..099bed58a1a87d723630cc8a75142c4984a946a4 GIT binary patch literal 1492992 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

d@KzS-dz!mc5ljaB# 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

H69XF+q@=sMyYucGy6axM zySwXaKJ$A$f1KCG-JPA?yL;xGnK|#Xc3&cy1}2hWSt1R1kw_2KlPJI-iS)K6QMGFl z&CE-pI@2=oI$2*GpP013<{0UpdpPJ~Y zCd;J5n=&cbA(K*4GAT)sNxq*mMNDWGjh&uF_qJrwDW@!ImnN1XZus73vAz`_FLTJYb1tQh&!uvc zT&g^hOF6;0A}%kNR^H2{4k~$+I4qAQ&CjDW%RK7lmPea2M7*;yk7_>V(XF2ObVo0r z8canz^oe}349lnfCHYi*FP~<&DxjjF1*9>jfOc*xpcuyjs!J@On{@?r{Y3#)s1;I> zZXvB*Qb-;47E-i(A!%n6QgBNleSKR8lKwT+dN zce$K8+?UhtKXNJ_AkilSiTasIq;piF5&jZ&&6Vh(Qlgl*5-sV(>Cq@o7V|k>wBV#; z$7x?ArwGoe_y(uaubi@b5P6IzTC<1V5UN1`dQM5(1joo*AEeJAqnSweZ^OQ>>5 z3DM3Him@-DgHa_kmY2|#YbCVflZbooQc6p8N-277Dc#>xN@}M{X>g#BoKou4TuP6g zl~TM)85s{OqnG++w9mMVZtp20J*P4{8C^yxQW;fWDWk@B!q`?Vry#9zGDkV7uPLVt zt8&tFDW~Mva%xZIwESv0*}p5Nm<|<`Hl%{04Jydiq=FXjsi0O4VmrKo#uQXgY)b{T zc~(Ko{|c63pGry^S4sKvD=E#ql01)A(t1z907$G9I=_+(uT~O&Q%Ra_t7y-FDvF;} zMRkj+=<4PwQXH$IT+b@970g8gs-ioW#4#_c=*hn-TG*$W0>@MfCRa6mHmfETt7`h` zP)+wjt0_IZnzq+gliHnX3i?=0>K$t6@W2|Xm{>zU=hx7n4K+0SU=0m(s-gB_HFPYfy@;))$iiBh(J1%` zcg6Cf*lt@#FZ$NepwV@N8Fe(zxQ-0A)luJLb#&jQj(o%GXna;36;;%c&XqcHd{#%z zKkDdD$9mEjR8ND)*HgFI_4LxDo-()9)5fFq!tSc4lOgr=BDJ1oQ9aqW)Kk{Ida8Rb z7?G_SD8G9Hxo9=e;>iv4WsX>1)j+D-8$^6|164aVQ0u@3(n)L}R@gvOYa2-OS_8d* z+CV8^8)#X(M!MUpkxYj-k~F!IROd9(ER#msx}}l!A84d)XB%mrXCrlsXr$`2MzW9^ z=}mnjZMxn_B~Kfvtzb^*wQeF~^(HdaY@!8YnrMiuiJmNIBEQvwNomnU83&q3<4hAB zaBHIM;3m4A&_wTZo9JCx6J2j^qLiCWwBuP5b@|*xk^jW8otx=Qzh-I~-c0Q$Hj~cu zX3}5OEZTu)>bj+wZtiU+&*Ng-p_vN3#P4Cv;{UlEHCZjBEN-F7iWZ7)Y$40bEu?X$g$kau2>w|MrG9OpHh)`a zetQKS?y4ZyJ_>TvRL~J^1uY(@AT@mj)c_jtAC~1x0sQeS+<0i^* zR|my`GyQ;jAcsNudgJh zNlH3DPTY^Kk``-=I%$b#Ge}7bHI!7>OG)F^m1NgRNu}+T^h8BTUwS)rgVTtO-Y3c8=E5be8y*2XI6YnXy; z0u=PdQ$Y*PE6CkWLHwjB^RQsR?iKIYb_Io-E6ChbK^<2pD0-oShRzn(Fi_Bgi3%F5 ztDuEi3fj6Z+*(6XkqpqQOs^=-Blp zk{X-nMM)F2$`S0H_$K-o*hCG2zvE`pLs-C7`Y><^)9M;vUV>05;kUMV;}a~r9> zUL!S*Xr$wP8mW7SM)LpOKy6+$(1sfg6kXpSbWsDnOl}a|vj)0*zJZF4H_&Oz1{!PD zK=liRexKSvW!eqYzfS{gY1cr0UqsvSxL&Xm>nXLOo}9DmX?avVwehT{7@K+;y{Dd{ z*4ER%1@*K@zn;zxuczo9^_14Co?_qC3EQ-ej2r7nt+Kx3uc$TDLkX{as5wFKcP}wOaa7SxfF&f+G}OE4X2`)M8yL^toUP8P(EC zgIZcMLbR{lYiaPG8hY}gh61h#zEF7$6{m@II;e(R&ehPReKmr4StImN4NV?jL%RKI zsB^m-y7j)A{BKp0K}|I^WL49=|F!?Z4*0jfnr5u6Cd)b1bb4$xo#|UmdsM1v&g&}b zaJ7mGORLB@xr%Q1R0(Eym0&bi(I=xS8aY+i7DK9Nm0A@UeX691w=1btbtO@HC0PVi z(znx*-CtHo`co_E_~1%P=uk;z?<=V0dIc4hRghm&1#R%Epzg;iDA&A#X3npm z;;|JpsCNbJ`&};jG|K5xV>vy~5fWTZm(P}qewlJQU{p>+r<7Ak|8knIQcj}7kOnHs z$TGi7Fo??p=d+A%>?otFOUtNiQW^R8D--QoDYbo4N|6nvG$N~%g8fVB`-xIA6t>_A zVG~9O+c2YRDW!fcA>SJ%!i+2-o!An(=2Sul_6TOu@)FuTrGy&#l~C_LL`DyZ4%HCZ zrx4kC5bZulGkOnkLS{?F1d8!RSqqy z&mk!xhkDuP(E80e?3Y|0#-O|w<9sp4)H zjhC{>Eij9&9m=Av%d=?8=qy^)A&Ztg&Los&(txl`dT}(9;!HAW>9|aKtS0=xrx|po zJcDM0XOP#i3~DjSpr2zisJB`MX+BA(K4t0jJ0zVhTBnnr@IUA2rqh$Q>2&D6@Jr=s zw9Y?`^7g0EuZ3weX;>PW{z;|X*HdY4PAYA5OC@YirH(UGsji>!aX+O{=jIghPe`Fo zXH)2)SqjxoOregQQV36yX=6z;?F&q%JyyxIc40E<4NWGMpGm|oCDFFDB>HWiMD`n! z=)WmRf{&C$IZqSmOGzSW3txS~e&Msv7owR+^S&jJmLh@PCnQkX=>%G{I)OfnNuU#L z6X?_Jcv_nmPuZ^V^nFV_jWviDZ25TF@jQ-pm&Vb?fH<1DH;%f`iKELJab*7?RdPX8T^~W8zlD=gQ#b`hg^TJThA zReQq3ct9BK?HNY>o`+JQ6iRbEL#bj*C{54{B`?)bx_3K-G_yiz*|`w1S{*`mqe963 zS1=t_1Pe}oFpaeqxf$jMQ<6q78NCrX8%l#{kB?Yd1d)+`5GAPw(Z^dNw?jrCtvwq^ z$BYBXaabTZh<+>Ux&T@&xK<L&xfqr z`Ovki-ol^prhP}fDQ>?pxKqb$cN%uqoyIS7r?G?FX`mQ@{42T9 zB^Nge7X6MZM!M0judWnSEtpt-A}7ZdSL#2(m2CgI2tUR}u&G?ge3uJ(Om(5mb}m$L z`8?IdoToA?(a$;kJe}`!o=k5#Q~xAqQd&FHQA1}^S9hj}yG}GP%}LmoPV{-66D{uP zME(yP>0*W>sho18VGA8;T5m_1^~ix(mILY7I8et$4s^G-$TRZDo;GILQ%4(nN?mAA z=xtAx56_V-Q}DA+o}+dPME`Eja};skj;^NJk;-v98Zy_8CaK%e)H}8`A=#D&THDg^ znYN_pWJ@|(XDNLCS^9SOj9?d?q0ODokX77i+Acdyh8Jz9y`>H1{yjzW0!~rc=u@{}L zn>0(BF~gEhUf4-dTX#~%mmQSgv_s??*g-2(x05Qii`+chX#A#a6#Kz~{@Gd3yq*?x zG=3|2>usfg+AU;nx`j5p*i3^@Y^D~q&9psq6Ft}6M60+tr7bb1H@7#E#@>xI{`Ur& z=)Qpl4ctIq($-TUTTd2E>*(jYb#(gGT6%S2EzMC|OU}V&R4~$vE)<&5)p@2=du0v9 zTCAa6pH|aAyVWFhTTOE#SCM?oD(cTy(#}OIDf+sJu**&8%4cJ`U}sFl-HgdSVg)T7 zy@GxeFDLK$A`j4&W#qVJ89jPuM5AqtXp5SW=x1I^KEsxhd-f8tp1y<@HZCSL)5TQu zco7*NSVT8|FQla|3n`=bLi!c6fb_>LAaiLx9iBg5{oNC^U=9fr6R_g zJm%2Peskz#ydgawZ%BrGHo488O%)es(bEmH==<}T^!?CGdirMum7kwMu03avVdQjr zF={&5r-*K5a-`J=H^xqB@2`89ORMK-8 z@lY*F9jZkx$wO)V_@OkYa0p$%5IRydm^v*UOnw(Msk5mj9lJY-E?W$up|1wg<^u!C z=i30vw;4bUtq0JB^ZluzYk$h~*C6ly8nh|89}U*-N0-w2((#FXsasJW3PB(0Q`wsw z7WAfP&Amuw(o2jbiTqm|#Q5yP9@KVc59DNhhy78|YB|CJZJ!;)Z z%d;yr_vlKyg1QKXa~C=t-I=}&?@XIgI#J2kPSh>8Bdyl&NS>0K7%NZ{;~c8=VZJK; z*Vuu+F6$t8d+n)dO?!&F)s7CBx1))V+S2pwZOQv(8ydf_4OM(-O$)7CQ}uThnsQ1- zFqK=;C%aZOyIm_W{_u|<>-(2q9Q23x8vdIb>i**ECj8_Z^#9`v@q-UG{LUXN_{QCh zzVcx!zwiXJ&%C?&C%((#BTu*dz;Eq)&%Ydc$Nv-K>@RKJ@LD@D?(X!88@j#ZkG)=S zEC1*GdGIs7G~y|bjCsQEBs}IFQXg^6%!gbn_W|!!c%Ofg-{Ykvcloi3JA6>hZJtwq zi%)94$zzl^_}@#{`J!vr__>=`dFq`jyzKsEUiIh_FL-*92fnz#cZm4}!`~_R#Sblf z|L11@-`6H?{iBiJ``N&!{;B7-|LVA0rH(&rQ_KHrSHo3QtNBm0D*mWbCFfl#xI?#c zKBIdXf6=3q+xIHr-TDxB>&y9nfRt<7>5Y z`MhB{eAw`8{&{#7FC3A{cWY65BKD*!#p_Ga_5hSy75*+U3sq|E?jf) zd9JDH%zF=V;%x>x@)!Lbc(sN-5A1i2Z|-ZyhxW1Mc{*o!&yhBK>+q92dgyVk&^*fD z46qi@;1K`b`v8B|V?VFywwDKV-p$vjS#s6(J9v8QZG85>Exh5^CT{p+BhUP@o_G1U zmYcsd<#8`p^V?5X^7fC6`G|YV`P5rRe8#mU+~Cq8uA^AMyEM+@&uixJf{NMvM9EA( zSw5XV%4gg;+kg*CpUMl8^!SXp$-FdjBA*gEp2r4^<*GiT`F3|5&YeecRr?Wq*_mP7 zc)c?cH#bWI&rrdYW%c8 z2fk-YJHBds8!ppT;nNoXmA=mWDW&Oslh%*^B()#x(g)81>9|9Vq;fJta<@v6`fX2; zlGnvZvK0}Ma$bmJ$pWNy6Mdv4Z4YVLKo{v}cSk9sgPqj)^MthU*+J>*#a+_Dk}cA} zl(o`Le`6`hc9C>`?`-L`nStauccK(GK}WhiaHyoErXe|gRhL>lQkDD_tt6+TALad5 zJd{7vxhQ|rrb0gUUbZ~FI9k5T&s)B8zpZ?^-)6b#;#u<7DnsOhtp61|KP@db$hIl= z8~?q?yEaQN*Qfn7I#|Ax8SZ*3Gv57CHfhgS+0#A$ z$#(DkBimfqiXAR&&8!OBGLypgOtVmxT`cIx_7rqxZ}Pjc)%ofyKCcJ6ncItf&FRCw zXZK_Gv--1)%z)wHiR8X)neC^hcnG2ZMG<36k8jo%a+EBVZ)-vv3ubYm`&&; z_9tix+Y+G9l6|MKOI|W|&mFAEWd;j#n#GLl4cUXUbJ;4J`7Gu5LU!MJG5dC4DSNwj z8LP2e!ECmfuwI*2G1v8L*uynutdGe$Hri+d(_CoIJ{WFh(bKoGanrW3&`CSklQEX8 z^T^$-`_R4YbN~G;x7Pt?)b$Xn>0r$?RF1O6Kaa6BpHHwEZ%#3lr>9x;-LtIAYg;z; zxgA^n_#9h#-=598?ZAd#cVr(fiJZ9#XSS^IJiA}x!ptjNSv|S2!Nu;(BF}^QW_q%W z6fc$^@6D2;e3(>O zA%aD$iDbK0M6n@@qgmyg7-lp*mR0J0T#7Os`ZiU%aIl3vLyy-NynXrIdF z{Yz!1DM+{yw{n2mO z&4F*3dDnNW=HENk_2YYH@aO}ZcljfmT>Xi)DfrCt6TYwofnS;A^o?~p_MOe!`GajR z{g16$@RN<1`ini){>{$z`NRHe_gApz{xZ)e|Jc=Ctzh!770S(2FzA8`b}wj+q|(;7 zqSpo=)7#+Bu(tRa+7?f{w?p}PF(3V3JIp)U9`E0@$9anmP`}jy&MQ>$u2vOur>nsw zPYoqH9q}NlBR=)+gwJlB@K~j@;G1=Z_uI}`YS9JXZ*+n8vaZmm?g}r1Zupwn4GV{> z!!<-5ylZ#dvhR-PKf2@5z8+|L)B|y*Jz?4069Z@WLTN!S80iY;TV!wO_v`~N=RUah zs}DLI=qu*V_r-Lxevmcy!-!cL_>-rBs*(M1G^{`RbQ^&9a|1B=+W1h24e7v zL0DEb2z&H3VV$ChJp%`0nb%-wwjP38)jU!O290AAK+L(~1joRTOu_$mPiaU%#j}xP?_SGo3uh&6pvkvm7 z>mnsn7jA<`!_0d$)K$iy;NTd{eKZDTCS##pH5SJwk3&J+INa?y9v|(;!gogC-jl@ zLLbvjr=p~0Dn?G32AkMv;OYi=a>f8Z-WcHPIvMWP%aEzhusfbXy$29=7U=gDg3&Y` z^>x$ncghTC#?HW~ZZk2^W+r~Tn2EC0vtU&@3##L1!!>L+zI8Cf5^F=aJ}^Yi(mALs zo&y>_S1?58V$binf*myvC70)6?#%hfPn|EATMJ-hw*bf9EP#vYLO4_|6fqTxFeP{q zUbbEgr+tgj`Nm?LG+crU=}XY9?^5X7EycXoOM%r!7*J+}$D@|P*LN9oe=kGI_T^Al zF2|;6D-bAHa|IoZL5GczddC>H^Gq;3(*%$Dtc2Csm3aJoC1$Qzg>%KLkUnHJO3$xG z(TCLtGFt=l@-^r($`r9)rXps_6!zw3P}G>=-+<S&|aLn zvKJ@y_rW}PAGCk&!v7=-^?rK`Wz}5;UA6g;G@BotI4j{1YLG0Ro5JPGYg0v5T zIUhpw^Fw&C;4pe8ABMK7H3nE(<7=HYaz`G)D(54(_3Q}d%s&dBgrlfxdki-$j^Uz+ zBg-0k99Fi+(d+(kL`**cweS-#`*{NHW+xF_coGr4PT|y{Q^18&csSMuyWDI z4jN{5xanvo^pYJ$KeR(x*K?SIbCB;khao}daH3l9?>?TxA5DAcEVak{6ZTk@Xpfbb z?J>8NgW!cZ;Ky1Akdp%r<~g9x0|#Vuc7&dRBQm!;qOY%D;gvd~^pzui_Hn|fIZl{w z<%HE?Lh76_@3Rv|4tBk@)vlOg>xxUMuGn(b6%YQoVuh~YzVf0{3@Z}P=X zXJ0(e^o8j)UljfEMf(wcn77nVaKHTE6Y7V^3O|Is@Wc6T{@AAPkMSG*@ygyG{;B>L zchMh3-~BN`GXTMJ1Mq%#0Q7wVu(v1xzIOwV)Fu#VI)R8>9tgW5fmj(9h+Y+esCgEM zZJmSgd18==Ee^tcn;@{*AUM|rq2f&tUUv^h+o{3mydfBE?1J$sAsA(i!LWZH4ES2%u13+&*dL7^UeWk3D;mlR(eV2ijd?v{ z@N`lP4zG;Chr=;g?;nHw{22VY5`&3fW3Z}sEOzJ#Ssja2M`AG{AQnIKW089$7Hhx6 z;%(139GD!32PSctc_9{pUb$2{=xWq#}IUdQi z@fi0s9x-ha&_*i(CbJUYZJq#blYlFs3Ak090Ohp=1DSqa3Wgn1kKVa$xx@2PW#d7&RgnZwzt~ zzAP8hEOJqCEEiMVa}gSyiv=`Wd*2TQh>D^3vg|J0cP43z~4u# z#}=S%egOv86hQl00W_W$;K%m@RI3)kMxzizbPJIqE5x`Zg$P<-h_`zRG2W&S8{G?W zEL<=h(+hEs3bCTO5CiTM;__>;|5qV8bSi><|02B6DZ*@nBAi=Tge=n{)bA(~?7kwD zI}{<(uLzd0MbOL<+hs)%b1~6)rw9{Y7s27bA`wSgjQ70-|8aORI!-Fa&zZ%zW>k#G z^~EsRRg6zZi*eSW7~g%0u_3A$8R^A%B`-#gx?+sHQVgAk#pv@+l<~6|`5olg(Mygt zL*?)oD@SXY9NXs0kz*pqYjZie?~!BJF*%0V%hAzGjt8M~#3stIB3F)AC2|~SkmJ!6 zIc7bO!}YZs<=@1%iiG!_CA{n_L8&DnW~?M^I|*uYB*Ax;Fw{(fz{lgoUJ2ulN!V;B z;k26s=Ku*dQ4-8kB#h3J@RTID)=C&~K|;t)!LfWS!Ss!U;I9%y*c$G2;CQ6Yaan^S zTZ`lPXpXT{I9kB5b{@w?BM$vF98TsO6+1Xy?&tV(l;igqju%cGWu6@NfgF<}#W@Ka zt1>w1@#l^BUW6V4 z2!=xmn?{nbhY1@d6JS74ok=L4OW3xU@Oe4GYBk~7Iubkr?C!K|K;*F^ZKAdI~vc%D}YrZ)&iw*?R79^vl;Lh)mQ`7^@%7leJUMZMk<#(WU# zpGa`^#QB1sQuKq6{8OX~{w>P*OHgT5f*6$&jA>JX__l(v(!KP(liE{f287!{RLtN{VxNeEK{t;1+e(g$x4N(HE)+KNe^}HkMJKzst z-Y@Zg{3re!!8JAdDp)X|3Gc*xM!yr&Pu~#gUy9{(Ld+Af{~=-2eZsOkgv~d_^SMS? zc$tKsO}O7o@Ms`t*Am1O7Yr&B(_A^Bx=1|dJaMgT@xP{v(12v|zsD19Mv4C_j4&&R zaMf2le@}6&3qjM7U|~xT!-L2>N}z*;+`R<I&zT&;2aW-+I2JtS*mQ?u z>s1aD1;@BLj_+k0X~i5%b2x6Ka2UsO6ozuB`f<#2;OM=c zquzvL=VFe}vpIGfa405lXpZ7oH<;sGAC90d9KmhH_wh@7_n#yTe<|VGeF;adN%+?+ z;b@hFn{o*{*%G!VO7I95I>J{%?0E@ZXC&;hmN0&|gom3XoLw!U;}QvWvxGj-lb|L?-SpBzzNbRt(c$g5mqN z2v6=6!Sg~9hF2CLDX$296N+FRScDSiB78nxgg(2ApuN5bT1$)2X?l_HrHT-zS%j5> z8}$BPA&!42#JdNDFuqub=!!zz%_&6t*g_2SEyUn+h3Iyu5U;lsqQF>ig=dTHiG_$7 zQYgN;LOA~`5bb^ewC)vPWlMo*n+jl)Rsicz(e}9%VD#|6HQy6kNSoAn5Qq=+F|)n z?Vb;#zj-+OIuDUI@{n4ShxlC4W=G{=lY1V9p2&l8dmi?fVNCU~7P|L2Pp{eoqd5uFgU3tQ?q)7W|{$IoR7O2e)2jL;q?vY|Di0lah@)e%W|; zTF6eZZY=gO@!N=OOzkE((Lb`V?@<=sHf3R5K^6)kv+&nB3wj5$uy$P*_RJA7My&T1 zHrC%v{C$>*0%a!F6=w?8ZYK7*Wa7?2VY{u%#5u!ENV=JL&?6IHerDj?qYON2%s_Q+ z2E0Nuu;^R{KJLnZlW_(*8f3s`NQPj#WkBbBI<{X+hgV5Dl7uapA#BQ+L+P+zn~qhp z(jmsQP}W7*mtWHG_*NR$RivRTDGfb6g-vRm2FG=2h?|v$Z0$6pc20x;r&R2@k&20> zsdyTfD!8Vp=x3FRpjD}8D@(=Z!Gh1!HWiOvra(=Zg2DNM*Bz3A-e*$qZEK3)qom;6 zm=uifo`Qz2$yj+S8I7gMm>8D~C+B1|>`BJ2<;fU0B^jgpB}3mMW{O!xtf!XJ1p{DRMW6Y*|&B5q7dM0W2)9RHDk zakmq2S#X_pMknCaxdd$3o`8}C3FxAmfTf)iaPnO|f-b}(Ha8v-{_$`=8jsCp@fanG z$Nd5EaQYL60r%q&RUU_)v2i$RABXyF!nc_p2ZNDuSgRU`oiAgty)jns?_)9EJr=+A z#-h+D7MsTjf2nJ%@GFH+rHp|^b_^u%7_>SV1ASxRZ%vHBf$lM|7QUF}MZsjxi59kc zG#(s?796!`Or8)e+OufPeIJEIenSO2s#PRH?nR(oNdz{BMIh}&1fH5kKwUoqy1gQx_en6ME`&oP zGaO&s!cn>_9LE=gLu-WaSzCu=!GkbVlnAa=SQwm+hvCBNFm#$627UD~7{3k0hQ?5s zCJ7(dArzWhLh)*PC=&aJV&(S`yuTa*o9qz$=N^KcyFySiF9bccLSXzi7`C^95nULJ zEZ<;c?-%QfgJGu~jFqi}(fgiYPsxL@Cm=}p%RxA|Gzi~E24O>+AmrW)#DDTY;fn^s z>_DLC_X@;G?Lb(o1j77I0A!+XpuKMZs`dupz=8mD(+WW3Z+~cB_lH-GKR&woW9|-r zIM4D2_4miaFMjx;@Wa1ku{`I8ha3Dr`hIX$_ru&*zTzG9g?EH6h8*)n%nD!h)b+*D zHon5f_JMk#4;Fa&z{=7G=V$xCx4#cOKmU(Y<&AX--q1PYEjX~=h!FiJvsJxu?SU6I z%Dr&a#|txddm+To3(xv{VfbfHtZedxb(|-hPkF*^r6=r0d&07fCuZOFK<7LU)Vq4% z=vEK(k$E7gy9ab%x{G(x9qohNVQ%G)|Jqvtt)mUIPbo=<0yLNA~Dj zWDhqtdwkktkEK)W5v*#D8+Xp3W6n8@cRYs$YtO-C>^ZDZIfvO-?Jy$64!>>eP`g6# zvWDAX$`4yyZ?eU{C|i6NeTIkU+v2f?E!=ON#WcIKXc~DIa}{S0Z+!-@`=3F-iqjaq z^E9-(oJNN{8z{|eL>_`u=oxd4Nk)8-U&F_pTOQxCm?G%j`s(T zi~if==*ExX#HM3tYI6+jl8-`r=~0aPa0HtENAPXx5ft3E#)h-jc%@~H&9#Tcw{{q9 zyBx;E>_b?v@(|{JI|$v7gZR!4BK_V0EVerU<*);oUMup9SX$v?M=ShD-;ego_v7z} zeYoqp4+&HDVa>I@czfCK8e{6wC_7?Ee zvcTnvt!TYvEBd$Eia}9Zpf+O*?%&yrs8gGWSk1mA>prkhal)m$)b&9QuvIgVV| z2*>>!VcU5lwxw>shAufxLs*1|4uE#fDyMeYSNr0z2l zyh}4|NHRt5xu%dmSc8S9*Pv2k4MrBO#xaxC$bGj8H(XcYmG&xeZ!4iRUy0bCCfE{a zf=-i65Yu7|tzE|OYHN%aQ7bTpt-ywB%W>@Ba-8YB90!w@VTIu`47h8AOUI0Gq=ymO zW-P_o1xxYl;Sw0wEWwFBOAw#E7_@k?;NmSp&Y4B<>bD4HxeL*C=|bc@U4U6<7l8UL zz=+)WIJIOxN}kNao73~4+IJqhXU|3ZMRW1;;T*_M&cV^1b1)>`5JhthfxEMjabz|+ zcb$#3iL>B4V-}=qGojc&6BpahL`CEbMC#ALF2!_c?U;^+KfuNS;Qkn3c{M}kdWN5$ zWSHVA!-kHX^=ujzpPmMdUej#~ zpni(rrcc4XFOzZFbuvy3nGDOqNtnBI61qK_h=yYmaj1)6e#K3I@3aX}Q;f%ci}50V z&p4=hjsu2`6FFPP;*il;Sc~zk9mmFCLFX~(7c&|+^+vG$f$Y2(9~-D6 zzTr_=H*XX|Z;nLczL9vPG7`T6wDDU z)55&{}_Nk*8%7{XaJ67^~c58{W0i@2G;M;fZLCLNO$drvVr|jmDv~4tiFi5)CZ@x z^}*tAy`g%(H{=?lwi5Hqe7YEJ!Q6GQ(pr{X`X`r2>y=F2bkr^he$ zeZo(6d)a?1d9PrJxqfG@lD{#xny>7i;E9>H`ofY1eP*|0pV$x6kF3>^5A3tgdv+o7 z9Sd%H%a*)&!(O(1!wwC7&7Mtv#pbPh$-IxgV70!_+4Ib2>`UWQ_V(EmcB%Cf7N_}` zZIV4=s%svyh=UK9rpJBeo_voztGdg^+`q#%|Gdp?d*5ar6K*l5B{$i=9XFVv-F4O` z{2I$Gyvmkcyuxn0zRZ@lzs&N7Tw)#AMYeGD1$N9z$^2auEGn*rg_JZiyX#HN^kX9% z*r}0S7~a4R&8TN>&FYxL!CLmkwT7*XuVyhNRqWoiO4jK^1skPS!KP@Hvk9z>4O~^q ze(Wt_RgT2YMshZ$NMiL$Ia~drm|boq7-SknEP7%g`>;sNN!XgtEKcSzC*NEanwrC+ zE3;Y9tt@u-Qzl#6F_VqZ%3zNT(wVPu8k@2!mDSm%Fr(mPR+E*)Ce$S|k9!I1?$>xW zxJx`+H9U^luvivk62lU9MYAN^C>9nJ$?P*Dn0ZY&8+#{=efSj064gSP@sJSqUO$-G z83i%bZGp`GWB~gl=4z}?@?#k#zU=2^AI4sJvqP=CSwtT%Rx-wuT{iS!cg@_{-TiLt zvV$ut4Rv9W+2`4jT4y%}-#-%yRl^ zHp}u9Yv*@@$xDv0buW&vS3Ru7{zL5A&I4?c?|ycg_Ojw^rO2i1sU)+jwL4#B4d6aL$PBPg}yG zt}J3ze-^M?+Vk1d<#XAS8bov)o1za87h)lsH!ycTQ}*8 zabM|JhNe`fsx3XX7%MfFPLXUhApJNjI*ApFrA4Dmq(SG_O2xM~Oa1gLr5T=9(x~T0 zMKgLv8rFPH!f_`_f4Hlpe!)X(Jmn)vAMJ|mvQzG>rRUy5+SS|USs+W3=XqK!LN-6%>WhrOKbt$mnmbCKF zJ?VM>N0Ld^Q^{}7ODV1ATPc`-kk(s#kv@0)A#Kk6B}K3OC#|zp;fj@Q_?VIH_~D=J zd0dMsr|6EnIC-gM_TN_%n(pWghcMPEK%UxOb|9l(Qc4dhAbnmqi> z5Pp1x7ME!a=Z`;+;0HxM*r$Oye1_#{F&AvgVHDQU8kq;!OQfyq&baG zdvCzQ${2s>HJx|dJd^jGFq^k;HHY6&&gC9a^Z5v?g*ZSN{H$E5D?4<8k@!d`pN2 z?{vnK$8PoF+6%mS;AkKIxtlM?7hitx#{aQ&)?ryZ-}}cF3sekDY(NAA6?yiy6$NY* z0~J&hQBhDr5RvZgc!F;1g1znTdfVOI-QW3KzuzC{+TGcjojEgeW@gW8(&SX8i}iss zlx*U_A{W>PUym?%{Tzf(;%04O2@jE4doq1aJA9O~3*ygNk@!_oOcK)0kR&!ns zkGmkRaK9)I9e+uF+555_TK_*;>;8Z8qP^mO?A)vJHNR`}%Nf_@2Lo@&dt2R?iBGzu5@`Ucf%9er^8cu z^T((1*|X2&^X1Rw9bqrz^$T9geXU=Kbbl@PdHY)SKk-K1QutOr8Td{<>iAwRGXEgE zHv1?ydHhk1-}_1al=)dqtbCD|*?yIMdVZ5#e|?h&{r6pdTKz)~i1;bLoBvC;8S-1+ z(CUwz`Sg#Ryzj5PBJ-cDXQjo5g<33VRgY5x>Io)8JqAsy&%dnCRfY|CF0BE({cFGl z%NsKBN<(fM*@*k98gXy?#;gfx%=p)h=`^be^$#`Sag(N8lGT(S>uGcKN^Rb{s!gj= z%@|tMjBMAOPd7H_zZcEfWJU}A-P?js`n6}UwV~6Dwj8jxE#LOhqbgDO9DLK`G3Rz1aiSf| z%-i!%c6;HU*n!^e9hiQx0}HJ?QeDuI(c1cS@zQ6X8~VI4vJ(T!JF%&5XGZvS=DWL{ zX=BrcaW!4ISFbDYtnbQK54-Y-Z8x6X(v5{3y3;kNJN2G)=T>_IDz+JLYsVgfN7F<2 zRQF(!eNUd-+LKQ@^y146y?E{NgLG&P}hnhBSDGhv|9 z00!+JK#yLg93N%Mmaj~?Z?YMkwwdu!J9EzRH|MU~=BzhzAgzi9a&}`2E^)Wu{4*9D zX=ce*sg^wc*^(<}4dSobLG+w&IilL)k28 zD7U;H%2Cs;g%hqdd$dzq-0K9!iK&+{U5D|>hGATDSNPlv zAI=Gy;Y|BCoX4GoPtN`keA9g-?`<4O`QAtdj~GQW%_yGuJBoG-MswHR(QMIm4DAEQ z(EHXHMk>ZKBxfv_ejm$0v&Qk&&T)*_vtj$SHjKGw!zX6rX`DEob6$_9r`-g4mQUc^ z#nOs&hlfVAVr0;A;Uf<@(o-Jq5!EF{-ipi*zooCa* zXEuADpUvxrbLbm7hd*!4;nKl#S(`YQpPtR7-Y6$_&2?gnPfmPjKacsv^Emd;Jf5F9 zpQAR-XKv#Kys=;bwRSIHOC4uwxjFOJK4&W1yKu}Z7hXK-LYuA&S>U~p4^J;-vtEnX zF<=o}UR=cI{RFcvXfdZ=SL{ z;l@i*ZXA8bjae4U#QrjVy1k4)2DzSw(n=2L>%m9<9`rfu!8Zo0Xy+~1cE?w7d#Bah@3ER&53FWXTThN&>dA+D zJn7clix=m6vHKP;ItU-V6*JawS?LP_%h^}FaNan<9s(i7Vh@r=_c!VZPq%TC|f7|L)X!9ygxr>`qSsB zKW`2WV6TV(!HNvv!d~k+bIp319$Zhsif8PCK(?w0r0=gl9<<%S_gNcQ|LF#Pw+!N? zkRT?V529JujoiL`BRlUA+xo$@GYaPADZ!lN8_Zf|FgqL$=F%6zEE9aZ8-qjm$0>wu zLqpi9Tx`#Y<4+=7U-(jv2&L zqxh+FG^dS-X8xjR-j9f;ZbdXL&O~$UyJ(JY6C)M`kDYzGr1JXDlJBiK^e52mO+zM8G>Jv!9!&k^f{8j_75^x{wIS*oidp-B$Gd;XVP|creKm~a#xw) z03OcdgL|30`zw>DI%KibGK*eQvIMImi&rAExT-LV-}Yv4^^GiE{hUP;-E6MupDnmX z**vo_oA(2=`6w%!SGQ$z_t|VlKhNfb208rRHHVo)bJ*J!SxlF#1OWjYo+}I+IclzYfSoom3 z&CX-0SDxSm=5c3H9&4D#j4OFu@ivdjnAuj>xr5HztwEoR>N>34d0E>(AH7I)Rh{Z3>C-O z8aCLhVdJA3e!r>V_4gW)lHC}85B0+zKd z7Z?gIqN13A z6N`n7PDt)F(0HAGeIyD4R;rF>xp6--7IF}D-r&?n7vw+(4l(?z06CvVN?nI zrkBupaR~=|mk8ck39B2$ z?w(M})Y+wUT2{(7>q@yNs+9KP$DcE$rGimb%Iu@1eDq%_yF4!Cm`|mgUB8S@t;=X{ zP)1|3GJYFY#%&YJIM=C+AKc66v#w0Ejb)sWQO3-oGG5v$xDorysCTZ6oo<)0<;ya` zNh;&MM&(@Jww(P0W8#2mIc-o**|wbBW|ec5YdNdE%6TKGoFC)L`7^tm?@P*gd0RP) z_m^|AU_9#HC}-7^a$0^YXXW2=wh{~r=MELr^s3+)vkE?!D)?c11)n*HW9JI0S5$C; zpWt7FRj@3vg66qmD>xV}wu<{G?mJ$=vzNqucPjYtc?Dm5s^Gc570lPJq>El9TXnBw zrBNj<2Z`MvnAWO>*K}({{Zqq!?P@rvLk&&!1$U)$ z4PSPtVNJIh&NrwL?28&k_Nw8(-Zfm(w}!R-M3`X>jg4z))4zsOO=>tn@LC3#)=WTP?^jad)EkUGTp-9J4 zk)D|%U42CQjuPqo^Qj0I>24*`zxH-DjYWP$i+s6!v6?MKJ`EE2H9_Q?y~saFx6#&oL|l5Lf`(UcY2emIZ5cDkI=_hp_lPOKQ{SROeZ3;e&)l*q zp4Eu+*;NcouHv5PDn1OZ;;(h0JbG2}^Rg;lb*W?*oWt)k8ZQLaXa@@7@V64NR+ z?JJ(qwTd}@->u}FE0t_|rjjLxDrr_*DR}Op&M2*< ztFn@1sg=AIUCFOOm2BWs$-m1*ec@8ceU6n3n^?&qqs4ivN-iBx$;UkfzqVr~D_V;B zq<$s)ey^bIn+iHT6mm`M3+_+fgB5(gvx4Q76@oKX!N+M8bc?Rw^}q^Rc~vlcNd*tg zso={=6|6V9f=!21@V8L~?{%%<=GGNl)u@7vE2|U(VXg1`IXU_C;P99gz4_4(2GcIR?uI2R7Dd)L*<<$RNMu(?m zTz|ccDW?SImt~CJRL14`WmKe=@q1VqOMJ>W(yfdqXP0r5onZe;qD?UoVcp8OMyHIa zT4loaE2a8jDPu2}3J!lM2kb26;}UV4S;}srO)Ky#Wn0n4trczEA<^dj6K!9ABf%=t zFXd$IQri3|p~;I9*1J){BPUAeyQhR5%1c<5Rl+_|B~0-x;hQBTw3=B$&#|H%wJhN# z!7<+6x`d@#C5(Aj%(-`q+39RCPs)O4R9VcA*~RpTD&{qxVw$@ai*~wLj2jj6vS~4& zbt&e{X2rbqy@-5T#JK;8Xm_ZH-!>O9O;yBhaYf8tS0uQNMV#$WM9s(|UKt?lhE7Fn z*|dndUkX|8VId!$E96$WQ1tN&*)5}xbs>ecSyjk`a|_vjd?CXv3wfq{Ase(Pq|x^R z4u4$0F&7Frgay3N{Q_QSSimmt^XYgipTWoS znX@&Yg-WrF634>sauoJgmkIg2Xpv8!uK8@*G@o%FHT-j1L+9ff!OGI`eV&E}ks6Nh z)Cl`aL;JBBTAOOvzN3Z@>uIQdrKar_wcr~GUUj+PFQuqCZM~Y6u4=)46Skt2I5rS= zqqdr>KdQLomWuXAguPj#;*$&&bAwbI?xy0UDJnV+Rq>>OiYD4BZv3F+!5d0`I;dp3 zN+tWHDrp!X?A%34{G7IHXf0~r@eEyt62_x-)FP$)odP@vpK6Eo7W?=X}dC;RnxNh zXGk_jbjhYyy=aU!W3zb9FpFzjW>NcNCX=pavay^= z4^1YIgk`eDvP_PfD2~lD8KsxWlD()!M>Im+|fRR zmZE=DB>G7W4yJQPaXK@j(s^=uI$uvpr`Eu9Hq=Y!&#!5`eV|T}KcxD`peB#8IZXB;##4)RN9Btpn^6j};hS$WhMSLtHm&fwsgji1L z7fX%k=ie9oeZ505w9Xft{h%1pr;p(bMGQxG6#S~M(foKhnme~fb9quU+jvB?$}XB# zhSA*7D4M+=MKSU~6mP1cXs|v?@cE+{HaJS~A)~nYT_m@hiDYp_Bx52YxoB}DO-4rY zMVCls|A?UV)d-&57D0!k2%cFHK`X(u%IF=zCt4BgcSo!-AjU?*GQz3y3TNe{a8?+F zGq+JVgC2x&=H4)N%L(I6?=Z$p4WqG1822>^zd=E8AeM>mAH@e>U>U zwvEhp+sNr%HuBYlAi75c@vL-#FME?dQ8j;q+H z@hZXS_7F}L9<*%h!M2B1@|LF<8|=Q4z0R#*ao`HJ?7xD}V*D^WYB}Y>%X#dPJ8M(i znK8nhbKfjule}eAO<2Y*U)>m1|9UJJ=C3pwV53wNw_p-y)f zI-GK5h>tUK44j#JdI2MR7jSNm1=K$?p9g*Cb4HK(yl{FRt$gP(%3vN3opRzcZzq1~ z=ES!r=JL{-xzu!-%UQ?fi1Fe%jL@IM--l*%{>s^`Xg8bp_RSJ$Ig8C(i*-us9QkmO zBR4g7r0b5EY&3r+lN-%slT9En3p+gRo($8yf7v265o3^lQ1*vD)Pvo4S3H^0#w z(`7U_92mtS*HPTvR7mwmmP{SVjh{zweD(Z#YfEhO?^gaJD-&j2<4txJ_5g zEo=uH%>vtsIfqs%iQh&@Joiw+vBkTttDfgylF(Q03$Z-WW=OeLpGjc$d%vw@laMjHnr-< z;aB_8)u%55^!hS*dms8v@56Z?deb7gH@}*FV*TWc%}{wKD6TY_*NWh*os>Yw`3>hmR$F<1y5wO5dF;-9C@ZW-QAiq zynb`0s+uuNRX+!b?~ z>l#tNZ6mtZG-S>AhJ5^>0d)c!a6tP89J!@FZS3lE8|B!oTewTNh_$FKa`YPuP_$t3} z{v!8G{Vb0?@=2cd^`mTK_)+dV_k;XCPR!}~lSZ=L)BzvBHD9e8y$R7qgklQS{ zFB>G@llAxAmH)oEBcJbjM=;E8%Y!%El22FPlqcQ3A6)QogX|guLhOaXGQYae2DpnA~XDQMokZh-`KEu)OR2A-Pw#LvpbFLHW$O z19Fqn{j$a7eX_mQK6&PVz4D~FqI!=KNU|Mu@|F9waze{md5~g{d`7Ir=8(2aKD~dZ zJm~cfIlki#`Rds1vX0j_S)tl0&pf$BUif9Ryr9QsdE%r^a)19C`B!nZy!S$t?D@M= z))O4EN{0&BVq>{nRaqu?xLPWE*DI9|o0P~6XBW#u!;0kjn+j#08wGN3!vcAOS-$Ks zS0hh}P|LlysN^>{m2!C_rR->)Cx4rpE5}FV$a-6{<)oWg^52G8@ zJYrLt_=h4@&Z?g(Z!<}e4>%^vhl7*ky2?bk^uGi-@^8HCWEd~^nI0!US|2NCmBh#+ z&qvF5zDLQPJ)`6w_K~umPlWtZ9WFbZ2$Q#d2$dUm4wa{l4Uv;Qg5~%D8|5b(H^|19 z*2_+URTkj8PL4R?D+hJ*kzH4=m96%9$=`K6<+6pV3tQl zv+q#3>#-s7`F4Y4pCy*E?#_X-rlGmqYlf+;EHaUseKM9kMjOe;Qu@hy5BkWn&3ntK z8+*!!&Kbxrx^|ZvdvujMv9sK#c_&deI?CNE+RM7%_2ln1ZRP73t>rC`b>v{nR`P_< z7P9umX7b_g+Op58CUTFxjpSp^8_KS8>&w5(wdBt4{?u8-|EwEk^sR2#u}^gti{ICE z(Rx$&Tlu2yvh~wC&DDo>i`U+(>#BRZ?n3qTx&YfNbzPobtlJ%WuFk&u>ALIk@jB<( zN9yi>K2YbBvbXNyfV#Rdr*_qCUb?-mV}mVq8#L8*ccqHDVb@FQvb_uIKI&@fY-{rB zG`87wpP!`HjSo$!%k7p}_ognkZse?}y7W(BboV&vt#go^ z>)LzIuDf47t!~>BySn&pW9wGU8dm3&Jfv>=Nwc~c^^NKlOFip0cz3QVt{)a7?CwLYs|UZE_sGic=lr3gdX@~evAH$0 zXh&0P)zMzot*#EY{`6#ywcQtQ>!$Uit$V~|SijXNvR;+B#X7&sKI_oJ)7EVbZ&**O zd1@_Le70V8OG^=@YNGIWZlxF@eh|3!u(M)haZkniB}R&fzUB&-XG0X)<--)g%f>2> z7}_hYJf9|*X|okh%bXQw`z=*8d$v-cQ@U1h$2CAvn-Z*e{yt3cV@j0b&8Aqzk(P;y zz?CVA_F^5=RHJOgyQn;c$y2q$c5I=-rm#fOORGY0Z+^8RK;EqQ)N#AQ-glQG_;Rfx z&3vySG~s|^%FDxw?>5I3fkmejcmADKbewllVYcT#g@N96#jDk~6e*|gDs=iiRJesc zQDonFt|%D#S`nJ|P9eShs5mp>tHQGAhr;X6Z^hyMTGF2D^`z_w@o%F=BdNo^#?tP% zrqalv&7>WVn@g=zT1vBq=}1v8bftofHd4_jJt^@`J84l)2dUdQed+M~PSR9m7wPEu zZc@)r-KC}K9#X1pFRA2nZ%L!+D+SvbN)x^qNnbVnr8v6*QsXbClAFd{+GJ}X-TGuH zy-^L8o{YDW4t^Lah2<$E<8hF7z8xm@$sQs3j~XRyeK}e>n>JQD3ma+6lkt*YqOH`! z%3j)ZZ=%#Kda~qYK2<8aK26#e>>%wioGGPWaFnL6n=O6pF4o9B?j&7VHDA(i?<@`5 z>mrSDT_hPbca`34T_R=9c9XjPTPB5(x{?f*7>!pChfs(_rASt48uyp=y0hWtvnSkS_JN&yX@ZXG(8hWlEOJl3e4(f4}o`q*#+&Y2)u)$>mI* zG(f48o~%$wv65Qq)LbKF+|)?FEApku{smI}ghFXYha&03(<15k&SGh6c!?C@P%4e> zSth-GUnYg^FPG{kR!A%6RZ9DftE4~QtE4{1t0k+98p(3;CaKfF&C<)io28;NTcq*1 zTc!Wpwn=t_w@a1vcSxVk?~wYac1oj`?~=w@?UpPX?va{Z+#{V-)k!kWtvb4Sd zr90;-^;7PZ<}BMMc@Nqz`Dq=H7M(dD4bDC&y<2=pN;Nwyb@_EzN<4N%dY*DrGMax( znr?VpTJ-6-G-uxl$tvcg^xNT-RNn2hgcql!UE9w{?Ssxr3nrYC;@g~;@^7D)@=7mA zfu0wov5HI5#|D?Bh_jcaf0_SD&MsG^Vxz0lg^yRI2l6%PTKIKo`=lF^Py3rvmwPv* z^0Hf!zUOVpbLbtZO6#t4=EPm;V)8vno_$}6HFzKmd;UPWviYGjO{|T*ZTMs9TcanE z!PzI0Y5G&CyVEo2bC2iJrsvNk`^_(;Gd?dRbG(w))qgD&pLi{8PkbYl%y=sWbb2RQ z-hU^ZFL^IbUhzTNZ2nQKsr*suEPs;v1b>#=jQb)z(Eci=p8G2GP5UOPW__2wbp9ck z-~S;^EdD9kFZ(6+H~B5SdG}jN+5SiB;P+PwQv8#S|M@5RyJ+F>K`r?7s)yU*^G{QUG#)$Q5jCPkABiW(} zex){nVQ^HIv{v-N8HnN#DG5?;XYR%X}k4NrPm2ty*i=fTqi{J?~GZ|ouT)nGY*XEf;s9g zxc{>YX3px0-P^mOiEcNHTiFesC%Pe~cXuR-b>+iucZcgx16ZUR;O#pDWZCzCX;}|! zt=|(p7xYAMZBLxm>xBlMyfFF=B}!X6-k`JbfcfT5E*YJ-$E<|@*!Q$Q z+Ke>8v>X#`_-KL*`vJ%)9)OrX1K{dt3X{#IxZlJK8(qxMyw(h%tPGxMYED#+Eo4VhQIPmUv)32$Q1+q3qruyc{wZ`iX;K`D8Gx zF$6|wL(uT$5S$)qg}^K;=)bi>{@9^tn>Q4mABJMjcx${;Sws7?HCo##&@f+thhG$^ zw3jfyK*F!D62c||Ukf1oL4n+f!*Hfx7@mI}hIjVEaX)`J^L^(RSDv;YT|L_K(NlnAKSHj~fgByJN9+ z;5b|gABQ{F#MambTQ=Ch?}7~sdyU5-pYgCcF&^7HO@Ow?1laDM0I$}z!q3JQK|5`+ zxQQLi=h)$CrC`$iwnMAQ_JW&bkDKr9(QWiZ*riQ`^W%w_KX?+xL{386Ym zHyK|}Oop5O6dZD&f<|>yVBTyh#?76IQI%5#du=K{+X_Bi&NNJTF%9R23PxS@bfjOK zj>~-=@XN;m&5k;tzTONxTr>lfTW4U7)=YeuJQH53nYi(4rtn2}giEv|HePi^Wbaw< zSu+b056nWdRy5rzPcVwlz!{N3&z6$PL(2C`Fy=^&0{#*|KQ7e!gy#ng#)(WBtO_Xj!%z5wBO{;XqIH z_Va{2Ju$nU7wl{V6EDsSx6gZFgWei6oU;b2Rco;S!5Vz-vlgwE3)!?5A3v-`-C%Dl z^Y_LtdSi{256+G8fsWwh4L;?A5iNxu=u}_SPxD3H6<^Hi=!Y9~{V+o1hnRbQ*wbSj z&MaPsBPHtucW)gQ8u_E~3V$S3`{U0We@rn8K!j%i^0x*+^DzLSmg`~by&j);tVh_F z_4qb85R-ia5xXl86<-5UGh_qOeK){m*9Pc(-GIWuLFnWY1fLy2*#0R9S1mRQ#=u6w z>e`6(cY?3iLHNlI2}b42U|jbO#`m;fG}|7GmY0Ij;6pH8>V)91X$TS~g}`=Y2)@OJ zAgdw-h9^Q${WJsyjY1LCD-?G}g~HG!6pMpGk*o~Grn*qIv)|kHocpkr+5O5`iv}s11z7)9gqz z+8K#<7bDUBO(e9nh2L`TC>$Iag{XN^7`847Ptu~WadQ;3Pe&nK_&2|=7mdkXqoEuc zjoS{aajI54$<}Eg@2cvuI;<9B8}Hf@f_ z^b_%TdOse^1qbk+@D(3toPfO133xa+0s3nbFe)wqbBhwNSWdva%L%Y~l>mbViNX&$ z5oH#_7u_xq?-nK^&_5ABk`uACJP}9tCyF{R5!2ra-}FXFDCm-et(HRUl2EuX31RD! zFe51m?Mstzf=O6$ISGGWBq3NU8K2uHW7dFVREH=cQummQSF8q~_BP}yvZ;*k578&R}E(3wH#J+n5 zzOK(e=fn({=VxH>whR~@$w14i8F=t41I0fwFspeces;-3f@vmnMrI;(S|%PX%EVyr zO!!7*qAW8LC(1H$eUFfnV*jQHdnL~O&cvXWS$Nnr3&EyYXf+}WaZ|GJ-8l<01Vd&4#W)Hp-*rZO9CYqQb#L^hsX%|`8$Yy^DHhH--&oNAqeIR-hnZkhv|VL2$W z&%ygSIT)}^g!|^eJ3I#)Q*+>-pMyo4av(7W4Nv8O*K)Aa@ug)h=5)?Q zjbSc649-RGF}bjrDtHs~b1{2)E^PgBVJNs0-;#5&Q-qQY}s6;A4_klj;-S^WjqV~`4kP{DMZ3Kf%7XzQqg z#{w00E>+>pDsk+mg3(5CK1zk2N#gn}6|SpQ$SGC9c9RM(cBEp#-HhGG@c`_Um*A-f=MDTS0mU{jlsTZTwkxo@(?v%N2)O|UYtu&qgj?3 zH1v5pkGC!$d^i7TWztlMOSB;SR8uV+d0R=NuS(WPlKf$G=f9|PV2p(ZF9&H5Y^6aXg$AM}#+~6Bn2plFbBtiJ zjML!2cn!|kYH&udS@ulQAZ>~U^QURh!9j!lGc=gxDDIi1!Sp#A?4GMZvw0d!ny*37 z0u40I8f4xr;RLTdcuoR}KCMDO;k!h@~1F7c$&UgCZf{gLqqFVezVq{%apHjyHY z+KRMF5^45Rq}@!BhH88B6KUJ7p9Y~su~}KZg>kF zc`9_p=7<`ZLU*nR9cr*k4TG&}45(JauuLtOK0njg4hce+qSP1^szybi z8m;`)Sm>oj$qF^DEm4cQROsGZAv47OBoQ`Vjp9+_8cAF`SlnYO?llz8=%Gf(&T4q- ziSp1=EjTM`wAWI@z*wY!%X`igG?dg)Jk*v#kU>)>MUi zeN^bxRRu@E`SEWq%5i-a5`HKV^j?Vt&y+B|E9#p6lu({lLOP_xi9Jf#Y*u1>i4rA-7 zJj|Vzhl+7|cxEl?T+=*Q_RPb`_IViIEDy$i1#9VaG=+>wjh zfI0ziMB;wv@0!g;rK5HZ$9L} z=dsvc&B2V5IjEL%@Tn#T#-e?iCfccGqPyd-o zZA3fPP_%bnvIQ3~8|l}xar2~TBW1x8uFe+rK{lo*W@Exe(WZI|_VB`NoSr6lN29aR z&oUc(du3ycUN-6)X2al17W|%MVc(T3d_J0m&bzW;QJMwo%q$Fy%tA-sEWBTmh21l= zuzFk;Itdu8l5YkQUB&+N z3^OiEv6v#E5l?&=dCdP1{7I3j13j7~TH~ zd)(!90&f480K2^js3=Lm&x8cPHvy{`Bp}U3gqbE_YkRT%8;`W7@mPH>9@rI+pQ?CN zM#RJ3BOZ5W#A6ZSajjQ8hBp^|hL3T0a3c;~55~c+JPz(jaq#zz!}|GgST!~d4*la` z+$IhmzsI8bp6H((i^Z4fScIp=qG3QRd|hI3(!Ks! zxiS)ar$*w>ph%eNM`HS)2rPRL0neimSWyun#?m4%#47?#W=7!j&ikd`hlL_{Nhtn~4~2tqD3mQiaqVpg8eJ5es_h{dnh}EG zej%`$6M~*n2(-F};Nst4q~8yQ{h?rdE(%6+L@>I$1tWh#FxnXhBd~ces&8x*_R&Th zU$7AadTfOMqaak41mTcd5cV4dq3G2HtgP99E~__SoB0L|_!x*J!LqvM9f(Fl0@3N) zdg$$0k1y-igVyV@{AU3E)&*eQ`T$&)0?_@pKPJ&13j_V(1b^W7Iy4l2PHtPj4&$YD zIP}vGz3cqo;qNE<#eUfS%@_=LoHdAbT!Uk6*Wl#^FMLVx!ZSNB9Bkr+&?BDc zAL0plm?tcM3I^7$)wsE4HMGrEqx-8>=vuZ44HmD$#crz*dD8>EGCfc}%|kGQJh1%4 zN|c4I#OdKHas9^%oZYcPaC28+webpcd9oZ^HOpZ-cRAAamgC_$cXW(#$B;4Z81`ow zOm+)Cme(>IHeQC6Vl3*9$_>7=+;Cmj4ZTh+g=5%Kcws4gzliayO-o?ywglh1FM;N| zE6h?{QEuxh%DO9N)-6WNn#CwJUX1F8i;$PQ2y3S=!k}i0aQEOstnpunx8@5m$pI0m=@sv;rXx%n2&Yl^HKP89(F0` zVaN1&P&S>1Rr{P^O%);O!jtE@mh|MOBIDLO6E~U@JkqI-A|9b}9w#-0B*BRK+ zVTM@n$N@D$4$!u6z|<$x5t=<6YWwLZ{W}dgTc^R-bs9!=n1+uhry?bADms}>Mbd*Q zc$YQ>3LC-Q`YzV=sGJPVyvfLJH5uyT=eS?9$1AtMtBy5Y8(0Yg%AAh7kRxDPYZQrb z_0{U3Fti_v^WUtnxY!C$r&_`B&k*da7=n6^Lm<^3BJ^%B0_F}zP~*Yy+%^c)77T(x zvq8AC(-P4OEzz^3B`Wt=z`)f45jqyQQ8y5smJWnn>w$2mIsDwrv9^sl=I=Fw)iN{u zYh#98drdKKnJM14F@?8?@Kd(|7~f_9vT1^AOHBl4*#y1h{xDzCA0|5e(V^BD9~K!y zZea}XT}J5QBG$gqHiER>5L@RNqGMx2cx>*6?X&ygnP7aisOk%Y8GX_FPakwF?StQw z`-pGsjnw?!u(9op7aw{dFt-=}jqZiDuX^HYT2C0GCp;eaKtX&D939jHH*Xu@Ubq4N zGciEjf8CKB*d30&yQAfqZrHiD8zyz`hO39VV#@NasB7I7?P|Ng#ia{WO}gOJrp|aV zvopT`?u73}o$%7G6V80lhbCJet|RoJ|Fk0x#CODO%Z_+>qXXs#cfiTM9nkk|d-$wv zkDdDM@oaxPG+){d1})m5?>0SjpREV&zisijs4ceHwuRTbHt3nr2FDa_1fR4u9z?Xp z-2Sa`^nxyW`RZa#XI*SRpo3>ibkMT74*G0q1+$s0gl@G&XH84|8PgIMpSM6(LJLf_ zXo25Xn~SwQnxnr#b8J4+41L_2A*p3EyxOV_g`+ms|7?ma>ZZ6px+y+BZ33;hCa7oD z1Yg8_-fgjl)9y}<5x!5X=d?)h!WuO~K}ADgQbU}2-vATS8{m*t1N6UDA5lT|alJ=< zbUs=S4$JCcWAl1YZ_>inXiubJI|*Q_q`6|>&e z$cjI|WS4DUvZm=TnCZdi%&h5i)^_YO_CofQZ9Dyh%`kYvzIZ%lX{tx8@#;f1&iElK z7HhV(%O9{i_v+cB9`)?{tov-=x_d0=$z3+m;x4;A_YRx8`8Iplc#BOKbc-#Iyvc5F zzrk9(zs^jDUT0=;*O=j+tL)9ED{TMpD=aecGBezNiLLp1k@c{>$P~#JSi^zytk3sz z%-8N5OG-J*@~h9Vtna7UT)We3RLUvVwE865^G&Q@+n!(zNyk~h{$uRqm!r&V#8DQO zaD=VcbC@0ac!*scdWc<%sbj}>9Aq2b*0Q+4wQNWP*xfChCBM|Nrj}Zk5mv*VZm4Ds zj}I`p`2lt)Xg_-)*4vxh+sj&Z-OHNz?O`t#?PiCs?qY@Qcd;>^JK5`!9ZYs+J2Py# zot2EMV&C(&G4DfL*}6Yl*h9${);?u3v)T6_8~d@6O&C(iMn!C5eKv1ozn^YkCwgsQ zxk2lh)rxiO!mYI|$Y?Elr!jk~#!ed(}}E%nf_Aw_Cdb6mx2o2uAmQnGd_68%G|HN#z+dh~LtO{c4o-^5V zO#mCDH-pVe^JfKbeA$v&K5W_5X{^L$DvPf1VxtF5W;&}qSao}M7FaNeef&C+rOunc z-rsd${vPAl-a}(plVQ%xVWSg^>g>prg`?QUUyN;wl(0~CLvwqtQi z=Bua2z9s9h@)ymSxqmaZ<#ZD^J>jopiuW%G8~I(*rSlibi*Fw!TW-CT1lPQh7%YDw z*_!rL;xOZpmDCHb{iBzIO`lvrk+lSIutE!paDLekLVsHDxm zI?1pH;was^8p(py`z4v#dnAQHJ0(iTDv8Q$i=^z|CW-XHdP!>C8cF!-m6B=M%Ow=F zMAFM~p+v__C3*U{RC27oNV4{zT#~V>K;oN~E18W9iBU$9ZvEg$hFVg}g z>m|OD;GdHvy|k{97pY?Ow*8lc^Y-Vy9I`)}wAcRbw@Q1X)C&8ApJn#n)AQ`d z{aRrE^6wP;hGr7`!FuNQms_{AUu|A*=QC)V-O}g;yLJjgyD)`~?U$B;2VV6tt$w1D zU9F7URXs8IadkWAD?Qb*fr7C$LngHcNl0h8#`#r`kH7HW|?WNEBb2dt`F4q zGPKe9x!P%i3mmlU;8^XmZ?4+lpK>yVE=$sS9?Z~o zP0!VSTwI{tv0JX4e4$8t<7KJVQAedM>A6q~wnTf;XSw!x>`Lv*k~LbN%Jtfhhc{`X z?rqkd{kl!ts{Kx_r8t1YV%&ah^Pn2-p%iEX)OFgMTaRe1j~~~D)t}O)e>+eLjs!fgy$`IOq?$F`J=}z6|MNw4y}2~N&{|Y*_K!AZpWLA zYR{*f?7&OCI`Q3ijrgI^&iuf;E_`WfS3bLWH{PkVJKt$+#)q%z$=CMp#lPUM$s=4F%(zhdk?LQ*;-pnXo(KLq7md5gyt>SrkNdo`UP8^P@N#?VR zQ+dd;G(Nst25+@GlW#H4=AEYG@G%{8dGNJd9T<3l%|F)ux-wG(_o4P4^@I58h zU!me_W~g~@Qw?8uN5elZTgXR=J;jM#7W3sd7xS%)m+;NrOZmc1%Xq}qW!zf5oIjjg z!L!<};CdHU@Qjj`yxw&cAJ}R&4?Ve>7fILfiZN^X(x&TpZrwWWow=TOVjFnf_YK@< z|3-c*eiI)%w34rQTge}6{g1bqx0zd5Y~ceQZ{c0mY~>#Uw()%?Rea73v6ouCoo9LO z;ICTmvDY}WfYz23(kRqp3;a}MxVJ*v6;9l>c^ zRKw3t){6gf{_zCok8;5|)$)vQwcKL&L0%J4$4B%##Fsrh#Gh6i=3RY`a9hKpoX#BO z0}77ue}dOm`|UWNz3T*jH~%CL>2r!7x_^r6EIG}sC!gVCTAk$%N6zw|>F4;%Vdwd> z*XOzQ#tVFV;6>ii_!1AgaEYsBm-$wQD}3wMD_p((Dh~>~#yj@7&bM8^&Igs=;F_^F z`Ga3KdHX%Lc>npgxuy9X-ul)Ze!c82FBo@^oBY1V7w*2#KZn^PckFcF(xOn`eB~y64>7_XTfk{gN*}^pf{W zY~(BYzv5r+zv4FP*LSE<9T{JlBq0@3b*nZH%qzNtI zvAQLkzqUkQ_g46^z7=YJwnB`TK05xVkIKLL=Co?acp;6Xj-e7Q!JbJb2wZJ~&mT>Y?$QrWGeV1 zrfB=z6#XULL~K!>@{-s%p|fj#g#vj>tc^}yR+W`gNuhRTy>cwy2L z#t}VXbFe4G0uF}FHbW>H!Uo@(C0Dj#WfK3Aig3<=!(CL8~VloKD;e&APz#z2J8;k)ygJHXIFou2} z4C66YA}-kqn;NX(HDm~$XAZ%M|eK!=FN7*2` z*ap_OZE($E7(x?<;o;$7nAmPORs;;k-Oas!_1IHwqU-{Fq;?11@k8Pp0dLl*x|Rw%ift zo;c#Vl@m^0tW3bkD3^uMA1NF-> zm~S%{gVM+1=Fzc;Fc^o|)5gJjcx5|-+^ z;i;P&x@z2DciRn4X6~>Kb%*{|cbt3gj^vRZFv##g;b9NF)AfXdn&D5rXXS;McrUy?;DxEby@ZZW!R-POOL%GunzWgU_mijM^unnqx-}KU zx=q9JplNViKMiZ2O~dQ{-h$QT4arV#jQZpa%aJ~U5#fUa+y~SD`rw(9FQ(`FV&8FJ z{Lu45A6GxvmH1)U1wR-Y`s1OOKNf2IVRhXfyNsv9)NeW>mQBZ|JJWH}bOtU4%)p_Q zGq9w727Ju|@HZ#`C2IoE>|p?cM6Bh8U=eS*Hc-TC1>%8-!#o^36Gdxhf<2sxt0G2o z%B&z%uMUFlgCMXTv)~&z3)5H3!q~gBVAM4j=ly~au_PEDuLmQj(`@XSG8=D|v(fIN z;NrEJ1HDOtg{PQ{q2XoW+!}?DCsDBO9*sxd(MT(c#`hD^nDH+f>uqCjB{~LA zD`QaqAO^LaW0C6_ivjXj)Etb(;IFZe501m}kT^6}#NpGGI6P_nJa2PNX^!bBvUNyM9fiI^}V35xkis9K$b1J{zU zsZ}yk9g<-apNxx@$?&?DjB3LaG#{6O;i)N@Se1e?4^sqVG8IoIq@pAv6W$OT#WfAKnQ21*(qR5L4R4In1p_V}!_w2SttuV*4e4;}kb$_d8OTh^K*WC;aJrL$ zZ>=+-8I_5S(V0kDlZiu@Gx4Tb7XA*)!lw`sYrQB7MJKW_=vx+c^~)A|nT>EoHkMas zW9N%(cpKzktcca_Lpk_1H3wLbgZTU$m{#Nnepn8i&*b3n!yF9#kpqokE}r+x#bC!= zg!<&7EHW2c3UYCvB3E3Si^|ivC~C+>(6?OlZJUSsK6y~EJoKKDhh5=$u+GlI+C_P2 zu`LgNNAj@xRvvD?%|jENd~`F-NB^Pu=r=weT>|s*GcF$&6#3As%7^RTe0(~ckJ1PE zF!_=%d_w_rdKL(tWC5yO3-CLr07DZC;8#?D*wqC{-&=s>(*+0-Y(VEv1?bRHifi4Z zkPnq&kc$*Yrc2=(EydA%so=s$QMgTtn}?(@zAhE^QHthSz^&7~NhDc^^3r+RE|VRgR`JiLz@!NO4Jg8FCb$M}MW_rY!m!99?8+3(!m=V{tt!HW z?L{!GD}wXIB7{CDLh3v5{l6k4v@6C8vtkSzQjFgY#n|srj9D|q`^aJ_GK-;GT8xAh z#kjh)7`=HhLe3Op@om93d{K;Z-->Zrw*)7QO0ca@3G#=PV3KnQT6mS9DyRhGqe^f! zqXZtsCE&|S1mC0tbN82E)3FlVxKe^|4JBy#t^}?Bl;E#^DIRta%m<57qz^B}Q0G$I z@+?J6U@5-OFGXxhDeg*3F+x*{oHeCDRViL-1vl|jDLP#*MaM^_X!foYkA9V6Ps=hS z7?r`IR~b%Ql_8J`j^g+-cuy-6K;|;Ek1P`m+A@?&%WyzdhKno9aBFiJuIwvA?cp*k zJzs`7x69D;X&KJHFT?!bW%#aFj^vKzc-EsFE(6N3ctkmFItk{YTR8^$mcwCoIYvj8 zV?;_hO!CX|wzM33mzHDx`f?a*}HIZ_4gAow3HDy;KRA)b=ZhMKKh&`Ot%k=xHN2Z?;HIO&@Rk}FwASES8x2YgH5l1ZgNsHQ z_;=CZN>`0IOj3g-W*R&)*PweJ!OOJJAjDFG7{P6c7$mN<(qM$O2F-0WI5bRys1YJP zTMd@mX<#DJ2%D_Ia}vxK2Mv-PHK=sb;M8ahZaZsmXN(4C$7)bDPJ?V0jo`#-@L9-` z2^tKXsKIt2y<9br3%M(#=Ohihg`^8n30WefOh}>-Hz6H`oE6u_3o#I~Nc_L8kYthG zWs$C_5Fc@$9C5!D;=YyQ{_90P%0+%6M851r{=SY9---N=7WuwpuYrdsN9{;ac2TYf zQNC?MHMl=SgTI3{XeY{VI6#ADqCTGX6?~iCf@ve_$x77Mx(q?G`QYEgL_Ry-Tzgi_LmxqzpD`>+Q~$;*U`74ZAJUNcrHdwqCGD* zs4+;iZ;EK=eb{c@4$pIMt#@LQ)suL>3Ji~d_!qJo7~ zg*}-nSSP8lI!cAVqQAQbsZi>x!a+~b=f|t?(NTpjwko_BqQd!p!akU(Ft@V`-P@@I zZ$*WGze+s)q7*D@B~Ct3qSrkoBCiU&bVi9Ahn4tLtwhtEN;Iid;{8e`E-h4IU9l2# z@&rpLRS9jh5*}enTn$iS;#4JeOjJV8NeR!9N+<>?vAdTN=ej6ytF02(S_nJ$vmC46 zmm}&~xp;mmNB!k;FB$G4`AA4X?`3t)UFD*UC_RstoT@hAz9xV6(9d zw5$wvrDf=wE7-h=Ww;zJ*hT?m7(KZRkH?fD$+iqX2b3YYM;WfSFB7~M;gi0XV*4xM z*Xm30`Lf{t9xuh;1EqMgr4;8^mSUB%6v6qzpCy%|CcG3LGfHvYy%g?FrQ$iS6z%(# zBCvC*n0F|}sb3{{{zmYGAC%zdjUmPcV za)a>APQy!}>MQ)RaS8NVmSB)zCOJ12!}V@4#+)mLRc$d^Z7;^nRmE6TUW{=$#dsD| zjMU&_{P8MAymK+`2%eHn?_y+hEJk(nVm$d&gyv6*(BWDUIvp#5?%pCat}ntNO_5-` z7QrcAe4Z_MOH+!_(YZ))7zIDsya*wNMX3H)h(B)&F}%JI0p|;mghJ$QEkyS6LPQo8 z!Xrg+ndcVbv3DVsjV*-JFflGNFT@}ryoE#mra^zIX(XddCp?Pv7M9Z-y zK#t234E)cxZ0vvvokAfTd zkQ~m(qpkVKSe%bmx%p5m$j1-wd;~fP_V$2${O**Gk^cm*`(+;TujUE9Vjh-P=0T;( zLt47vLkW&|U(Y-|v&+M>UU_gd5aaqUxtRSR7Y(O!F=w@mdeU5YM&+W=S3EB` z<>Gq(T)gOzi`Tz$@Z?DjE}Rz(sr@-fTb%<^d!id|6z=lK&h)F~iOGJ%sBJN&Jz~dDOxH2~Z|JfuU z^iMomor=dobv$$f<1w>eJXU=W&$2uYSEO+`=^2OhCUFRT94lD0u~?H73lpbUq_m1f z-IW-;sfa3fjK&l%d#=HxlS-1d6GZtWUuLb!0Vm``u%t!kq z@w`v-aiQ6Kv^qTxgUaV&r1w1ZH=TzT55sYCQ#j%x!l5fz`?=rd;wk2eJ~S6$q?0gam$IYSG9~p|yHlYam8UmG8F#WSaP~{vV=8!@Vab^zs zm(9TiuQ>=546LiSW@Fe2u}T;;8&$n#NFL%{!YP0OhI7U6#TQDf|4&@XtBo& zb7Q=)cd!>;i}|v4|4l}>(8)0BH5uRQJ#n(a6FGjK=xgMOy@IPXq|5^gT|Mwr*8}E9 z-7z8C9n+aRe7}i#x;<{_6zztq1Kg1HY!W)Hn}o%IlhDj$5@uX;#p-fbTyS;8OC2%y zcW5FWrBB46krPq)VFDbtO+Z7~1Vormz|*_qF>&#DET23cH}uEj?=cs2$QEMng1;Zf z;l{RcSROVGu06-$`R%cY){Mmyx3L(fI~MA?F*uhp1|NowL5o+;Xtu!_Zvvcg+(^u8 zUKkB~`Dom59F3swPJ##J1iN`okefT<=xs;5Rym@Xt0P)8bHt|_2V4~Ms7w1h!2RJU zyk9yBIg>}>x85j()e&lw2u-aBHcuHQuV8{P$1qi&!TzuW1}PGpw~`?3sXdHV*kjcc zdvt1LkK{T#oJzEV?jSqZJhFw`Qd>;*u*HNHwiu`#iC@tpQPX#%U}28HKjjF>Tt?vc zui*&VH5@y`hU2~IaCE;s40f_%aAw0`|K0{>8*T8(-v;~IinC9S4n>QUp->GP3WJB% zNL*x%^AoMn>F*Fs+&u&lVMCDBbqKOASRpFU3X?`!p-banTwOUBnO=ioq%#;Rs|TTD z#2}=Y4Z^uA1JO=45Toq}V)p9+Vjg7xVx|nhOq~IsYQgbZ&>u&;_eazvOSH_lgldE( z^k4Kt-12@n?bZ*5|199L%K{N|ERbtt0olpENK5UDnFIU6=6)Z1DeHs(#2Ub)kG)a9 zzBguh_r_J--WXBc3-WoraJp+R{5orn?wRJWwlas!gP!Q4>0())df0NIzy7%8MCZABjtfHa>|U6Hp&>G zuZ=Le!U*kLjd0<6CuCQ4g1Jv8>}}Br_Io;FXK+V!G3;E+O>oCv$puAX^WE4ZPDRf8x*e)>qZmXVA?kW ztluEc6!J1a*MF_yw5>I!`?p4@ZfnfhqmOB`^kLUVU--6GxDnP0s*bJTc&H^BB3cUO zYfJn*u7`v;Jv8*tgX39UsFHPYqqi>FUebXiLkE7Af)94B1)_3VAZ$w@NJ zX5Abo?>0lWyqTDzZ-%q=O);~mDV~gIilB#0aIT~Ytn8XV_vAmmwEI8aKH)EqJM)KY zd;Z~#Nxyls^S^kr-oJQb%1^Gn@Po(o`N2D+ediSyzwy?6zwywtuYA+RFZ@!UFZ^-p zXI_8d6F=Jf6IZ4PcG&q3{E7Jo9+C8(-#_z?+nK%N>G5y*e<$DYgQh~FU-QbNuXtML zSA67xMt=X`OCH(bC4V0Jf={Y>&X*ZH=U0NB@z1-T@}{~^`FFo3{La?LeAC}YJizM_ z|GWMnFZ$ZRn@nurvnw9(9dGLSGsk+~N`0SqesYf+j=aae$nWxFx9{+rfp@q?=51bc z;TE^;d5f=&y~)2Fxxwu^-QZ!N*Ln8-Yh0>#jVJqE<=&gG@SZ;}^Bb<0d0NFKuK!wa z#poh`Uvh!F+&|9?2cPFPndkV8^JjTO_p|(FX1*UcLKvTu!On`&-(k#hdnpq#JrE#vO%O8NWO zC0uS>!rSK+bLF`r-mG&GpBG%nk8M@(PG9BR&q>aeMKWG{P0H(gNX1%s0spr&@MTufe8k~MUOP2{+dP}kH7WD>BmHpRePtMT84}6^4$tAUrq1SGPiJxKs&S^0Bzci3HpEZE5duPdqXZPdUwibN&sy=-E z;ND!f)|>~r_2gUb_TaDPcjx9mO}SfPS035LgcnqH=E{-ATy?w?FPzqqCqHh_XT%xu zkxkoiJ!Knyv4;UKtJ3FVsTKclMvpJ@*X2WBwBW~+n)Asz&G=PK6TWKfU#&Fwmv&~> zcdcc`7wzK%AGOMB@3cccyw)CS)2JOg;JFqqPqY?u9%>7+>$Nv4?rOVN-_rVByRKEd zzoM-&xTHO4d0u;K>=|wStdrWi8OO92mmb#E>^-Oz-BFwPx?1bfa=+HF&mQd+$DP`; z8C6>6Pqd>?Hja`Gi$Xsp03hHHeI3p*KL`$)NZlXc$!9A5v|mAD=yV8-&CYE zIwIGW-Y?KL`;n_{w9L|;4@%KiEsoO`osZClwwSARWWm}laWk|Z{`1zJdElwtXzZ%Z zb07Qv`>>q3o!0WBjkZJo!P+LX`e{EeHrKvAZ>oLQ!dUx_8EW<7^|d{>w9pnD`BQV( z`eTjD>Sr~l+T5)P&bV09@zv3qdjIO0W2d&&oUmP6^K{dqn%>4mHO*UR)--Jltr>IL zqvrg7wl!-MJ!=kzx2o|~KdHVtb$|6&BSm%Lu3^;%vD**0KdKxNIsd5bz5Wh%nI5Hf zW8~b9)xET{{?*#v*SNR6;ZTXa?<6n#L80OH#aY?*HIs_%-`!kn|9s9m`_=EN>^rB| z*t_W-w;!dtWZ!6d&)#d(bNe{!PxceFf9+qJ>qyF;=}Yvt8cKqq#p(3Jx=A$O%q6kB zpTr`2uw<9>Fi8hpd&z{;4w9)QVp0u`^6H!4@)JlE>%c^ zcdnA~^0ks5Q5z&C9+i@AgSSYU8dOP6H|~(co!%|^Q@KwPE~}R83*nMS&Icv$dLEYC z`+HQ}?}Wrhds^~v$vMfS#ETNmlq(YLkn56z2Dc<@Ufz)eowzUgxvoJHpZ!>JYQ{6k zciWc|oldVMZ{EF?>^%EH;$Hb#aw6}Wq|3~olCk!GBz^UputmvD*@q|1nEjL%EUHe2 zl?~Ek70X&OjjldRj&IFe8Vp!d_qJ?PO*>|5(Vp#AcVH&}Io#_Y_PF6{OW z6L!ValSySlbFvue|q#im%Wm5=+eT^{|}_L>1q(`OKy zRX&&*{j_4cLaf<{i$mEO`(fE zHaB22(;jzbpRC5R_DjdHPEE(N-(uhDnJW`n2Ajk>Zg68|1|IBff+w@NKbg%KH-*iu zn#z2QyxG7^ANJ^pFUxfEXTSDLX91=GY)xJuJNa@ZyF7Uot343RihImqOd7&2yb5K` zQ|7W|)#2=NkNK>zU;%sD7{Lxr7H0Yz1R@h`I%(}N)!k$zwVavjoGD(+Z?9|C+ zY;5v!w#}k~HN8>6oTV#R%NV`8`&w4^doAm+bsbyo zzn(Q~xq3+(5I3vB1|i_Cq@ zC3gAMB}NM`vogBEPCmK9o|jx@Z--xF_wHR2+`8*5V$coN_Sy}$IQ=Hm>3xe$KXZ#M zioMMabh*P0*4<&-!o>OEZSFD2-h1rM^!sd9(|UHcvYvJGc)+H9e!yauH?UZzhs^)k zL)N$C5xY6`F^jtSn7zt)!rXd2Wtx*u*};fs>_YqJ?AZS2Y}JexETG9t_HV;WCZE{I zKD}vVW7V%%>d4njbLTZvX1!r?z1}jr6K~n0dGAPD&iBlA+6NZ%?E@=a{*jf9 z`o!WIJ~2uDXZE!37Z!i&3wt{ME0eVO#^QH;V`X07S;?pGENamYW@G!4-M;lxoGJc` zT{8X6%xZr#ubF>X=)XTKV9j4PV)Q@u{^371esmL(tC~>t!zOfRXj6KV+mt?BZc5KY z49B_HW`d{IjOMp*PQ8Ph3w}j&3Tx7W-g~y7h}A9Vmf*h)chI5SQXQ(hr$cWB>XJda zE}5RurLHD=q#v$FulDN^*J()^(^}Ht^)2b*hn6(UsTDmcYem!Ux1#+6^{Hi=KDnOK zrwrrPv?`=E?cCj(b~iDg4ITz0TVX)HjRw@kt__`*wxRh~+t9C`Z7DsfEj9AC_R)! z_MM%n7K|g0*8t!%EDk z=DHaTHtR`c;XSE-S5Gqi)stMtn$yfua|*p-PJU*+ND|(QTJ7pZCw}yz7!miRSKOOQ zuZkEb(>@dw(ucNf>qE~!_n~&9`cfZhU+Q;WFy)La=yQMt9o%3+iLWilWOzT?n%bJ>?cD%Bp-b05_ zLDCSq%!iPEQ){wzu@+n*YjV6~P5q6A(m(&9ba>TJih4YhT3XsrS%eKW*(LaMUu@_< z`(boHa~Sft|vcC8pe)(s=5qW4Jp5H^yAZ5c_k z-i)MFYg@{Ux24Gawlv{~Ewv>(I+SHcfrstrS#x{xcd@5xg*`PpYfpAc@{J8`5w{)Zp;f~a5vm^PvbRCUW3DsVS2~mInKRY)9YggYW2kZc7<%w%4Aq&BrNUWb$zk)N7H>Zyi zZ8wh61jBBNkqaH4>O!YgE_C3ci-`LgPhOM8(;vln(wrDi9a>DF^wAUOLe>OojR`dL z#{?QZaw19MCsOyF6RGj_L|WV5m7Ky{>C8G;8uh@HmYGhX2fmZ2?ZQc9acL4+8n{uX z32yX4fciGoxsm%XH>w}$PJSX5lUKQu-b;6)J{~kZ$b)7t_n;})J!p`jh~sqiqzb7g z4LRgVRX;tc(}>A5Cweli*gTnPA5W%J-MxtWdeIV<7tJ{9MXhwE&}xS%)FWjI$#zYl z8;w(_U7x8mG;k`h#Z$@ZqTt}QoJJR%rcqkzG-|hd8kIIqqffoOY4i+lO3`@JlC$2l zy15UPGas58??aYbedzKdADZ3Om+pG`(x^gTk{|M=ns2^z)yj{qhx$?73O`a`^&@wE ze|qQSPie{i^t#HQ#y|0=qOQ|v@8s!pQZ}6qV>+$>IGrLbXONj-<<)3r5Ia4CHvFAI zUxo#c)w}@mTopjRR|9B#%RuTeDv;`91F2wBAa%SONQLcY(z7u$X<*7s^4m6(A{u5= zc&8w8oe)Gu89{V%M-a_=97GR|XVC=LS+q2B7G2mmi(WsTMIVfVseWQG?aBzIh#kSy z_E9h`=`@>Kju%|L)Y-IZ>ufr9e>PoeH;0amo*vz&t8;00vv4xD38&e?;iOT9)3&;B+VVD>l-=ji47YjICVd`l+B}c? z-kL{6y7TGA@cGno&U`Xg%_psRlD{gF*3?GQg_n`^&?t)Tj*cR2WEABri=u(Y zqp0?M6bErlV`WY)?%PV3@1hY{5yIAUA5=V=ji>K%o3AAre0yRuapbr@d^n61C9XXdk`JWT0f44;1J0_9(EJ&m@bt3Jn zNu(PMiF8*liB4E0(PHl;nv{`5&(bn4R6067l>#DC1x21QNFpq)vA8L%{i9&0n`>b(rA{F_0udS=q!(V3JpCzGBRWC|upCe1#X zNl7m0?a;G7)tEYG1it8!?5 zRSwNY4!NJrq5gLStMEmR=8ItA zqav5W7Uxp-hFmJzohxibE+t;bC7*k_)W0#8-hRua4LW(`-Z77!_spXNt33M11kZ3{ z9v%0|Ba@Ik3X096C4z5wxHymQFU_M@8-?u7qkDCERCg|q7TwOHfM7SMxr1(Z=$K&`6_sN_fi{XJJevu_sAfrkb3?^OZW zeifgaNGVHSN~N8oRMJDdx0F(_jg&@^lzxws(q2y~&GeVjkJ*C17$GH{Bq=3kOX;RU zN(0q`w^1Rb$_-MwSS6*G`vt49PD-CnN$JsLDIK{ZrA3dW23?zlDiwBINWbR!%FD#eXwJ8hIiug-Ekhq%GKz!As?|aiyGYuai@g|K!xA zN>1jx<<#wfoLWLo&ko6H-*Gu5ospB}MUnnh@t<3AdT~!qvmVOn%u_k_ZIn~&Tao5R zIX(C)()lH)4*%q2++0De^%V3`UqNTuDrjK`1$i1P=(mZ2mJ5bue{%(G>7$_TmI}%p zsGu8G;=PT6yhkV~TktKHGX+&TC}`to@!zouN*u2cK1whz-4%4$Q$gWV6x769K}Eg_ z(wVNH*Z>7xoT(tQV8L*iqabytg7(i<(Ajwky0SpzAyPqm1uwHaRzWl36=agApwmeT znx7)_l&YYdbOn9MP*6aYxGq~ke{uv*GfzRG`3lM}5a~%3q>(8|Dp$}vg@POk#eItu zR4XK`SV2uo6jUa}pj1KWLhcE%DpOFLkV+vJggg`SUdSsUw}k8$A{F8yLHeW&U;R^Bz6KxWrptqv_HU=pK z15QEDMZL!PDd?T3=fJ6=tdkXjL97ttJq5`oC}`U_1s!!(&^bp1og@YAu~(34q^SR4 z3Np7=(A7Z-O71V}#6r|vFY#(7?rSQ_&{?!oCk4$k6zyRk%GFXq$6AQ?XriD)zvZ;~ zyPWbq%gN)toLaw@llHlsrau;Z)Ox|*xg)r!*X87PSxy_y$?5G$ISn`}C*OlYPiy2P z+bgHS9dgRpBB$9KT5Z}xI39ww);gT*~9#PvPp)VZsimUI+-rHx$JdO6ko zlacNZnc$bmDEyU-@}I~^bzerx8#2ndD5E*2WMq3-@PKM$v~RbJg0{-&=Xx0_R>(+i zk&Kc{Wpqa>SV37bN=%YbRg{cwgvsdROd0+25#k~2jEk@(4l=47DWfPW8Ch7!=yG=% zMHzvOw7D z0&3@1KwaDmsDrbx_ah6aeqaIZ=qY@NQ33VS7YwAo`4s*spFTa$r`UUfcXTPA#vIS5 zB{hP7RFzN0>+;EIaXtkK22waS{UN`2^g!(*Md|9xNj^$CS>O8XAnny0H^2k$_N0SQj$UZrby3Ws|HvxIH z+cS^mIpjm>ETZ|!Rq*52#RJze2mD1h{?$enRO5B)2XLC}hWq=ri+NRL3 z4k^^@O)`ByDcDczlF2(WS+F6KX_8Gctu{!eJI|5?M_h2OE0XA4LJ}SIND||RBlR%X>M7fU{WU15vN2tW0FYK9}}qLYyyoJW9gS-Odabj#@B-rXoRkKUms5k z_s7%9vUn;Di>DBWcrrJRr{izpX!7wmIz=P3;4tDbePC zB;9pf6;HGPa2i1n0Z9d=q(M*wb`D5)cXvp4bFsw^Y(+)vLIqLSIijG5t(e$_sF>LG zgE#NJKjyRCVDH^~_s;H|o%20;%$~}FZ;x_eOmi+XymR4KbS_+&k_)rMnK{Lrshv$Z zAU`h$Qp0m#hj9*ck7UD*TiMXHHyi4!vLV(#8zgkHVZ)Cskh_!xxm&ZKH9rgbowMMt zau)o4n+Z=b6ArD+gv6vw7-r+Ad6Jp%`F;kt9Lj*%H5srgAOntSv*ov$F#G&WaNanR zjRj`HTrv}eW!Tv4Nje-pk`B*jGoLCj9fWk!;r-V%=scGOf^})2m6irg)6+mlG7VTk9>Rl3{Ng)yTKTCk+O$iWHod9xd zjN7D=09LQ!VRv&pjLeD$N8fnJR*#1{uj8QRcpRk8iGyi=aqvMs4pzR71@+^xuwr&B zyz_|#OSM=?dKCjz$6`Prh=B~x7_e80f&ZRG!|p@TFugpQ`Et>qBo__I529f6?kJ%7 zQE;9_LAyj0Z0L=IxcW$tOOJ#D7Lj1~F9Pb%N5I!r5nvS^0SS5$Q1U4pird2>c3wD` z`-a1N<#1T@EDUrGguzx8Ul6eig8+#zSbRMc4s8sDw!~04ViXFizJ@?FhJgHn5IE`^ z0-SOP^JjyZBOeT5dBL#QIvDnh1VK|z5Hzd|0zr5XxJ(R!9|M6<*A&Rc#DTEXE)WL9 z0>Si30K}~cV3tz=%+U&f!Z-flcf=o*O8wzH_(QU&KMY>rRo!Ww=s?WHdS z?e~S~JYVp)@&!{Cv-x?(2M#Y}@f#l>=#%#W|9jqWwB8&3OY{aSeQ$Qo?FBQBc|lUC z7qi^FKvl>KZlCjn>cyTQ=jRD46g=VAT@Ucx;sGn;J%H+X!0p%W(09-sF66nx&Z+K@ z`O^(Fs2k84H*j-u0~B`y&5N#(z04K%_%lyS!4;m|ae;>$U7$PK1-59qKJJ-w6bkPO#&fBQxY2;ZV6FtmPabs_3s?<_d>MQ2xN67jZae7kvx8VUR$t;eK*B13 z?f?K4d4RB90&`ar*b+!!hy4FuUf`gZ#RMG#Irul0gPk{6tZgOR5-h>fy_E9a-foCVWC*JV1iim=#Zrxk3UWd*18IEMW|5x{N@%#t0VK8o}FdhG2Wt z5X!R*Vb5ekIQ!fHZqysV$-_V7FOLXC|i!N*%)`6Nf9q=#I0XY*L=y;_Kaoe@wLxeVDD`>;R z%UWQ&KnoVxYr*-Sli=IYNuZcH3AA)3!9-SbWz4#X@ZNVKP>G39d0G<;%QacwtI6W6 z8gOri26#kiz&-^H_Y(h*e6K%h zP}Hmjqcd4u7%erBxvvVPt5l)aT@^G&R3Pev3M|S|fjzn^aN?mdoUBuZ{hrFOOh_3L zPAY+3t`a=bRf72s$AL!OIN0kk4s=EoVO6Ule9Te=du>IS-KPL8D-__KivoQ3BhR); z9zLeYL*E2>XuUZW<}Dfv&g}Ze_pfrWalagx#mhnKIJUer1~$za13#vX0oOrUSjhaZ z_7GWkDkTd)I%GhoSO)$Y$iUmjqv2xRXsCA|4T=AxLG_q4bf!u}thzM3za|Aa^Q7RJ zwG_C$9|hYRM!{gnC@_#31rettp{hUBSZ#=$$YJ0@^ayS#OVD$5*hf9~G}j^{=FD>Q|D!;S2fi&kzyB4Ut!! zpUHH+&m@1*CsOzBBiZKnk<=agK=Q|ZAl7B?$?N;?$ZU3&C%S!*n%#0_bYx`r8BJ`MiPIyGpJ0FruS`UfJ+y^A!#eGubbf3&?>>~n^K9Zbt zk63lxC114evTNCQi23u|S>>!cV zr-;UVB-gEw^40__AEL` z*1tSJ%Ipsi&rSQu=x_VTDZhOrVgFw8O>{3QkK02&wCyIrio2O}wTpb|*-4DGcapH` zMpAHh2dSB|gH$hRAld!fiLd>3GI8TJ(m%A7Z1Ubp9Cz1~hr?S)TErI8e{3@e9=(~g zrfeco9UFWYmAlNOI^h(tLO+`6j-U7{x6iAtzWJw=s*!{Io@6 zNk=W2r(8=4a~G13^9zWP<^uA)WIk!VI*(-N%_H)Hx#Y<0Im`x|Lwe@TCJRr@BI&6$ zWa>BpdDB%z78O(yg-I2p_F5Sks4gWI#w8@}ei5myEhKeT1!T#~Jd(3Imyj8(Cf)li zvUPJNG55$IP2bar`pz^`7?4U%{+CSN97rOP5s5@mJb}nG$B{2_Y!1fg7_z7>irAz^ zlDqN|B&j2eJjx6uE-E2p%h@3EJTH(aPY58~1wZ0j>`VM7`4ERIUPPu)*{l^RE~*wBHzzim$(X4{eZ#z6SH9C<#+mi#fXA!2>g$;ezQ^1*Z( zx!Pw*w#~C3NoG@s+I=(9HP4j9nwgOIeMZb$GbAre4Tx9YWU_m%9{FaXOQzq`COLDo z$Ohv{Jjji@^ zFYZO|cka)bFPy02XYRk058Ue$gWS1MZ@9XsS6tws7o6DeQ*NLCW6oj61Mbq7dz^>M z9gbgjlbiJVI#+3PmAkO`5-0PphjTIM<_ZN}-1=*$xg!%#ai{ZnuDkOjcUGa5JDJ?f z?L2;jTPS{*OAI@}S?%4+3IE!~^>{RL3pQ=%V6dM1$Zh5}E#1J)c(j&#YEs8l3RZGs zuPx(tXfEN*@@l!Z)AKpIv2(ea&Kj;dse&sOE#}g9<#M5}8QhG4WNvb894BoM$-Tc2 z%w5j#;|@rBa*GZ+b7?;Ioa+Z0PItvrPQu)b8@z77-N@JBczI23U$ZK=Iaraa`zFh+ zTsMlVn=Z=P9{Fn&#-`Y5D>9E;&aE;BVia;9^o1fOp zg;lIIXF8nJ`YPV`>{4{w)*Bn!l<3*E-d!KtUZ0m~7bV*5*ks)fhVI_>i`9?Xo2R~Rj~pCo$A*9Hxd%o0 zXbCA^H*pMqi7N8m%4+=Hd`@~;}=c+=m>ynA2ghN;dNT$9D16(R=yj;s^LSM-K53 zkwS-uKWvWH#scT|1N=t(F7fI6S^P^~osx+0&8cjV; z$7*1RA~P=dhm}Db@EZ6XSb?S^G|AYfx~!K^L7FqdZ9rj zr?EP>3ntM|ceH5NWF1;lrb~4%=+PEceQKOxK$o=}(z{Z|bX1fH)jeQJ_5YYrMXxFJ z%_a-F>#ZgAu$@M4FS4TUebZ^9z76d!wWVXub9AB-P~{XmHmBR3whKGZ)Bs2NW1ADr z``}Ek5?3m}#Ep_Zcj`6SlR6Z8QS~lw`asT?&WiP;QV0EM`L6(a#WjeEtzk8QpM_9u z(=aMo8BTAUkDvm@C^{w~n$A5GLm&Q%rOK}H)M|ACo&GqHjyFuEFN#y>@-wMaO(vZ# z3ZF?IG-goQkC{}*Hk+!?&!Jzh<){I9^4AhpXvH_Zs?V)hs%O)jnP&KZgpRm_w7I=F*m7Ht)D`9@TcAPaWUQrvWP$ zP`{}QDY>_hs#Mj|7n+Oc)~-d=Ep0JK9CO&7ET_72 zR!|GwmDIFnB~{K`ML)`{rpJ%0rZa=;sPy+bx_QGIs>-dU^B%3Gk80LY9j)~=;_P}_ zk-C8{mfT1e?%zoBy*E+!51XjW%FXoDlr1#o<`(+8sGcS$ZKd5Owo=uIZ8YrnHad6n zcDk7~(Cv>J=qkYunxolBtxq@75Ai$cN}*j;bH^^a(Q!8&dA^$l&fP;-YVW1(U3=;E zq>Sr^Zx4wmrwmMF0ZXKr&3tFl6*b_9Q=>*O9IY~)N_QVm+C3C;*c)Bhx9`6Df&sig9;t#pntqi(rjxYq(7p5yRSvyNvp(LXdu#8p8tQ%YR(l^k8+4y;dUv0O&3{1u zOkk#4>qGjD)j{_jctmS!9@7KLPiRZi6WZwZl$JetN-ayD(VMc*X~gd5v>RSf<=Zc) zZ`MniDbi1KHuckxDX*wj&ntQ>c7SGm8=!BNyr!O7Z|JI%Zz%e{rB`0QrCk++v|jEV zjo$r^j&Sd3?Tz>JTj~eu`u78^TJ@2x)B8l%@}Fp_|7U8~|CzoiAEITlU+CbDFVu1R zS6Y4PE8P!?c&t%En_7KOS%V8_#^830OX70vBwQ3d z30vzY;f=>E_e)a?d*ik6M1vMCdai|@+S>RtNgLPh)JBbdZCt0TgMU(V(08{EE`O!N zK2Ke|m#T};cC+OxU3Oa!m#6BX&u%^Z)vt$jy3CnNnT#uTPR7qKCgTikeXL57TV&T@3z=(#^K3y4jURcEWXd-GzEfBy$F`fBlwdNO#ViY zngFt?NocYa(De?Wr>q^?xZ0tDzz**nx5Gv6?NCS89`{GvGYifhOD@?X3eUigHZxE< ze+J6$oq?iHX5h1N%(U}%z{t4{_@m7MYd$&PXFW&sjd5i8(T;fjf+M~dcEq>SobX|$ z6P|2v!kW8IXfET7mmHljpv;*W9L~&Na>fJ|7hK75N%zlj!NVt9aLYRvEM|G8(?ebH z~O`uEC)4R-wiR^4gall!^tc^)%KSgTAR4z!~}O7TH}s~d)zVTuRFdl^T3!S z4?Mlj17$CIpvylGOf~n!{3K6IUFV6;7d%nsuP1hxdSPUO7e1}?LceY=mXpr%WDUJh zDaIR(S9qflbMX|vc;kSM5AF!{LHAl8yxZo3euF-Ebi6PA^|%ffQ_L6n6)4PHCh9( ztv>)^Tp;du4#bhdK(ucR#MItEEENjEeDfd-jtjzx%Y*P14Z?!KApEHs%<{B@v7;my zM|K9I!OdVKLLoTaECkhKLU3Sl2yQtUg0`}?Z59s4cc$U!5EYI!3&U}Db2zp<3C9D{5x8V}1O_EVpvZ~{ z+}s|4<6lMKd}i+5A(1#HJrbwXMWXGgNHl&Ei4uxYc)>0T3ui{5_?jr3eJToHypBRs zg=kD*k^8E&XslTkjTwA2lKyD?Asd66tYc6&F$Om*iNT?k7@YPv2IC}R+4jd`W<)Id z%!x(i1F_5{ip9jgvG_tK4!wQim$y1m`#uf_$HikO#N+Igc$~Z}9*?)g zqtU~7tQASX%Z3T~DmJ{gN?G6p_NW_i6S z*lC!;a*b2)YGDeRZAigVnu2?trXY%@V!M7SZu3sX%)C^bu!iN-pGd{&57>SGrQ!#c zYp?B+hBMOB(0NH3njTKW;p=I5@=F?qDW&5h>vZ&tO2@6$>Dad|9em>%9(6nmx<5AGVxPsCibsqX5fiToO3r5jefAll(NvwDhro{WZ~7KEc{-Vh2qUw z`1eK@-usk=o5y6MvuQTo^v*_)%xv7fC>vkz$;PqW**NKCHYy9};1|stJPtV+8374~LHBVbaw+=9}f=57B&7otTeWTt1EsWgcN(J~k}LN2lHS zc=2>T`>gYE@wa^J98-YL3<~g-Qvu$HDZm}fYzSXffZz5PVCmTceDdi3&B8>vLaZ_< z#7f6POo%E(JF}5@J@cyl0 zeDby!FO3xA7NrslG%mr94kefuR)Y7kN>F!B35KmN!Q6u-n02NE{qB^Y%3uk050_x1 zVkzF#FJ-1lDHaEm; zm81+S{mRfQu?&TZ%W%uWG916DjQK8Qc;!?X{<~g=3NOk~_FEZ#6fei)D&-h&SdO2# za!mCp$1}0zD4bW0lV_Ks#p-g@ZY;;2&E?p9wj6_Qmt$W)a~Qvu;~Mb_yud8R7kaE& zRbY>61+EUQK!?-{yi;6({_`uaX-x%wX{^8r%@t_WS%I22D)8r%3T*vQfsy|z@VRs) z`m0r9qkbhmu&TtL&XxEluo9ogGdCos5)-P}eTyowXniH#-dTz2$12gSqY}d|SE3KI zMf6`);_IPGTsB;Z%A>1rfl3wL*Qr9qDOG5}X0TZ?|4}2P3g5*u3o@$;rMs8>~Z@lzFQ{;9%nv1%+GQ;ij>)tIDR zjpioRYprX)p&%j#^$bS+;piL({5Iy%7bb={Ja_s-&W(|&((O1`6|DMt8tWs0RPDd@Q$JY z*Qg6{x|RSt^aW^aCP2Y70UqZBc*8+}y>0?L;UmB~K?1ah5MXz#0B0l%aO+F~KF<-L zRFMEx%GpvNz-My=Siexf>|X(%T`54bwF0c!D8QC_0bXVH<&|9mJi3oLn1=*7`KSQf zTLd`eqyU%m0=#xgfZxstQ0SZhKc8o>b5Ve^t_V=`x&RxQnK}Bl03+`Ta9N)KcRdi` zjz^Nx$KKO>0X|?Y<^#K* zHMx%hbYv}@wIJ3kS^LTE-@)1x)^@Vz{$u~gu@=kLk;>K;#MY_H*8Sj>0880x{d~b5 zW3RpMsQ~*P3-J9z0S??}@BN+t7vEv)yv4lF8v7i2@uIBf#7+_S^sgzV#B|u!{hH*|Ya(!@f650lJ&8 z?_E!TUK81NsA2WDvRO5;Z)wt(O zHSTPy#sx>K(T5qQzqVK7k`2`;ys{c&7qWd-P>tQi)!3U=ja^A>|BS50kbr9Z?pBRe zcGdWrc|JBq)tEbp?T^are`TsMU!)r0R~5ehP=)heR^f186~6a=o^;9K#FvnG%{pL@vtHfZ|2VAMFL}S(`odw(-(kc0kSDA!$zXlT1J<`#JgvYS*4M0Lea?E;_srW_fnjSaaLj@VJX}(NQ_?DM zb65qwbz^;!bp_h!SD>v*1x}Q#z`-BoSU*sXQ}34J(e83oY%Rx_UFEoBO*w9xTaFtG z%CS759PRwe@vU7sR+^OKka{`#NtNU3pJmwosthmODnsln!}UkXFnntn{#xvr2J6Rw*tG zFU2zFQuH)0MUnBP*dS4gdS6O#<>M0OL$Tw=@e-W2y##HRl%Q5g2@Wx9cdu6oI$N>h z$;1*gl`g^RZ^d}*Niklzz>ZtZ#dw1GNb?sKqfLG>-ij>75a(hx#wbQ9EyOqT z3o$dB*-F8Ms6`4fT)Pm9qzbY0a{n4MQBx#VG11JmSQd_Zm5FD%GckBiCSF~b ziRS53QI>k{!1 z+fowH!af1(R1)yf=Xe}*DIN`X#-nLVVlZ?ev&3U#@bI)4JTW>3 z_rHk71?|!3#l|_m*?4D_T{Oy%i^l4~D7=0q3S~A#p=C}KIypxnQHw&2Pm%ccTqJH| zHkDm|BzC(-qV@Pltos~+_qrocVhi)B@*{AfYXnNGGqdVrIBq=~j&97Vx|bb}!H(hB zrWB5ngJI~<5r)ZiVVIW|#$4hsbR83haxX&hY-=bcE)K;vF`*bWB@|DHhT`A5A!vLc z1YHEou?k>gNSzRr{Sl1UF9c)NmSB|64aPcVS^ZN8#=uuWxawpOJ3a;B)#xC+Y#M|u zBZ0Vpja8j?2IAY|K&*5N#2+ew82dH=oA>~HyObGMu>m;IEPy#W{y1{oAFns~Pqx9%=H%!vf}C`FLaIcs70?^upV1UYJ?yg@d797^drmhrf9K zpM#~b(i5l0dLn1+$zqHiDBk0Nm)ClrfW-~er+8rFf9|M!*&Rzax?^W5GxjarQBBAl z^{=|&q|I(9p6-Tsrn=#3Ar^WWu4xuQ>+E3+P5amsn!l31=yjpx*cwK3D|dtO&epD*2EcrlScun^%DHEiC|9>!8yi+nWP*d za%i`J!-KvYiYs&I`@|OK?y<#PxwhCcoz+Viw!uy3Z7`43QJ5OWVpAG6IOml$${uF* z6^gC#9kIq4qSiR;(sVq$dOBW+n2xR!+m3 z&}sObd0Un*reglSsaT&o6Rtx-|#FhpY zc;mwq)M=T5$>me9&Ta}G5t)K~k2$t1Gsi7~=9sT+j?*5R;lOq?tW7aPB||f;`(TR0 z$4oJt#RMBTQ@lHDf`7YAP_EVl<-JW%M9u`CGmq=YdSlFrGDc-hV?6rY2yJ#7;nA5! zsBB_{nV$@?so4;pl^CLktsyG>GeG&%1~@Xu03W#+;66zMOunR#vdi^xkH0>eDXd1oQ!+MPsRt2_3*##dN?+T)#A|AL(u_Ue7RQ_TQYR9$XFM(Kj`3@CLQ$4 z*TKscI%xBi#a)kU26Oxm^o$Dz%VRP{W{qlbAg@34aJC;ZgfZ7&*ec zuG15-diF$S(oMv8;fdJRsfi+UHIX=JVycKH&g#;@#d9@S+))E_L^RO7YXU0Foq$&z zSqxct0*>n(j}5cOqlUwHTs)$VuRGMyszx1)>{tzxe`?rC)mRK%4R6}2;n`oRxcj6k zmY1p`u~NlPUsZ5zvkDp&sNhj^6*Ty$jH?bQ<6x#TPBT=-yw^&&Ww#QxCo5r(mJ*(S zIu1{69fzBu$6>bGIGl1%k(vLBxGYE!b;l~=;j0R0uv7updMMzKxB@zymB-n$<+0gL z9`F1ai-RY};!yEed}}clZ+?`+rh{@=HB$~bJvkhF&YZ7pV^Ax44DMAKgPONxanUMS zX4%Q2rIaidbTjjdT_ZSeCxefEkH-Gi(fFibG+r_tjr-n8W5sT1ghXi^njnoE`=rov ztrYv6N+FDv!o%lBq5RxYm}WN$kNlFv!4^qW$z!!_j3m+Pl?3`XNT7SP1X?Ofpj@vw zK3yt~jc&{V6Bb8d6vO&bF*LRi!$a>xQEQJVE=mx^m+H&}yCZ@HD@Aa(rwCpV6~Td1 z!uYjJ7{6HvF-g$scqFSn)u--Er|a~XZHS}9?n0gTMLFP{tG=D`-Q%|Hbmde7^07kex|KjpJ`d$C#o&_iMBE)%%cATT^I6!zC8Dy zs#(3KHtc$pqY|r4v|y0Ret%1QQ{K{=+i&PNmp626%WFEU{h9{U4bbJn1GFXo6+Qd3 zpQ2wsZ8-Ik=9s*sx?5h*ZmAbEu>3haKk$rB4t+-R&pxHQES}P{+n>-YvQOygs>gKe z+eb7l{1H{}en{IaA5zDL2eei80UcL$pT@oEqiaI@XiL{U+F^c=w$|UJ8>H^il+rtN z!pqyV)BiRNV3E};2Dj+cbvNlk;hXeaPA~m*{{|IzyFo`aU#CCVb;I7p*XYLYSE+a6 zRXTWuU01ZZLO<@jOoQbv(_NL9=!;huschgys*4w>q5cJ`Ue`l^F;nbp`gvM)vztz0 zwWnJ4o}-ou=V(LqS^8(7i#i2%(K6aeH|urMgDcO_{l8Dsb<7sayV^mmtvl$4hEsI4 z^eL*tPOEo5rc~aY(ww6_ZBygvm$~g!?R^`a652+mb)2LI`X{OMsuS!wdMn+M*h;-F z9j9+BkJFMZEp$k1QeySF zst?g){Re5d&q4a38Ey>#-Vz0|LE4^8{Ho92b?rWv@4 z2J7si=1X?czn>fF$?!&++OdO*>FuCvmo`wPFWc#&i0$-!$2RJyw~f{=-AYdn)zi1( z^;E253zgU1LgkihrX!y=(HEhc=n1-!R%>mf(`q-+r|;L(s-X2$x@{d@sF;5?;0xAQb*lX>u8x^HQoGT6+P;{inbqGNn7Pt(%q#iXzj!0G{#{$)!V&{K9^cX zSLH6HQ*SMy7p<4j;QGb%hR|Z_n7WAWxmZg_Olzrk-9ozT#{$|JwSd0um`^2i=2Mm0 zd33_Nxm4MIE){E;LtiV;p&ga8sp6?wbnW~aI^r#$!HU&%)q_gfwxfbxnpsY}&C6JQ zuo7B*s+d~OFQSjU3Tcjf0ey2XkNR)Rr41=L^s!Mkl^DvT>L)X(x?m<1cTT5|N2Spn z*HUQU+GP46GKrQ>Or-DnNRAYVwmGcazA7#TR-VC8- z8-nSim>}9VDUjN~@~6%F{isr|FHN`fq5FP#(R;in{ZZpV#hl%#h@>0+bjgKYS>a4K z2077CWk)LVUCoqsw5jpSNp$A! ziF8xCCOu`SLGQjBPhTEZr~P?q^uC2E?fR-rceEiRnVw*MMl{>CcaBVYwzabqdJD_}8y`Nl&2eZYKPs&@|W)L6r3HdgRU8jJazjd^@) zVl$RBO=;deB;^Q#)2ctN8bKeN$>4{n^w+clc;`i+LX zLZdD}ykjE&ZihPmaEB6qZO2&t+>X(F#|{Y|cL?*doPW2ka{kob2^cs4{bL+yW9Q-Y;6lVmf3cuQ@w4~o^>Y|IqtN|lsRB+G^A_u;z6;^!Nf)z z`_M}^lRduJm}|(|eo@l0jT~cTnl+r;ekwpQs4wzm=w z*m5z)ZD)pc*v150uvPZDX}i|>k?kEAuk&jpAo zbMJ=Lxuic6xf9=Yxq;7y+|WBS?(V=;ZvAr`ZptG&Zs%Pm?&A%2PT{f-C)*v!J?#kN z7PUollFbQR^ubha{;o`J?$$gmWPLIBdqoA8Ut7aHK0SwfN9J=cPA=p+r!M9e9a+j* z8?WH5?peioYp>ysZe7RyQ{Bj!t=-JI%WdUcmu%;Z#2dMgCdQZRQ46NUCu}vSj zJiQ?wGbwAvPH4I;8jlW07iNVJu;h`hfxc~`4Ln$GBwnBRKjtA#!(&NLuT8V!l% zLnD%>XhPO`o047g%*a-1P6S`45O-rs@;hlNS+jW>QMzeGW=mOcM92Vl12vN(}~=gnPmL=3?ltIlRPxeCM)7{h%TE~ zTz@u?{P>SCCorD@k{275OkwO}?qrkjEag z$Ss&n^zY0j**SAagZNz1y>%|RZ#9oRX7iqVQ`!9I|K^iL>lP4i(}iUC+(NQFrj}TI zt0l*lE+Sewi^*($F}W7Fgp7W>gjmmBN`h6Ek=UkXB-C{|v3sE_CeNrpQvWAt! z%z70$eRUPFOIb}0{#i{VR@adL{WWCKsWqf2crEFAyOx}rwT>KDT2EFVTu)*hHxT7} z8_22bjU-TH6S=iv6LB_WGu65_lfm#UMC-#A;x@OQM5t^f;fJ;oXUA=1!rg7;Mdo(0 zZe%;LTH8Q64R#Rj)DF@R*hs#-Y9tnwJ4wu#U8J~i7b%~#|?=kgf%L zNs`(=^6Ah%GSgu{o3p&1Oh`XKBK{m8vz8xZwWAM_)h&lemD^zwc>gd_$ZjGX!%ZY~ z^%2sibCkHAI7+s893w9t93%2M&BSP=nV7F`A(}eJ$*<$b3A(kC?7mhao_T^S{(FM_ zT6U5IYPONJN7_iILp!-~_Ww9bloy^OIZEB+(5`NBXX<$}(8cPP z2lkM&&w9v;ybHu>_yT#tauJfpUn0HxFA;s4%Ov&uWwJEn3fc7H3R#tZmE;azC05I> zk$$!7q;l_d@_X7165n-$9QN-eFCO)hk&K%}?B`ALdEPB@ZtQI`YwK;IWpsxeJi+R( zJKrTm*YA?%=zFB^^*u6B)JGnS^pWFB?~_uM2Sjt{1JY#nkm&HtcyoP3&fa)L-bX(s z{{|kDF9lD?wSP~@>e{D-Q+P%$);}Zm`p?OxW6#M0@`4DTe?i6syd=U8UXuIC{ba+3 zenQG#k#j-=Wa^RuQmgoybk@Hn&-C7q{-!tN8ml{Bf95R-VCLJ~-a(Qc^^RP6@s22D zy(criz9#`yABdaiN20a#BYCdyi7eRsiHy=$@r&GE`isnw|4kG&{3f*%{*Wg- z{t$Kjzr^OyU&2{13+}`}@|ydP)Sdp1Xt@lNx(mZ(z-NSL_KuKxBO%zFEd)!Ngdpp) z5ZGG^gGjM3oNN__*q_4i%|-+Sl_Kzyia^qTBG6$k3ZrL>f@h~FREUVdCTB4?FkcJ~ zb&J7v32~U`F3$45#94lyINXtvfNC!Z7`IdcwqBM1Wf@7B<0A==mPs;?OcIi1N5LxJ zQE+(qD4QFpxhMel?AS-|xr5ppiUWo+%Go_Q*qYzdT55E5QDE1+d=A47mpi zprfh?vqBZ&N}VD|-cSTf*>T|OH4egS$3eikabP2?1Y_-$;BKW7EMs|Kmfw`%{1j#I z%25W~uMC<4%8;kcOu0A}c)VE!{@zuAQHrV{=C2ALm#D&p^Qy2)L=D{SnJZVJ26J20 zKw?M@DooVjLAp8^?o@}FPt;+Z+ITn?G9Kv4@o@aoc&Hbj0EG?{z`AMz47N^yrJpCj zcw-INoT>qm4H}U2Km!hq(}aFMO^{x!37Tg$LF+$FP_Ui|L-`Zo^Z}MP*FO<-H75av zPXedaliwt{C4(uz{ zfhk9HVDD>ody+21MXA@!(J$RL`2N(D0!Io!w5T!a9BmyQwL+xZR zI6WD*{+J9SruyKYst?QRS^nTHeYnnCy4#KhaK79C_8c*Qq5%Ui)i8uR!G@5r#1P({ zF@&g}hH%2v2u6~PVESewh`eD084|{j4#p5zXbcAXjN$!bW7wu>0^n%^JvAmUbLQk=X`j;1z2I42YAU#rsbHHs71Vc3h1a*HLW9IKaI>8T_p+uz$hK+Fabp@Nidr#i#R}%8TS5IM zE7)<_3hMr|f_(GoV4FA{KGsc#73ZeI_#e|@jlMPfieR=K%Qu}zt>NH%Yv|Chfm41q zuy>XX)Eu<|hvzo%L7wHQI@!YLB3r21X$$vm*@C7R2Z7T#$V=g%Vl4-`=Q!~D#(}yn zft$euisum!Z6Q$og1~c@7i-}Nkev^(W;?*{YXFV^0W2|LIkeGsFky)uoNu#(=+}1e zP|2RTh4xTiXb+DY>_O_fJ=^E(LC1IojE$TDZx+sgL&s-8)QcJLRn7s*>>OYq(*b5| zbb$HY4$$(&0j^DSgj+t2&{g3GTlY9Z(k(|&5ORXUCQe`(=>&}noZ!D>PT=&!2@0j1 zVfl1ts7rE&IV+qYhIfWZ1I}Xme&+@!l-%Lc43^iN;SR^vxWl|t?%?p+ z9R|jFKpE!&Uy?l_e7OhgIpG0MpL&3Z6w8se^aP1$Pk24g6PgcsLi!zcd)O0JPWA#3 ze=mqD^Mc*mz2Hud7kv8U1z%OX;rR@2XiN8o%9Y-rchVc$pLm0fgby^B`oNbEA26%- zf#97!kaWohqKACIPSqErX81x!sxQPY^M!$C=J4J3h2tZ>@LSIh41D~+q0kQ;H~N8T z2g?QT_k+_?{*Z3&4?jcvp|H{)?rir5?QVaF81#p7IhIpCEdYul1Hiu~0LJYMfUceZ zmJ1#L55@+9vsEChj|_yHfCc2g2~%KzJ$}1p6(5ASN^jewDNQ_4*)qe>w=9 zUk1TEiC{Qv7!0R{gfdzX)VDp6# z*uX5m8ktb=H46ptfKb>|5DHV6>DPEX6o&7Fg454X$W;x4`LZ$8wpE4MZ!hdDEMp~1tXqO z@FP76?kKZ%0$e^GElEgH0~qaivZ8UzK=P`e@;Di20O$c1Q7c@+&^ z!Z8r483Q-C7?>I!12si4(7ZARt{seln>{hiMvQ^gBQfANJ{G=AkA<2bw#+knJ{=3U9>l_p@3C-vY#husW=4Wr9P}o{L1b89xf;+K(l!Q%=btDyTk-|Qjq}Z zbqUaSAOWVFO@RD|%q9Gq0DDI#!gifR5RgQ02~LDBnTfDyZX!r*PK2yuiO_Z-5#B#d z1gW2iATuTje(5H`Ws(H{L(y5sW$`ot925jWB_tIIr3Iwpb|~rYd>&9~cpkg;XJR9w zf{NYPt;EgPiY<14f!Jc9C}O_*{xP5Dp68z1+uPgOo1NSF&fNGcuqw=gLo>3V|H>?w zx;G2(Ocp$UkOf~qX2Cn9Y`EAb8hM^B_W=2Op>9!NjsWc(aM~5)bFWjI()Abteywyv&20-}7LONx zy9geH7Qv~6A}Gr&f}p}8cs{lW@~0QU%>_j;pu7mA>x*FOjv| z*z}+XY+8z7b!!oPYA*u&zeNzIA_J+W45AHXVA)>=uWV&d>LPucCHN4hReWxybON+Cxh*CWZ61Q;PgS zi5ybRLI9n`-S@YyzwNMU6O5|XBZ$F-dToE*iMeyxl5p+})LG!vI zIJCS73b-z*aGfgUy7jZ52x7RdE#f-2kLz9y*TJ1!7iV#u^y9kun(OFzuB)wFXG6K} zF6KI1!*%%**Xgrdx3_T}A6``m{nix1(b7V2o>d5y;|k$rejyl23c)S95Ip@0p}%V( zv|IA=!;p^&JqqF8-vS6~D}Z&+3!w3C0VrH7fSzIjDDEwQ$Lk9?*QNj>X7TMY1(1?c z0JTYcUq}Hsc@{vZO#y`TDF6rc0{H!l^JL%WL(JoRxO0tfXxzKEt3u|<8fhp#~xeqzu)|dlJ>T{ssa1L~A$N|-o98jE? z11(uOusb>jBtj0fTX24oRt`M=oed6eI6LWfHq1Yf4NG@r!z|8FN}rJpeTz6hDKQ(8 zeY2s#CL5e|vSI4qEZF-d3+iuW!6nLqBUM>2Z)q0zP2tbV>?{}=l?5&CS>R)u1+%+n z!TvA9;7rpnIC*XuY}?0~ODl(g^^9RqpFa#DV}}8H4g+noVG!4S7))*(3X2{Nh1sWv zLe8$CV83iAJe@QYrVJele?o>r0e}7zw*!7~d!Qd@GYz~t1k8?bKGSM$Bg`BE6Y_^} z?%)t8a~%SmeTG1U;t-g}c}=^nWx}x|nXr3xCd{9a2~oM3@H;#cDjYLGM=ukm{mOvr z%^A?WJ_GFbWN@BN2H20!0QK|?xapGtvj${Lri1RybhvyZ z9ST-*yKPcB43ngT=$#IKOwz%&OFH+B|&sT z5@)a_aoa8lfo{y37kk~ICy8MiTHTUAc=tvwaD2sz9 zvN$jfje{`rILK6pgN#S95KKBgf%z3NuzzF> zoZ_5sw1|N%3VeRi6b%m5(QuoysB&b{@H8kI0!^c#;%5{z+=+tr{ZXK_Fbe)Zt0YRKaZZ|vv{su(=8b?4@ zM>u?I2#2vd!=Y(rI1EY)hv81)u&R4F=N^W^-nuZ(6%T{qg<;^}9|nyEVKC-%D15sR z%AZl8KodeiAvzQsEkYsUH)p2b4uOE(Az(Ty1m2{Cz*>h8V9FtIz9|^k;b2&|AQ;|e z27{SfFa)UwL*la_h^Ywz_tGHFwGM*woHip|K2dh5yi3inAY^n{IRp0L-3`zSg+pzM+d*)bwI5X?leRmkM z!yWETa0lyPcgWLqhvhHaVDAw(&M0<+9dT~3z|;*=KDmO<30FA2*cFl_uFz=X3Xwlt zU~jz(bXK^4YqkqyIJv;Mf6g%Jnlluxb%wA)XVCL-hMP*xF!`1fXmX!T1^3-_V@{B# z>I6scI>P5Ij$k;-5uCgo!9&dvZ0`?(9@_@Nqfvukwf7(hQX2$M?>RvJRtI=I(gFOz z0V-4-;O-rJP}*z{X2b2l&dVMwmF=O|O*?qG&JK1L*g=M?9sK(@5X!C$gr2Jg!j!Cm zaL;}qn09ji)j3<3S!N3>(`{jmg)J=kY{PA08}OTF1OH-eU|(Mw2yvD3hF(r;9?gm5U*Oo+Le}2G}IDoY%SsbR|^<-+yWHlTfo#< z3wUK{0lv@8VZmN=I5plJ-uRfqUlnsc)(+r(X8=6S8URNI4uA>m{lVsVf4DlAbGf4X z!&ANf5c|{&4(%`l#ZhM9?`a036wILPqABqQF+I3GMGw0B>4B@V9-kxYLS~sR zWF+cBq@ga@J<)-`TXf)5z7CAF(*c9F-mvdjZ*ZN`8}|D22Hmc`VdMpE5KFY7BSsr6 zbhIJxffgjK(}I+tS`coo1%uvbg7RKXxHeJ~=DBEsV}}M@6Ez@xx&}1*Ye2ZN2JE}o zi!+LQK}bw5n4#SZcHZp?=PG;h`EE~WFzyMbp7nq&+j_vn{2t(K+XKG8SBFgp)B(n* z!xdL`i0Dv*<8^A#|35XD?4t%}6x86)neJdaw>yM~bO%ZI?lAOT zpA}%~K?S%qN&!@y6kuq}KUSIbk5#w)WtjDs?P&SKreytLt}VaW-C@6(^w}?VW#}(v z+WeDc4Ef1sJ?UhNGdkIfM?YAayF2qWTlD)Cv!3*d z9sK%|nT>qOroMZ@PUgN~@0*{quF~gB>3$3Q6xYJeUVX-9g*;=nXPOy7GxMx@$~HJX zWuNvuVK$aeSoEgHEThk3mQwMEv0jf@_XSPtjA9eZo7%|Q+aI#wBObDwuOBeeVGmeZ z<9#+g;XW(9dXFs#y2pl}xXXMz?y{c;?y$|)cbMzu+w8F6ZDzFm78|X0iyfMMlRf!) zgMA-!gLS@ZU~jV;*ty2*Y;pW`=6m@Xd*XkM71dp3&m4JvrJYyU3X?1B=E}?LXV1$_ zW9}uU_4^|GH|8R1e0zay8G3;w->+vKQT1%@x${hcoo5Ay&avZG=h)x%XPJY}Sr)$N z3`yC?BxBEOdfTTbvt{4E%7|Tlz5(~`~k;#+Y#J==rp zn4A4Nc4)&|W}>;4O`o-fHGEmkv^aY#=x!yG1y{1!HLKWS>s4(2>XmGq+Deu)B9h*y8 z5A9N>J9{zH`clH%zl62iT*PYq7qOX#7BVnf$lfnqz{(UBFw0T%*}z_VH}Ca&;C99zTpd<9Xo!>(3FCvzySjMmk3eoI# zV!r83CFjg55$~N{3VHF)gY|_m@7P%*Y_w~W-bf!Pc_Vi=lw0zlwR&Vy^ z9I&trjIEt0u*b1pOw-nrxpehlA&=Zx&>qb6`%F?ODSX zJC-?hAZt#rWr=n+OjNRFy&qe$jAIsTZK*lCk~@HX^zP4;_?nU)A5EBQy)pZ-z8`BE zZ^RBo^<`5n`Y^9Q2JGD(ea6=wGut`3tX87Km`iVVSWTN5w`j5%JSX6trM;L*K~FZs zw+E}xQ)eeWbZ1Y_sj~L9DokN)H>Mb_%zl_Eu~!{kI0H?QZQHKE-u?J1Ose`Vd`tK# z3{m_c)a?Hz{FQtaT)MXj$<-f)!tD2gO!J+Pas0L5Tl7-U)PFAAI@>JF8TCZ4>i0;% zOAiJA3HOEC{&xk_hFikasW*g+R@ViUJ68l@<|Sc>-34LdgL6XhoHIhP<0)a{qvOJm z1t>7rI-zHCwQ#%SsIbK2u;BarfbeR`KA~9HBj~-_DQsL;C760|6IQ+1EGSoO6lA{Z zc}~VPg7L~qLGHg&IQ+g`Xj`>Run8y=Bp(-Z7TO|Vci;ly;-|U7vo*y+d(bSQYs)l2 z$8)k^v}Byn_r*v-OOOfw%JPJlFNX=|S%$EFS*kGVb%NmS9U~~0hYJ_q1PSwf{DpuD z5PrS&5Dxje2)Qd91pQVU;i8{~FlnW!VEw+Y@W5YRShPx8fDb)|w!z(n9hFMLnMeP; z*n;m~$6Y>ng*<)k)wHP5YqI-IuK_I=ydIXG@Y>*Y%xl!kJznw4ws-}3ul5RmTjn)v z#XK*);wfGgP5EBlu1Q|KO9y)yz8d5edWe`q;m?w?yYr)I``Jy3$3oJUv;u>=BtZ!UEOZg zMHM&I4Y~QE&fVl=-7R@XoneN8xTmYK*l%}taa3$CaqD+&@z^?jamQdIapD_O(R_)8 zc+kaGGP3uBtukc9VTvF zk|!EC%f#%vBgNuL)}Oltko4UZ~Qe; zINKn$Y2FeSWZn@K_udoJJ0FM@!A;`+^2g$?=BHw@eT(Ql<%M{!{*@Tr`>nWrNUPYi z=Y#mE`0$A_hIcW=Dho6G5ZWJ2;LbZ{V^$_hf$;$Y0( z8iLEuhT`_;VYsnt1Wq3iiGcx8*p?NI#j|7Z*XCGEJspSZn&a`@zXZH(oP_n>$+$t9 zg3_s}_;+<0&Z|wwFZU!k_?r|b_RhqmPD5}>%upOTd>FcxWZ{#Y*(j^e!KUZAI7l%c z^NkB|HY>!LsYN(!ybR5k%kj$o;h1=31fF_55_>6)Mqkr07!PAHBy}7bj~kEo%O>FH zJrnUm{UnTNnT(76Ou^j-|KVPjX}BbMI>r~yz+e6|(WhZ1j*`y8^0%{a$AsCqyK6D7 zUs{Z_`pv<_-F)q}$6UO8b}kN&oremK=i%(a`Plw#J|@lPYqonW#8+z;qMp?vbUU&L z1AIA;?MeySrz}R*=Zo?7h*B*5S&DA+mf$tM9z0=v8D6wriUW@>#c96F@Wkb1_%UfY zsy|zf2J&*$?kLA!vnudbj}^FT)e4O0zY^c?;{aC+K5N*ZN%8{(e-&C^uEJUIJMco|4(#N-HvQI} zXf}2i>i^n>owIl21+_gmYxy3u?6a4zIp2$JHv4eH!F~9}V?R2djWT z>#@b{0`{o8fF^Je`<}dr|NJlEwR4xSIOH;#UA~OFBCnu9!xbDAcNGuazKV@W*Rb{e zHGG+N9qXH}g4;Oq?QIM#x`V2% zckqDhF8aK`i^t^mQ2WC@OdWn7=X|)2tA;Jn-@fX5~D^UoB5@>ab>f_OuxtGN0kFN6&CddJ9f| z(1MxC&(Y@2b8L)zfukE<;K#_97*q)f8dqYHIZcA>6!x{!iKSNaszm9Ed}N*hmhrC~q2l8&1a)s9r6sNI|!_dVXRV(Nd*N5vt@m zSC#5csFK4ERjP36&g0O!lhd~DRQR|%Ez{%txEM7$vOtaYo>rrkKhyJ?b|k0#}h*QBF+dCb~#O)~DQMJ!&6LKbRKz$q;n z)S*Rc4%&1#N1K+e)h6MVHr-L}O_{#E>HhfMv($I+WI? zL(!Zy=bWL-`AfQ-Nuf(q{_2vEs~+tu)FZo%dbIA29{udDPa(egG-n)-&D*6h3bX$Dk!*nkpV8<47zA?=MdB;UC_*00Wxb2JQTdH+7toZN?uOZrgw$v%|( zwGWN7>Pz{Oz7$i|mn_cqrMKVv(t2AX^361&hGj;avt>l|!-x#+`ccl1ezbmhKRSQD zA2t2xN6iC`=}x9GRdXiYymQ7B*kMdS=#^syTpk2M-{x zu>&Y#8<)F0p0b-c>3Epa<9u_fs5B?9OXhU7)0`r0EeO*sNWa8_hN1;kwp!3}9 zUmY8=4X`1_F*dxf*wEw#8#4H7L)&>Qsfomv<}I|PrW#u^dSy!yIs++x@IV?hY9Qrp z7)W7PIos~%K)P>bN3)Xb$gtRs)*s~Ys!!}_xVk;ndfHQ4u083M+mrPvd$Qv3t=fGY zs5RJu4vux8>`e~T<(dPPb~;cu%RwZIA4JEe52D|@2a(nNK|Eg9kpc%flAFYlde3*H z$A=xM;)x@9syWd`Hzx`j=0y7!JCRbY69qqaqH(>PX{nbpt;%txk}_wKiO%Ht(wW*c zTxg}>Le{x1R8{6enxYHkzi^@5yP}tk-Dyy=JB7}0=NuAu^1kWL+rXV#`g_o-2oLfY=RxPzc@UiU zpiLh<=(DaT+4*=5ewpYDq{#P%$ z(MKSq!2+2V3goy{AgdaI)Sd|RK#9?E9uMsi&*3y8)#79jKZXw^d>^8D*V=lc5+g!ppCkT1P2^Ck16z7+bvmr{QFQk9#@u{q7$?T0sG%nIAwu7X(nl?f_bHmB*=n44`WoffVT!NY(Lyq&_Z? z!dGxEALsKeydOvlegx7O!ypP4f=F2sMEj=((cpDKbc%w==5Y}H_a}(Ne!hXPo)>H=N=*E8w+91mz`0P{XJQ z>R%c`Lv}^byz`tT@GOFs{fVIQhLIHL7D>NjBWZ&?l57`5(x$DEq;N8l!WtuK+P6qr zqZvh;2S(Ad;3$$0<7~kHqUg!WD4K96iaM@DQP!&{s!@oh?|q`l*e#kIW1`8fFq*VD z^PqWMG_9_VCUzs5F1(E<@2)Yl&M1anxW({sJ%(HgV#sq=3|Xy-A%!C`bmmG7jd&45 zUH`<;EZtaoXCF%}IF=@6#?smev9x_^ zh&Xc2j-$*eaWrmO9F5%>N79pV6}p_89F6WN>CzAOG~8E;fXYFRw5OyNF>)?iS&l}_Zx}S<3%F< z*O5qf)slD&eiHdRB~emf62+$^k!Mj7sZ2|v6J<#>WJ?mgJ(@&P&Nr-mm_&bClW5@I zBpR%lO#c0o$<{TQeg`E}O-eGQ7ber|Daj;VoJ`{SWa@GtnVe50Q^d_=ifT#bG4{!% zu9QL-by8@AMGF0POQEsBDRetIg^co3D0*TF70yo~`KlC3-H}2LHJqDRpF+#;rBMG@ zDYWKW3jI<_r68SDnlvDl%AHfG(m$2v#-@^FNGchQNTt*NrBYl;DqUWkN&|PM(uC?% z+I23K&fQ9-OU;BOjfsHM{j-E`V)mQEq| z>2%LCouUHMX>UwAeM?U#%e-{*9i2}8|D}`N{B-)aES+#&It|^CP9F}XQx>Ju>H2h1 zxtUHLP3aW#lFO%b^6X3}wXPC6*F!>idJ_6#BB5Lx37v74kP1l1HHfoNq9qiXBB4P; zCG@XALN%i$lrlv^&9fyGUm~Hs8ym7UE#;wmQZ!0 zge*8)W!hT_9sew$mmQoR`By@pm8Ep6hm_X$mQrjVDYcqPxjiDKNA^;3;!Ktif|M%! zq&((cN~Fg&dwYN#BS3BSL zT}r7yzI}{~j7xVeOZk5lxTNx9D|s2Gd3m>ZxmS7l2fAj^ z6n-vye$Gq(q!h*LApVw;2Cq{TuiH3Y$Kr2Nn(|dj>Add!`8C{rFQwt{r1a^vl+s>G zX>W^^-aM634}R?iybXHtwrIUAr9(HQH1wL3Ixb0RVm)uOGyM8a^0qURY zhmw>I{E^Ux?-H8$NkX1)B-GL@;hbIGUvEk%;j)A_osrO8Q9@r2OX%lr3BB9G`~DgU z6))#~d69%p&f=`o$r9Q)NU*Pg+xjCvt2?OOhPxEI2+ZP_j#^6i*$L} z>Jox35*qU(otA%0r!_CqsiZNTa&DxP71zOAm`?dzCtp;hQ#jYr)yvZ9#=LZDo0?9) zMsa=3O{Ys-r%SnR3tY!KJSsLA#okris^Rc8bjs8f|I6F3tcKWB0#5IjNEYs*e!!&ADPou$q zQ>plKD!$Ym`72yCqO& zTRc5&il?ypcy9m4Q`4Gw>M}Q;bVkOLW?DRb8yrvP?c!;=UObs`e(-^}ab$Trj^e`UnPnuksBv5E z6Sv!LN6^KZ2x?s$K|f|h(5LJOx)l;Z8wW;Eibe!=ehH`f_rmF4T{vZ}52u4OIsZ93 zoO*_YQ(xO~((M^eou9(!;;k@l?{NFFGK^}cgpo@|7_IgVqjzRuWT_NJQLjR2$i+~S z?&hrN#i67>B9!jMgwhPBP}1ogO6Bb#^!IKECDw${ipmf=GdYAFriaiY7DAV~4ZM}x z!ud~vN&jRp9o`sBo->1K_t0Qc@eigLvtTM#45ls5g1A2-h_-AFqT*RW6gw=4RQ>sH zoRiHIg6P=OKW?pq&o_NLCX-hARW;$T)7_Cj`(g zrvU1v89>n=2UGFY!L)VvVA{W6FjeIZriFogzR-U#^;Q^6;$we`M1Q(c=}&GG{HY{? zGpZc@>32_m(rx7|s*8TqbGsk4&hn#UnSLZ={JVi4t!?)u-J8BNb)PR?Tj)#bdA{U6 z*q0)WeJSRr5Bc2lA;ZHy)LiOA6@@ubE|+EOoiSLj9UgZXD)FS_3DNgJ+tlBCL$ zlxKL-x)e_`b@ZfVs-Ep^F>6;B()mXRdUr)|HlX23B02EBysms_gAb zrte&6#VHs1vC@S?hr7_+02exF=)#$@&eU+;na-?rrmdr$X-tSSIrMX;2Vb0M)J4w3 z;#{nPu}*X;)QR+sohb3EBTc*LNGsMm(%LbOv?RolMjAPiPun2+b$$?4tr zfI%b}45D@K9q7X;2O7A-fl><{XpFZ5P1WL`FF7l#&Yo;b?WuLBJ*{!ICr?#-I@@GN z-UsYx`)oV<&HWO7Hg+`j_dr_FFp#!w8Aw~k52UitfmGC&^Z7s8(z{c(w6xroEb?q= zr>8AvHQLgY$2N5FfDI|nwjrlP&iS{rp`;(y6m{8}T-I5W>IiGP>T6BYwX8Wy+KSt^ zRy1gy6~8A|)M;%+fj=#2`V~vsxz3VK4Y#BVKHNW}VM$w>E%^M)g1ly1P;0yeEgoP& zM(yUb_MAC&Utv!9x#o1#&79kg=G6Dz0CKAuK)w?OkVo(UGSM4A9WVRSiDUg~+}!?T znAD&4oA)Q@cJ607YewD6%{XV?j5au#(G3MNYHKj1E*rUwFr_bGO1IQaX>+3q4c%oz z8k01IY>G9K8MBtQDl!t;G-$MQaOY)BtEYR8#e zorW~4-jL$T4M}S#_u1JQ(y&eg`f}cY#w|CXSD6MBI?#aDcIea7v-;F~sXlo~^(o3) zpAy>jDD0FTIWE>C)l@yYIY5sVebOa2)TM@bx_o@sr3d|VDd?>ZZ9A$%UuWo$ON0*P z@LU)3p7o~H+$XtVVs9!R+?yu%>`k!`w8?O*Hr*PoP18L2c2{kxx~4_um0DDhrA6QD zxWBVQlNO!Uq?09@^fF14{+MWz@;ePuII2PKr)kio5Dlu-(xB9)UZl3Y7wsFtb9H$3 zqDzXs$p1=D+EdY!R5E)~qE$~S|J;Ml)%Bp)vwP65h#u5Mw+H>?e%lvS>U3(PIxX>3 zrzk~r`gcirP2Q-Dy?N?sWC8Dt%e6%EvBM(sxiL zo$o57bV7w*%~c_cQlZ(pD#RXlqu1NI(Oh{q(sS)btA8nz##v>WxJa39#VM1Cp)w6= zR-)xQxDR`T65Zgw?8e_+>A~5qba7Ev+7s86W*Ky)@TXmr~|h!?)N|c z9s9(7N9RWVJ|O2C>VIs-rDj(2x>3a+_c#mOx=`wEoc?oy_cL_KBy@Nq;;AIFGQgo*mZKM@D%BmZ6G`$ZhRvJQLd z)nVm|TGZ67#fcR)c(r#8YL-`{zjieaTXqabX&%GjWk)fs*HLsSJ%Yd0kKoZohcUhT zVf-}z5RU712w%@Rh+$n1;+k0pu<74^RGYpZZGP`Vk16}m^~YW`o3I!EeBFbWM(@En zpLXM*;k)tjyIq)AunVuh+=-sqJ8^mQ4s6QUfx1mq=$l%FX?M3{cKmkCXxN6Kk=wBU zrLFieXe;hIvjvlUx8N7tj59qqWi)?oK8Yp{CSYE0~`#FyhLG4Jy#Y?Q4+-`6W~W!6f3@^}Rr zrmeu>I~AA{Q-R|zmvdfPIm%Bh=c}WZqkZ)<{NcC^YxXR~e9NV%wz&*9^({l|l}m7| z<`UE@DaFysrFd?}VpRKCf&t@7aMZ^|SXQtIH@7Ur9nyuk@!kR~iCuuQ%k$AYa6V_E z&BNm!^H6qZF7_BW7dLI2gEq!^im(1;;*1X&sPtHh6Rt{-YY3X`NyFqdsW@d}3ND(Ij0^IUaBOlSh6g2}rfWQ& z=^uw#TCw=~Uo^@;M&aE@k!W`%0>{*ajvL92JOi7J!yE zgYgFEl@%!Y;pa9VEO_dT4OamzMTWz72)MPv3op;|#AhQs@QuVBpN6{O1vgjR)ZYaQ zHJow4Z%4fTW)RBmI^d7f_Be6B9ll;O5X0u%;<~Xm_-u$Z8bn&5zo#W;m|I|xra2b< z?vK(pX6S#%6b(+9;PXAkxM@{Cj4d|8_7Q!tB)t#n1{>mX&M;Hzr;mlIdYomZgBnkJ zW9(&ZoO?_Q_ixg~t0fxvbV4tDHLNGLME1a29_m=zUyZK?=#JSxRM6%*&j)x-8CTRQ zA=}y&@0WJL!bysJeTM>n-}_g*IP$l+A@HX-%On>S)By%KvZdm)*Dy`SHLR@U{R^4kx?T03|c7WE6x`e-ku|F-#%LuC(abh%l{L1cuW!xG>sMa z%@`?e9v~A-F64=FS(X^2ktymPNfRF@Cy5(=#)@ehBE_DALq&WUAZ9Q06;tZGvRT+u9!VE;W552|HOEttuS9S5h{cd93)Gp#%@85Om zbHCO(Uwv1X*}J7~dHTb;YnyM>X}-Nsm+5%2?%2fYI)jt@>K1g{UZ)hjuC8oFd7aJU zMRm8$XV>+6IHsG(1tuL8Xv)OBdTaUOE9{!n{p5L{TJ!77idakB}o{1}Ndrlwz-E-lV9$qTF zjJ-T25AxD`;peqAI^OG1ZMN6R{^PwYf{VRQ{w(pbJy7A5pS|8|oPL#8+?D-af2P-X zO>jQtMK3RUU9Y_9wI`y{EB0@$TPAio)(kB*ZA4 z6z&f^Ed(T-70Rca7wR`(5FTH=B;5OSML4W?T^QwkL(s~(B~&cBBm6jcPw=__K*;^m zD2y2JSV#$bDwvIYCS0v}E+mUDh0{-83+l@61UK9Ff=|px!E)SZ;X~yYq5OEepx^Rc znB1*XsI&bg+>ibv+#2&wNV=lH93LyP&W~N#Aq6FttgX!64d}+?ZYr!PSe1FEc4x(f zYK*3+vu7neSo^x3?AyLxtmT9TqXtb@+^oes+O*kyMIDx-t;-(w*JFcS^jSrK0lS%C z$bMz_VVdLmGOamA>~DELc5kaOTYbcYg`PEKEw{{AeoKFLzij|>QnX+bH7(f=6DxMw z!J5^3+puGiwrq)HAd4%qV}B>vvla6lnBK}kZ00sccIU7Y(>m?UJQ`eB@MBlz+v>(l zJKfp4Zk}wtju-RlFEAR!n2k5EY2n^XOz~k)b9`CrXg}6G-Jem(U^b&NfDPOp$c`Th zVjd@gS>@#r)_gCNX*>^O=AU?u<6jX>NhOM1(~f4-jANLNZ7f^r7RSE$#WNO}zzS0m z*?(C{Y{KwlmNY4auK`bGXG_yqd}TVT-y&hg`=m@-lfkB+&SZ113}K`14rTsNhp}&O zvRLVtY^L@*hZQO3u>-yG*?s*2_T03P-LffS+ni-g!sM(yU^p8UIf6ALj%3;yqnJnT zXy!9~46`0TmVNtg9NRW$JZET4V7tmEvcGF4F}E#~S@fVLwe5vt3&jvk>!A zc4vDj=dLYbv~vm5vn^vo_mr_pJI-d?x0Ky=SjHL;EaTj(NU*5 zeJ!g$ww5Kitz$Qju4Bw~Ju5%5o;`5hz|;Vw&o^+4u#!S-tWe)}?q48>q0C`Ayr){D1Cc4m_v1O8Y)`Wz>E)^}~Lq zUvz+Ncy)kjWglcCpB`j&l0)p{{X=eaW*;i1RHtl1dEM4$@L9vEg;6*f;0XEN|~=cE;iiQ`vZixf`5i z(aX-VShaJEcNnJm`y9JI?mV0D;XLb>SI=fXsb|lVFEGc33oJL}A}c=0bIf~OVp9)X zVu@Clncl|B?6lq$mb8S&kSJee?$fTa;`XboPIiqwXyLIYY1i5H8`oJ?NCV3|(ZG7S z-C!H`++h0sZ?Z|1H`%FPw^-YpTTJcO|0p`^xG0`BfYaUG-Q93E&vAEj-PzsE4-*wT zv0GFykg!E;47lg9#lQws6ayPjK@0>Hedqn-`Rv{9?Ck99?laFkGtYObnQmqc`}UqQ z-v-yRdDXSdF6klLbM7HC4SmG^JNSqlw13R*ZhFk>HS5^Dd3Ee?TOFG`_6f7Df5J+; zJ!NiJpR%P<_3YN+dj4KMV}`lUn6CD7)-vxoEC2GGrH_8W{yl!d*Rp@fb=XVhAJV{v z?Q38&tzNMiYhJNIe_t`r%-8J6o7XI}?;F;7;|=T0-m=0YZ`nP^ckF%6JN8EPJ-e3m zo~{4zo{0v0U=ON3uvBPdrAHcBn?n<`+t|eXm7AIC)MobYbu+uz>mwU`^&|Tl_KA(& z_lYUYKeP5_pP6O*XJ$XPg=sx%VRiAXZ2jq0=H>o{9oX`P>8iD{-qYIH;@53#bC0iV z^~JAjY~VNMQTUDB()-TiM80#T;df@%{|8IC_JfTHYiFZ(x3ff}pUiN(T#WS#x<@RpT$_)#o>ReCapK2>8PqcKl&N%`P@;S{K{?vWpd_ z{$2>`%^|^VSDf9+&rfEsxPV zuMhLTaPFLo0bJ;107=UX;PM#*@M|=H<<^F9KgAGq<{3iR5kru_FogbwM$l7Y1dwS2 z7Q2n0q1p&`s2W3Dm@&KLQz+0dgV+c&s2gJjLvqdF!BsN||852=UCp7Yr#W;jHV20j<`CGx z#n1vAqb=a?1Pi#6ZvktnEFh}W0%|=iVR&Cls9$Oc@nx1!_{tJK7+UePR**2k3I^}6 zf)O{YpijFM2;8hex2HASS!fOOk643!y)~3-aXwvy4djiofwqk{z|Px1)<+vCu;Prm zcw10RwS{9vwy^28EsW{31rHB9c+}GlrZ2PumBV(hpw14O)a)T9*dA67v4=~mcs%H7 zd-(mz9=h}$phe&ScgHxu&Kw6AaLxhLn;f9f%n>{#j!-b(5mdK2Lf^}du7LNB!4saG^@Ng_o-kI^3ycE2pro%C1T64^UHiO1--?8%ny#&`GNXhKS*@tY`i3Y*u-O*^EdfJ z&RKt${>&fZlmkH7BLGTM0w9LRK404$01@Rp{`pw|yi^JV3->@CI28zK69XY7ClJC< z^VsPpf$-o@AY?lQfm0l3=8X#imo-7K{Adt7<_taaA3-3t3WmNc7zPXthLpv@;JG&# zzFZ52{Y}A;tQP`x0i3DVBLrw#2pH#uK(F!;SoAam^8bXuZii6Fm4rgp$WV|j4TWF( zLZRq-Cu;2<&_vV{u0AwQwhBE;~ax{3DggjK*dZ6EZHc5s1ga(U6R14rxJMjRRT;`%5|F* zE-)#)?j?mUfwZEjGX%YjIykp>kBnE!>ivickF%Z6- z^8*WFz~)p8v{c1#K12-k>46XL)rI}W0@#)0r~9C%%d1EoiCaJe}Sru>To zEwgx7;}s8`5Dz_i#KV>`@tkcK5A~cG@nTmz+&&!-dvC@=`tx|OXp4uVY6%cxl>o)Q zoJAPTxf4AT;J+~mkUc8_maR#EX@v=pdLjV~t|kCJN`PKX3GnE50>m0{UWHR4JP%0( zo%lp>;rt3W&Mh>Wn+PA)CPGPJBJ??)2p=yc!i1VcsC%0T0quz}NizwyTP49UZ!Vl^ zxIHxqCJjyk|A|TPczzO$U!Md`g-Ou!80Q>bNP;)_l0dH^2^=^_!&WI7RE?6M)-f4! z0+S(9oD4VQ$q+j<8A>K5L+89?2wj^D{qs2o@lY}h=RA(M8_8huI2o$mCBua8JdH{U zOfgP@YR43C2uOk6kivOcDX_3V-;PazUei;+E;|M8Z%Bbj1u4*eCyiSt@*TN`)Q%sSqkmg)<4M;M$9`6^C(V$oN$FFf$dpmT=*$ z#Si&>-+@$^U6u+i7gFJLRVsu$N`>vOQla@1XEAo9LaJ&S3^YiC-qxH$;+6&)oJn$C zkOsr!(%_Rk4Mq(}gDa!bz+h4u#Lh~C5!q>wu{I5cO9lf~Ijcom4%UWpcx)zzMK*FU zBZq$f z$zjz*o<36!rCD;=Ia>}h=F362SPqR#dHyTqpt4pDlQziV>Lxj;<#A@^cFwNcDF<

r?4)&V&TJS2za!*UpPOb*vi$ieKC9MU*vW@5PwLPT{%49GVdNQ|9v@ZBr?RKQEBW9G=H9p5Gmw?<1c7O@5vI{CX2_$ibdpyS!2k zB3_omm*t?&%a(LO4q4~quomU8u0js8&hoOKmV;iI98MqS$B)XPvQ!R!C32X*Uk(*} znPzpZlExL(e6=ju*<|{#-e<%;e8(8n5Tc zyl%(KVa+%>uu;5xLwQ{ep!|0lRD4Z?y-jH_ry&glkJI4o zoivzrH4T0$`1g8(e}@OspsgScthc0r-|95*UX%t#Gt%Jo_%tXSk;a)$Y49*D4Z6pq z!I?<@t^22e#3c>JSf)XiUK&hN<{Z}cRB-;73Qu3A!h+gV(7TxmOV4p#av~MN_NT&x z9jUNkeJbQtzZou1_&j@!+3oj=!kySeUD;W|*pb>R}O6Zdf4c!cZ7JzQ5V;W|_1lme8TOVY!?B&ouy0*5EL)Ha-6to5=I~@V(4FgN&P6H- zP6l0*Nno=(3C`tkPSWBexH2UPJccJhR<|TL z8l42y{z>r4E(z*&li=d7MA+Dr2&r|6&~_~m7N1Upu04q`dQ&2tS(FH0CnbW-kVNoL zO$1*-BA9ye_Q@;}_Nyd9_b&HG;;G6&-^%G$EuXxb=5D)Wf;^E1KcyK-(552a>dX_SsWO7aBh=P9CZ85 znZoa40q)1b7DX&P-Wv-V8#rrtb}V>|iUmtqEPUe}Vswgy$(%`S@I3~$KaT;!>oJgd zoZBJWW1u5D2J9!qfPbGD@Q#iFBhMIkYZwE2I;0?bC51OPr7-3sXCLp7f*-eQGP!-T zo7*}6w|A~{y9c@blmATu3rha}KrlLT&Y22{uh2`o#Jz?DD=v{*<$?XMU# z-ihJ+Eiv3ZDTXcE#gMQ_3~$GZVUmn*L-~IjzF&zSe;*CsZbyT9Sv06_=l0x!Xt+8$ z8kVO-Ll|d8-7}AdKEFk9qd^3o*F-S2R0Jg(IX5ax1kVPFpiV4;i*6#=qAh|xEdVMt z0QqMDoOS|iS_JTAG=MOfcYXZpmT`@5V269`xiQD9(O`_n=w@7e#7zv}!M8c-6 zk#KZYB%B!#35SJ|u--NjhWv>Do97X5Tp3AD9;ar*uh~ijfKGmn=shk z845Xdyzg>06cY17K_e>^%6f%@EF=_ajY1*0H3UjIyXtpo2t=(8fsyGUFef1d7P^JN zR2AM2Y6u4B^TF^eKNyzH4hFk^!B89)3??SQFts%ZF5C`+UnRW1wIT?jMh5{%gTUV* z2=spk!c)$*+H#7s&3QkqhWFR{rvyTkM<95s2Expj0Z@hk@N8=Ue47>ko!tW9lWzdr z(G1|6M}HV_fwQji{h?rnKe+ew=eCwVbZPm6{H-6Xzu*VB!w(*3`N6C1e(=QC4=!l< z!IoFP(3gBcbE_|BI{QLsnlBvl@C9pSU&yTY;p-3hz$ebYGRp7)=Qu77{C9^pe0tyw z<)z+`xy&1EhIzyBC~pWi@rII*UZ7j)1%nH{VCPIPsOs(o@4da?tBMzVs`rH2Q=U+| z&J!}ndV&Y&d3_3;sLXtxCjyAbL_e*Z@dYc=JoZ<%6iEa?&=mrbgUHKXYuJB>6E2zxl{QF+6pyA^R zElRF%?Xe52JL&?loSoG)$ORUJxNtVO3uL`?hPuM4h2RO(5As;q5fKs{x zXp0;`#l!)c-`m3#w1+ht?ICuIJv0mKA=|(nbl%v(;rzgvV(We zY~jywTToqQ3%~o@!fQWUs8F(n#kDpNbD2nzTb1yihn zVy)qwg*E(ZvI6aMR-m@g3R*{6K~=aFf zo+@`*fcj($h>%)9KT`|HcxMh1&zi&VRpt;k$Q-Qw&Ee%=GswGd1|rVkdN|DthQ@PW zmxUR`G@3$Tg())G~tIb%t=}pdrvKLnuo!gnTPQ$Z9kI zNx1=ZtuTPneg=^0X#mgK^gp3UZV#wyY*mrrXEa@=)qJ& zJs9&s7gCPsg7Z9GXim|Eeb(I9*r)?v&gj6RWjdhJTL)&i=)m(Y+7Nz08y2q91`daS zCU0%f>CghZYuuN)MGGuPYVq|5w4lC=v%79-Li%=1u;D(?^I@9MTSXI|-_wA81sYJ9 zp#g4D8Zbj$1F%{hz80y2?L>8m6skjlraC0na-ZuiHE^1w2Ax7RxT>iJ*|n+=x=R%v zO;m*mLRI*op$b!KRNzIC3Wz7Dz~(3wc&erXrVo@sQlJdO{!@m`aAlaOtPGRyD8az( zN)RQzOg^f-`MaoU)hnAudLxk8~Zc0js4STW6e9huyX-l z*sRN~%(ibU+uzi}tmn6|=|(N=?4Hl;bp-dt-~7bd27h7?TR*bh*&kUy^N;NNfo3*G z*vuMlH!<1dHCW661GFdCyxG z8}^n>s(iz;`S`)253kv{S+7~7_G{L*{T0jgdBvQufo)4|U>)@@SC`jD_NVNR*Hh+I{)9y*K4IcVb z9aH-Lm|e_%%*Go(X3E8n*y4ak>=Qj?F{uw(_LEw6bX+aF`lE(j<7?@hG_GN*i>g_g ze>MB1c)&I%Jz$oP?z0u6?z7il?lG?g_t-$)dwg8xE?ew=mt~#2!}^NvFqhl6*^~aa z+5C66nBLS|Y~|l7*1Eci#aLFc#d~hDBY`*BRlLD&@bRJYn(Hig*mXAK<27b7^BOy) za*f5TuVm+}E1BEAt87-#RaTBy*!zSlOsSfWK@GXgeto#a>Ze{}C0!TU=#>|lp6Nxl ztKb52^}4_|pFGc6;XD)ab&4{3oMU z*vF=-?_-v0_p&1oW4>R1qn~n9`&5oSh#ok8kVtN;fnR|RO3%FIpym}Nd zlgEXuWpE)=ye?of(+ike%T9J>+D_K1GoRHi$Y=3t`K)Bs4%TI`gT-vw&SqP0XS)iw zF?8L=t{vRUuJ~_dCrz z4vQU=!&WtIWEUrHWX)|Gn8u6^%zmlCe&c~HQS1`M?%b8fXob@@kj1846V}q_N zWoZdZSll{jKAM?%jbaOYMzU(Z z5zI7jIExM*#`=a1Wdp*8u%yVr%vCUmH46u_0vNzV(f!#?aX%I#?aL0t^kJQ`y;)Rz zFE%QnC!3epgJmamXEXTvZGBVZ%q>;M8dB5P>a`a<~S*1m>jMPYW zI3Ag*od#%Oxmi&EIw(nhDHrm^iG}idacI(yijHN^(ri=PMIlcmDu#%|AfQyyM$3& zehdGs?Gzqf_EVU$;D@kw#y4T=@X4EG`!=m~}?zI{B24#+(!;4?Zru)$^!O zl6+WLDn2CCi8#pFX#0gFE_;QIR=b4`hQ-2U^+I9B?|fl)+je2jhpob`&vS*FYc>m4 z+{_V9y|6*p_w+hpaOoPM+OAc?`*|ybTh=ZU_Q+l$)SR_gIH`Vt@Zz;OLiLj~gwX|4 zg%egz60V21~tng&=Na5+Qp~7R11BFF8eT6H2^bn41kO@V%l7$9m;)RckrNSL+ zM8du^1Va50;lc~4!NLg<{z7wSZ=pihT{x)SN!Zz7C(ONNB@8@cCcIW`Bpk9vPxviM zOSp2ln$SK~NjP?VhhVehi{OfRqu^)rOF`hp$ASsD_XNi>t_wQF7X+#1X9fG4j|y}y z?ib9?Efjpq$P>(#tQY86EEf!VJXe6(;{_~Wkf8oailAtjP_QD{N09s6T5xNXwxG|1 zuTc{!A4ENOI1zPt*2buceZ!*O40MPhXGP?4(Tj-LDi&vrHr_eA%)qPMu=juE-O_T) zEn7~P58Uvm+#={_xoe|t#g9n4iuo)2Din{P;;_4{qTBQ#6}vA_tk`3;pu#(FMa9ED z8!GzE+gee&yQre(#(|1EEypUhnUzNAgN&bqz z3xXBXHiRp#7YP&{$3zOPi&Djpd-00%FOwBxT4jn4e|sq64f-k;*bh`}@*ApH#6~KT zQpPHp`)4S|jGLq=&zh=uyJUvqL(Uw<<)Q@&Mc>7W1w)o7{6{ZST+djcNX=Zu=OC_8 zm@ZhS=(}`-B71d?V*AF;ifwthip4v(DthkTuFyZ2uQ+z3Kp`wEQXDDYrO-ORN0D-6 zpJMur1BzvLN)+>|OBI72A5l0xJEpkRa6&QUU74b`>9iua<*Z`**9yhXc2t!7I;Yt2 z_kto*<+8$8lBYX zpDMzAo+)Pdy-;imXi($_y;dv?d8>#Ed#`8;Z&XZT;II7}QM>X_zRL6S`8aT>96W`fu zVPAV~JY}bYN_M&^wAI6rHu^Zz+5qQR8DfT|5hhv~qp`UO-Y_-Ai6&wjmNZX@Ro)x)~MOxH5Gf@ujGK4e;v^4k0ajdbix5Yow5463r2o*#TBh? ze4e~JerWQ*j`yDU?Tr^cY4FC9=RP?4sV{0j_QUNp{%CSP0JClf;*}dg`0Hvg+FlAl z_j93WT@i-ur^1nrN8p6Rk*Iz!3YYH@U|XRO<90Aylnc0bqX^4NH!;R*Okl8mEW$O#i*TULVzl0}7_0QNar}yG z{G+r47tC3LU%oBDo)h^T^!H1#ao94neXzTf7}-|J;sOChoxBZ+4*bzUwu8jn}#dwW0TNem zOK?_42?kC$gw-z(;fP+P`0QFK=fxeyZAT8{W2Ymiy5$JkY92+$IY-gp^HFRbb_`Ec zAH&h{$5EyHIIi3aJ1n`JhAvBHhnvZ`eVz`uC5F%Q%+$Qp2EBSr*U=BX$&?# zgIBY8{Koe)cxcR7?0R$-A*me4aIV{Ip9-9nUx6d^6c{mIf!{wXuy811$UPp~BPO&y zPB_u&93I+u4y%>U0FT8}KS}x)7A(!#P z?aQdiy(Pw_S5V#ND!yKM6-$0z#Q|e0@mp;r&Wyc=Z%^=e7N_etd;N9X{pUKK%D92Y z>Tckcgqt|x)J?QEwR>=u6;=bpTc8yxT8y0v$3TIU^2KqI4X;uvmep`bty47Mb zk5b6@c!-a39%9Fzhp3YN2)|c9!aJhJxc=Z{j5Mvo>+|bS+*pT&J)ht^dV;2&PtiN) zDSG^ViaKNJ@!{QiToLsQop(RO-MY_FC+j)(fAJjGC%(Ya<1g^2^-J8I{Sq@izC@Sa z4S0zfFv0y5o?Q0|)!ScT^w8HhE z@3AA}Jz7-1M_a)MR4@L3k2D%_?Zig(s%^wlVH29{YQo`~&A54DGajyK#!|sY+)(rp z2dIBSt?{3*;QlAHiujB(^FJdgwcz_PE!bYwf*%80v2sf*F70eZuc2S?1dru%@@&It zYud21wGD6d`ifO&zv2noZ#aM9H}rq=4KF8rM>zBycj*7X=Tm;5TI~-sifl*a9qst& zPdjcH_7nXs|HPwi9caFy1BW$r;JVaKEIz^+a)!TfYUVEtuK9(vVZU)u-fyh@`5Vm! z{J})U9~@%ah5hDrVfgbdY#05-{KCKJ_U|ul9QF?zF8o6sBPBAID3Qq&B~mU{qF48n zsO+B-%?wl~zhTN$vtF4doL8py&pdX{UWHzysgP)%3au+up}S92NLfdfJOrx5(p4#D zE8kvICHEhyq~xYXw|lD5>cwg#IL_nqUZ~M{eRXPK>NGM#ovv?FC;RK_H2Q}+6}W29 z^&T4ZYM};wKB7U*^%_*C%~^AinzVe3CM9mxq|S?)w6jH%0`0WuRI(O%&(xxgd$s7p z11$>tr$yuZIBRZzHkB^drZZ*Qbh1I4iu848o=}HU#_5pu79A?T$XCw$tV4~~y7XUy zF4a%v?71Rc+IUNsYJcjIrkfu5b=M=wJkFv!s7I_;k6e`Wsl!*FF7(r<8B6rZ;g~+> zrRY<%h5?-oHXx@V1~hx60bMRLpg%7R$X&;f#NmdNGTe~j))-RY8AH;3Wk|KUMzkTq zh=e1I=pm2E9Dc@#>KlwGLD!geg&WhSVaDXS+L(HtGNy?yjA^Ep2~7<#p&^4!C~~<8 zDIYf>d}2alR88rhpDC^EYf8$COev$pl&(~plI|ZB~8Dn*QFLJ{VX~N+jpj4YQ!$FS}p0Bg%ypBwxWhHR+PNXigul{qNaK)a#FRX1RrY})We#F z&9bJRMb;F~<7G8IThnz@8=5J!A&U_QdvD1z^F4|%6!84dB5EGbM+uC@SsbBJt%#?2mLAVpoQl>sP%;h$^LPco}(w#h&}1oFi$dE zyh!rQi)R1!qGB6wIwkO? zGyOSFZ>Bdb$@3=JX&zHv>rJI!y(!w*hb{#AkiXoAR!;Dt2djNZtHg)=uKSSaoezPk zFL^opl8V@uZVdLN`Ez{9VVf@$; z4DzGsCw}zrhaVj=@u#Ffe|nJWPl@UNbZDtR{VMjS$aDTQ;)y@a`r%LWc|84O{{WID z2axrc0IFUTK(lrRkZySZt*Hs1j+OxGsS`-s-2>^4B#>GLaZcZiK>C>zNG}fuQrY!D z%6c70Ze4+N!7_-FLW1aAS`aynRGz&v1vL=*XbB4iOl`#5e z9Y#}v!#GzmjI4%-QMZ|4G%hf$YOIF(w4Q+z-;-Hr<<@t|-j z%nYaI72)Js7*2_&!l{2%IQ4Dd$J)cmTrYxi$0BHXWCS_OBB*3!1le)!!n}16baQtE zDVIl($DIg@d>uhyKO@LNFOt4FMbhc;NE)3INq>h%(z0oh^m9cd_2nGF-Nz&8$<;{e zs*5B&&J)y9j-oGSQFPTSik3kX1$U34s!>s#{}n|SR!5OtVHAxy5k)($MiD-aq8rUo zbg3(f4j2hI_e((G5dwOdB%tYo1k^rJK%*83=-eg&sq7O_7-vrOxGA7P^#bbtSwJEG z1oY2HNEI$Z8X6{~)_5UJ=qIFy=|b|EBc$;>RBGE!A)PoPq%-G*wEv!vmNW<{wM|I> zlo=J9F!FO{v?r92W*j3PLPMKIGpd-*==M@Zx3(}kvzO7jQ=E};l~Gp>=VQEKWdDuP zdKI9L#z5iDoNE{aw3;(D_;exKFa&7o1fZC?KwYbV_H6@-JOFg&G?3F(zRXiKPhKS^|M6`1mXCrPB(eEM==^YV~ zmO?~du8HVsjfmfmhyp%~sIrr@6E&jgv`I8)Aw^R!-)LGI8BN8p(R8p|H02M9ra9xH zDSlcs{az4F1*@aUCoh`z?20DMBhl2aJeoFLiKdFX(R7>h6|3GxQ(0>?t>WB~WOXt9 zFci}|8!;KVi)mq?n4Sp4@TLQkz)F90_QKz5R>U5G2P_+lJT3x)Ui`c znft}`@R*p~E5tPXvY3|N64SO?G37nydA%1?uU39ehnUVQNvMyugdQ79DBeawg)S0$ z<0B!{PzeQaMoM_BggjFvq~1$HcLz!+d!&S1G9+{~Q$p^uCA4CZglboCmdXYRh2(K+ zV}XQ3dnM#nDxvlh5-KZ~aAu!`zEnzR%54eNa~@>y6A4XwDWT$b5~|>AmUC?qI{cI8 z)g>XBs+9g}Nh#kzN^WLS+G;JOb_Xd*-J~?boBt1x(%w)h?TnJrLXni@F;db>l+uw@ zDMfdelA^bioCip0`Vc9d93iD=W2E%uKPk0Moi8O?BqhmGDIH%S zCEYbr>bYJ@OLI7va*LEowo0jBhm__ONGY*cN?p69RJc#d8F-vsc}PkcN2Ju}n3Oi0 zkkY9#DOH}9(xtOfI#?m4xtv2II47ky=cP33qLjC>QW||lN_ds$Q_1tVE~U5|QcAih zrKli5dy2kI3U%P^rqt|6A)$wvAUEp=e%gJd6BdSnJ!}6sxb(@r?e=Qt_78!6>%D=Cc{C?&PN zQrg&qKTDaE#wYRT7%Qdk(NeM&@_P=Kl4lUVZ(m-g?o!(ABqf)n@b6-XguMDnXrNp|GZQ4VFq*SX zBY4^X2|0T3^X(-x$6P{M`Vv~ACZVR^ViJB6)68Zu?Rq7q({*Axb5BgWuZd~SIWdVi zJN45cF|F7oCWCEaTD)FNFPDnRd#;#uHu*9W>{nxQ17iXYL`*c?r&4bi0ikn5Y9(e(6uH0>>mrhx~e>CaBCS919A<z@s(*>Jonqm-5`YO?s`$I(9O`L7?OvKC1c}JH; zWO7DCt|cOJ+$kc>4I-*vETa7BB1#%3qJ{w?8l5Jh+Gr642a9O7tB8)6i|DSVh@N%= z)qLc-_&LzZdz?jk2{=CqXvtn6wLGrFR{-6b1!SDTb@?Em;b}m88aj;#;L{Bp`F2M294xxQ3Y?4x_H~BgtTIB)!`ZNr&b}(!g<%)X_7NvZEuZ(>s!em`Bo4rAYetF@h`}N09&J z2ns&J?Tu{_^e>y+851LDasLQ%kBy)+{@l*6il8Eu2>SUcoY-T|GQJc}YfHmvYi>Ag zTo_JS|AkXhuW-^7h0`gIaFQ8?Q*CD$CB6xxgSW$|{d5=w6@^j%m0>h7GmIt=45Oj3 zVI=emBQ^6dQgnsV(D$L#dN-6No(<*wolpu|8A>yzgi=X=&WDnO(j%`>dSDbve{$O5Pwun)$!f4ab&CDzx~o4e)%2&p zkA8Iht{=%y`q7nKKi-D=(Tu@_)^w%Uvlr~ zOP2+{B)8*s|6d;pdgVhauK3WceLnPe1?O^S_)tI^?_u{;9FZ%G_ zla^igB;$jgv~Hy*wWo7-c(NzudVA6>ZBJ@#@*w3Z4^lnkLElz+Q1yQvRFv#NgSa3_rw?lfquI~B#d(*rkm`ljkms&Cv#hg>JNcs2lYb zxzS%+H`@A(v#p-EQr=lt`jhKQJ*M-%UQgcF3v#7q16TU}$%TGbxzNXhE_8D_=cbQ# zq24hrq~zp6`CZQBQSZ!oj?Sc&=S(Ab|MFmWXL{-HOzOJMWZTI5pOsEzw%dt*E^wl% zL7ded3kc@ z|2y#gowg*dwWXg&ZK-gTErpM^rE}4?6lQHp`QL2l>m3^s9JHa#Y#Z7(*oKZp*w9%c zzHPRqysOqUsnD7tW?54U_YrLMwWdIIYbt+XMZx7(l%Hco-!rTzI?jq_*;~<`c1t>c z&ysE)w4}<#mULpEC9Mm!7?M_WxP>bfbF6`GR63{#pb zGo>4Drlj%5gu-h~sP`f6b6IRcz(5lcX_%17b7Oj3W=!k3zb0aYG2M$arU3@V zd>sWNlAsY4yp49L&MfC^jnNx4#=`tH!Dg30>yFixNM_w>o8RgXNc>XG|)Ju;u9M?Yiq zsLE20Hhj|M?UOFGr#%XE-5wY&Zx3b_A^`^2Wc(xwHc zwQ2q;ZJIblo4WBe8(h`3si{tjb{*ED)J5E{)=P`BJhiC(mnNm()ucPSG|4SXlO`r< z(m`8Idf1{tKQ3vIX08V5rfZNg<9<7R4XSM5Ye$r+Q_tnh*+-dCge zJ!;&hRU@+`HA=Tpqobcx>HT?CGR{$@z)`B)Z^nIynyM7_M1`EVfAKf>Gv1V|&}t{{ zbNs4IZ>}iQyj*3{8mCOlqm-#bTbTyebARPwCF+{5#NiZ5l;NaAHgEo6!m@wZ-}4{# zxcL_Y$N$A|dVjI-Xcq={=NzxLKd83(4|g#1?FRh9>z$oA zU`HoD5O!iveFx5%+kty*JMb+2#1n&l;-=s2I4Hjzbyz#@;#@DsIX`fT^$)yP{vB2O ze@FYD-_SAd8)}7r!zVRgF=y&m3^M+TXOFd^hrA8vefolm)nD+X*B8E?Pbdt6uc4sE-=!%fX^@$0g;$eiEe zM0$g(`n|z*Uti5)dWO|`&#-^cGrW1T9$iP(n^H|yo<#hchGag9o*r5 z2RrdL#`e68vm0+={(@V0(CilOI#h+rB~{q((M>d+a1%-SCid8R1FQXRVD#ndxUJuH zeE#Vg8f0HXKg(+vakvuwrIl#-=qkRk%(H zBi5f%;G0ARK6zS!=O$L*dZh}KZ7#=O?&X|cbe1n8eHOPoKZBi<&tRI$8C<*NG@{38 ztSjeh4)JlS=g-Qpa#9)QE0y8!O()UR?IfN$eFEbWPvDih;~1229M}FnhL6`CLt}?y zC^&W$yGxE@-v>u9ZR8OQ`gRyqmmbDSv%@%ZUnw8oD8&QU4xwkiLzw%a1i#HJL8(>= zF4%Su5AiX$Yvl*9I_Uu3soRg`>HBeW$37goavxe*?ZYbv_TrGpz1Vnd5031+2k*Sw zjb2&1ahlq0Ji2)oAB)_DKTZ^*va}fg-Yde7LyPd{=R({%uMqp{7NW+E0^ILafRSf+ zVnzH;^sCLsjU)5%?Ux^3|QzYVw4Y{jV~wqi_c9;(jI z!_zu>IAB{Ywz}uyjIu4*D%pYq?{3C3gEpgj(SHIe5Z82Nj1l;;G1u zSbTK@F6^-ZyT4eErsLP+&7Yh%wsalp8Lz|b1#8jTXDzNdvj)G!tii;4t8vqy)p+m2 zD*QKX6}l*`!l<6rZkJ zg8i(Q;Elc6JZ&~E#l?6(VKEw2FT&U%i}2z7g{b>s0s3^!#~{=B=;%EU+oR{=>E3g2 zNXBgZyl@td&7Fxi4$VN*i&>cPa5|1^o`(PZn~MF-rectHCVmx7!GfNXF=X5%JTZ47 zT5p_y6ZVeBgXI~V^YtG#G^Atw_i=bhYaHg-jm5N}G1wM68ngS2!mf;wIC{YdJe@Nf zzwRA|HswRn|JD%ne=!&>+Xi8a>L5IBF%XA(55NxA9~a8|VcYP&*nL_b%wN_UYqs{n zj*_0JO+8TaZg>3pvKv;l$#H|K9Hr(meC3gblcG|wF*yah4@$=U6Oyobej?g!NI)o# z$K(@nm~c53gKA<>`>ho3f0y8LbqV@fi1EBfG)f~ycrp>tv_Hd9=|bE+OMnknMq%r= zNbEWofxpVbvGGP2R@Q~$rp6HL-Vuyln!&i!G6;P<1F<9`0Id`Jadsa+tQzf$`qO<- zvcwxlZ}P%9yF796aSxn*!5v54bwlxUSJeCDg13G-<9uyrbh2{7(;ki}3U|P>vG(ZN z(+;zT+hXk`8?>5ljosH+;hgQ3xb=Vq9z1Q1hp(97o(HD5?xhKi|7?t+-$tmaZG>dO z=Y6;tpl*mh?h@;vuS^$92I`<)x;8G&(!z#pO$^?sfinu!@x&oDe05e8H7Zrmxmp>6 zUMk`Ex_^ohU%M1BdVds#9>4y_&{@Y-@dN>!?(S}QLB~_x%@`Oz6}!8;y90wTQ0%}0 z6hy@WQMesYP;5d$krEMGP(%d-<+p##=icqz?d|Q(?#}Mp`L1}k%TICM=oYbU$#-#0 zY_nLO+$0J&K8qWkH;5O%eiRG!K8O|W@5CqgMihtFi@O)piNj-RMV*8i@myAw2#+g7 z_Mu$#R(mGyuqzWQgPw@CeM`hXQ;WpeYafYg_B{~Soxdk8ymdz$T6J5Le#;k|^zy{B zZa2i?LXOxxn2DQbXN#Jfu8V6AXNs>cWr$&SuZVkIToTKETo4Tm)5K7ZbK)pS73U2} z5m(GUEiT)bB+fdNAP&BGLi8^cv<>7oH*)Uj}J*S-J5xbNM>tu9@}HT^)GzN(|x z=X9_rE%6ss+PuY5iBwD+>LJdJa1jH}JBZECY{V;Smf}1=Q_*vbp;#TIEAF|XDfX;U z6~CIcWsjWwJ)3SeWV_kC$=_$Mx(U>n>#%mY&I; z=$(-LYxCjkW0kwJ!-KYEYi!??z3qQ)mC{m^g>K z<(ym{S}^-)Xn%Dvbo8<3q3=RkL)X03Q+5inQ|7FfDO>J^DnFR_R_>iJQrVO`L#h64 zxpLZx%}S^4+m)B!?NQpq9#M`ANL0=#OH~eDby;cPkfn^jaYOlQ%3Y;Qt5_*J`%L+( z?+fLj&u^6Kdm5D({6pFGX`6B@s0qUjv;>_RUE#z9L&0`~sjzZ@rI6)hD^!1W5bASX zgonF4go6{LLYSYAQ25th5DJ5Z=wls)^tmA92wj9!-R{Do=l=;-XTpW}ND zvk}73m!pL~7sm_s>n02L`b-xFTF(})yq+gCURfllMJyAV`mPePY}N@Q-$V%So^KM2 zZ)_3VlA{Ed9WjF5;%&l<5j%wAxKrrm7AI6`?-52f?iKQ%>=!Ju4hjR09~PEvju$r1 zJSME}cS0B)m>{@XB?(V{pAzQOCJUc#oe_qmo)u2Vo)@YXT@Zc^yCk%SUJ*VyWC*z` znZnA~*95D3S;EotqM#K=!pJ4LLhSIH!kN%~;f(!lA@*N^Fud-rpnm(lus`LYptr41 zm^!yuNa+7q$n!51Zks+8&VPF*EPMJ~aJgP7Ts&MYIIVdhEE@Y#IE}9a(ebr#<=-1& z8|SEXyZJ$=PWU8@*wiRonfyg)2>U8%yL}VX)P4xnbuGfdyq|)9;&0*1#x~*K#D7A( zvkJHytHQB=s-VGnYGZ5EA@Pw0JY{@8-g8=@7q1O^+jQXPN?j%+(%2JkP) z5cawnfrW`NME)~|x&{;QsWOFW_swA2b#pkHYyn62SwhSvE10y<8ob8aKt;GMtO~UQ zbuW8ZYwiHGDvsd)*%9VdIl=yW&XAhv0;x%^us_ZX=B{%Gzu6v8J=_zPck_Z@eiE2% zFNNFMGSK}l1LaG;U-2Vv7?b4#;irAUW49lCSnCgmX9hsv&_KA_IS5?k!LZ6Q1hQ2W zP|sOwEzdf@_q>i!nHCD?4k=;kW&t$k1MD7&pwX=pO!Dar$yQyURHZ9?_}CTRmxV!b zZZ|lQ+8u`P?E&A{_Jp<5|AUWwopV@dZ-{X11Ic>fkp7LYfv)Zgn+y6u&x`%x%fSJ# zF=8OJ&Kv|I1`URzp+n$~%TRc(GYlR#4THXGzl&pm<$f%Wg!Sc1J}37f&ubPK3#=4;@ax4@C9kn;YuR>nZgyBNqFxfNdD-3os?ZUfcSZSd22JG_Y54p&>Z!|Itkz`uM4l>HYAv#!NL zqvuYTbYLgk(%_7?WxHTh{Vv!xBo5By#X)w!Zpb>h8&Zt+z?SuUU{J#z&>y=OGVkw& z0ipZgS;{`>Z@C{bw(JM(=KT;p=>V)NIsnJ;Ae=vU5K?Up!T#t&u;BY4=s1OQ+lmjv zzD`HL>--UZEgo#5<6*_Oc*vi06xs@pf(IM}A@vw^wmc32n~#I>m*Y@9_5>WdcLKU9 zPQtUqlQ7080UoYN0QtKFSTQsaF5gIma_=N)IFtm9>ZhQ3;VHUZ;W!hwwLLpM?t^=U_zKIr#MJ z9L%3~9;%AYLkDFVtUr|omklpK@yZKOS$6@R^t}j~nHM3-`4V*9b_w1!UxKyc_@46x zmtng96<~+2z(3V=@R^$qJJ1^lnk&jz6!M~ufo2US0S)ZCa^1+5MXx=c5l80 z)gP~c`OxbS!mdM@dlo2nWP!uCEciGk8&2hCLoc}qPxpv0;Fk#LlNhMpPR;gR|cHJj?;>pj;?EoC{0ZbD@3u4OsE$2It`21dk&(VNCl?STj8jA|K|#s=$00 zaVQ_0{^mo;lv^R|L5p#c(O67`A>ahVcF+@Z(YmY&Clf>dPO)%<{)@Rrv(oAAJIv z|2PwFQYp0Nl|rF=8SIEEgMfEskjt5HA?KdLUj1iKKJOW57Ci$y|8lU|T@HVn%HhG_ z=ddCDIoO$3z=@?5pj%b}<3cLo(Eduu{$2_B!>S(+{-VZ#JCpjEvSXm!dh71^AhZLyo5_1UV^-L9mJ;8!BdS_pfU9o*yX(f zE9ZLnwXPm+Ro27O(AS`M@HNDIdkr54y@8O6Z(y4KTUa~mEvzhf3uD~gfqTR|D6M)2 zvqIlP{r>mRllzy&_WuCl*$+^t`4R3+{s_rAA7PH|C$L!l36e`bfxS-ytcYoVtXBMUnqtbLBs<3uuRfQSH!D*$xgioHf@? z1r_sEFzt{ETIQ?Z!Uh#&R;u``t18Oos$%#7RUCgq6(@gC=#`*}h4(aZ`d3Z-Y^#N{yJ=w=_puDzr-czr3v=tW@Uy-)ns7f% zw{hC&8Oi-J)3mX@RGTw-wDGvR4vy%ngY8RnFg{)fJ@a)i>4Od$n{pmqs4mh(U2Kci zMW2hhIN+%+PHNM|sqT6>GF*>4%UV}TwsWv`wj7WwjnBO z4KYo_2#w`NIAx#_rYtkU$|FYjFV_goUmKx~t}z<=8RNGh#(00FF~%J;#-4e`*zm>} zx9FLmp1%oh8ft>?SDIj#V<#rufgt6txEP<1$lxd)O3n$rPhsnqp@S zGkhyC!wr4SPW zoNd?90;@(_;No=_*mA-G=jK^pNxcPnYFXlJsU;o{x5T`8mRPpS63Z`h2Hq1(O#5z$ z8?3CbOQ;n#jkdx)Ypu}rxD_VkTA}evE6($ajXrFx?qDvg*F)S*#@^6aUPzZEvgK(<%}s?RK(e0hfB67 zDYiweFShv9$PV}U*FR*V6CBWWy#vM`b-=gT4(QL>c{5uaaF>N6o(^)v z)IpATY=I+gh;_t)=N!@ao+IYIam2Ce+)v!a38!{;!bfAB&~vpD&O7LYr!t)IZiy3C zH9BF9o--Cnobh50XIwX#`j^1u~4y>Z1^DsH&R z-VL{PaKnhfZa8h88+MFw!=H(6m`ZN=ANQSq^3@Id8@S^&FLyKybH|}$-7#jlJD!bm z$LzE2c>R_;p007nh*o#(ZR&w4-X56T!vmEQJdmyQK<_;sxb2(=KD*_CCN(^~#RCT# zd*U#uC-w^CyuLA>*t*0MukPT!{--_h7kT2wr=Hl-=!v7Xyzrcp7k=#Eh1LVTFleS1 zLWCCvAM!$*OJ4Ztju)oA@WQbzoF8B)!7ZK=Y(oi7879H&b0zp|vjpYw66}3Ng2V1f zus`SeDOx0`Zz#ngcPT~)Qgj+D=o)kxwOL1kR6eHDT7-1{J znf@~D+*5|CV`Z4JNQOhAWmtPuhNG`={@)!LT35?(>{l7aYRU1OJ!dEc$ni=~IUXJ( z$N3B87!WDPmxtxJ;es6X^5wYYnH)cSlyfeH93#xV@uI{VAAmPL9q5gZrh4O*mEIV+ z!y9{?^v33NZ`^su8!aonaYv&!eo^79Know-Ao0O-f)C#6?}PUz`C!gcA3PcDgY%F0 zpe)S?OLKj2&SM|^T^T(sO5`^EU8)e&EO zbdH~sFRB&s>$Sev(Bz9f)%-Bl+z)Sf_~A>1AAbJN4?m9d!zZ)+Fm<&b&fV^Z_DB6V z8^RB}lOM82e&|x;hf5m$@XB95tTFV*R!4vQ=j)HnojBv7zdt69_s4Pb{ZV7RKgP%U zqvJ7uj6LsW?S10&tsU08aJ@KuK@_R&aL4>OldhIWYhu z<_F;0wE?Ky9)N2O2ViPS0Onr}zz6x9xls~;i7x_pe-(hz%sMa?SLr3xR>47+J3BMi@h{Iw7(fddseo5vGkMuz7d?OI=KMcgM=bVH1IuKi% z0WhQ%)S6)Qj||4toxx~yC>SRv1Y^S4U@S}z#=1gCK}Bbjj~ihT$MyNBRl?+_dx9D>6+ z8%5bY1oiud;Qb*XxNHpnJ%#g9W{054;t-s$Dg;v_La;VE1l4zip!tCiG&#n3j!7X{ zayA6_alT{s>->672+qD8f-fF~VA$gj++7}mk7`2jdwmG%e&lgB@n?R7;L|@LcwAM1 zgS8ddY@oo6W(xdct-vXc3e0p4HR#R@DgQJ~=y1%{R? zaA27Nhd$-s^-O^-1!i+Gs^Y)7L~uFEvpFdwIUB;i~?&; zEAU$)FS8R0e0!ANcUXb3JYU0j{=VL&z@zP~Z`31-hCk@F3TxRxJhgRONcb^(>X^8+{4E+z*@w#Pu+S>*GMKml|9@lewM- zbA7$U_12o}?>w%@7q~uGbG`m~lK=jstl!T80Ew;eXYIK?O!+tvBKzk*POvy7&_4#H~{LHNBW2%T?prcrhf zcD@*dfu}gv^>7frhz-KSn}V?G3f@M|3BnN*gRo#|5W4mb!Z{d(i2*@)o3oFe+5}-K z=fdWy1mU6Yyd8ZXh{n}{c&RuLJKYMz>(>I&`CK3_JI;Ua4#c-x0#SWsAR5jIM9uMm z_+elmUtku9YZZYgl?GzI9p}s%24Ze|06I7Gw)=GeracS5XZHfIQ4GN5v;cg4A^>mg z4#3@;1F-Kh9yUDyw~h=zy*|7T5CZVIH|H!l2H;qu0Nm8h*-A}Z>ilub6Mvj=%O542 zwe;dN=inajM~i5G&W7_xm6`rHW~4tR_43E^j{f*t;*a_^{-~?tkKbE4Z|NOp>z4ar zpSyne>6#y|N%6y<2mEkK6z}hraTf11KU56$!x7#5a7G{xck#pi#(wDe&lf*6_~OYb zU+nt87mKraUwg(EuOIM5<49i|zQh-|P4dO_1AI|LU(AyG;wc+nT&v}a-M;%^Yn=}s zDdzoojt^&``k?t?-oHorVCE7Z{5a7EjdSxr_sP;56FB!NqEU|hD&(kL!0ndHa_oIf zjzuwY?6y>nrzgnqdmlM(cI7z1MUJcV<+!OuhO6piIR23g133ScPYGJ#kgD2Og>Lz_T|!F!hWF9^B=DOO|_J=W!nRvzrGd%D63S;(<3g zdrHCW-*|2ZH*$M8V7EI?UcnjFx!GqT+y-B z1$bX}Y`zOl9PENo3KxvGb-|N=opE2CGp;Cb#y)4AQGX|2w7JL` z#}9MH#*WT7-`*Lk|2d)X$_cj?IAKAm6E^Q~LgR%_Xg|aWtrSkEYU6~}za259#t|po zbVS`#j+{g6i1Jzd7|vN%zK%G>*b&cub-*vFmaGFF zQgy(7_4fGnwmnAiF_rFCdt5);9_zyGQNcM^s}1cj?Xw-06x(6_WjlPk#||r(*kR64 zJKP;&heIvxP@6Na&ONimPStZ?Q)D-83q;^PG?yz|Kt7eBB>!?TtcA7hEuGb}N(hb6vpv&2AEOI%cI zfeASlc=IUdzpu8yCnGJeKw*KY<`%e?kDI#|o8yl(bByP#tiV}(EZx%_1KiE=h>AIW zt1-h)jPtS%n_=>DGt3`ih9&-HSY%+v`zKR8dB+qNoifGXjeHzG&J=ejP0_{56wfr9 zpi?m)^Pe}tx)>Amo@RnGyPDvB2NO*HX^i=0TrL~q)mURZILjF4^e{$$7h`<;#|U?o z8=)k_2(RoiLZ3NCoQG+Itu98`tIZI%mK&m&Zip{-8sfKEhWNX?AvQZ1V%0ALyjEs_ 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 Zo^H;1JEX4B`sv*{Z5$R?kfNuM6N(~8C!ROmQ^ zdd`?m8xKsQsJm0?;ioB-YdVE8+$K}>=1H{U%0wDmJb^x_OrV_u#?#-W;Q$-U^r$DR~y*pp6U58C6|oo1i!Mx8Rc())TRI&R}cy~cGR zwzV_4Ms=cuJV!F^a3GJa4irB_Mm0Y6WPH<(dX?FdpvI%04fR@JO-6^UsQNCiEBDTV z*63Q0`4Druw@gaogUqNvA)#?qrj%r4N~UN+D_0xyxi2I7m}W=@Uks>^#DInm)u%CQ z^k~F6UF!EhhfHd<>9d(O-5sVy-fK0f^LY(=_CTFHYSrkMnHudKrb?}ARJdKIOxfv5 zH1fqi@qM?y;;OyB#nQrdaez~sxMNqV7?;-~W;!;D`P&-BjGPAXie0_vwduR)^t4vY zwfrhBSpQjk{h(SLDX9{}SAP;e@PDQT@5O;jE5zYRZ$wwka;^i}0Vqw)&v3bZ7QR8TasPpEb__y~1@srPe zQ7mMlUnde_t3s@PdQbGXND)ofB#Gzfj;O7FTimcHLCj9LB}$cVinFH2iAS!)h>6YD z#hg*s#Io~O#PXU*vB>4Jn0Dl%81Xt>+|)Bnggqf*`?CvTg6(;6j@Mc7*ZtGtal=!h z<&qO(SmJTfR5?)en|4&Ji99ThYzz=Dj5sKMI(q`6nz9=%g!W44Kn zHJe1s!yCl@-PVbioNF;fyVJlhmG(T$2{Rkey|ovIW$ODhyl zFO@1DzAaEN>l{Vu+zdtX1*S+UNmitoCMalHjNU6#&z?eb)1i_82TTJq3XGkJKoPVyzu{p8hM{*(8-IzisYajv}X(kl5H+b!}b z&-crp9y=tr93Lbft#wX5>1mj}kAIZBW_YZ8$G-&m2bLn2?Mjmm9P(Ih*PJ7NlUOMC zT3;qF?*2}$Q(YxDiTWn5UDzZ)YuPS8v_?tjk)q`Kj)P~*l`bD({-(|eE0^z zC~T7u(!5ppJ!z*PMDG#0EA1DeZu$yZa}Nmf)DH?Fw*!QXg@=XL+DC=A$;X7;rN@P9 z`X_`nij#uX%F{x!(OCi5IpOB&3xcL;h%oVfsIc2JTsSAWC>UfJ`%jW&<3Z| z+*Vtz3z~!UV4;RSM3(Bqix>lF-f0M`6O2H~#u&bSGlq;b?yCivg6m=lRP;52^-5Cs zQXqxtk>(KVZ2{khTY{a56~IR;7=6bYT>WgoVY)3eI@m$N4?CFq&>ref%D{Vx1H9|& z2*N){*q_%4?nHEk!gXDs9Gsv)rz_lk)fM)|bc4a$yTj{IJ-|cK6Fz?I31e>ef(t&q zp=eScXtnMOT3`EuYHC0De6T;H&KLlj9h||u-Wjg5fna}h5ctg=4EddhfJWmG=$h^V z0|MpXG*oOGP{TK?tX~Q7>2)EZ}j(|)DH;DP}2AdQk zq4U8}kUn)ZjIbF4w`#_K(%rED`^LfIapPf)WCARFHvxvkO@y{Bli1XESHO_EYXKeEv-M(Rmgeshb6wsk33N?;J=OKNo6D=fU4M z^PuC}e0b-z0AhwLgxN}q;9J%rSbb_SWX)Xy298TX{&gvgzq1U6?OF~tBUZp0?UmqH zxDxb3R>7VntD&%~2k6v$KsSD0e2=|rz!n4};OF z!*KcOVQ}br1Wq410?jo?VAR;75D;?|Qnil3E01IFHR~AEb_;~JhXWz)b07qbJr0v& zj>A9AAh@_X2>N6O!7Zl~U>$G*c2=E$%#kNS?dnPBr+Nw|E;|LY9-e|}veO{=oCed1 z(@>6Q;B?p-aA`jS&*z+lY4^^;W3zMMwB;OZFFFS){mw&G(0Ne#ejW@aTmbFZ3(%+$ z3^^-;;nbsG7%dBduX{saPk9LZb_s>G=R+a8DHJ5r!eDZI7;MuGhvOdMaOz1o_&Y|x zN}mXDeiH!=E*Bx}+(j7JcoD?Om!R*BOK?i_GJIHm8SEcihVeF$uwq9fta%X$i~B{v z@W3cA{u~8)ZdYK(r7K|6aRtuJx(Zr%u7ZdDHAwcj1`Qe4z})^i^xAbD`jlJ;+kVl| zb~G9uRYk*&VKHDG76Uh0Vxa5PSU45Ob7|D#pvU4kn5T$??WQ+i|N0xSE%OGTOuH z;5O(b--b*2cffYl9XNdd4pd0*g8hcOFe&pcthP^rb=#9*VSWE1JK+3>-pc=@NBR<`O#X>5qKa~orKc~W^p$f1)uYgzI6yW0~f^nz_K@B4O z98EATf*_!YAYmMXN0%5pY+(>LAr1CLrUAC5LDj_jurumD{A#@qODCm6a#T7rwWfph zqzBM9>H+j>eE^b)525<&m6^{W{Q7gS`}G`- zjLUXGK8$;p58e9}K-2yLxL#NQ!yOCZ$)-XWkWmPSOpD;j@*=3c zTLkT@#n3pT7>ceGLugYmOmKSvRi|ITs*f+ApnnN;@-2ad1tqZG{v{mqdI|f|Ucx-R zQm~z03fZxxu;5oIl#MO}I9CRTK9zyk{}q(@ynP9*UCR!(rtQ;56w2#07ro@r8{|zoa`vzSk-{I8!?@$@_9c;dS2YLTGaNSV{PU&^fqFxVi6YF8*nR_NspTRgu}Cb!rIWE;9T(&-Z`{__sUkNiD`uq z-&(=1?=QH%=@%p>|ALFZe!)g)gRcA9Amc$BxT&^7%&2x~Jk$=doOT$X*8$xpcYxZ- z4tQMH0UoBmp~3w(EIj`kZk2Mk&f*XJp8E&dL;pZ|`5%b1`3n;k{)JZ&e_>+9Ux>2% z2X7YrgN}>;;7`Rr*kq`Lv->JxpD9Y%>ZQbUo|SM>yb}I-u7p9~mC#6E8U1@HW9$EPmp=r&6o?`~E{$tiVQ6|au5x$0Q)Ssm3iG|;A#26h>yfwF}fsJBZ4 zzns^=dv`T(djZdN{;q*J+M2k~NfSSg(8M{5H8Fj+CRzk*;?g8d3@^~ctZ$lFrKN?< zowcxOm=;zp(88xXc&_zXEnJYOg(lCmFtvu~TdQhgshu`X6SR?LYNNR~_wWL>F)~^k z^B-wr{abDP_e&d}nba11O4mySE;PWIMT$!(fbzgLFwVEy#+38|$ zxi0RSp^Nv{>tfX*T~v$GMPAtzO<(GwdV?<3XzQV(lOFDM)x-X?_3-6JJ#I_sVdE7& z^i0#k!k2p3y+IE*X>&8rQ6FCd&r5gL$3N?Nj(UJT)?CuZ$Eo^wx=i)?5i@bI;&tlLSH24BuFp;rc#iSU21Z7tJ)obPqE$++&7QPMD!j zlo?)1Hp7H0GmI}c!;5uhxK~+<6D3mA=_*BqT#BZ;mn_a|}6Yj>=KyIQOnO z|6Jzys>B?XYRu7`+YYwc7HDc^foWyOH9qR#P_c)@z)ni-VZGCrzUp=rB-;mixqC;WcD+f!raiH@C)+F4j1}*&1n> zH9AkW#?blP&)_cM;BD5p_JB2>JZX(rBCPRx9AEaHHSXfJ#)Lv^)UB{a@vAk?X|={` zRU2GxWP|xOHrS)P4Q?G|g9*cJuxyeIHyCZOb)^l~dE4NNy*3zo#0J-&vq4#;4QAZ5 z!I`Nx-0ZW#(fKxb?X?XyRoP&F?tCozZG$^CZPDMv7JY1O(W9F!4s*6et^aH>eXK36 zm|=@;3vF?)hb=a2vc(yDxrunl7OPI#q9oiFov+*C@I+g56>YKmV_Q_qv&FnpTRi;1 z7W>uOVrH`~PWo$$8Jc$3)z}VqTiN0LPIg$|%MOhO+o5cz9omhxL%nHs_+_pgCNHzY zjce`DYKtA--D8Jv&<^h$w?hl=Dz3k1hqtfWVP(7>YTUC!^K>4WcBq+ehgC26aus&y zRc(isb^Nt0c8GuMFiFiGt@Z5D+teOYtnBftgFWhZw@15v_Gr)D6vO}Qv5wn}G{GKs zOt;6*bM5i|VtX9B${ruAv&U|m?Q!2udwlF;kG~G`bp_gUKf)gS1oL%Vw8uYJ>@k;n zEQb^9abPmH9z}bc^S~Ypxzpm3YmY$%_V}WNTaV@T*z>(Tx>niae_#3Q>-lyx+hh4J zd%VDH7dI6dzSWT7YF!z=GnCNfjhhTNj*;Q#@iLq|S%z1+9rM{;hBk9#_}_dPPFci*+mipS;Loj=;TKQ7 z%sT$u2ELrP486DTpWFCrcgpa}ZoWQlP+IPnA^6E~fX5VeokwmS2#eeuxbFg!1MrA zEMNC){yy#e{j_;#^7n4$+ffkA4IREs?tI&RpOxWRzO7b#n@{jz8w{a|!sGwYXKu3RhNwL@thC3qi|w&wjy?9}ePlcDD+#>Ml(^bs z?O^`<9+TX?|Z=epn~^BC*CIy@V=SP`>0N-9S-Dub`tNq zvv?n##QXBV1pa)q9TxCD?$7&rw;($t-uM68YljK^SYWiy4wo#q!%Oq*_;J_{Yxyzb z7e98i@MFmP-hA24c6iX*4u_i9;b$#7-2cy(8$-6Z@0%@FezZmTD}D^ix5e8}Y_WuF zvF5fdeu=i_?Zp=9j4d8JVvFN___1z_EnZk-i(Qu3V&qI)G?-wEp2KW0X^<_}_pn7v znJo@5vqeFNAN&5TCR!t2vBpv7t?|Dj*4TBAHU9Im#>}PG=;LmUPGk78a%*(!WsM3uYqU4E#;vOS z??;Oj*4J2}>1!+O`pgP@-nT+~?lP%FSz*Z;D-1qph2ytd;WrN}+&9k(l_px@CRZyg z?qh|WWmdS-nE!24vBH!lOMF_%qr?(Zo?7C$dzQE|#u7V+SYq)JOWd@}5|!6l;{N%T zSUyA*qwOEE}Iitm4zVW)RyIP;kq?ogQFvFm1d;*1#{*l&ib*P9`K z15_SkhAGZwxIkvcolCx4n*{5tBsi-`g7NpcsT?Q4J{Kf7`+x*DZjj)v`4ZeRMuLl- zB`DZSP(xROkA9k>*GE&-<1TZE!W1p8@iE{@Q*NP};^5V$xNW*AM!T9~b~jTjH#NnI zzb07p#f1A!CU`X61gFNCpvE~9yyatpBiESVGj|glHPi$Xy7Muo#01^{8smx2#>k3{ z@f9=1n(N%2I%$k0yNoeqg)ttQY>eYvjIqOk`&7EzrfM-lMTHUe%`(FCw~eqa)Ch<8 z8{x+FMi@5Bh#$Xd`vA%HpC)6#@-fSh&mg%Z#|ojy@wg% z`fi5!)W{Hx+6-{~2Ls%eZGdNP8(?GzAJh99;7Lyd+%(MqN6HOQ%fSHCv}EsU!7qe@}gkGSSDRHa$#zuZQuOdU!To57(X3!$Etv zXSGZZ!^i2N&`*z#ll5@iA6*nban~wG7dIv9V(NKatly)H7RzDuri(p0 zbWrbu4pwmED)J^b!%yqrpY1w$exVM^+;lLkn+|Fl=%7cFHl~(oV|$u5_PL^s?uWH; z?Rst8GF=-t4AI8B!o0h3#^C)$!>86g)bk*@{of>)-s$q{L zH7q-?hC6nup)Pl_PX5Qeb_Z@}sjA`gDpj=3QpE*vs@xh>#bhs4d^S}TO9!Z8u|$=( zR~5Wkrh+>}75pz;1zY#3VANt295!493msL^T}=hEtCX>SCO`k?e%7la%4o^Y#V1Tu z#*Mv|@vwn1o~~EI69r1>b6W|QomRpjo0ahI3?)`GQZ;&>2K=ADj zQ1fQvSsv2QJWFyEIHiEuoBV@n$0c%hGfR+hAV3p<%xc{gD{_bsn z&hiEr&|DAQ66!&1O+93Fu7@q}>OeEJ4t(9~;FCce^v?bciw=B;?YvIG_SSE(`1UvG zyY?GYcm4(kD{4V6xE6L#tA#?HS}=P26$bD93Zn*p1rA|>Wy}|NzvK%9S$=`eMW5ly z(a)gc_8I1O)WAu84J%=74czNg1JUKx;B%%LhE1r3FDksgf>;GD-c>NWdlf{zuY{Ku zDxq<5CA6wnLM8hI;^t4Vv&ScJ`0x>KU-$?;CVzxLUc;eO`~bS%AD~;;576iBd$2k4 z9-7C#hvdKSU~$qrX!PXuAMD@3ix(B(c(elM4XuFP&2J$f_ATsM^cH5Dz6HCiH;}jI z4Xp0Z9j~f#m>pUU@srEpyGl8j^Xr5?*1m?W_OHR9_!U$Hyn$PzaMA6u@ck0(j(D0B?));gf$p z6c6HcII8nt+l4&nI+puh{F>{8*ynJ6?sKrwc@8VZXArvP87Qot!Q-4<5V`Xe-Xj-0 zU*~|s(HwXp&jI%@*}U#ZHVht{4ToE^;K}tYsGpeyYU(_aGU3OvOvpCQgyRpMg6oE- z@XGcnEPeI_N_IVgLEWE#Z|P%D9DEFKogc&Z4;k?FL(2vlk9z=tvmd~1wFi)KI~^V_N{1V|>2M(RK8#t(uX!8ahx7N-z+r6~ z1e>S9p9}_*H!?VG!yuK{Pbu6&P%0zHc_u>K4iUC<3#@+uzs|l}0bX4d@S`XdmhMZ1 z``uGPyM)(e*?$jK_q+$YUZ%iq-xOHWD+NZECWDb*GGz5i2Cvd2Q1(lL1HF=a9=oV?Hmr1a>78mF$@aK z!eBRrf^=ypL~4YB-OUgkv52d@#Lz?}0 zIQ#eQQ5{F&;l-m+H2f&MtULnG_*`9bk0WsM`C(YZeKC8}!%&=j2zJgn1STB; z5D^goHp2qo_{W3L=zkE#bv+1Yvi+fOtv@Im_(PY(1Ax;H!02W_a69h@16};U;bb8H{fPLN0L zfNh_)Ls*yX5VLw4T#VhyjjSy&y!RGp@Y)QA5;yTVV{h|z2C#1Rg03!J zV6$^Qv?cZt)gY#=g6Dr$LaysdxVv`+_@^z0 zVSkoEH7NA3?Fwc0!_t2u=uqAOouFhwypCaCutt9g)|(2JGe**__MMKvppoO01{Cwz*S4?ZRZ( z_hJ%M8BYS2DHCBw-~_mqJs#3E#={f0aiG{g7DCg;fJggi=rm+BJli}9mL-ma>ThoR zZ-E=6tQ-NVQNzKtVi>Hl8U}l24F%uR|G}0#S3bAv3Y|wIeDno4ktRToHaR2>ltZtL zE^y|?5cpa>82UO6hUE(f!J*)R5L)aE;RenSG;RQF@b3@9())o@dtXQ#*cYa5=mYO# zd&82-UQl4y3;NCN3BG4~z@z8gp^4X8GaJzjy6));JyM*&uAvL4^ymU*%R9rxh)yu8 z)Div}IYP*I2k7iCgUB>{Fl@Dh4gKukp{FgVU9kcA8*5l%W(_+hTfxCYmf-im0yedo z!;Asu&~2?0>aUnV%o_=~bF-{zk|`VvFahm!WAJS?f^U6|V7!MRgk3g(cV+ruZmbV( z+9*Mg@A=tH7OE z%FruF2?ibeC;VyqBP4kI7ABOo3x%WFgb_)t!bQiQLgmS3LHe&z7_k0_Ae7e&ea6)Z z`uDyGWu0q+>fO1~z2>Ty-bJQpQgQi>GTuDvAmco`v73=0<#|uP%eSqqky{ykkc&yL<#Xn~kT?B#E)R;zly@ET zQ2wA+l+QbvB>y=uUVi3PwA^`Lr2M60n0#O6S$U6jLGp5=!}2r9zVfJ~ZSvlKJ>^+r z7RtAtnkpYu?k3mnGDP0!)kEHxYAe@OHI}dVej3Uq?LE*h2S<&YyDKcyxDf({CQg~is{Ka#FOQ_MO5|?mzw&DCfEJM1Q&l%o_kPCTzE*7G#nO} z`yCZ8Ndm>p>&L}%mlI-n&PnmRSp3=kM9e&r zDekq%7A>N4#E?PH#D5vj#R=2%#og}UcX@yPFDarMy>v4=&eSa7XOoag*n%z98R zT1|c{PARVtS9`n{m$!Tnhx>gJRSc`d>tWSmuWp~kb4g#scf)E$z31OV>$!EJZdJYb zX5$a>#P3G2)8S?@*z~7Zcd=FM+@no|vvsf z_GURX4iIQtqd=9sd?I=y?d|7EG4-y*;{PLY{ZP8xYZz^;9Y)>bhEuM`2%6c|jk2rU zsLR!nv}V~T3YLwg_=?eVGkgr4nKzb}S&Spgm*YrrW;_j>Hh~fiCX(i}i8SWOB=Q

P*Vu_qRW^;rF?h&8CfK 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%0A!~3-9p>m;3p(=6(Fx1vmI7&#&>HeXj7| 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 $QNi7Xf)Y9=4{CsOIy;apxOiL|Y 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ⅆ-~PBeHWsFzY0ryTZJ6=7U8VpXW_i{ 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

%hKa!4^jTCyC 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

`R$I{ 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 nNQZXZ^@pdZ_@asW%*G>9ec z7{az&4`n}3s4|J08q@V3$vQ@iV*ZJv+2`|`?AH}7mX$M}8Qq`ABA!iR=iW-#$pWzM zrBj$`EGupz=EVW?6mv3WMD|RsZmAlx2ReRXI zRr{FY>I1B4l@&`{WyAWfI>e^0Ji-R7IL6K`vt!LmPBH}}2X@=gkqu8g%`)Ph*!VbS zb~46=Nuyj@dW0Jb3_HVChq$wfKo4el){|ZK^Eg8|9xY|j*SwR0+?f2qv9Ny?_w%GmXvX>7>1b8N-O z^UUf0=<_zuf`cb7#zzQ>m2 z-e)i9fxw*mkC{b0WEMV;n7-pBN`pxY{e$*!wkG zqL9yQ>+;!w;x}w&{##af_Z>67`kp1Ed|c8LEvdUs+|EYwXdib5K$t-2f$v>EFU>VDC{K-D;|HU3{EN9+^6--Sa zU$~5@Vp-j*+3m(^7FArs44>Ds+t=$@pVWFbDd0C#vu|L9JO422)s5`6eiQ4g+0452 zX<-G;EzG&Nl{GzSW3w{a+1j|jOxNQdJEq$K*DrLy_mK){3RXZ}S4F(BS43QmB35tj zh+pqIV&76FUTqjOWiPU zq%!sdD&x3PcN{$09m~qPqxYsBxc;~Ymd)ykyO(-m^vGV=8_)}(ioKC`s5g>Idc$>n zA1t}w2TjxZ!bjQ{ormDMH@yBwULiWFo>RnuueL7 zc2EaD-|3)it^|+LBsklTLGL8PgJOp1%K)D%z#Y}eD0H2SFBOxKyKV|xZ%l#q=&8u^ zo(iq{sW`D|8svG?@SoOn-1VQ1q(9TK!(122cXbgkeg@jk&cKq!88~6C2j4q-a2cl$ zGk<*yY0yW;rkR+2YbK(`%tDdZEGXB^!oc;jp?G~ZUaQT4o68&wEt`YDWphz3pNp{r z=V77UJQ#kNhjH`fqcV9ug1auj@cj$m@q7W^!T_B@4KS$L0NuqA|+; z8Kb}X28_7A0o@0i;N2k;xV|t!U+s-J<+%}$zi&kIyiMp5y9o`=n{a2nDQvhYI`lNd z!QE!axnqWMHFLDsnWHS<92q*BvBPUK>Pt4mV$K#^ir9kB^;__B`BuD@ZbhPk1y-6` z;Nukw81}M6z%EPNxMhj^D%+55yA5`aw?TdMcBI*FN1r#_u|azW9Ncz@c$OX5HFYN@ z`0m8BlATyRa~CLR7wUiQLjU=@1zy{3)Ku@rMZ-NXirIs^^?RVUWG^I zAM_LVp{8*kT$b-gL*jlIHtoleGrHAQeMwU|wc}FnwF3``IF;$QCE29D=s{A>90M2$Lor#>rEMA$@Te zeAE#{96o|A_m80CkfU(ha}=f5k79I>W0-4x4EmRjq5r>Qc)0R7%;S&adChTwEop~k z0d_Dcvco)f0$rU>;NpuD&>1P>kE~AO>CKZU>uHZ7GkaV+Z;$;g_V~Nl0SCeyaQ(Xj zN+zE|h0`g#e0~bS!yO@XWAJN^=-lx%633l}_9_wMbo4ZO#hk{DJEw8(=V=u5c7nn* zC-gIOLSJVm{F6H2^HV3t>YZSr;tb_E&Pdqq3{5X*M5a5VE#Dc-Tb$uD!Ufk2T<~^} z3yS<)@bR(>^4<$<%XSx-jdDe=MXpHS=ZZOJU2)@zE5?0rg-g3Do~XN_qoEtL_PSxF zpBrYA8z#MVL(djBd>DQPA@j~)_Kq`n<8cP27tY}M^D|)eXW%@@9k*tG-0?(;n{VY?^v&Uj*) z%oFO5Jkeb4iQJxEIIQD^L94wWwe`Z7U@rt-^+Ls45pUMyg}o}?@YC}~f~g>TaUJ80 zy*IrvrO+GY|GW_}(g&mG`5?u@2LqgaV3X*B8@GM%`OzK8rT(vzW5%EKK*Fg_XxySf`%F*1Kmh>)Tm$=@5Y2 z;Q`p8AAly40N5Q35IC6uSil3s8WMmz<>K$IfoL8hXnr6{w*(^3J`kP}ftZ~Uh@w}4 zu&oY6P4^&}Y6annL6C^k3c@6ZAgqcA!se?%*z__829-e=)-4!cM+YNdZZMcxFmjFs zV|tLl7rhjW-w%T^?RzkGb_jvXun_o83xV6}5bWI_f|>3iXiEq|+KmtxybHmT+7Qg^ z5sDjl!?E#U=wT2BKl3oO9}UB% zvtdX|3&Y3TVfgnc41F5H(7RVSS~bIwKPMcKCgE6N6OJm+aM&k?qv?7$w!RKWM!C4| z7$Gn(BLo&?1XeAJz@qIDm}nn?zd;emIUgbVjzGsx5%8>wKzp}HY*vrN1>H#eSQ&}l zyCO0AR3yfRL}Ji|NYvksM9zmu9IlDP5CMplHarSiQ=$;GBnlNT$7>@ zkQF6xO`~A@Jqm`cQRvb)8X20=Lf%E=ddFZ@d_#Ng3?G5Gaa)YZhGPAL{2hQ#91 z#8_C(jm2;gFPgP07V}QVBGWHc;F-o^&(&C@{1=O7pJMU7Di&o5ariJG4jE(P;G`D^ z-Q{ukyd@3?ZR1ek8ix&Gage9Qp&>gCW1q!g(bqVvt&77lrFdXaJUVH`m1XE2!#)L#@=_kT{ zNg`fvOhk`8qW*Xy4BQ2UCPI>u2<0n@czHV!t}hcY`fDOc#N1A7PegF{B$TNnVVqVH zHcU&xA%i5GT$2Rrtw~sOFbV4RN%-QKgfn4DP)$if93`RGtt9MwnuMz#lTh&^3B4PV zFj6rYYQ2-uRW%u3wUUuMH5tb9lhLpu8K+H?(Yz}en-3=o9WYs7B_~5QA{o}xXSR3zhdV=~rtOu?OADNq}lf}LYh5G_f;P5l%+HB7;y)hW1a zmIAL`DOhfsf_D29M7gJ6OkfIPqEnzCO~G28f`IH4_~Z3<2_ zreKOfDn2Qv!fHS&YKEs`^Vn2mNm8Mpmx}2N1Wxa=RP0`#iXEF%v0_&$##pDK?0707 zoW$>5skj}O3caXQ#3iMo_IxVXl~kDDNX5~+sc?9b3Y+{?tofXZktL#^@>ICgr(#HJ zDxwsnP*#>=S6?ak5Gl$=NYP`g6vHP;p*mG6;@744I$w%ZBPlkmlA^^}3U_lU6t_#U zcdrz=)>0@OlY%)&v0TJjZ}602g})RCkwPg-irev09849@xgdof7x!gKVR=LJl_y2T zeJKV!kz)KyDYV~8q4r6N) zhV(u%To@oj*bo`4RArblQidNIGPsYGiI`Ct{3prK$YfYHRb1=JkgG4l=h>poJQ=(Y@7V>5p^0vzG$x?=I+husWQ-*81 zMIU=*FxW3c^#O5hB|{Gz860h8C_E&C_7NHO9F-yPm<+PxVvKe&#Ga7B;iL>p>}61L z5Osp)pOOizV;QD8$`CB*t00xrGRzgUUeE?Xiv*1kR3m;%6SPWDiMVH{pts@~Qv^AR zXJ(3L7l=OUL|?x}pCzL2JTV3zF_wjgWvCEiJ1xf8(OQN>2W5C6#;z)`p4aaYgT!2hU*a7En#iDKEXKQ5U_!4JZCA+fc&QAXjbzXfG4_iVi1#~J zhB>oj7^x@T$28G)vKYHWTu+qY=r|FJKSqWXqr^8;6Js1I6MC@tpZd!%skbP*%b?sv zhA)cZ_rHR7TBIm%km6Xa6g3r6n3PFzu~>@Q0x2{;O0nRL6l-3Hc8{f)A^4}C;G+-O zg10gR4+{Reb6&I&{3a3~pr_!!4T2BP3VzHKeECH1=L^B7w*|i@+DKuuPw?FiDc*0E z!q!Ca_G*C@uvChC11ZMNmSXpGDZ(XEWQ-H{jFKW}m=w|hQk?23g+XV5E$}xL(T%Cl zu1UqkvQ(%RrNZt*D(=2a#ovdi7<)Svv#+PZfKs7*E)~NPQ&AC-iVFd$*yNdt#?xXR ziaFeFm5QBWPTv%BTgf;TGnR|FYanESek!byiY?>Bb4I3$_m+wWJ;hvBN`-Q33Ic0W z(5);5Rs}*f<)@&_;}p!uOTos>6zsW}g560eSRauB=AVK#*A!%&NWm8C6g2Kg!70-e z)UQf`iI89Cg&eCA@@#}=ioh>U!OA`ETwjYz~|??lwuC&K4oA_i_v zgx~5!G|o@N$|;Em8K+WR>+`o|kZ?V?Ri%meOUjj}# zCg7h{0uFCY!24ARm^d#1)+_IwL-Zvs9kB%rW19Wh)+6&{Hj&XF)Z5Q&NnkvK3v5??1q!eFq#$ybO(VR-}w zy^X+}TM;lh7lCcT5!iYv0?T&`y>d+i+VmrEb4&zmdPiVjb2!d@6IlCCM0qtF{o}%g zJ|B*3p{q7;3dcBua4gXdhuI*Zul@^zaakBtXns7=~!?Fc=*ULz!6^>=uTh zRXYq;gTnAe;CD>?5sD+vLm|%$#pk$Cw7Q3)yLBjfnuMZ*(6LL$h9akTD9$tr-McUZ zRriICeklZMp&^KO2*JP|Ap$ca1o@LiozUM+6+__pGZ^Pyh#Uf$!N`jZ#x=KKB?;!dN8uO1jD>42=)0vIGG)UhJ+wkc!=Bs2ZPXeeGt~^3)~R(AW)YeJgE%C zhu494pB0FQae=t#76_Mpfmpga5S^z7;)-e@)+q`b@F97L{XK~~6S!Cy(#YJHc1$dvuZtJta`m?B>aTc*^XEC?qS-kn-5A!Gf zcrW+ILSb8_+WDi|+#hr1`{TH#Ka!RGai_`;Z(jM~V}`KFBK?qa$`4VNe%Np52R7bM z*yMgf=J`VM#uvA)`3m2cFR~qdF-F*YE{48%J1T(I{+ z(iR{1&G*59F+P~x)dx!D-njA98@uJ+=o;jWs3YD`HxZ?MZf7cwS!;c6c*q}F-DC*Ko0GCYBBPt@CaLT2iTRkJ)%q2>wu4xZ@n z%>&2pc%UTN0}IZ0AZ(Wh3Kn}{=y(qp348iLg*#lIy5sC6cli6e!^PSi`&PTd5bhY% z-yI)?O&*kg26L{S!Pk&8IDGUB{u-ab$?0cMG58GDG`ZozdpERR6E=Q?8;;nyA%3Hq zu;JbCM#T+Znq7siDf|Ih0-q(q6~1<^Fx%*gkuzNJeuyjFnp~hM{0TQQU9c$31^17- zK+o6(NmE_WL14J7`R$B|*Urc%XLJg5#&{cN7_4%}8XadC_j1OHN+-;G;smwxPH6CS zLf&pCI4^R7uBH=;m7L&Gd>VsqpGHFbX^eC{jS%zG_^W>!W(U5%;U(jIS$2%$1$n&7#7AKgVCmA zm_Fbb`aU~~ckV~wG4CkGv>w5wD@QQu;1M{FJ%VRn52JJBVT@aQ7&Cet#*}-9pnB?% z&~pwUz1kL=WVWc=YKx;PwkUmRgZW-I@SbmjTP@ZQ+38TdSK!i&vc`*#R!9o8!nP$= z=&fi4S=K>JvN?!&t%LYictE5r6MnK42awk30B+pakL*MHAsxRTPDT5$D10AUSL{Pn zr+pZAV=t0z_oBzRy|66YgOrdxc(Zg5>J;{%J##ny9N3M|8oQDHVHa%tcVWcBUAWP* z6Nd7gxVd8|G=}ZOu@^gp4B3G)y&dROBm96V+tF>)cGUFRj{A4E!Snbw=xcAory@)2 z3AM!cC6-wA&jM+eEl{(|0-CB8Sn^^k%w4x)i|$setk{A{@mtWkb_+7QY=LF=X0#sM z4A)Vjd}9s^Pjh6>G)HT-873u}VU@8NEV~K1VTv_YreLE?@h^W9a@;pzuihqfuH1-# zxQ*z!W+RR%ZN$qA6Aas9f_1}8aO&v>ggS0O9NU1fVq-Xl7-PdCV~l8CkGJR6PfqFYwO{rqZJnyrR*&(-)T z{Jo(ES7GvqRmgk3Qt06;kuF(@K1C~F5wHSD^H$((?Q*mvEJyD(%P~-KIeO4C{I*zz zr+t?pJZ~x1*(`;E`clNbSOT5XOCZ--0*yi=xceF5^DHBbu3QYW=*4hfx)@0PFvO-EhEN}1h)=f{;*8BgXpCG4dS-yh4hE1;FhGxw3$Wc|0WM8jfbx?0 z7#cJm`oe#{vU(oY$IQcurSmYOc`gP^=b~)gT%1>&E9S`@C~uyF)b4XIC2KaW?wpPB z17;&2Zx+fA&VsJ$EZ9Aqi3>+(;NK9nCm?Q z4bx{JrbHKd0lIiNOBc(3iT#4m>5wd#4!`PY0$*zyv=&dpw%=0`5I+@HmQBUurYU%n zJO%lyrr<%_WTeX`!)x7SZ0ax>BQ5~%HUO?2Med_?h8vq07IkL0&n3_^mmsmL1phAU zVD%Oqge&VH|LPJmYNW5G<5=&Y~AS-zUMywctlZ|S47Ow`CC2H7IKOBM4!*OfjaFkZ5qGPx!2G3K) zs9(b{THqw9%^Zea--qIl?@+v*CibWbRdB*X1#_7S+CK~dcOC-s2}95!e=wr$2SaDf zU}QZVgqcSNAwz8tv>psZpw&Rs4<3l+w+0|?_W=CtGXN8^`eTPhf04tdKW_7WDB0K# z{}lS6|2cuPw5Bgcwe-P=#6B3Xqz@G9dZR3&H|~r4Sg}7vo-DC9H+@DgG=J@h%N{+k zQ_>Ut-}k^Z#~v^qD-Z{tb%%r4+v}p%9iI1;(dmFPP7F{+S#~$9+SUzn;uhL1)yLcfx?6PMDVGUR_AeV#(as!Zw6n)& z+E}mrR%WQ)$_^iFVPVmb_xRyOntYN#Wt67tNHFNZ+V(s~r%vQaUeK}CU=3XynQJu?K#hPDiYTQqD zw7iU6nqI~VTz;@lFG|^H)l#Ov`#W25rG%~SAZS@JTO9t4>6R3+k&+_T!Tu}z@Su>L z?_bD{Y$;&6=fAMue?GIc`JdSazfbJ%hmS0F%txkc^FfU1J=-AirhQ)fj+w^2W%<9} zutn3}u***QOy%ioc4EkDmcQ*4(@KBIj2|WW6l$% z*zE}$v+gl7h~;U4p7yvyw8-(~xK?=X}1 zx7i$x+f3tN9#hP^#R@v!Vi_xPnODS3W?GWNv~+SjGedOEwI zl+ISKyu?Z(F0vyf7nqXH1r}&`o{hMBj-Bguj!oH^#%?6Z*n%o4d#EdAD_v6A>!&Hq zct{HSU@7pgE+(yG zGoBE|-X4i$#&YT>JlO26 z9;|qcJM)e?!={zFu@bnkUR#$GqE*vAIDts_Tu$w=COAbTdJ^<4GUk+8YeAd1^1S)S7t`+b^Rjt)yt5zs4rydSqs?u zRr6WckGbsosX1)^pxNyF#hFZFp*~CdJcG?Ttjh|!PiJS7rm~g#Q`qp=U@dzY`>rTq zUn3{6a%i(ok0-E6+s3oqty+u+jb+LcHQC|2qgj=i20PxM&iea}WVxCnn0@YWw$wzG zjjtWbhIy&5;Tl84A~HyPw}I?zRe$!;y&s#V-j}6Z@6E=p>&3Dwd$4Wp-Pv$;WmbN@ zD|@o83%ga-iT&rH#7ahWWCL;(n8}6?Y-@45WX6zIiT?5?$u8#x$&Ji9iGF3Zq-0d3 z9=bGfq@vD+woFu2p(}8{ z$&y9A5+$9C;v|1uq9sFfBP2F0p_10A!ICVS0Lg`mev(%|y(N=0Jta3S&q!S3TqKU4 zPfNB=wwFx0bX2luoQ$gzS5HLsL z-&ao(6);6Ite=jgchES=@d2YH#-VDGb3;@lN22;mGSqrWti&Q5uh~%&Xxysvert_R z-~HcpW*`5kW8wB(=VZ`b9pA((od~+56MH8~C+&PWYwoqj7f>2!85 z(D`>^l1_WU5FMrd9d#xIew?&hF@4gVqb`%23UnrgrgQCUS1ZPkn{n>qMCFN>(vCS@ z`uF|9rT(klU#k76kbc>FaQX^8?eyHz`RPglCh4j(4yHR-JEfcD`J@jI3`@Ulk(j^X7vK8I=PVd3 zADW~p->f)F-os+7e01(ad9o_xK6caPpWe)r2eA3_OFoO_?8h>>%Dgr5osk>lL+Z`s z+Dk3vDT%w}PR;w}H&@!q%~Oua&0Fl{TgE!c=e%^0KRY&{{wn*H{JZ%bdHlb7@=gi=$@|ZLEPwRvseGKv3%Nw&wY>25 z8~HTL_wuO{jKZjJM!(#O5AB-XKo$Ph3kCj%5P~YbM?dB`P$qb ze7$lnuC=~5e;n6`&-vAtJ5TA)Lrx9gcK;3J6Z#DnSZPD}zho6YvT7*rGhLOxa2(Dz z|EI>Y`;6qJChGia{3xDQrorb*#_*J5n*9CEvHU})aa^`+JU0lMz%PB6$V*2|;^jMZ zc+PnVH>+j*KarM2!F~$wk~dYfoz9Oh(dET{Gx*TgdVKicnY?n-Ebb9In^zaj;iJaP z<0E&^=ReOa;HN4Lc!7=~?`FG*|GT`H=QbGerPG)4gyYM2UeqpZ-<#~^FM{`R{}=oDz#a#=Wa_$&I@ho#AUr&Tu71cOItV!Fyiu;M-St^4Ky@p5^St zGgZBLXofd8Ugg7^fBJ9-7hnEO)sK(M@Z)P%`g5}~f4<1+EFUm5fag&FU$r!l-zpB| zeeHv|!GK`C;X*K9Y7oLleh%Sp#2MrL-NSfsVi?!c3+IPkhI60Y5!~%xggAQ}$yKzY z_~koMeA1?9?pYJf@1BX_g{raqBgOKoi{rR;K^*UXIG&&BmcWZ*6Zo(xiG1qAM6RN=bk-QwJF4e{1u;>JfV zbHC14cuLq69-(!W@6Wo*hcC(C=RaofA^S49Wost)@)r1g!?L*T`7AzJ|2lv5=sI7q zDVs}wX7hsMH+Wr_99|rn!)eS-zWK^c{$qYFU;a|y`)#?!<(0SirIUHwquXshC+s$V zHTn);KzI1rId}Q>CwF3V$a5Ay z;#=|`@q#Unxo-JmZguntcT#xDt$m(yy}{4;*Mw)>a^iD-E8{tDp8JCLdi;X_TPM!8 z7rf+$cE93(YG3hnCtq_vrF@>`o6my>z2RHq-taD3Z@H)ZEicu5$JO%QaTvYlBVWGf zKTSSx->)BdkKG^n&T4Uv{^%#3*8YhHxqjvwx_{w+0={tTAqD(yYyqzuUC3L{74ibf zS00t|l~0~o#8dK$c&*_#KKO~C)y2H-O)*d1RKlkemhhNu-+AGW@4R(iDX*z6<+l#~ z;CmW>@QM>5Uip}V{y(@S`Kn2h1U&(KWRPyM-ReWVc z75_Z6n$M4}=BJ0(@bK6g?lGd4uZgeazem<_>x4RfSG}IsB-Hai>c4q@!f)=a-oS?@ zG;rsUfB5aVKm3zgBYzUp$U{||xNcMvCzWR2DZH8M3~J#BZsEQ9wemdwR=%uf8&CIY z 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

0l=7f8882;1;;43% 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 literal 0 HcmV?d00001 diff --git a/windows/Release64/bin/portaudio_x86_64.dll b/windows/Release64/bin/portaudio_x86_64.dll new file mode 100644 index 0000000000000000000000000000000000000000..41086a3cc982f79dd997ae0b53343d4e10309ba5 GIT binary patch literal 220672 zcmeFa3wTu3xi>zOWOTU19fjCvp+-Aa;sp~Gn;9&M$qr?p3WwAE5jt1}4@@EU?5NL4`583vR~<)$+K-|t;}ZUHZCpYuKE z|2$V#%?Q|479F7wFr_&C{Vm$fhli$z(X+!c6$31m~$7M*HvC~U8VnmiIqQ`an;o$ zOG^iOY|xGM4#!ou4{+T5$KN$%YTND@dBUKgqH@QrMGnWM!0srAjmCu)=X=kvuzhNcUC2J<~`=bO?$AKQEN^cm9} zs&8UQC+)~Pd4IrfOy2AN3xWa@mpGgbhY{XdnYdmrau{Z}Va5|T9gSdQy_GR z28Pw*u89%eX(s|mO`3Ik4ev7FU!9>E;BZ%Kv7^4`-PEAwPQ+^MRjffF5;QkR!L1_& z<<_@r(w6IWyhLKHvyEu^iwh7RE&U4~J+7w_&!!~40mP7apGxe&BQXR~J+5CM2RT2I zZXHOJ?r`0W7{hYCYOx1mq0)f4{VC=!%ysGBuxs4c0Fup+dhZM5!;jKS1mTLuKpJTftF|9puAe~NLmQJUewd4H4X-1^aEPwaML}jX{ z(lFfTep}-}$=golq&8l6(kc=6EqDp_OJ3tu+0f5s5!m6gd*L!-^b13$KQS1dBOX z%|s4s{wfJXqlSsSr}tuIwHZc?b`2%M20;6vhbp^cB7 zy`_Klg8n%1VE8lp7s$d_^xIi+i2j(Z3LUaPnAFYo2zpPTc#dP*+CYedD^&bt_x~a4 zYwO4s(~cvEL-U(dIHs_|&TPq^F@qsI(mi8n;wb<lnot($)9Sl~IXYoaK>jRdcOX?SgX#$#g)CAklW#<~g_M}n z)JY8pL0cSk+VZHjArd3YC}jz)wz$~mXbT;0M9;l$NU>uHyV)?;?D}2n2?5L5V7i0m z%5){Zv=9vCLLi|MFF$SFjp!3DU?Ngl>a6=l()OP3alZw*i_acYFRFd=3 z!&_SbkE+(k9yR>1&tMWY(jb}=G+!~ymuL<(fe426fTxq4+vE3C(P!rH@p*;i$Re%sQ zzfjWbif<|V1Lc|K?=qqjiVV&FyaS|KR~)R0qlhyx zWil8bTD}p?2xlT-E=`<03Navgb%VLFz9vTV2Bt+K4GYAeJ>rj!bq36RhM6>Awp1qG zV}jY8JRbwaK;KoPkiO(Q4h;bJXL6;>zu&?(YLTxq8^I?(Lct}KXlr8iMXXY+p}Gpd zGRzT%IlIj0@l_xha2nmo6ms|DC);~@nnM(Q-NGK8k}m(~`$A2SWNC}JmS%TG-r%Q)>FySoETyP+^mI!G1Jgq#3lxFCoI# zsPCdyxFaoiqz2gX%uE^9ICpxDVNC?<4uWfBjVntmo5U)vMMKvmmM|RI*7|DAdZ`t8 zb65lF0D{}BlFC16E_NipfyUbMk8QU3aSHjdDQI>-OJcN^o7>4aQ^-OYcJYBxXlsH< zM!LKgup+S_T3XxM2ceTV?@St=ct!Uau-Or0|BhgxN_`23Lk@ zUnWVGpTVd%g3)$Qhs5qMtl`I_uJme9dmQ6`F7aTl9gLIy5BW_D7#k4Ap44vH6*ACK<189~Kvnbb9@JJ8uV zcv9LLH31m`c1>zczW$uQb+(Iic)(LD&nG=TJke_;O`}9T<1yq3LGqAiiUd~$k=i5~ zpY*iI^BK=fdA@A)w0p`B0wem2bl~!Kc{udNEkY}F_x^PGH&A(-%HU`n_|$&@hvXdm zz(KyBV}l}ttcPyDM{tI0NSDt<5{NtSsb4UE06)R#L!N~tm{aJ}!z?RRrTUC0 z#dE|}h@q^l3|fi;>GC&$02=>uz|h)7Tt%mQ8X+W~e+wKHE&m%HkZGtk@x5yD*cPKF z4lr$r)%)lqYLOqpU`KR=xxr3BO^tQIiGgMWCixwSW0g1Ar9~cuI0EPy3iS7KpbrOV z8A4kE=8jAS7sBy^7m9MXsOn{_Hm~2EkHjA&Rxj9kGgsZBv;oTv-!H1FIxH>(vj_Ns;*ll zcQWw})S*g&T5XB@_6qIVi@*vfW2rKxDl=J?Q5t01$by1bNWswQsNph|dzh3hHB_O* z-;h6mQ7srsU4!-uUMERD*NLjsdw(a`WMY8=&k{Xx$v!>XpdBD1koy2xQQcOSh?Xx= z1r>6QD2=2CB@P_0F$3g2)Tz4eQ32xmtIDE!SLz8Ni`kXDQ>B|sUp(=Gv6C*=FNEhz zE@L+KP~&oFDCj#BNS?{D5p|t|?5Ow~EEO$35f9a&!RVtN&he^_{nKg8)$Va~RA##@ zT|VGS89u%s#?mC{BXd7O2@AP7pHmB-Av0$S^ylZN&o-CsYS@|?&7X=zY zrppIQ=W6ZM0_ho1l3i`6@GE^#mHMSB^#fIkhDc?? zSy=D}yI`|OztUz^@G4dCL{%{H(#dSlc7?Lk_f=q*JOgEvK@WRJIUk)+xqeV}lHXhz zPC8)+PSiTS!4{b>1kBY9(Z+N?WI zjwAd$!d?0C%vgztwM@hdX1KyJA9B5c2zEfc%IE>-%P4sP?n%V+^$#clJPP0wm@{SFEkvTJ*Kz=3ki$H6k(v0 zbm&;Gi5Iai=ez@e?9CafH)p8coS}MihU(23syAmSr+lW(CRu+VywzPFS$XR@I!0a~ zoN$hhPWo|4Za%@UEjqs#|3#=C^>&ricNiF<22hC=2fclIhof~p{K3q8^}o$;4`lf* z5H)NOnPa#szcj;rQ!yOa37RdR-(n!wibL?*O2qf)w|(d+;kOm+;sSnKcM!k5LMF-b z+Y2ZG9?tOFMuuV;egl($J;@A+eGxy3-@3_f8LHzb2Vl(`Ht_2W1rI#?HuyRb;uPWWv?mft%59gb7_koxiS_>HVao^z7xzYM=! ztWVZ2l2u}gxC(fOZ4mC}4zRP4lP|_Ab9fyXm;%9J3pxh_R?EJ)Z-T?kg0Kdj7y(#UE--2Cr^W&<0=SNGX1mf=$ zc@K<_4n6jQ=&*{=DK&kZ-vQf(jw;6Q)FHw?;pJ`N?lxb?OfYe*2u#sYF^BT1Ldik> za{UVZyLtAt{<-}0Df;=#@YAFJCO=I_`I>EP59$5Cf|s&3B{8Z8KiS43-Yx<^eZJ+$ zG8d7DsBF9WR=`8llS+{*9%3%U2@jELA^1KYKFSk6@J~+G9f@k7VKcn*#OLr%6?sR^ zkM-xDLeANE5a$%|%lxfeID!Z&6L~N%iIIA?E$GAv$}El5hL+ zg&1d+l<@i*g;%{cW4st>py~`6_cz%V8oKW~G0{Y2DmgV{Ir@ku8dc^psNn5RpB}8S?m=b#niV&f-#G{_HYoYw1<@7fB=SS73OVq2VPqEq7 zGweu>%uo^ul_P;Fe@23@alR%Q z67zt>Yg#v`?eOA8i{Ju3q=GXjKWI@D`Mc(Ccn2NGmthb=$=@Od_`Pst91q{$rP5E~f*A_9^Q zOv^H&uoKXPeiR^^m~{=)M1bU_68^95CkGUDN`w363B?Si~tdR4FMv0 z8F`dm#(PeHKs`GVk&_^ZxKcb6y%JQIcL~hQxQ{~Q4-_IW`wWAUYeq(6#bXfqZq0bt6^+m7J0Wr1*y=y7`G7f48JQf-Q$f0cKdGh|3i820dYV zV2}HjH+YkHEUO>zfxrDD<%4l88LQY+Jry9lFI8FkbhSz8w2 z!jUKzMhoUBL*DiLWJEA)`_qZD?l0PG0l zWf|5&_wb)^#cVGTG6|lTHscDQB~Bux70~%2M@*`P3H4cy7@faQUgFprj7cbM-q2Hw z@G{KaeyH8C1m?5fe9vFC!Ej;! z(0N_Zhg~J%Wo_Y}HZY^Fqe}1i)|_=vfVBk*IHP|H^xK_Yep38^ z;(Dfhu@s;5nNr*f;Vq(iG{kv<6mRhE%!z7DmmTmQ|50%CB$4dPsSj8#E5c`RVCO`5 ztY%v$ctwm!STD*Og}j#Kf{ZPh@kJSr>064!|2vlp#(+WGWxMbg>IPK?aRp_ZIJ+5= z+?ZWKxi)_Vg^KI{PLe=H1&b6(%3wBCQc=ACTTv9%Ml3P@1tZ8|ICoQ1k;wzmVKvZH zXJGzN%^Hs4aGzc5>o{i!o<+31U^fn-DK>W^qmPyljme{_$vA^J=OxfH1izC`sJNYK z{K5$pw^NPZ8QJkWLyg}WO-yuo z8wkMl=ZmmF1=|$Exj}|A?aMb1-lK19t4 z8*%SN<%Pa7jSgVlqKd(3rLQbmf!bjr@=*k)2y@L?k@b{iI#HI?WJ=)qLQh#H*j5&L z$}eR-|T#d{6mh6#4f(Wy<%d?lQnagJ4_X)#DbSFP<^P9R;13 z{Hg#&eOX?Mqh-gS8E_77OAw|9jm8|Dh^`@tRvaBX9mtVv^Sn!PDp zt6d2`zedgVXjg*QuK_n-*+okh`(wJ{g{_{ojJpGN=-%yEr=5?E9upd>{S^(2mo%Hw zTSRgW4)k$$v0Kh}_<_D)P9MJB?AC$ynCLKt_j;}UZbTDzU>XPB8-O<++jZ^kF8_dD zy*(ZZVfhpmXMN2|S&vf4$LULdDdf3lp{(Bf!mMSwxvpxR?p+Jz`{VPYL(dOYz@PDJ zeM)+4iG#hzK;>WPjBjuc z=rv5t`j&^2O#0~6sUI@ZC{O~`>1fsvuQ0xGzZuMd3 z4vswIcs96TU$NHyiVBrz?L3Sx10Q)|=wPa0sgW7D@c(Rk#BaVH{?IvlalQE}NUO)U zmeiY@_4wuzJ-lDjZeIY|Qy8%=D>yKaN3!HFi*@ZC6 zLj|^ciYJ#%XdWi;q>g5ODuve(1};)3+s3@Whq%c`5X>jb`W7@U+lSR4HP6IVP?;-2 zJZD!oB0f%;fOXB74=XKSqyEDaW?wg-mEdBZ-@946?Kk4?Cj3<&)_b==Gu)=NYlzYo zRcMQ57I#d6bz7}1n&QM;QO6XBeOV$eL2u4kpWF=HqV$EiO2*tyL>MN{&G%}54S9|V zzpojqKHT$m`2EBE-q&^Qy!{cZ%IC|=*WYEaA(3u#S%g>Jv8-t}G?aElQHZ$hH6cU(~?JM){zhQ^D zr7EdQgBrE=sQ_cc7c7GX?{nTwjz&a14#F)sgB9XTVK5r>3<2|v!`VWd{J^4(g~|3< z$?6T}a%_GsizmvO;~%&?#y|z00X5?67{kF_Y%;F9Lr8-bZ$#FcZ)xq1piTABOAml%_0%CFDbQy@`e;oU`A>Mpx{)k-dW4 zAE@2l$>w06YX_c?0hn-JrPSd7TN_pa9IafmhfB2FPr@|?**6DsNJboITsgWhLRvT~ zIf60bIGQ;7nlTL3wmJ+5?8cSNPP6W#xZdvfzKpRjMr$8~eU+f6wx|rokh7!F*}Hkkaioh-ukVirB`Y0(YY)MHwDJvnpyR_SWjUF-g>Qx`>-hE0wj)ag<9a`McSlr>( z7BxaV8q&K4%41=MyDtBpbWzSo|NQ^mKFru3HDr7UMIX-IVGaReUdbzN#Umlk7b%Fn zpByAXoV~_e8w?NFC*02$yH#g-6dQ*`J(eO>daCay)9m0@Bf$DzkJR1E0#4-m88ENWd|*q&;; zuE3tPsBTO!Iv7<39S3j@ReNqy(Si7;GToe{e`16aMFz-`RJdp9dlsp%Q!6X|_~9bQ z1yR4F2wM?gAMeu2Ak8j~?bI%b@6=9R(QFPzPqB+)pVj^f_SYqZ7cenNHpx@OP9yB! z12*~)wk3}|vkwVhjM=;@%)y>`vZ4b^dW!~fGqAR30Q!>s7(k^j1Mv#_9_^6ww9{?> zV-a59f52#m3sM9ZmNcF7CcrBDQyz$AMQ*8O|19HwJkLWI9KA1lnYRqMD1#c+1X0fe=o z5p3~GzsH8n7>QVvX`x>`HCAtyut6oX+cy=Q*v{NTl=$rc+(c1V2F-wTy>fAp$ODcC zc3twufxKFb{Wk)~?<27}1DCTZq>TU(dUZKfY<4BC9Rw=Ga6Vj8I$^#qgARTj?&8Z6 zap0EMi{MD`MS$k*o_jpQ0fv{&8^r>q9F)kj|GlXntq)p8>_c#&NdXqJ|4Cj<89k9Mk6UpKI>5!Xcs!#?8c{aU<3ya1I0TrzIsFNqc z<{)#;dK_k|Qg2o8(F6ms7*W#-;l4hS)eQ5cRI4;J2M_| z=>$92l^EylH!cdUJK*`b+QV`FI)eKq9`NiX7Uq*42coc^#UsXL2pZ-y9=AN#@Q87R zq(17Y#1q3Khyo)d>KRWpo}p_SEOQ~a#2>A9CV0lqFvEN|)B!sJ=K(vZ4C`P5*-|y} zbg_WPJHZFBc~f8`A7O*8L>F?!mS^nBwZIyO1@$Gz;I1v4r>`Etqr+gT^y^@JlUcSR zOECJRr?G_3XFLg21P9!h!X7}7kqomeR9YM?uSVs! zbT5w09TT)p{3)_#QuOqz$s>e+gXT`9a-;L*qJ>q*ugF}q5RWG_7cInLX!4?kRk&!u zay@)9Acfy34w^fHRk&e*yw=N;oV`F0I4u4Ra8T#=a1R8k<%s9e!C>?%Ph(A=Kl%fw zzJ&LV@gOIVWjUPtR5{x}Kr4aorf=XDFBHOIYn1~?!}g8TB5DbQydyDlDC!~qcWdn@ zAhss9qnr0bhpPIL2B_8vLEuMJ=F>PTQGSxYOxK zUV{M|G&lWooe;!XUUop$CZ3Q5EJP%(0XXzECcm~Me<8!Z-LnFSXIT%`WN4XXKP~bT zJ8LXID|&G+h6J+{L^gY<8a-p2nAbB*COb_QFw!;yZCknnZHvO}C3kN?9v*>jM8oCO zEQm;fV)HeV$qlRpjC>Uiz(?KudCpFkh5ANPUVmWdvel1%(vQgDrgU0W91 z#zY)R#zBR6jQ#hL(jNtkxI|P^`lCQKd!wXS{p!IXWiE+fWU;?2_LIea!WA;OM~3}` zR4j_3pJ2JnPM#)EB(IeEq5|E}*X76j3Joz|;vqa=ulGVZ2Q79aPLCC{c>kWtn!f1G5O{6K$CLcvX%#%hBw&PL8 zs;5{BO|~v_cN$h3yBm{QJOaMMyvU79e%v)H)8+fY`%pK;kJcGg4*dV1)c^oCO!Ezl zw!{(~h^MJl??{HgFMyhQI;)SBz3B#Q7fn6fgEAnI;Ovg&`ZX&+TzW&^eih_*TY2{- zO)l!wf|9-`~>qDN=Lt3{R;iuW9j>R{jSZFxl zV_#REJ<5p1tw=+x5gk{;t9qc>^ufq|-j zWPbg}OZ`@srH-@*N>5lY0(>#Iai?frdsX`;@;(#QzE<9MC^#$o-Kt?@cefsudY|^B zVJ%Ya-5t7m^wDVV{N)t)T#%q0op^Gq6Eo|0;r(CU-Wx8ckHU$=b%W+Q$jAirsL4bc!{C0o$33LgQLs0WCeSdte#7W%UjrN7XYYV=hr zRzrEiRJO;CNPUpkVRfp*x`)bLjzq7Lm)Yz{sU}ngEy(M7b0ysI8^6ZuZE)Ani%1kQ z0xanv=%s$HFGrV?Q&Q1Fe1M4?m`IwiAg-{p29TsH!9O3O|HM?|@c7E;BSB9~FA10+ zvpzUr`f#aO>IGHBQe`(zmiuId8552m%w)40=tQt`H3=MKMC&Sz=#7|3yv%LiBWv`8 zx1;O%r%e2wv1+iJb-b)eg`;)2($Nl^1X1V9d#}cOW8S+D?@f8{jd-7#_ugbg!)>T9 zFA6?ExU(Qi<%otC7RE}ZXqd)(uDHq+4aW*&B~vuqTNo>uqTvmNv63k&q<}S?pO{#3 zKFElH?dg$=p$&5i+_IS@4t<9VAKLRb6wp-TiQlpm83ebw<=qz~ekwX00uoY$Vkb3J z>~7dxhCA^?scU^J*CaV!F1sRmDWY=Y8$}H&Yj_(WYHU%~J|jG*%n_=Cwi|3Ciz_U7 zKh;3o@`=Z|3d0-&tnoS#6|p$nQyK~%BuI7&T#*)M{0ckvSY^XVW z0M4QhaB6QoHG1m-+__b0U~U#}Z*6s^{XP0#p^6!Rtc#Z!-hHhpW7=-)e=WhKBh}lP zxa#YMS;y&PFe12&rlF3JiUHe%hhf!~rM6_?aeg4u7qs+>&=iW-;{x7Bck7Xp&dyF+t1C8~8A#kYSe~Mh~y{v-5on|BeN^3Bc4Vf@Un$ zo1=GLe_c{Rq3TMVY4EzNaqdKnMXh3^r%sI$RR6AFjRojpJSvQyv5G-VM4>ym#N5g8 z4z8$1OKKt9jA?y=_{JixK44O%^yU93;tY0~qrr*km`mc?&={v#FvZgAH;*)&t1t=G z`j()ZM;{yBOa+hgR5_64w*Vw(ZtUl9K2t|!`x_N0uu`r56ndu(HFv3+o3)WEW*w@+w5IiC8km_t!u*lW zh4zmz-+2r|@x7Su{J5+`$9(4{PGHA%sMeKITj#_KaIO6w;ED7? zyiDt3ogE0`Ih@Z_nc|m#bFB?g(BNFwC0&>=)1PibBlB8)@?yNF^{3~d7B*cs(|y(RjtLW9MDXgjq`a1^To&n%n)cQ-_$(_~5dHsDxUVl5WtD&rP4-{{P8tiUt z5jqw7d9pp7n~=@In`n3TrD!&q3C|7)s&gKF`qK_Hf`ESoz^c6hJ_}o)zn}T*wF_1u z$lUc>a5ZR>SLsWig@1Jpf7bDB*3o$o`u>g#pT2u2{>b)UXndvxq_Ew4rOEq>9ClZz z`ScwAV3Y9PdAfE%JiNC}*Mi+ZyCcgUuT$N^{>!8HS%vs60O&*Di>0)-9L^hToU`;M zJc-L2Z(sCochT9Zesbc`s5>(#vBCFbu;nFj483MBTrx$+tOGvzCCT_yW%&|7Wjcj>Qe{Z*e+J{)Vyfl#ykVs9RzfBaN%^_VKZ z2#Xd0TNvDZFXRHmEULiHCmx^lIraD^Hx?$aaR*V2MW7pED)72fJ2}QK>eoM9&1#L? zf-?8hn>mhz$T$fE(KwhorN{L#)f7$k&k%8~*Lo=lR1#xMN!rl$+GhGFc zhva9QKToou0aUKO3?XtuV%tIOwacIKdF2a-)#vw@4X;M^euHymMjgI?H`X$==gQDD z$bpl)M2_W#N}hn}M=x9d*!*lmRO3Z^PR7TEvd`vc8=o`PXk+PV+4Ju8+F#3-I|;(y zF~Qla$M-{P;SyFgcrhylOXA@Ev+)^`ZDCgb>e$Z(V9hd!GvjrOP4X`qucv%2yn+$) zzQRoG4;y-0hJWq$R->5&Xxk#!{gm<&>vvy*{5k$9(ElgpAZF!(_N=0R#TU~5>x%w> z0fH~roidgb;WPABi>jYZZ@YdccE{NB(O8>Q^}92p1hz##dfW6Erl`vij9LpBI#WW% zzn%ZATx+QxNB%_7FI)OhEPTlEnU#kp=OE_rUqt-Tw^%>TkuYKRX+AzDeFpthOR_w> z$u62N&uo4@;6tZ(HggUyQ(|YfhJ*0=DhPujo%YaMu0wm; z^&F(XiT}}r56NLq5!zXIWGcwQFSvb(r>rQ2xT@5FC+2#`vQsdf#%s5yZE2XcLtAv1 zw&)66Qoa$}Ipgn?4d~VujV%f~cXR(h_o|N*Cu?v6hE>Er{z}K?nDN+#4SB84qh4;V z!Ut%0V@)2tzo`E6rT%GK6bcQ_ZC?h3-ydP4pf#IW9O$qV;GpzRZol>j>j7!KfvIq5 z{rb@94bzfAvj@w|f%xX4;IvJhoIW-H-ug<=`QfVl&ffUmuXG$1biPMZghLl@rD~?K zfAh}A90EREkR+hys%UUx-#{|)UTHxMXhxZW)5h)R`M6=@N+FerRoE)xd;#&Pu<-%K z^HIu@9oH&ge}4f6Aik16UzR>i7%z%M!RT2>Nr%5r|8-OvU(V70MlVf&h7KALx?}Lc z1Ugr;fJEmq7yKa-N%~Ew1lOWJj&gI;m!Z!X!HpyeMm-9*&4SxB`Djowu?Jft*kSz$ zl;aw15AIK)gZgI*){Y;y`)6^ke|Ce1=BjIdu*|EqKZqoe(yGs12!DY24H+Eptj>Ma z6d!-o1AO|mGS~eGz)mSAQPpWtf!s@dzrjpN5Z-+K7DTs>~x5$Sts z_gc(b;ZqP|S9Ineh4)q7bfhdr6xbV4R{)A8A&RpSpkbHB$cB$o{WUvX!9PsFpT(R{bMJ1J zUsXExI1$o$OuzpS>9^C!v|L|d`Yne@ze%P4RYUq^1?ecYjIj%ZRy@k0Xz& z^=FVqh}}b|k07>?9--+-8$_sgv4mjk&qCy_+(|+A{`U-jUCJZn8org|&2HZuzPobozu@~vxHsQU5Ac1n{jO@= ztJ?QAYkdJJx%L6R!23%<{#RB0SD63){`tLxAF=bJ{Plcq&Am_H`_%>TpO%u zt^l6Gk5m1Clpc)qQw~ZGVM)u?%`^>Z2!F_Mu?j!I@Sgn=zlY(J3J+pkZ>zB6=LP;K zTg><#6~2S{pH|^V7=BEJFJSn$Dtsfu{GfocZ@z^5y}C`w-=UPhkg%w9H!2kY-ieou znHRgiR`z@UL%;W5XWqF2Z0|3uh9Og0F&{G!Vvu8F@Qzu>U~9)8Q8zx1xeX6}@wY+M z#3?U2sheH9n1T(uh{O98IE+QDwNpD1+r_y?o;P1>^yrdJshmRpG_$`kF>xf}9?4}s z?)J^-U+B16^|>W1Z-%&x`GUD7^i6Yj;sh2jw3FBD)TY+Cfl_G;P=akXt_(jzfKwNq zuFE8H$_l{d%H~w={UIE<1E>U4+{&_8-=jWM>urWvdiA3=fw7}y3N$x9K{x?XQ0NbM z48EJ#dnnI)JS}(zvDI{@Jn!_(#xry=w`4JeJ6doWZ^cs%zL@KR=AE8e1k>fea27kT z+3Iw>Fd<#O{Sj0OBT6cOu`3nKU&{J(^oTyGz*@tPL3w^U5`=kDfn3dvq$99S+9Y@A zKaZ`ciQm59#8-2$^xBkIh+yhh{q~EZ{mKW&ha+E}EPHpREt{mc%chSXdkCxvZvC3r zsP-oYUDL;3*R|7*IeUH=e@(q4zV|3|f;+zdC})@1dx{eaQlzHvBjEe32_=3j002@{ zza~xys<6N@CzPNpJ}U+|&R(|AjBdLS^IdS*&%C z)TYK$WaaD~eyjW=q+^-w*3ChybS1+0u$tfURrtN}xz*SMF&vqd|K+cWH(+HQTk_rY z$e?>y%sUd_a?`zC^WK#TQorGTh`!MM=D^f_uurm2$cFMk-Jbcj}e7_0%>11_&jlER=f_6_Fn`F4L z&c}^)hEKbvhnwrL!%jXk#t%JV5`=C5_c1S&r*f%7!Sp6yA3rgss4f|3RD2 zoGH2j?3lNhk3C=pcY|R|n0#6+_pK;JpLSKawMT%pKEb^K0**UO{tQZA_J<;D(9v;g zS)Ud;R%zRd5r-XKZ9NCl`ro#rZo?{Z_Y}dzz|oEpkFPx)s_UtDu>YRpkL(KkGqK~w zlRqG!d+`;9g$OL(gW}1t$fWwWr-%jM@Z!%p0_{^@`^~hmV;JH`m%fMnu3D5Eud#t0 zBYzS;N5K!;m_3UR03No*cI*N+5T1`Br!npI@U1uvW1ZT&cqftr=BXZS0S}Z}&NCS!%aPisGyxHJs*o?o)qu?~ce+=o>80&H{V=+a9Cmv%(i zhJcvwN@% zT?RPPg~?hkNiW4n^=Qq%Cu0TwH5+JgU5 z)tts^EVqBOK3HqN6LCu@4RL)(syt{7b_b&q-1U<76v_upOk6H=)_dQay9w+yVg=dD z1&Svh5a_P-?+871>ka7G)d(9_+352Jhc11JKx@*3IkYSoJ>RV(T5BJH#^AH9;T{b4 zz4P8da|!Y}fjAgxH7kKg(g)ZDwE_4|0G>Pv2{nB+=_J1^kY5-XE@B1%!`YRs?#0(~ zr@QjE_ztJ$qdCBiF?=_B%~Jnih=`V6j&eb>%XHP^9h-7XRKeu7W!#+t|1Nv(yxMYY z_)q!7Ph>5|33h5%;(>!5i6yX3@tK+MxibL6!S76#HzTC_pXWEGq1JP{9Id;egWp6E zN8)glz-AbHH~g0XskQTC(2?~$u1E03zaH05?2y)OAq`)y914hN{BHErr8@R+RC>F# zD0^Fn3L2(^ZNvL;9wj>X2puYF7|$*o?%atZSU}Tt9-xI?jressm!n5{e#ZNz7CoJ? zEms8+tnxGPYfO6{=h9Z#8%fh&iD2i)QY|9p^|bOb=CEAJhq!&*(~G^rp+DPCjrpAvFv$8dm35Y6?PAt*BrC9%{K>B| zpH+Sns>Bq!>53v?{2bz~3%V8`GPYc|ASM!LzZMy!!a|->lfFHuHbw~jPm*Sg?@3J(2;4|v_GkYmG zrvu-D^?=EXIhwiOZ-iC;Ac|6IJO=czC5GSmz7tVeg!Z-H8a|JeTEkoL;Gm7%g=lU* z!~8uy#f*(z}K-HzV={6nPt| zbB}>V5Os~5#lCnAW%KAsp)r3SwGeXr6gfg$Z@qc`zWplV9Y#RBE|Cg9QIVfAayhcE zK>%D{LN3=X=t}(=_RPK_g+L2&|FyPYkYH7!B5y_{&XbcOQP)%!iig&7p-Js=KjEDvc&?gKI9S>{xhz4vW4TNJVMnioxf9?97 z2$}kgd=pz$zhunWG_>|V?@L8$VyPEMTdF}M_6LaZ( zp$g2Oh#;6fWVCBEQl8>?(i+qprPxWSf8^B<$+Q_q4sgvE_E#Pua6x=UU)cX2j4s`c zFiCZ4;*LbyE5(1!Dss?vm|MiZ9mh&*StIfUz9H244D+^o9!N5 zJ{l==2S{eypC7=&SS__mdM)2D)!csd4S(&IS$OLS@7^rD6jBP|EkR5cUgaU+S>?AQ z3qOx+?=S~Z_kfWWB9=~73QkoB;XJ2mL``1`*A4j)r@P@((VxmVT!V2K!|&~z`z{#d zaj1peI>(uQdMVPaxuWTkzeg!DtO6Y&hT z4#6Bmzk9H7CPHPvmQ8Gr#*Si7CE*y@b6v}{h4u^fq^nw(G9q#HPJZRC^}lhP0=G|9 z<4Bui#9{6xq&Hb(OYpeL8tcZRMeX6`K~?VJMa*m*BcWnqIbz2Xu|CB6tU8wSLmlB^ zaN{zwHzFYArts`s8w#MAZ;3(SOVUWq*FW>Oj(~&~lF{$qj@;I$HTR=SF*T9E8xMEN z{G2-P3BME;^7|P)=2;=nXJC_2-{Zg;o>*O)!e~63@C1Q-0hI(s zFlGl^fxKNECMt-8fwg%xE%>NM>I68}NjOp+@=0~b$LeqthYjh5eqT&I75Z;DFuHcn za%|eh17BqR6Lfuj`))0QZ;?AJO?hoMOZQ`^uonFx!aUJNT;XTon_N7E z(UN%aLpob=+u2&Fb@-7nJdfU<>v5C}Ov7ioZD&hca1s)&3*Twrf~LZlCq`x_ zjs?bMm(--3)jr%XjskjkwqU*g7aYFN1M3yyt-_FCDnvMp>)DCRSUe89cDA^x5$>iY zHS#dmkw0J=z#RVG_kpB=%Z0RiyFhvE-gsz8eS2T%2;I9%d~Yps6tdIJ({F%`vE96G z?T(M({=m%}eg>koJGS9%&$8`lu;xb;-jTl}!nb=_i55wrn*ma5UylG7oLz+JvW0k9 z=anGzkc8X_J&cfHorh6jALzEu!@$6KQpVe(6(hNQWr(+J#SqJBwl+M?d*q>8jU@h0n$#+^NCaO6f4fIwT;D_~KOF9wK5NuC zfe=rX1?2#WihHE})`fC3EbiU;qZ5NT?#218(Gv%UhNGs`mb{T2emF!(EOdhKL-Hj=_^ru<{oV5sEjFA4eJ&m!p0kP0SYjhJEb2iCXuyrO$!&%8nDlbu-9MXIlkvKIapNEaC2PcRY+#Na_ zW1dB*1!p4DOrOakH_8w{0f?(1e*HZ%#D5?U z3~@J7I;~Q^OCLgdw*P~pVbnQn$beqmjV^u?5$sfoI?ZguFHEIscHjzx`DbA2pT*c^F+7uXD9vft z1)m~-!Y6(e=RRR;i9P18>dK$r_ItbL9vQahw=rP51pzqaVqfBh1XyRVGn0=9 zXgHFyzzqSb2-3y7W-dPb{3-w+RkbDn1p}91soT1c2?}KQy!QaI9wlJ@03=$Bc@YJ2 zd-62IV~QgAQ-IF*XT^Uh$Ik6T+T&UCAT{4hCtpn{`nyutR>JwP%zOr<0j4zIUA^#A z8mTL>#+NZHjwmdNA$A|~AQ^eQFSHI!O*Fi#aZH|qbpj8MwSFiYEM+4bPHs(fbDCp< zyLFpAhhR@0903Cnm$ayfgVtWdI*juRQi_Xo6LIdX{4~@=mo00rPqZyJqFarTKTObt z50FLIti;-izf#ypSV@PJ>w6L z%9R&vbJRI>c`V{Bb?3^Le{`4fcl)sM7wxrK+K5i5HnMwpl)e=Id-yWs=ZTim{EmQs zbTPT4V1JLow>rN*%XK@7V+<6O9*`}~K13U9?J@=Pi~0RiZIzx&K%dn=;MPt$@v+cO zjJnY2sxQFcU;sY^du5L0{SfSxp`m&GmwI+Fr_NG;&Gn!U2vsYN`K<9)`se~B9tt=# z%m2VgA++mXKe*NxA9Q)Rpp0ojvk_a`<0(^ zsPeh>OK}fy0atk6akBc)qWa$(pYGsy=RRZX5CnU8{qxgSp3x2q$4Zg z2Gwfqe?~UHb>oPjbxTWqWOswf6+xJ7erwuLzctZAgE8{M5}H`QrCJPx&+$N|zDdgt zwQ^<`ZXVW>c1Kp$n|-0Hxy;$bD@hs~c+u)~PYdLy-~1?OCLvX8jriu02Ir@GcscF~ zKJ|3J)!^oe>jE zJQ^B>%f{S>bwqmN6x69bHWv5jJ+{|Y#r{ey`@?Tt zhJM0Y$5QFE%MA2Y2MK`YZzKZ~T07aNn$VlOtgwk~hHx zLy>unkQ93ZGCUfzE}Mx}vsh|yX1Fh32Nn4trGVPS!v!AE{`XMo(i)R~@G>-SC@HtT)E z{7`OxNnVVy_Izq2hAL!8YVGd>dyZWpw$|Q@S6MmMaYVuz=dXzcK;{7Y*_z}+C$2&R z4d)~mx+7K=^zLm9_7z?ZFaL7)~lUQfzV= zO4Fr*-$@;jg9mo5LXDtlC8c{DY`PKjJDgnED+C;RIO)ebDHEB7CKmy+q94Yc&gEDK zgii8iV9?LL%gX1Ajp&jM$d?h&@CSmnZ-?y}volj3oMWm+J!c^+1dsy*qFRp*EyMEd z?etU4<^HPW7>m``wIk@rKZaI2Gp8u73-YJ-??vmG*}9j8+;U3VuIdHtr%EnvHq+u!$2S)`U|82IjaHH zUhs$PqD;2jw0rz!tfy`^6Cps7-$EfUOrF5U{4#`IZ6LEl4#RK6p(MYO^2KJ6--Jgc zLf;nnSxL`nPe*D2+of<6bdy(tC-eLd9UIexPxQ$R=JM?60@3M)HD9!YJv)YGokPsY zGU6Kh&~l1qg$%Aag_!JO25TY|9eQOKGT6c+&EPE=>51iE?Xl5Nt7?ev=H068gpCi$ z+tSpDd%V@C!$(|O6aC1v(r*<9?6YE@Ms%D&|!tJeDQjMWP98+e> z6*BPRen71a-lYJAAf@*HrY#@A&Jd82d4RE^@2gq0b`zX z5M$c#Mnj-eap9*f2%BevXjrZf!$R;`6Af#S-`u7>wxufWHxt@pNu&6YHl#xPoo8aR z2}fPEc_3gW>dhoo9z}BWth1r?8|djUU#eP$-UV(pPEY|!*<+#1nWTZz3V8DO2-;FM zSwjxYz{|-iuKaKxf?@rHT!+mEtF-pr2wAr;#joG`-3mPP=&%wl=f876`T%Z|*3O)8<3VWNW``T7Kw1zU6i-iXw8lcN)Y-;GvG-Qr ztR>dZ*bs$2`s->?*Oa!HtMCyS*tO4_3z#D`#BLmJ>BZSMEpjsDLVro7L+b#` ziBXPV5Z+s&ob@3Z8*zfjYoLfj3;zTiV?>|WfEVj&>GX6f_G;OH2clQ5g1J7{dgx4Y z01W)l`PM|=cysE?1A~X%|o^ z4HIg4Ng#Z{-TI(45#CF&?(NmhSGC(WBFzf3Q6kSRHa2>Wo7cuKM-a-SzG^dh?s#Ay zw4Qz(k-B#oNSmPiw&&+B5;2rc7q&Tk}JlOcm|; zKEB$Cp?l7E{8(`^6oX+-6_*PuPa{~2fk|^2mclY=(6Cu?;0^2*x?r&@{Z$E5aIcSE zRqpUtP51cyPHgF{_ipf;oBZaq+1edd;1axtX0c=D!i30ljCR{is+(vEXHTEWvA^ti z^;bPYf}|d_37S3I%B?|j8D zhhp zg$n49E*Zpx&Aa9+__~hLHqqH_=ly;IW%HKolDo0%+^fVd^eix7rMm_NTTTdv*oV<932xSw%Tr@2Po-BZ%< zzD~c{Q*XZP$I`_@l*D5N9$XjZ@WUmE6e(I{Jw#As8}|OU;1x>@bu-mdZeX*69em=? zJOw;hV#0njul1SZaEV-)yum*NIh6Q^AVKpFK~}~;E%G4vLH0mm7j;kFV7xhWZS2yX zx+a8hJNQ+6m~|DA-8SKRM71$iyX%k0PT9Ah7y%&9$`YS`Aj=aA{-WZ@hGv~V@tz&c z(=_N(WpHdV#!YcX1)jmOoH1 zxG-~E3+FXmiR(Tlj^k#kw02{mrSW_95t%ddmI{aF4XdUP`&CZ_E|us+zt%IGEY` z55KtrQ%5ziJ@^FKQfykdvBGa|WZa&Qpsf7bm@dC_qwZZfE5#2G-F^aU@SAl__Bg;+ z<;Ou>4C^AZ4nEM{)`9x&>ZbxP^NU3fUZcZG~AkRD0|L9A|wMvl_y!buH=wUzpIdWx9hqyCdn@0p17b zN<5m$CxadLx7t_x;R||(`2=M_@?v_m8T+swyPSZu=-`i#&5^h=1FCLj>u<98(O0t5 z^?jMsz^S+uMLtNjdd=UHJPeqFLRaBZa~m$bupc95wm#iV@XFM9;_jd00%mRwG4N^2 z4XluZLiRGWr%(cYJn#BURFZR2VsF7YP~|7G{8XSjCOUWPw zC`p+5uYU6%oDaA3CVyH_z4kY=C}RkczB$J$9CW>U`weV-RpOqX3gNrY~IdFYGT>(5FJ{9iAdbc0^@op zR^q;8IA8HDGk@TowHf4+n?1U%YlfK#Z}$zqL1TjBg*G4Ip)cM@+6+WHtg*vX%{SeS zJR?+|eUgU>|i<`T-h!;F7J#^ePUGnw&@24d!UDtug8%v_7W zd{T9WzBe_h=|-5w?6}7iyk4mox4kM$4~J zPFUB?Pj>JiTlDb#uPyRE1@~GkfwZHQV`(MHPjle60R^S8+`v0f>`+qT^{%id| zMfLxscK_dG{fylY)!cp;pW8wwsorN5HL)+#=^6Xq?)%??FpWX!u6=mui-)2ii6hX4 zT;Kl~c}`V%K9xM>%(DevU>2PSH<2ToOJy4*G&!2tx{)n85vhga^9%dml7_BS{Xb3+ z?3Kz-B-9@QYPSDv`hH>mD=0hh&=-3MwhI*ma?}fQAECE-}=d`oP5!JFzZCV zxK#!9f@Uo%Sl%h}MMUuD$roO;4gU9eC-^Y_&DU?L=0f;HGcDKb7R!`~VIJo<;b9(9 zf^cHNJYT4^N!nM3>J>kZAr6uCB9dDFh4h)^?9`{Y$t>^6VN3R;?@Qis`DE+3TC8Zg7p&391 zsB{1?c*#&xpW}D|G;Wpie}C3~&N(xr_3ium{m%>L*_X9%Yp=cc+H0@9Hg&#QOE(G6 zbqQYv8;Rv-s<$dg$c8i9o@+)qz#0emk^!D2z_)p>vtL8o4|ag14)ARQge#~20nF@y zo0I;)`_6ZDww_!*Eq}aW6#s~CZSJ(JIM6MKzC%`HFRQ!kEFp4Mj`oeTf-n3l+IRCC z^PkIe6}3z(|BCYb6nXZxXX6`O{7)=i^b_q*yzqP-=sMcP{*T3qYNAY<#_0tL@xN~V zTt|P}*in1?&7c2{zPBjdzoYM;O*EVgvKq8d14rLqrWyn2dx3-d8x>A0zdQ$bJaGRn z===MfRMr;Ye^1|P*T1FjjT5Y0M_GN zV@UWu^nI!W9Atot1n2?C0a>=8S^BPafSv&c0(>?6-_mzzTj+Q_|8u>y_$4|ju^g?| zg6IciBi$-ax*c8oE9%bi6U={cuGBKI9OcV`Xd=1h>H8uVzslkb&z~Y*^t}Z7 zKH0@SYO$i42uWyxU5?7qw;jJ-cME-rT z$&5}aO9l&;lBnC{usCpO!02a#h9xG)zoIXzg2W~vTm);y^$sT|Wf;eo5ns4A*ruhAs}({5 zoZU>FfzOsQ$Xwk`Xa!!cQW+YMnF$Rj>k5f**vS9u#5GA?l=@C-QDV7RMX&96u;EIH z^R*KGlgu;MNANbRFPuDSaby=1V=@`uttQp%OcXxaTc51m?WgbVhha`TIL_>Ao`>Fr zt3r}~u8dB5p3VQr;;O>6BkKziBOmqJbX7jvIkuT-NPU62Uqnd=mhPeq36|PMn*SmB z8`HPz17ETzOsNtStxw!h)Fm#xsz>B znKH5i@?W!gB|wDY0)9+DXzX)nG+kudw4w!SFRVeE)Wa$1Rhg4a58a>jBe8r_34`p8 zg$%OkE_R)Zy~tvpR_ry3okA@54Xt7Q$ujERYJ?*)G{WJDAz%lPVRSn%g=;e_iEy~e zd{p^?AtggSMkI@9TfWTiS*o2p%%LswF<@N&Ki*{RpO>M~0Kl@vl5+kW~D z9_2`_5ZM*DR|;hiI5(dAotMSD6nZ!-45RTetviqj8>*2J1yA$xA@m`FdVmb`r?nR! z8lGI$7@~xr@qG!8khpUgolMYGx&2@8mYq+$ZbyqcpBVl5BvugY08C`o816UVcwz#I zAl+!!AhxfK=Ac0AZdO=f9}jO3?!9}vfN3aPldVl-P#N@$-0co7n8EyD_kc6}Y$iHW z@xu>uNMO1K&40+%IgcM{@{9@IdQig>7LoJ(ZK}HJJvlrEU6z4$M>T=!2fGm~R5cWG zoLQ;U(a8Y@AFLU*7auz3p18k7z3+1#=7$%d9ks$}IM)TD*Z%lts{73V{9jZTHqdi1 z{xAL)_~(tc?9r~nza8zeEfxB6C%f_KP#*ntpdZzMEcz)6^s8F$kN!f?uh@Tq{_tCM zU_Xoe#~RbW+DZZl#-Tj1;sbELPkko`5&B<-a^FynOlKg<>x6PuCNl$+58Ur*E8z!^ zqtzmPUz-;Y5!E$@KUN3St_mLYCcMrx*8KUJohDCx2Z^3k_}p3Up;E&RKh$?Nr-PCu zL9Lvn71hqEoAYG2P-PZIfqg+lrF-p@+w)oN$BvHrbd$5;K+TW=u4?&IGANwL`>5+*cF1R24N`6%+h*OJ? zKDG47Qw?Hd4{J}W@>KePrMMij{EH!m9JCD4UFTQ%7Kd2hiuf?YE|@g8kcX6s&FxYpoyi zZ9kQ^kD%>mGHzYldt#DvHOr{&ue8Q(XS9A`+e`nc?c$#j!$&^d7=9_=dQ=i<{U!)? z_`KWtm9c;_4F9^%WLVNK<09qpCA4g}Zxo{*si=h0tUEZE zk-684gC0quQyL^j$kZ%)d{~_6=(B>CT7j-@qP2<`=coD$lBVo+)N-S+TBn1 zckwyJfAFIG7wkEdqYPBWKXU>$BaWRnYQdh5xqu%k;80@D#Bt?8u;c(Qo#>y~au$Kp z#=^y^*adq&;^0Fk?~Hbuo4 zNSgX1H8j4q2{iD|xF4+3B%VmU>@{rcP3(FO*Z%djtLwdqTiDDbgBO~|Cel;it1)}( zN$N$=H9ycZT=&o2VOn3x!|a%#QV`utYoS&|&C-a)S^nFBko3hWDjMalbsnyY!t> z9GDcobQ_LK|Dr!HDu}B#U-|>EPvCwL_XgZA;pYABFDZ}BE`HV)zP!?X5!RFy-n)*% z<`2OZ+bU+!XD)41L!M34Zt>H_O+1X5ZW@GMJTJ1J);ly;KY#~;f&|aV3j@3-Jb7EvqeXuG) z`U&YnZxSVGubuGIhu$KcakpO4?ZrhTgJ~Z!!~3TF-NCyv^NXb~O+RnC^m$&JN{)O1 z3Z0xDvY`3UhBOCWJ6Q^s^_DPxJBz6RXrao6-HHMI`TwMSBmdvFZ_|I=zL6i;z5)9w z-m;|=LEh*p{#;pAHY4fHM`oc9YSQ{}Jyf6btD5xT0*Tl59y`qXU=4(T%stWdMsa<5 zCbQwsTGeC0tA6^Nx&&JgyZUh%u!+=e&%1e*U;D>8@A_`8945T$yOM(+KVq+6o2m0| z?yhTl+G}e7(obJh=BKZy^wZxO)tEk~3G-*u8q*Cd6dSl0W8;M40RGSVGoG1DD$};2@I7moqCnQHRdO(+O=DhCMzbF0`vU&Q$Y$EhGwQvWs{xtC zG&JqKIEz_-#lur&-ZbX7St?zHFiB1On-XnSqTeggGX(996B+EI#LwIzAhl-N>jHX0 zF4a(#!}92~x2y&L{!P)mPUg+rq(58|ou)#1fqkAYv*t9}n%}4lR_l-E(Rbu{mOnFl z^=F6jP)gO;8uo%hu**H|RiL*E`Z)o*WffhQv9d54`If*jIW$mlPi zKnS!3WJZ6U5x6C^hKoGcD%`4L{b)FUPGHJ<=2Jkt3dF2!E;C>aGe(})rk8ScQR}n{ zPTQrFPb*(x+)D#plE$frSuULw>;*Pkya%sRv{vt21zd}nS|0>i~S z1Q}_rCWzuGdaZ(}ImDq{y=fv?s~P<=^H1{Z)t}didXJE|r8mZQwt-eZ90H^?Iw%f54viMyzf~ zWpGyii4@-`AdJyA;v1xRQvk1cBcAsTs_+h;TIwCtROTJrRN)=uS9%Bg)!spMqr8K4 z^R%qN%w2LHJ4*`6Y{{;_{2|aS5_`(bOWUCnf^r(!JEHlUMh+ z;{8<1FG0Olj9G5QnB`WCS#HIcN}qDT~EgKecD8cS9$iZFSxa-Gg`6wXJPFlf?-30(l}; zE)`qBx2X)Q`gGcerV3h73Bs9p&xL5t?es=;c?S*h4mLYuk_F6J%M+C&pE2%mcoz?G zE|6)k86D(Pe3I@=83GdCuwtpm7ALUo*zz(`yM6DQXZgXa8m4!OJM;P9(6x0C?8gH7 zr>h~@I9cYQGR2Oc;YkECe7)G7qZn2|KP7o-PaUOhN-jc;_<=fgmHH{UsIE|cb(VSx z{~-C*UAWi&OV|K{+wzJ>C%OiR-u|vQdV5( zYEzs5)HujYoM9d0@Xzl%ruOWAdG79Qy5yP9ID6eg;`b8LC%wnL<;%-cdrO+jQhWDr z{!nV~el4GL?YHv;%RTmUus|W&n_2x+dk;V=oZ4IJ-MDIS4+^8bnHDigg^J zM7BQ*7nJt*vrp_VzX$`VyGZwISTrS&JU&!Fbp1lP?<=#&oz3iWw?~WT62^A~dL7uR z9E*mUejM#M`2!N1YRVmxd4>C^Ieha5b!A)u*!VG-3e-5W`ya#KfcUAIEpO!GPfx5U zK$sT%o*hWdrWFOl)UY?2{IoXLD9(*i`FyKgJs5g@<+JaQ0Z;&fXIDrp6y5oAHKno2 z?<;?oIBM90ZdSg2sjenrE7Ny-EN&ct&+5MN5qHvsojRe@QC!JyYb=v$_REfcY;Zab z2;UaGv4|2eCbjvD*m(LhbpDK+oZWnM;$g5^ur29zE!D-^MC$K-&Eo+6DZpWeRA$7= zn}g|u11hokOe?cFfl|H$#Nw|0Afl;;eI?=_#^$&xRc-nX>8B%#DETVQCHS~<1rt`? zJ01g`pQkvED$r15OVKxP|5R8((Stauz0HE2%LWyrox08IN~yB!ZWe!yA%axB{mqsY zWV7vbEImDt8bV|nTOZxkLH)pGv1#5cai|<&sg%Oq{wW z_uzcZ2Sq84i9lTAj#6wrq;?-Nr<{YHKQVUvTR5GXOC++J;;T`X?=Fn~`c2MxA5u|Q z{(zdypeC&kEyaso<(t%pYQ2F^)vBe=VQL#bMxD1r8uVzi>0+1#dhHd2a7VwgJEdWw zA3erR{P5)Jz8*3kOy+A-1;im$4R@1K-x*R0J8au&81>bS20wjrQ*_dgId2Q=55+Lx z(?n2&P&w+WZ-omjj!XyrWpRs84 z=i+G0n9<2*yS}liu6c5OxXAV4`gw_(zMAKHOFQBs8p3P0EhAkb?AXEwE5G$&t8nOt zLuzGSx37nKeujD`YHv{<^Vc?{{h0uX5*mXY(digA$27_iKx#I1FHo?dCe<}F`t4H| zw~gT+u25=-=yR$7@}sbAy9y3?Gq!6corjTM=lkZj<9SPUvE`>!^EZ1BEKsk@C`u(=e^aLlkWxKk zB-+6NUV^vL!jds0X$%)_1r%fG%?)9P6}oBOiH5}e<2WB2s_3vI;xA1}4n$$14+AkJ zy-l>|7AwEoPy0>DU~hExk5sk8dWedtlBuZWBBrD!$q4RbrGfrhF8dc$SAGMD*Ipe{ z-FJ6WgTC^cv3Eeea}{O7t}t^Rc|`|*&dQrccxDjih|zv7;1mKVx%ZlW^I7`jnQLuq z6h<8{OS!)JFtYqaKFe+!7V7KFdv>Auuu|o_!z^%d6#hm;6oVG~TkCN7X{kw~H{cGy z9=1y%!DA~9Qe5z7Ke)%Vr-LWo@$dH2m?cl2Tp6uJC5l7kQYP*u&Cs0Da6y>sNWXx8 zlL;-$nNxVnlv8*+#piT>t8!hiMpbb7t}F%|<+s^!y{Ue3XGPL@?rn0q+7SFfCzVKF zsbqt0$8&Bb`8<->QSo7aGF+_Q^TQu%k&@cLiMt+^z1!vky4~bOVU6jF$uSd+d$q5x zcDHw}#4(9rHv>hXuW@uAo;*bA{l|!4zGq`%Q}c-nUMY$*QW5+EUFfE;f)0-}vg^mn zNEWrCAHGIL^K>hiF^oaH8V%l3I=dU@S*x z*Pc&s_xLiE+daNiA0|x};J1GO!JMcx9o?yH%cTLbJ-Ur{XFfz!%wMU9Qp>N{yLL5m zX?$^_d%PW?kzYk$`Hz&}Pj#l=!4iuIH;r;Tn$6LH8zC3SW<*A0lbUV)Xj8Nw9#?Z4 z7NlD%38T2azNeVH)x+X+M*9o8I;d{+M=rmx?5V#HuC;tCzkYe`KeqN*ny7re+7`9~ z7Y%l9EmzS$AXLKdl6$+{R3^hW`pc&ohNm1&x#hRYUTb&BO4K>^qra+aI_-E2`82h* zN`?NYXqjae`xh+&Hu^#TAiuKjseTn~yO7-T>8qpJ{ec&?D*YGx2l*9!PuUH!e*EIu z4xt>Tu3eyoyfE6!3dz`<5!$Ms+TGWDq#uqu0c5W1*&l=aG_|1b>3nPnkK?suYIe3h zRGH}RtLlF7s+!_(b(^*e<8*Y;m@awuNW}M_nm=ZoP6F^RkpJNM zr;n3(AO8vR?~h|{6|C4QszbF>1+XCt+Kp-oQ@XojmOvWqux90xVhhaY5IqD)c2V2&9WP7hh3NGm0U6X#_v)f~8;5n09JU=~O4a=y2CnW1|trT1K3AHh+ArDeA;? z2W*P!o;yQ>`25ulqR{MxW%1t(YMMVg@6;?F|04g#!OQn?V1GP^$5RQr^N2xk_pMYR z+Z9prM|8!7w5PB9XWz#*mbxbMZM@kIT}GPbjoy+wNtEr>uPN*iGQ3?KbHC1O@vO%K zt8bk9n?Iy;@5xs3als!u|AcIw=gWVXx8%xxc^;&&!DMp^+05vONhP|2j558#?wtS|2=e(g~ z@7n^eNFji;K_FehVTkMjT?AV!@SKLS<^ktv=POqaB|D z5gM({=Z!l|pEGLSj5BCi-Fr?5=>CTf5C=4$xendv>TVVDN zsQb;k2o&D)+DnAIltZ3d-{Kq}k=9tQMMh}>Ul&4I2nZI&%8=pzxfe<#}^vmc1rDgzccTt{(88|Fbszy zG@;Q#{KNQ)plp#u$$jYDI zRwWHM0WamNA4e7VmN^f;H`(uDi{td_EQt=FT|Y#kgsI->YFI(Yb* z$GMd(z+i37`rePCq{e9xai@~KkC}p`0Q4dt=fqs7pZ`K*Y{^IRxO3K`btas%Gb}ld ziHWV|G3&4#DvW1tB-`*{+LH{wR-6pyNWMF<%$m#HA7%t>Sh7f*QsGbEOUvG~mJM&d zGT*AN1LRsY4VP=xS-5hoYQUrJ`9i-|9Y>fdeXIbjRTXaj!{#q-+cftI*RH4M&9*lE zVg9RXljy5=NPkM(r+sHKr)JwH3e2P^K(?eW;2R#C7&~mG<`l2}er6zh#IrvoW*!3@ zMmw1siTBgj+J++f8ib^E_ysb-g!TOv>V5Y`SWtJpeOFsmE9e&|*?hoCT>{OVP6jKg zA*tw@mGqJ(b8M8SNaDkE60RTn!~3qoGM`=!(u2Xu!>65aWd+C4&J*IhH zBY3!KkpXotbOkEAg%+fw-3#xsYLMc_Rh%T>Sha>=uWf{iO`CRQV|wV+li1&;OJ2lg zz0a-b6@OAwhn_?z>Jh)U&}*wY$VgRD-hTR&CWgvm(R)k!`o^cv_(Z|Q8!E`Wlgy*N zj{wl#*?^&;z$)dntw1SEJwDm$3lLQ}iLgYvu?m86Mz;Nn*H=tVCl9Cy59ltiHX(QS zyX(pX&$m?Hz(*Y4Ss}AtC||re?_A}$R54!Lq2$;weN7^LCbV{~h58o*n=ZbI=7OyT zo{qosMaDuF8GjwtA`Bzy#3&KTCF2bwHSfd=3SVK@!t+wmFFtOQ zkeke!8{xi{EIHOS(QA8xj`qVP>Z^R>yGUFg^dvFOGdsH2a!4YQnC-Ry58z1|QhOG&ELsE2QTuuJ=EZI0`Mx3KzF zAH0&3sPtXqOxN~)q(kpJrPg8>tGlB1Hp`QZ9$BJe>ld}F-t5Z!qO^*}R(eP~o9ptqs|b=sq+j{BWVt`k`%JT=@6%;Sh+|{(CFK=VF^u zU6qd|mC)+KznTx1`HEH|EcG7+5p+fM#3RN07F67Fe%ygdSrQ#>DVGQzF5sgs;I3T2 zU5VVU-|86Sjw9^{PZa^qqA4B2(>x+ zEq3?&%C8|ZZoJ!T=jHk7MVjZLDw1R&x|zkY`+X3|hI>N4^oOx1uC(jq&+XPM?S{JS zP*|JNSU;iicOaL@6f=j}68XK4xg~NqLY~YPlEve#=FMC`);#C7TOWFs*c+>sQYj+? z$RV0|!}}9KX0TQt$1Bu279i;I#=E6SI_Wnj8-@g#b`;3>( zMrB`8z2#5_5_4V=`@DoSGio-WdE>@!LiQ58w&O^cC|sWyxv{>stKOT?CFAI#iHz9x z!p_>RIeW*t5bq@SO=3{an}D8f3@9mA&hrW$H{jzTo7rs9uQDF$0}NGVN8w*(NZyS? z)>$`3!C)svW8E)W&eqKha1oK$_V-dz<6peRTW~Z?ea~ zul5Uj`nJ-kO~ssn#4E-=)47(4B$oG{%k(hHSQ}U|SrN1jWRtma1}-u#+3O_RO)_++ z-t0GD^(SzR8ahLBP-Y5U-LJx0!dair(t<>Ha{P61=V-sk5YVsbzZelWz1TH9$~S#$ z?3}}82b#T^)1F+jDJUDQ^N{q-lKK1TC0eADnt^piac=bIkHCt>%a|-6Gc*YH+RmiH zE0zKqP3D$|BQ-UmKg>+pL)y8j1*>nRAu4_LOxzVQ(njfvHAjM~T~O;HefiZRz3Xmm zH8<=(?H9j^3H>qg(&^Q=S>A~SFEjtlM|N%;M#8)r@8f zR+4S&+-4sx^aFa{rt56Kp9P6P!x8{@FI4xj8dIM2Pv*tdRRx(#w+j)c&?j^nNrY?BW5Oilv#$@EmPJcR6({a7NKsn7C%)h$WpI#PqZ4enS9pr?4$1>8iJE5{nWQB!5&AsLh~y$12Uq( zXd$8m9pdGSzFI^M!u27^*(3p{BDkY(79kkI!G$O*VIISK&8Bp+uy5CP!*y4EVJGW- z9<@p6Y<9F^MSuLZl4TaZ%ZRZll#CVbkla~h)A9!(dHVn)kBM&kiIBY3vWc6Hy*l`F z!}NAtJBV(9aQZjb0S70I0^Or@LU}Q$o{CyiG!G+9@svPA3o>spscT+)#C(R1L zXW6ko6K+i5kDzROdWCg4Ehz6TO{+GZRS{jS+_b>G(Vi{VrS;r zT^6-0A7xzvROU>g{^dMutZPhinf33GQF`dXn=~13A-e-rQm~{4XXX<4R2I^`oB_GW zGK;*~B2RIVhdlvI;DS!DprQW_1DnlaBtd=UbFUUMjMt5>WwVStYrvK!W_`1j8f}#- zAC#+w-ay2%_C-b014qcavbTxL(`GJePI~Q5nudS^XS+4Ug*H#zl z%AD@X+|F5+i;R~nL&OA^?YocVTm3l)e;x2FYz9^7g1*o%XsAp0H!D&LVT}8&!u>fG zS^h#UGRD0{p5P+8a*=UmE%ISan_=AOm-lH0CVWX?pcTTkQNp_G@pVstP0~k1#7E@9M}1$=eT~vNmwLclcAJrn z|0KWmuo`rW%t*>ym>_1EUk#Q_{Hx>T^|y+~jre-5kiG6K@yA!^>i-sTnF~Raoh-iJ zku~zuFO@(apPD~5d)oLGEHp>bXJt<>e)T8appqU3a+l zl?VIjdzGp&{k1VX0n)z7*q-Hjz6mxw;qPelj=|t$_$%!%+IPC=K}Dr{7q7>@1C@I8 zE}k_6Ny;{54BT$}#tmDrM(ti5{z_wcxt`8uqWD=dTp|q`vzTG>M6sKG+SNT7tZhu+ zV|8y#-(S@VplHKayecnGlL!j|C)=3b&)E1qqiSk`H_g#YDeKhX#f!lzV(X&Mu6EpD z9S4g)Sjl$q$<-$IN!A~ktqxX@vLiC}d8(5SadH!u{?f=12z(NeACDpC2hxNuqAlPlIOX2Mn6)Y|w0SgT`vdVCW=~PJrDYid(~=vDPqXwi2&F;|5XO zx&>=?6U>!xQ@C6{m>$s`!aI}Uy>8ghYm?|djfkZ{#v?|Rlt!_Q3mY!2gv7(8Ej|d> zh&dMdc7D7}V?UZ7FTZB=XeZ;wi*#FZ<7L;%?06~do>)ft@pwU!T}8LsczK7=c)a*P zeDHXA@OQbfAaXzCp8Ocdjh9ymjQ5NE$IB_d6fAw08!V3yl93imcD_x9cWT0snG|gH zUThSe_rx*c+!x>c0TDjz^uVrL? zy|4WBmj8IH%qNN3ksB)yd?zy`l865)$%lB=t^uIrF=GirUS(UJb^V%6d>MT*+0rS#suYV^1KA6p=YjA zdWLN+YIM;T=39+EDorDLL$Ro?!SMnDpFMMRhZVm{)zI{V&Or725F(Pc^{MIrm%Q&q{=l!NSx z-j03I+p#ZtJA6%xC|mke%jk}(X?%%zxN0`l;%47`IJMY?R5W(M5yY;{J=+%*Lfm$izy#^FU3LJz?pB+v!D6%-5)t09 zwchCmS8GP|+7gVW6%|Cs`4CtTt++tA;z`{$v!Ji9hJFk}@deQc3~lQ;?Jhiy;|Ojw zlyYJrSh60W@*OkcB&~Fr=upY5%eoh+=K6InsEpgdi>u#1l+9i6Axvi|wmUHd3=@zj z>rSYm*=nf8@F@%{*QoHju1l|0rqP5cqDv}%Eh)UkFVIY@3yMr|hwepTZaLYs4hd!0dA>;D_$=r}bZVn3vYb9ud^?N_BV_1d^-vP}Zqos2J zUPNv6Q)aFD(ir=u#|hb6atjJh)kSN3mckK`LaG9tUJs#R(9 z#ypI8W4f)X6$Cbhf#?!J^}e0ixY;ePBP@G2G(dsPUUY_2=a;t3%$z zqel+?!dxd{-31z&qA&S^rZV+xFuoLO8bu72|8b4R#fu+xKC zKqaCy7>02+hRy)g&jBNh!P~Rk-Phi6+}%d<$#Qqwuoo}xZkNJh?(R;7iMxB51TlBl zze_(en+|x0cg4{Q3hod{3xwJWKR2uZGZts-n8T)c6k+kf)JO zvKnJxq4C@qnuV8n$Q%0f|9N7OV;lZGP8LNVoxC9eF~!Kt~(S!K9%~g5`CKE1{SJ25!v|Z z!+JJ~xgNS=hw<1uUL!DQssrq1#5I0^&RQ^a3~+bJn=ZM|LeG#0s{AH|ORmr0m8Xek zm5p0pRypfYuvbMarUD>!gZWoNJS;=3OT5LVUKiC@Ts`m>HC@J9@ zRl;hOF8R9L3%c$S##|lCKcB6f)hN2_*STRLyxNl{+5I=w7j4?n}u7b%begVJp5aJ*3Xvh8{MllDJ9LG*RnM z?MCku?nocimBkl(N&qp8eIXC34Qt?P^st68ne!RGaRsj8I1yQ9YwSHt^?@%c$XpEV z#DT8>v%FY=+W*FZzfd4EO+hA+4{T8&^(e5bBQfM>l_zU)LFV8*|U|U_TnmJf3gHxdIv@p!@PEKdwOWlbIjp17BAeY?KNz0f9nv zHTW0(X-6c^PHQp2#yukY+zl)}zCRMG<}seVU#B3Y6r>iM0(}*KqVO&s)l_<#))yUv z)Lr2k-ccV1c=8O)!X@f`D4RU0{vu%Mq1*q+M;mT%nu|Ns7B8)ctWXxisUd~w7oE~r zSP*TPszNMK4bt{7^90jWe7`DtKJu{DB6wW+*lvc_M!@>P=2-R+-?9nru|`F!zG-{B zwaugY%3u8o5}9qnnH` zSJmZ6}3 zTnqw#U=Hy%+RwOeg=Z!l+hU(!6Cw}JFgHXx$} zv$8IHIe8wUyzymzdXmpe=$z6oSfv>TGk(oOSAOUjT?&oId+lKtc{+z(`FG*ziEY}^f<`)vJ-=160GM#R(;G$=9ck1}z z%XL4jWliearG+gkdw-LFMId?O^bOq0niLLMS0DPtF7?vZE3PPL`CLQTRKb3X=QZrKgbkr>{RtJh>^D! zp!S7!^V?dc{>0v_xjnrn_J8q1z#1E+nS0OIS)6|P`wX$Yq|9aCr6GqGWZysXQ&&_J zG_!;swO|YLq#Yu6FDPR^)8vnAtpKM^65io_VTVNY<$Jz}y^!z;;&~C`5@%Z;jE!b5 z)k>glZ%7)&v!cp^ADzlyqUXlZgNb&5VXBQN#`uSc?u?_ktX|mH)ReaiV~F8dx4!bB z7fO3YW$V{_b^d&w_H{3iT8rWg3m-8u%bwq3V^WNBZoEh!j)eRYRy^!egn?C^>AkKo zjdF(7ppsG1-Eso#c^!iAQ6vB8EqaB_xg(*LVauWAJlxmfJ~~{)-;+@Hg!%Q?B}PWv zpqPJHa3HsRn7h~zYmhQ`&9p}^sNUSwVW?a{*8Zu~J-7;)(9lTk3d|r+FV{!SP*6eh z_iY^Ym9IZf%M-JnDuk`mM6ljJ`i7+>O&)EQ5O^I_zPZ!mT48D{a1of8CV}6z_e6h} z<(eG1E?CvI_wdB7-O%Ua6F?Ozk)3SRGoyqy>^WN_i|$tQWVWK6DXcFugg-`~aS`=} zUA?#1e2F|CNXgts@zs;wS?1?{#|(jQc1)V5vR8TUiSOjzVdDFmonatifXlHyR5y~Q zDL%Ql5(E;plwke1(}YiSr6101&L!v8*x6sLqW@8`*aH0k?KFo8%vfE#_D3P0EJe38 z@qXx%8-WN@yJ-`Dytb=w*iGRw961ILMy1;PuJzidkHIhHiaLd7Zv>}fwk~*v2P=q( zzN&48Yq0glu7^4ZuC+)ABix3sSkIVlfGbu{t>VigSf^}jOiyP6`yEukIQosoO=YdW zNfgD>BOvny*;q!Y-{-o4My+YLV-5u^7dxbyT{OQ4033)=cJlTfMh^Es!cqu z8{x8Ag^U|S>nKvK^-=EVBt(N9!%4X4F_}F`+YvS|qvMNF$ob9x$kc<;};pp!7F_o;y?Ub#^z@+Z}Mq7)bJZ2i1J z)ly@Ifl}trPA(}5eY{hST8=k0wUv0VZeRC8PuyhFnmL4#6sFbzLy2zgvpZwtpo0UE zGiK3?Qhxwq*L^)ID=Z9dke7YgRuv?{1Ma1`!EI(etyn1JfWa?qX;!rP>@F*_`g^f{Y=Q7EJqhLn=;!pOpF)}S*;W$ z#RNNI=^+Ed)FMK6-FGd24O8-holc^&m}V=(R>CTM1*pv^@?kVp_?in*&)ZT}S_PFAg2x^w!TJnJp8)X!;!I+vyk=R)zcKpva&7vk_!-+@6m9|^*Ec7I!lg9})fZYlx^ z{;ICsgD&cfn3LS>wP%Gk!4HxLv*qCV$7^d;NRo!&8H61XuDgv zo5)&jmXb}Qgm-n=QhWYz?T#%^C?<}An;<_S!IBx}X|g?su^$8L_Bi##fXE^~){07j z{Fgus^@De&-X*G3_hnt3C1Cq1R0OoHw{LPU!1OguQ$mhS7(2^I!M}pcIJ{uw*cZXb z4u_Fp6z?=smJk`wmu@vEBZ*8YeR{Vt$x;P&%sR*;1Lbs^`7^Z!H8K?tt!CwMxh2Rg zH~(-f0SEKOG?@416B1#o=n7{IPBCdXkKM;MQ9f(h>FE7%ECAAX)6QGnK{_#|w6IP3 zhV@~GTdFoSFSm8Bk%Mj!?W<~X)XBm3{P;Un-)QGwwbk+3-@~ImYBGadngn9piUy{- z6%OpmM#m^43v#mcO(E3^IbW_yxqKrBul?t7o^%s|ki`1KL=un(1fd~1OeIbwVi^&d zzUo5jbOoQ!Tgx01!zfx8C%G|G*t5@Mrt5f>+Tr?c4pVMLBrUQ*5ZK?|W8?k=AJNR6 z*4nleMiN<`KJ#w(3ifgCFF!#hPd^S)# zdl~aftH^>M;d60X%Z;uTsgO9bGmiY2MK%F$A=zx?i6NK&Q#J~TBWM3pq(UrGoWfVy z7$;ElC2$P-uDLRvW%NpPzxkK8j?w;r!#6WJ^?UDuUzI8ASi3;|7v1?e4LTD-N4+&J z!^_ApTKTbpg1WYyydn#?&*n#2V2-u_`wU^pU`#p=jPKi;8!y@Sl^S_I8c~^0Umt#{ z%(UM+X-z|T5!+hySx;A`rcW5+r;A(tbn;P_iKbG{J1YFp#98(u0VXKU!FjZeoGn(-5qQzNpqn6`;Gh4C4`1gg?tsfAl0!;aNj; zG0~sC%F0Cd!Y`VDCF3y&dOksJI^yA6Kqyarv#c-xJhi6My2#m0mAs*0dSVE}AU(V_ zfewh?weBn5qW7p(C~xFFPwHfNfu1$=7Mn#I6#ALn7(2an#&6NIz^9d`aa)i}(llC^ zq=QrWPN~4SX(9f~1XfKNQk~Txq!O*!>g3odL$12aVpHF)VAPSatmW6)%eTG1&&z{A zmxM-OOo+V%#CF$Ls8L?~9~c=R%GTHDvuuzYs=T%riCD`l`-}jnMt;BDS3XFs3%*&A zsVB07s}gpw2xer2?!qtfy43*sS&m0G{=>s;T&-$ux~`BV!S9>1+#nxN4?- z|7bg@I*YzT>YISw;|>F*)OCN=A`9XrMZPTG@aj0c_8l~-zUDcs17SkQNMahDh)zOy zW_99W$x^h|m-*8X?w_+Zwfj9^dR-?MBQah?((vR`TspCn#@;&I;&z%p-umq;$h@SO zT5}W)g1okBJgG6m6Aw!a)BHtj+S<-ZRo2eQS_lWK7D`%c&4MRWGqrQFCgE>2f7~A6 z)E;(JxA4i!Q&Mx0@%&(C-H>8*ec(s9OoNbm9aYQxgg+fJ3tLx)^(!^AKAc^gZR$B| z>%+N>mUVGUr9sb=GN-WqN}%MmkKyFP4|0ff|zwc*zT7J z9$j71s#Q7@)m8Q;{`)|wOUO<|=l~Tc^-R7tTKEOGOaNy{QnLfN%IKiET4WQ!8n108 z*l7sU1>|1yoYuYl(5r43q_9?^1}>Y~KwIw`y3HgESqoT;WWQyTNQK0awn&n9ylet) zA=zx?i6J!u56s5qWMWCQ&$3Aw*<}-RoL`o8(Bs+Y>U(_)R9wgYB^hkbqa(T-Ld^DO zCwW>2XYOHFWAdRGe`8OoNZh}}TO1Ld`I|**(@(`>R7R_>M0~uY1Mfh5N0a&$ur61? zlT^g%-?^@cQdhB^>da)^ zf>3K-9y@kamZ#P1Q6%$C5BW=?*H?Ztrump2rJq!s?;NjC%Rr)jIPb|igZ2)bqQUi~73Qh72`kdqnqnWT z?PD~dOZ3^Ut+F+MdwBKQFT1{L|9Pq|0FoUc4Kq_u2;wQ$y>jAm8oHjW)D)R}> z{>3TrzvL~l+L45T$c%zUL_kjvk{OH#TH6Y;2DM}q{2K+!=n)gI`b)peM6mBqKhO{B zs~KG31-zbnlQ8UKRupxrsWCx}WEGAHqWK%_%TL{ylXk>ZY8M@jVsVZ~TV@s`&!3K( zfy?=HUbZY=hmL{fVhRzm`xUV49TlK6<5k2{!rOE==FD%CICm+q^+BHrdUiB;N9|(h ziYWYGm-pLVKYg1S)O_de{>0aiw$7)(yGYG2R3_Dy2t_p9(Xq2_=ISI&(od0Xf}@bv zZQZW4wU<51%|Ov4;e;u@fx{K7muuy#$PSS9pDJZ{yX2YrWzGesedQ0JDoH|XXRs<^ zDkhe2l-lXWR{KFfTC*C1U1a~x-ILR{@KRq*hpI2mVw}pHxj&nu1OkPW86vxXSAQy`l*n;SJ%6BOgzR%$@BtJz9$jCeT7 zElM{K|8Z~5p{UGc1|D1NBtQ$^m}wK`{Wf9hE{KmmcuJe5CX2bPs+w;@@JAhDjln6C z)AyKqlnS0oh_3ri<7-`D z!^&5Q)db{nQl-4M1FRMCt>yI4yHTX{(`T3Vl@ESfOVin$HVpk9fqms$(VAmlsp`tI z;a|ZlUX?8GtMWcvrP7NYwuZotE&dg`PYzqCtBHTo!~da{MxOu&7%-}C2Peloi3c=%rS`1Bs~9)tbQRY|Drs$`5|bN)vvOk)wdbwm zqjb43I4d^>DPLm{A%nUM@l{>HBPP9J2CP(#*?)bwue=iN$N|HU=(>D#VH~X>{p#De z$;ur}DDb^;+!B-~dQSf5@@I`ZawZ7--UnpswcWm-=7yh+wH=Drwg|6avt{J+i|N#5 zOLgyvUjGtbK;pS7PBwP+V*Bn3&BzuPLFBT3FO+Kkr92=8mEgi_ku zagzLe8ktx-VQyifdqRa$;klv^3aFHaZ?(R>zLE$g497bv4j!W~7LhHI^Y!O(5M9To zUv*5hOeu>L+P)J)E^XNlF;g)9(A4;f!px~qRKD_p&Pdx=L2-Y1ZNCBCedU)NA7f5( znSofgfo%xO=w3d>O{Gyg*Oaz=e&?E2uf3tTpx`dPztFeTYnS%w&osAjmz%78(-A6| zy{nD^R+l-Epau(SUGz%bWCa~VP%hWvmKS%fsY7{}F?AQ;vz2SH*ZyUfYcaW^>ettM z7mTCLgcx-uy=`ST!DE(s`nvu8AFo{UCOf-xfQDUKTq_u9t&s zE_L7IzRNd*auCPwNzGFu8qyPeKYiTw^=MeD!(odWg0uaGcw^gSpM8>8U&(t7Wda(OT;*mQnA<)trGV?b72 z_1Hi46zYP`aHf%2zb<1OWGA3Xn}AM;XPXbmXFz{vJb)W8-pX(GYfKGO>N3OF3W|)V zj*(Ge=6-Xx8hqDJqi@XUr&%_;z%QtVepxfJEVBp8rY{>*f8?AHW|v4J2ZJq z_E|oorOa|d`>#XB52ee0`WFqvlew)jG<=%zoGuyuXF`G|bVADA{go!&t~u~23$5cu zOwj@*DSx9?AxWvW>R1%}=?X}f-yerJ5mZW+ie{E7Kh)d^ZV6v%xw(rm&F1C=pYSa) zJe*+pp)b4qE2E#xw~X%=V7lZ+`-B=RRQf4=RQkdfTtU-FI6cl#b(&~ycT4BIxMEbM zWJw%OWy%kV;b~^cYfrj-)cTX-3UgGYW8HN5cV9wu@E}5x{g7~qWD;LA5Ad{4fm82kZyj&b%6l6xp1;0>``J`OPI|?#~ z;_A?k1IN1(-kjcx3@n$8A{c%QVBmki(wf1rvWgE}Ou-w<-d z&E9DI&Sa_LuOU9w$txYJ=KLkRs5-o&GMT=>sci?*(TQUcwSPn4{%o@Lh2}HG&#SQG z8m4ciq|+!cUsUsdA%Cga)Qh$61SNFEB{Uxnhmxq>G$%@6+P^R|&MsN|XRMe%o2Y%K z^%8V}Itl~cO7sj; zyT0;^iEIeAVP#5FS9IlQrXE$I)@vmGzdw97XHqw<3{L8g}>-|}NfAoK7PxZfQPcOvYuRZsmD)Jw<=R5!R z_9V_qoGELuXJidwE_kC7w1o?_MrcRB2rP5nA0B%>6>Us^1?8pixc|cK>{(#kqV_() zUjAjL#0gz=;tjSXmW#DSbK^8=ZTLmQxd#}E?)-2_SKpJ;k#FvDUCV2VL06*hsma0C zV6W@fJ3fo(JDYdHL;!Ps7@AhA4WYa;Kcjc7DUo{PR|N(@pQ{Z?XXP<*e&UOX3$pfY zKB&FdEh2@~g0IcC_w`Tb+q)BYzxE3D@)_>wTpHDZ_XFD7N|f50`f|m4aho6cz&0;K zna0|z{NpzNw=)wNw^>?``dOQA!DDT{O@+LFo0$sq-gSJx<8jt58=n2fr^Pc}+`twH zeFMmVt5tdzS)-DfWvhy8KDgVxHi#R|rY(f^m9IFOX*#^dx)jc?CH$e$%yZ2bBTovC zog|!n7+Fy5N~4c6V^~?*8`5LQSlzr;1H3XG;9WMrpFMWKfcQRYGd3V-p{nF2$o%{g zUSl|>0%wGag*aBBNmhZ2$SAIW!Y}8diNXH63JfNlJ%#7aix&$6tZgkH@4iO!Fg|RR zN}R7>zE(AzUtAqtQ%3lM60bv+XEuE3Ps-RSWhGB0pZ5 z5-Si|QGMmrBenirW0u zoWV=1@lwn3-cVt?ah*$OOHhxVT3G_qHr}G|<82Jb9e50VHvO&N(TYB4jpga9F+67E zWZw9?IDsNZB?r=T&mi?&DH<;j`le%La5VNzUgglL`M81(y~#)qe$ua6>L6ikl^w~2>o_cE(d0w$z3I|6J&_JtDF?+LA)w|;AXsE(iSt=+??W`90 zxEUdFq1|WOrvh>LM_Tz6|6G0o=`n@>=8Sydf9PG1Z!hC*j0`_WolhEpsN@BY%`FQT zNCsQ9pp3t@tFHVAT<0WCs9|Pr;FDPXEa6cHDpt^F1#aEp15cyEVs=o5J0 z-^4m?ePL(w5i`8EJ13<__tdOMm5$?${jhsfR?Djd$--4U@4}V9=^I#Y*I9eQPXOSZoI-LzG8SvAV9 z-O$1v7|o8#Op8XeF=4^l0n_x$pR#EhbtX5byu;e!Edu?#z51=gRlspfVrB#f6O3 zNGAsHhnU|^A38Wa`a`u(L3)=rB~rVKyoDoZdF`{_Lha}DKGu5MlkVcZaztIc36St^ zUY)Gnknp~@DpB}MecR@i*L*~7bpiK0+1Cey80HKY@o&YT`?8nPiN5xA&1a=g2otr> z1iQVfpCY(+uXoL3eAC72?Et)Y=!}l~+KrcfBpGxjg1zwTwW|{86AnnG&nrx(i$~3Q zDOk%sp)nCWn+TrcR?5cl>Cvb4o{+5l{hWE};xJ*k0O9q{%JQ4Z+I4fv>I2)xAFGsvo(LCeC>q`u@G4FW;VwXDHt2 zcIt!hB!UgD^xj`nyWqWqj{Te_PKNXR{CNQj`z^#EArggZo|^s8_2yz$)&XWKo+Ov6 zgL_PBt^>~wi+}tsXzj`RU=4%2xoR4svHPn!iD?;fSLKX{zQSH=DL$vU_q`^ti#DXh zPk#DJSoq+Xgo!4C9o-CKf>{%}SXQZPJG+7AA>L&0V&9YQc2@Hd%=XMN*;Mf<^M(BY zIqjhqnjB|qrktxopH{Nfp^tc09rakn(fGuh<^Np$cAgT~G*}(Ij+?r+OG1Ef@3_+* zC@lE)pyvOQdy3qREt693(LBuX6r|o8u#U-H;4kwhzaCjmz{^&t!LLztK0c-gt}YL_|1|r3-(KV+=8w3XiW4h8h5S?d_3?p2ql@6t>NkN_qORUV*7-!czHN+ zh@)aHVo?h-yq1YCGfY#D7S_(H^sbqXTNwpWV|a449$js;2NV6``Vg*`TAvb*-ZQTv zQTT^M>%2y|##5fxnsUF5X;i-ysnLdW+Odkt^Shsd~+%*X;b6{vrf)xm8hVS_Me=0cnndeWps4N3*8lYt-jV|K!0C9$ezPL( z)Ney#GdeQ5#A6+mxrhLXcHDL zkfM|bxLLmI*6}wziQL~z?PaF)@doP~!%tjLsXer&`SdXjQZwj!g)x{~PCT%7iAwsa zH9LEU#`CA!;``wZoyudoAD*y5+?o?2Aapy}4~KuIAsp=2ZfqV=kEkvBI#`eMbcsP{ zvUcsIzp?CJ(ul5klM+T)dx#us@`}r5W{Y~rit41W^zb^yE*(mbjv`?!xOkk6$GSw{ z6DG1)nccqckVVU5F=aU!X;dt=cDb(piv4G$=W^M!j1G@yulnG%wX%1_IYSS`DPXZO0(R%VhYg`-Mzq_%<|%8JlM=^V9YG zzicL5O9sReTE8d^)xqIIqLH{K+0xbd)4L^~^}|82)YJs9UjzuD+Xu;Kzd$tn5KlqA zf?)%zZu5m)I9Jmd(aonfrf-7$4NveFO_%5o46C?)i5Bn4=Lk0 z4<^I@Y3tNaZ)(IKztp7;Z~$1+#l zscFoXE#_<*E5I+4`sMGrT8SuSOz?d+kF10LhFBt!yV?5iA_6FQH#altJ~zC6z^&Vm z$OSKm7Mt<>5`1h0(g+_F{XUP6FWj>^K4v@#9kNNRqRLS zEMQ|d$42R^N%a`%np_%N@G&g=CHVOLQNl-!-4^(G&>0pVRgv&fAbFX%kjFb9&+wgHk9v>sxSm19P0M58)YL)ST zmZJybr@2Oe8`_EbGpymy1}6`0!-c!u5=(6)XRcEJu(;sG%O0$YNk#*N-lM2^_Fi0b z1{&I^m5J=_q_WC6jvbO4pH^m0SR#JaljCLOxTR*TTzAS>-o;Vs#{Pq-hI(&Yq^xds z%xL-anP&RM9-O*WfT{aa0D9F3KNIFD-zjy8~N-9`$y?343Q-%&N1Qp|?k zerTeZm~&%0Wd>!;>1`0~TqLz>d;JcTs*iDk?u;D3-RM*?#D8Wtu#p1BN3RXwj8C2! zNaKUIM(}dU1wWk(aRvH}ODBUwy_56gK11k&rIcu~N8U{oj5wlB#t_Sz^>ilP5g*d5 z08W{1>l=q?U+;%(U9*r0!+f0C?_1wkqvVrF7Rlc*@$DGD)+n=d;uFC)snFPaHDH30 zexHLqoUM=Kqe>`=%_9p3X*cp59l*ZB5*4!pkZx=8*2L>{KXA65y}{o2YL=~UJW9>> z6*MbyRa%din%%+mjYsRle=$#B5vyB17TTW?ca zJWfq}MD~SF^~FzDT?;0@D|UtpChY9ViBAykik5C>2OlY@kG;+eF$l6vK$zrZq>Bl> z@wOISd<}F$ozk?&*j56(zjs6F$1c;+;LKVQ&B_yYFrG7mF^7B+yEnT(R1|Z^y<|5@ zdlxoIIr)l42K@U(@OR!VbyD;BZU^Ko;-c7Tzgw$B8?Pe_Rb5T(h=8LsB6gcMK1zdY z=ws*l;z!uJ;O`6NCno+ru}$6W|EUnjO0nvzx&U!(+K~J^wnjVSMB4-!&S!^0A^ru@ zC$+H41*Wj!KT_H-uHqSHu!LIlJYCg=&!WHjXT25Oj6%G&@-AZF?{f?VSb`H!uRnyK z$BdIvN7b7|JMcS>W?Uy-XwkoB1xA|`WzfNF10OkOF5%`+=Ux+rMMUVcb=@D7w4t+I zbsss`{*^YeJ$D)S97oBPks&kIepLKTYezNfRwA5#c%>Avllz~8MOU1q8`@*j}-5F=0bI6U8H6 zykAs2v75~4skd}4?}N|55W4?OlXNF<=$o%7FRH7r;o;uAvZBC>KOxT^IJ)fJ@?N8$2tf{rxHI-X}Kc*k_bQl26iR)SS} z;#&$MV0p@O6CbmUWsJ6oYQ_n$pFx0kEoh(@g-~t7#(B^7j;h|hO#qzsc({XX$cB{A zJK1#9{@#R84W$LEd-~slA6sQ~;tf^--E8w*w>A#~`uq-hUK4fF?=VzNDYQLZL}bpE z>h`V(C7krlyg^DONO*7g&tv64i4faxX0;pZi}Q|xvn+5)1MFK!Lms(|A27v9T}hUVAztFy z%b-$&^72S+sD%eEOD7n2 zA1onPy{E2;la1zA|MWbz==q%R*`Iq1W1HugZ;&;A188c#-VD2F$qc@gxnXoQT)!rr z>#u8YlI-8mJpawIT%WxCM;w42)NPnN3Gr9VQ^62Tc$;XWOEIZ?&TlFGm)t61#+6`k zoGUZW>_57&NA*fa)iJc#?7i&0YqzLI!{H)V0(GyG2pY9-ZZC~#3DvE1u08?s(ryGI zAO@Ku2aJ%28Cl>@RMi+Ra~Ano@TSZG^)#L9!+sUUUBkF0H-%-qcjf;OnUh}I66#ej z1wkF!lzs`TF;E9h0E6veDedW6`P5!KNWj+=;c&5za-eIAAeH!v=V+?`h5E)zLu2NS zOH9Exo%9dDDr_io%sW<59h+>#K;Kf+aYDBLm70)9J_G1BvauUxtrs;bT1wY6W*REo zOohMii<(|lQ@3FX9zF5NC*-+uuF}Y3nn@$4PyQ~mX{yp}-bb0uXY*Z6BmoiP+&s1U zOfKHpj0v_AJC*5OqCt^&D!Z303WM2FXB~mAVaS*^Nq72JFt*XMCcgLrQ6q+#Oj11b zuPC4tviL60SH1{qapPi~jWtC+3VfLnenE|eQxova`b&}NWts^y{V>e*k&?2kOi94T z@vU0T*%)W>bt0y04M696puCx5c4Ep-3I_pT62Eo~bQ^fmzqxvqe{0n-VGCL;#k4J2 zmhr=kL(Dllfs^|%qpjpC@`737q%R_csTykZ{fVzCo|-kbg#qiJo`bK7ifi&Z7nc#w z6c;Y2cyKGERP@fERbc`~X6vt%UX-`5*kGjyhH|^c+O=mJdRcEjZ3IoT7U9rNn)5OY z8X5eN4O#@o!YEZ~tnA1&Z|3U@@fAdYN^fR>i)ky~Sm54uOE+|q2cKyw{nRfZczk2s z9qPlBhXqjs4MO&`hV;)r8>qS)Ik4CU=cKjGZP!8Y8T}TR@u3JvNUaPw?*Pw4{^3{KwU?Rqr*!622w{Q& z@hkH?NfS&G(Q=gJEi#*VJetiseUkU8kX<_;nM*5iqq*#-ngQMK=#JZj^WQ*PZpmKA z=&(tVt7QWv(G(fQ-}Qoys=j0x<@piWU4@K>-Jl|7F1>S;A5^H)1EGSoS|RV__=n)I zI59i?q`W_QJ*3Crx9`@_G-pdS2X1C(72>AWZn$6x(1oO`Z|w-okTEd}Vg#A4{4G46 z5%!urNA+4e!x|&A2WfuUgEYV4fUyV3tMwnSU4EMg8HFy_tIN%WF0%q(Btub`-|o>x zm!0W{feul(-;KKcfcl$T-BI=1?%)Z*QB&qNy4WKns0%Te>=VKNM<#6O5VVMcoZuMBQ2KOI#QyM^S7h~027%Xkz^DA4WluwGnJ= zf68Q~S9{;9bY@5v(D~VaQJQG ze9&0B0;9mz+>@Ta^8JSO?Uk@qS6&i{-pO~W^>QAg;iO&zD8C@i7{z?$Q|RnS|z`A3ypKw;2X{6;$(ip z&BaMiGdyJOtCq&Cj%7|hhOIPw_^e+A8;qHKZs9wgxuI)?xQYL3MqQ)ZU&V<0(f#-e zz#33eQqC-bI&=!e*+saEz;s2prsN&dMGN8X@5_hUI!m^tPOOVsr73DmZrCB_EpbvW zQ!cq-$0y`k9j{Mrz&&9xNdi+?CenCLCpoSi+=VnozDD-)%&T`mZWnqI^H&u2BUDmj zcQkcewMd`N_@1|+v%jAa6%e&68i&UFw>ZDh{y38JlDxe0rDN1BT1bxki@tPBIpq`l zn?^!<9B1-vWX#n+r!gcyWnkx<5(+c zDCo~0>a+ebORzYDPHwOZsawv^OQq13Gelcv7R|^L@~ijHK&K1N(>F6-#osmm{!o2y z%zy8w`sF5qhTs*-(PBmfP)GiL{U*e6^wjc&*0>=PUWqjzf3vJYOy zkHnMD{dq6oguok9xz4|r7ig*da?%F#lK*%t@2)~kevaF>6tz;s1^u3WFqO5*bq0zd zAdt+@!2#6VztB;2Ijw7an2s+U9FZEv#i2+i2jCIiH7Ldb_y)ci^&*#*yk=QJVK<~& z9n5%Z^rO8t5juO#@8j}kF4(&W)6kc}&2QLs#~HK8?fFCGG>&h)WUlCSQg}d9ZD@6> zMR(`rKDAMZGpxb>u~nTgoc z=rt=oTMvc`QL__D=V;Qd`tLjZb&mJVjNVLf6xK7CgqjZG_g`F%av3MM@u`*8+%6N@ z5CT8+Eo`dSv9%J}+l$Xrnf>&}y5$qiX(wxN&rN)sxeo@j+Mp+OCMNhqJbjEFKmO#KlrW4ltl;CaX+ti zBcJH^6EenJPMG+C3;h3ni!YI3`80RjdYL2!O|DtrJpV0p;0Ey0>c1atrcO|tsh2k4 zZR~7Z#w)t?1OIPFU|Tk(zbW&IeFzkt-baP8n^zbju?eDE9jO&+5qt0|W+Jz1$S-Il z^j8_P4Q4{Sh6?CEpOZBaC&f-ubiSssV^c@&ch)9o(PcBsU^sj-P<@y`SrgpJNJ@ar z%a7X6M@(#E9*9BedS@*q=IhG@ac=Q0@>{&bhs4D}eoV}Cy~Oes@BB5*-b&u5-rnLp zt3B1G`&zuI8`w=v3~^FtQ%f_4^<$aQ1RQIq;8bztWtI38;`8pM&jcgzH~^=UM-y?> z1P86L!9l4$L(7@OawLGMx4RiY$eh2127XKf86e3daJiVeVcEju6$JcTmN~wsaYt=W zbDtb58!XBy6hQKI{5xG%$9fYPpu)K^J%nVu&%cp(h1i9WvY)%PWZ712@n$ihfc66A z8Z)=4M&oSOuP3WFo4ru)x;234sg2%a>?q(4_K+^EcfH%H&Cg?f`HAU1kr90f+S=&7 zHp+X6BN(~C8FPOI3nJ!~?W@n3llzv%yp#7Wi(%WrcYl4IiXk; zTn{2PA9IQcGMkrw$2+HWEHQm5wSA}SCGDoOdIA~S)9Q^)){yH7{i;1JQ1xQM313BX zgbePRIjt;nLWMS`zr#eed9!T4((0v`Rkxhf-kP%7aLR~>0VS}(Pmkd#Sa}x94I@@ z+o`k@Rus+K1`(x{)R*LADuYbF2&;;lnI-rOb7yBxuC}iCkk1bjxQ3r*?^V~!Rw!@g z*uKQ#_WsE%GJ{NC?g%?~VP!02JB7z?IfW0YZD-n*_y914ZpPHeO!~*eq?pFp!4U$~ z$eWydE=*SeeI*ZE5>Bk^nJGk=%yjooEc0-n#a&ED3AY$0M}v&X5SypFtypX5_cI52=%6e86a$9W|m6j_Lg-Tzj!BkGz*37RIDuN6<6%)j_c8kb6o3B@F;z`?!-P* zpSP6;=TV)JCz7?%G@VFN=6Ewds#o)4ZgNEAqDz|K&UoNvTjaBl)g)zh3_D`5#F*R< z=2SZ!(bupeZW$e%@vh7z-U4-mPUx&J9nk>i_O%^((wX)shuAa6(UIl)u2QnCy5pce zWo@mOjVg)1Q0Mk_u9d=`9v^!~5Z>eV%SG(~A*C4RDqUn&U-K~JSeuTmk|3W~Y+TWWc zkMUqK8OAp`r?uIIV}~vpL>952R3eYUW&2(0(LN2xKM9YO_E}Q{5^_F>@ExdAnWl#1 z((ZQ63~?Hp8rTK$ni`y6Jb*Ud-qfmM?dgiJDtr~%(^?}+PCjN@aAxca)Nay@Qc1jb zxER(S+mqPG2XP%@Cad-vy;*Ji_}}O)e8<%oy2Y$1&6&O@kVG|P41IA@Z_@;mubvS- znax)$(IqT?xd1w;rM$$vr?Bw#jm^(>OMbr7vDqVTBasN5?*fm;^4 zNEkp%=hK&ve8o?P8dQi+!Yj0uV6RH#0yrmm5#BGESwa);m(G@*6ssdl%)umjE3-X! z^_GA3&zL#MlIw++Nw>+nWP5VD&@V0hFjn{UMBp$}?HhuxZfC3K|Q733qKH zTl=5y18ztb!PM{%JlaDx(wt4-2?jK0PjNY1DUD74cx(+H+owqs4-;qR6QwwYi4vmq zZ~6>vue-^quGGAi%&5^VnI_dL6-NKsr_Cvpl5AuXC6()+>ohJW_sh|1;jE`WZzzM7 zJ>CS)_V;~%6GULOGs_AgY`o7(Kg(D+>EE&dTOS)j|4R(_beh89(I{K)1<|kOr7>d! zCvV2>v_{PnyqlKmDRatbrhc?B>3{{<<PD{AJiMP>%ZqRy23j}!xW?Sg{y&W(QaQ(6H2_lchSM0}3T56xJ^FKhqc4NB)^BLaMrcaUkfz)$ngZPsh3-UCVu;VI{X9`=;-JwN5f!KiM1{Zq3!=iz z8>&*}Ej3gnRtEuSX@i+_tSpD~@$y*fn~>q(vC)jAeejd?RJ7(NSCvNO+ftfFZ-pT= zqBtR$i8;R^uca{uuAwy$wI}`0+O@uw7LppK z{IicdgVJ78tEEGp;Vr=(*o!i=go&1m-u#lnXo>+L@mTnrxHP2%&SG{lonJYJhU4c$TEV1 z$-6>>~%hjl=B>y}L7uEAX`msVxD zs-)>`_sNysa+{1?&qZ;Q-^t9OP$K zUhc7wKv_18c1J%f8>m}8c?foiheWI}F6cCL{ZwP{?sbI>-ZPL<{i`2hatsOt2dJcZ zRH@O0QajjEdzex;s#J?9r7Xb*z{*DJ`rwaDY%$7QMmX65mRPI_{)=NrL_vPAFFjw7 zF$fo?!H=AK4G5gc3XNPui+6gDsP)}2yJn1($*!D(hXYer0RwDB0+5PoR;+JA%_ZP& zn=^}h=?qJ8X0`3NAT#2^aQM8NE`dy%Amy~y5E;VhFj&Hk$~X!xRzs-+W6%(n&vyZq)jin2xDc z3x!%GT!xf9V8%<$@R01-CN#CV7wY>Z=VXcz@XZg^5h)g|wM%Mw5ghmY^k?0q{p`GW|BoqMO< zLhZTRJF4y_BY{sIQ{Q6qO!V!29?#EL*ookIq3?0wbtvg&o)LkZR5#UlY$ZCk5yG6* zI)c{YGbrB)FnI~O%8ASoJ0d{tqN z$a|KqJJ#7B99eipy0-@NDj zr(Eyvk5n^}I%IX#dp=Ku($$Wr|HEB{YD-KcAtPx#pm7_%M6#Wbq=LLoY9@(p_Se=4 zHCx`Qf%Xy@1#Lv@xmDF1S*DlR99FfDP??hU5po|T+lb0`8$7jr#6HSG^i=aRty0cE@VUtx%a6>O;2AKLnLu)y`;m-yzmW6GML4 z00!jy%3W_HtbFEui6rC)(a5FDv12D?Z`v{SA$L9*eV*2r2Jn)i9y)P5&D_ZUZuVO9 z+);Jzo5(ry`v0CpWPxw>LN}QA%Uktt)iKSF+oxs6uyu4TIb|6ACA^h4nqRaTG zy)WfsbDP){3%K<Yjb+JKF?)kE|%?J!*|5;GsFaIk|dgCe@orizl{~iqrMyQVQ!!{wL zd;&OhO5LNgP&YjR-koHFj=c3Cq^5m%1BrN{ydG0X{#D*^w-AN0Gm&n3!Vvt_W0(vm z{zr;8KdQotgqg1(D$~LSUbWvlEOVRWWRGN$$^Y04FoTxHJ8*82ZqRNy|hKwz+zG}))JYOaemKiMA!kC($s?5_5 zm@3PLT?zgQOZ=a%>7D$0=I7URnqB*d4oeH~?RPBTqb1D#aAib`ehO@} ztm~>pkn_$?v*TydCvWsVfrLL}pKfvl&nKO_17{%^A`@N?c2cj(nCCVwhqV*{aj-RsF{+Tx|X8 z3|Y4PfakRiOt{$ZB6ISHH*A#y;_%o&2*4K(R*|a5^uzi*M>Y>m%a#AyrYpvW(m7dI z{)kyqHeBrA&9e;`d+A@5$A*hN#XQ?^u~B{nPx#Agww`K#(m>%|JnJMN`9pvQ z2-0d2_68#V?Ewf#ZNb1z6pF@IMtz9-zkx|RNcwf>Ru8UjzW9xa8&z5O)#W<}N_4}|)yDjtLJ$a^a$x8)-8j*0zG%g9t{LYs7t;!gtA^w?X0EIGQ z8uekBsg$t{x^=o?oZ~3H6$V`qmKm!uA@}=CLwFcvXs0U%{laWJ2Hz5FX4u6sDf92U zx5}Vz56kSLGNGhV;Fxx-=TW?vL0=e_2`nSJO`k&$yI`DltZTzEa^nZ0A5tb7w=ZU# z9S^BfA?y2=EqzG7^p`Qt`NgF_6*^|C*8VwayW~q4XR^5T!zyhUXLU#Xc$lX2ig?pD zFihz&#SGJG7QaEQ6T|$QbVzZe>fCJWZ)W+?DDk7d!9%RY|LIcS**|k`VX5DTmbv*- zzvm81PW9V72XcBsB7R9?e5@UM8pmb0tjt{JmEWJ2t6D2--+zh%IL6?ON8b>~rdRS? zH=?gIV@Dov$3c$3E4Kaf;hjM5&Q;7x*cB>sQUo7TckP#dDUsvF;4pKk1zntGz9k-y+de%-xj??L;{@-3-gOW1XmTmf7%dST6ouO8o{}|N7e5b3r;G$ zBF6^9^RKPb0p|S^kC_5Hj1&J&qQAYqID0&5sSMsk0jHilT0YfJFupxo* z7ha3~X~KBRL;O3~`(f+f!T2zQK;C)(R5rz{=ZZV{^SMQs@In7{Ir&meAiqjC>$(bJ zxOe{CM}K?x%GP212eQ*8bj;a#6_ZZh+jA@M<@#lz{^WZwku#AU@PA|{$oM}t)U5Yj z@_So|`nmG3Qx2RHQB8lwL4f2US0FZuCgkDU&%(D{Cn~{R8VMO1}2;hxn@R<`PS%cljf{)1ZxaO8d2$@|#Ga zs{Qf%-acyIVFqVLwu3Ssz2Zk!5Uic_SG))ol9~!dqBxQG2w{nzHTnvhCpr<1L^u=iv^uqXw6m z#=POXvidIrl=1D|H+87--Qlb(OmBD}=4tKuTy`Q@2>#0J+q`-|{|h$X#_;{v z@cruWeXsESfz8V88m4~~rVFpt-h%LVMfe-l6SW(?9~^!^HvGLl{EgBlhVMItzbBbr zgG~JCIN*9vN$ve8{GGVj?|036A^+yz?R)fHgPGhIo4jMVs2I^7g2ORy#qk8BZ#Dtx zYuZM!LOEr5;((gA#-S$;n)*WXxCJJr2hngFy%SAvK(~9WTC{SGSJ~n>-R%krWdA`#c%DLWAEI}o#|BtF+=*+w8dI$$HdFc5H@EU zO65D|#rnpa*$t(-eC|Pd+sqDj3yF={2KLT3^l+|`IkRR({n?57ARxo|nZ$`*;XK|p zBHP%yoTD4gHBXV;LIiCZaAx-gU?SVC#ZQ(=Ng^A zE2?Z+j?>!k*O=_rN`mBX29oe&HVhb|FJ$+S;3inycpsL zifsvE;>3t;+{S<={o(bcMA4=5pU2~eBhdf;H5f*=eAGW_{iq7!a3|Yp#h5<|=PyKC ziie?r%iqO<-;x<#-3$HfF{SnL4m#+>@BQPRRCb25|`m)4ip8bG4Av ziM4Bs2_g8ziYD)Lu(;V3V!86$;)ro|V`*%3Ovl6t`HhRWP*R#NWw^=CV&(c~!+|)Qb}M!3{K+Hm*6wR|@nLQQ#CsSd zmC2}#Sc;oon`m*_>T7tY+Z2vT?Cg5)`g?QkKwvkyUU%2Kppq3%*B;f^?jtL>5rds* zf5uH3vF;3?+kJS&5?)FtRpf4ROV_I9hwSf^4|8`@%&${sdkQpvTGTLOV^A^OKb`J( z=5M0MT(ySpVk7H;rFU_BSd8Ue-($)M;tSQZWy@Nziex8So^bVk_>dIbk_MwiAOz`Wa=Yz?Kk2N>yBJIhBl)-Dvv$QDMz9+H45Lxt8m zvn!zyd$8go;OTJIHhDW~{G221tn9yE-|%p)@mQz|b*+rasGgH$yRwX!gdy z%--(qcAo^#Tpxd^eFyAeB^*V~{do&~p#Bs4O1LfozW6Q-@qi-z%k<_%?iiTg*M9(Tw8E;?kwYkqw2knC~AKsP&V_&JF86#&Uv{P>TF-JRJS#K|64 z!Nio+ADTFb4dmnF2Z@>PDg9oyK_h&2MxB}U{S&Km&u50qw){EgFDQ^~+r4pMTWn61 zMrinGf7NGT&*KICVeFRrq3DC#LU8EOx-7z(U0Q!?d|>^=_yP4JJsj5gY?S?kZGIS2zg=864XLQ!p|YC=_D5Nav8 zXzaq7>fi*Svr6m`e@4pY03zze7iEUm4jo=UbsmE}#2xpc!IM7gyy1p0!452aR{1${ z`S%vfxJJ>nanBZY2*qmfl;TTG@j*{U#e?tj$>6iZC6DNA)FUSoI3Gtm=k8}F27kr% z8hcxH?hg46WMid@<05$`W(14AY9xDNx1>L!9<6&!U*{TK-NZoMV+N|tFp%sKLpt6z z{s)EjE-AFPf7sq_@@5R%3k*Fdf=^bP5Wea#|3$_5wX+Xi=lfGx$ZukS(#2uL`IigK zqWo(>@UZ@Uqy87?zn%Q*wLyp;lO0fX=cFI2N7@<4W{!3Lyugf@W`b@QV%F@WKcQxg z@IN_Gql1hCn!WjR%fdG9!jmrF=X$|JPFVu&gcen^uRdbhO8uVtqDekqb!WyDO)}+~ zXaCZ!8mqUB<=3Mye}Fkr8sbyYczkGJ;Myu~oB(FO4fA8Ow@&!cFNA&V#{zS4ZcZeB zSkmQOyNKSonX&`4!WBYnekrWClw}I81#cDhTZ+fOmG;8%?;qBmwe_3!gKG5@{1f&; z9!_^srBK1pk#?0|qYbraw3-O=3kV#Z+Y78H&~wus5&gNXBSQOtW+M;Xjf@@r^*>d+ z;SR{Ea7yNDIFwe_pJO&8HrM?p-XmFi0A36<)xvqyYWV)#gF@J!!)^#X!L4L1jCb}# z;AfG5M-u3+rex9|QjaX&lSjbA$8@AfP_wsGz?zSfb9f~J8sueX3mHH!Za*|shq5>Kj{Vl|Lo32@9+UNYljXWuYvo-}W7jqCUSBN(T!voOmsq*h%+P219Cq0LDE-duv1Y*;2aNZcb`6$L zCK{^w>f%<1>ZfX(`|zIaJXG%(@@R3Z^$ROF%2sgTW)=LA3PO4~?js|D4Vr93up+dq zP*F+M*{VOGBuA(@e@!`O|10Hj=z2{RL8+ERo)88tqG8M;yU|h~3RCtRiz!*VyOTbK z-UkaMM40tHbhj`g>-_{!IM`VmvSy79?;8vg-iI_JkYlwO>vz<+1f^hHfh36FK@@WG z<}>1nlRlQJg0VD(ld-}GSWCC`;I|BFNC0uNtAss92-#qo?ejU@CFo`H(?P}QXD_TG z*n{S0;yq{#CrBv>zR}(%s!6IXenNdye55Yp8IU_7;um1@+=DemjLGe5smaPgoYoNb z?%KMsDZU@r!i5EwR4Pxs*sF+eTVj#XRcp`q9wEYoa42IRfOVB6352fE70IK%nRw03 zoK%s#e4ieP7kL;sW^{C=dv0+-9yIc9k$wNS;@@nL>Fp)QLI3T2L>o0ach;Lin21r`D_wM-9zL<|e67 zN3a`WBpGM6TZ$D3U%0kzy4MEYw{fzQPEt5KVtMS*$vm(qr?Dr`S{U{yHv+}x$PuAt z1@cy-*EVpuJm&VzmX$uYp>(-+-LPe}Wc#2E?}U!mqp9|(!~kb@b7@2EGfqlgX$`gO zuG||v5Cc%+@q$G_@?ul%sw>_?3&_1;*GEI^CV)Y+Eot32&PhKeAn5umi5ckdJTp~j z@|tJDu9O6i=J-O68^BS71$^;p+NA9K(k+-rr0j6`wfk@wKwG>O;{qOSOhSY6_{#Q@ z!KMutYr+t0cft2M@pq~;^*PxQnzgOe>7+EL?InY#s)b4fs3 z6Yy5JEn|A9M504Wg}xx`{-*WwJtu!F>ps?sWq#V7R9oK?pH#EH{uC!wCqmJ+<_o?s z6z2S|!ISt)$=X4Q6+&NBn(oI|CfjyIg~_!QT)%I#&2IKu>PkJwBy=xV?*}zA?Tt z3c=g5RzIiFXipGmc$`8 zS*d3yn4$KEJ<`DjaLdWcLgrdZe!=>_qU2VQ<~T85kYTJa-M&Ku06E#7W?Tv)^%2sW zf?Bc~cAyG%10VJOa&duh&eQs4l#nJTeVNH9bAuJmUVq;X z)H$SU*{nB1b&_&*IaIZLf#XL*MQmr#`ictYT3z!2iuC3COze*l3t*L8iizMSZtKy_ zaV@bST4MOQg=FnitjJC1$jK#w9ReXkfwG}WlXLDN>iMrCh4_Y@i z$4{c1e=ze6jnO8-#iBAQru36kQsb~g{8R}Zh#lf47mJg$Zfr?BqD)!*Jt>@Jj#3}7x~vL&CnFbX zRgnstxJ^>QFHBRb{5_cPX3sBHVs+j|V*Nxd9iUt!EaY8w28o`eSplSGg|GM&QYs_F zJX(2RH%2&}JsPx_Xi zO5DvuW=!qSF$izJQKAvvj2!C?TIY?a1+HLRgr5b$JjJ6~;M?^@?-9mFA z1PEU1l=SHvNULxtpwJ;eR(^=jg2`Sr#}nA8Z6}^ic2YXLz!Qpjn|&IUCbzK@;hFPI4t_mRih3)NA%Oh!}(jv$=r6nAFPT z*#PZxgSmJ(7wjc9o(9;qH|cQR?K6*n>$NP1u%7 zV0m{hW!%MVLWOUWKjI8dWp1C$$kEC9eY}y#5s-TN&CZJY9giu7=!VS=$(`U^Xe)NE z`G)4*?oByqnHB>h7C@&|iL{f^rO4^`YLZ(w!isb~?O4c^^NSxD+7(M&XGdr(_yPrj zrOcI0+DJP2{uR-^6eRWx8cM!9+*bN6Q|UF|5hU62OGid_XROe=_}$oVfzaZ#kmo{L zdR(%YJGWIo4G43!hfdzfKwHbf7pU!AgpQKnkG4Ah?2A6+{L~kf{X6$4dn*_q{E)4s(s$yG)Eqn=FPWoLEvJ;3R z>CE0i%l>8F>oIX=XaK#1=)_z=7U8R~UciF+yR>fXAMX((C^5J0{fr}IA8~<<#$v)h zp$OwXLB@up(1-b^om4CJHVy>wIxrehHxabbYp?vd>CT3^|EKOeVPuA6=B}M{n10fB z{}q=CyZg$18+$jq8=YAmXUKmNxbxq?n|L!yff!a8`;7>CvA>$3=P(hrpCvMBKickL zvv(=mL`!_1P~IC5+95jcRvU^Usj;E7{<}`gnWtjtZmxA^i_?d z%*_PXW+b0mOoZsGN`5kJ7^ zz}-ixQxiF%eglV(4vyk6a_QKDKN|U(@iYTz^mlk8gDdXHrr(9y^s{@yElx^ai}i2} zoVH5p5kq_GcYORZtLi(`7HMpLoY)DOnUVS{Z|dr|QKihVE{-24sdSK&>Q2GrhQT)c zd2+*{PHMSH;gjNZX=X7~ZRv3!M#%=Dpwb2*?Oc-hwe&lcII*vP2<(%6;`t%YKN9T` z53+m2c>`tqH&`Uu5h=k4nY$ssepQnZTY8i1z3$UFr2=-0Ve0Cp(vt4SRl1qOlR-DA z@*|QKKK`SV?nhN>?c9ImThrPisbFR+cw}@QpWwn(g8R#cG57;iBJ^MR(!6zRiueoQ zBW6Gpfhf7Ld;CgW5Sl)kjxwi-UJ(&b{VwdpwGdlY0HZcnod~|Ip^V1oO6E@8@)rBQ z$JWXDnrO&VJ5qj>_qxjQR1#=hEq`bHPU;g(p&s+jKn)NO7XZZEnh=7yFXbT^A_)2j0*Z;OQ!KY! zFAss5A>?IYxvLB1%m}?|yYBA=tSWbl%1t%pI%%fInR1J*yH^pL6>HV+3}p%gdO=z4n}m`xw3QHy4bv~&jhJ!fGkcc})9qc zT#^*^0uz$e{1R28PrSKpAiVBu*THzw@HL8+p)J@gIb62YhmT&6k-PBJ$Q$P7sKezb_UO*4|OSbC% zV-?lH9oO^cZnjVFj(>@S3Ae5`RrUf{7aT(!+@Ul?aAcAL_-Ww;I_w^W37b~~@G}quK~0)096PYu zU1NXON&Sd@W>ldH_>GSZq?>ciSfzLyi~_*jEg`+bl)P*5-94l%orOnZC80eNEy+#Y zoooIE3@w=o?;|P$8hr{~}k<+0b(AZpD8e94_$eodMd3}a76WB~CuIpt4PqkvTjKZU?gaXeIb0iMnUl+E{pN!~txctgx1yoQ zo`U^lgGT9MC|R&4MWX@E9(e&c2;sSiAA{hy2!#mFwaL@Z%Okj3x2bXZ9Rkov8GkK< zhF#Q989WwN%0I|!hKLeS(JRK=?X)|3He!}x$~BY3;$_9 zFCw1L{7KP6c0kQadMo2zj8A4;Kuk?GEMmv=p6qdwIIx2Zqp=1S{9Cq_j`ZYUt zaMUAAB@Gp=wMP?JQ7>0Ls%2v+Q)*{}>!t|{$3QKufrhYIdKP>v6#;oWT&$nGKo!zM zFYOO@)gI!cSC9eCUE9)$zQH1sy}|gW;;l$xyt2{zOiFNLc8YORebdbjFC*w~Ma}w_ z?BHOStYYjl=6bSR8tc|OS=mp#2kU{d#Y((MGYO?@pI$L!$yDOE&+IV4|%qAhi6 zLllkQlSh#AOA^bwz)wXxAJ8QkzDskFto@dgep5DAW+Zvk5l;Fg`(h~9XDB|=z~pN6 z9L^pZKM3N#r0?0Pex{4q`(y{~l%>-D8(D&1m^$rDXOEns?Ac*g@Uva(;m>HU`R;D_ zYP7U?mI2X{Qjh206O&*-b7m(hiYf6i{Oi}#Md@JAR?!Ho8@?A0a!$%_4!M*&C{%zrluK*HVbrzrr*#*#KS`5KW& z-f>bB3a|)u;KD-+@^^t+6|-Zv?z4~`JJSZLxSg-XNz;t8?NO+9 z=kBeUE?SqCF&)QnX!Q&Thl6Eo*A&|1DHZ-u+z+}a)fko<7_PtM)DrYFGoF~&Xeqg= z!byLl&~w`ZC-oF`Ma^|dMC=4E{cN))om9uZwp14cBzJOoFq^6h~4$^Rc?cR^J?VrE> z?calO=j*q>78#KKzt7Kh_TR$_`Ssg>`rD@c<@{`C`}fE#7XMOGV+mA5g{~SNtIsSvb zM*Gru(iIS}mT~7JJ6u#Tij(`PDRMKhoF-&=hvoID0zGP&{clY8Qm%A@1-~-I`QLNv(RwSD{YlmQzeI(aHip*C1bQ8??a&lkP+mj55wQoh*$FElN+QY$umB=n0+etSrNCFb?{X_AsNFIZdI}$+U9<;N@8i@ui4q+K34M;L{8U1f) zC#k_n4WbA)?3Ii8R~tz^b8h_)BmvV*q}2HKV6g#CL7X97S}< z#7@b}D|aA16+3By@LCK$tp<_mom5P|l3PkV1IQ~V>Nl5o>eWxbIbX%m-0Ujmyk!*+ zA+xHAqr)n!6m)cpXRt4rOcieCK_QxnkoaBmj$0AZYPhZTjo=~%WF~GDGp=SEOUd>) zoRey$O;nWl8^QjjTqI!pnwf#c{f-~A#1EE!Q&>-1li9t< ztR_`{h%Oz8G8gKF@~Pg#O}#CucUj_2j(m#T+=eYD_p9;Ask;)L`y1>SOJ`zl{ty3; z$GT%HoYX{N135p&pMx8NWy5f<+9)%In>`lJ@wP#y-5`mU5?V@9O_i18IPxchwb&21 zj34~H+508!d%U>W!DpFI%e5dITHhAk(7-=%|_3P#nv zmj`tzUZCz(n>0j1`2LBfI@_NO>@D6p!<##S%+b_8hWO1exwHxOIe2{S{`au$ z@3Z~wpZPy&|8G!LR!Jv z*~Kp4IkxCluY*{`^`c z&HQ{t`?Z_7oV)X!WN%wgqw?5&TQ6}?T&Z4wYv@Wk`8Tb84W081Eo)(>; z-;$pc&xf%`nC)<9+FdGZ;K%&_f7`oTXcXtnqij!>_#fa&QfD5W^cdAzXM`UoJwh+Z z_wmFr3Bk8{FBZ{o;6o2KyYHO@p1IV@-MZF!*s2_TTQcY1w~5>LI$G=8=Ycw3l;5A+ zn!fRf%0=_F-TFo*f#P#frJEgeDDtP1ynx!crL-&;GxP)Lv!S))?6@l_Foe!FCIS?1 z428lQBvpnIA-a$=t-pZ6Luw%6RFkek8-Ct4pfeU#5LmY$&1lsTy)GjSjM7o4kq0b@#T+QFH2IGCB-w4;-rYPjYpm6@aD^!j6c zzg)ZBVvorUM>^>*wWDDoo!0%dId+OUs>W zMlcN~?KI+EWrx-76T0Gs-W#Klp&+Y5(-dH@gXL#cWPTrgT?f@dmRi(@rBCLh_+Er$y4CT94%0FHPEykPgCvoswYwhz8ZCa1Q zv*bO!6nmCTWvPa1%97Oqc>Z^ zPOA_3rV8e@jagU1owhOSqZ_t4>#1ZFK0U_PL2$=^!c#TDo@V4z#%09yt_^?Z^`8S~ zh8!YjlR9j*TK@`|4O8&%J?$_YgY#z~e^i&7WbP{}^IOVvVf5Nuu3%*TT*&!lgZL)S z7+a1^=b>H^ywhc_E@$P_ZO^(Bq-SewBcE7D(wY?#REC54TW0MNfV&v}ZOqz8R>RX6 zvp!6wF&+kK@l{Ewi`WAXS>rWxc;S~L*F`(S@J-#`b{_l+ zu&E47%CMs@{u8yP50!611IC3Yl1!zRAESXkRUovv)NID{QwR9p=#Y83gOK0>8tS%u9Sc9 zRT6V#;@}HX_S5F)hh@3V^{;~awUKYFzL|PNBskPJ58aBXek<~=$d`d?wIV3mLm+uxde-C3K;>o;ouvRWmu-K~?QY*3cm3+)VcR$5t&MHZ(8gBX$wpSq$W;bc{};o4X<34Ot1Zf18kRe_ zQ@Mk4gSyE37B)|jm;*cIJy7%WW#?Upo)Zn(`+dxm1^k#PJAm?EhClJ!3b?bvEYr>_ zH@|2%J3a81$Ui-5JZ>9LM2&AV{_Y8-D!{N^TV2KL=fAs|&X;U=`-<=OmD_K9q!M%= z5I;DYg(AecoiCcyEfFU)nV(`oK9L`pT>LAa0TRo0a$VWG3i@^NR^cje@GHZw^)ErG ztkATr%i_L{5~>SZ*oSG;(5EF=nWH8Kafmnig;uYJ#V)rae~$dc7+EARb&`T2b#IJV z-geY~_IARf_q@R;eAb>B{Y-fi;#ai@9T=!yOFZ?*PU=f2MTN8)uo5X51r+$t}^a|KwFM*z2RG}2> zs6;FZvn@Z3RwAp+F(Ldo99nuOL((!2)f$d&&*BdPB zI^j>m4)Yr<*v0`Ng}1fbS7%O2`MTRDc+b*uN-EsgW~S0kHD zQa_9A|3hUic9Y9GKKiTs*>la_GtGEz#V-iQM`y%-S{M@xTtP@_))5+eMy$>P*Mvp9 zzRU9oEqLK~bx5peOvX88OwKkxj7h z=0rTLFpb{ION+PkF(%Yp7w^%?`9NHw;`h0kyN6J(>E^~_M_f>} z7bb(Qyr2eCK$AGY&K^fkcHbPkA6VQab{|5?2(hhTu`$E|mV}MWW>%ZLxveZjiHaR+zW*lsv{onVm{YWizc$(VgWA4$U$r%Sv1pe z$yc};)z)@&{QFzf5WiBTH*+%%r6+UATUV>;PSfZXK7}U6*Y@O3Z0CfYxSjdm*hU14 zCVap))?b|8g#Re;bB@PH_MolD|KPZ6{Gcz_l!JZe3$-{kJ8l9_w&$=DwN~ftjRq^H z4@^Fhe5qZYt~cDH^Y)T2kJySV)wQ|jZgal%OZEB95HCZF z*-smH!qB|&OOb4A+Y0of3$@e>QG7sz)lvvP3aOs|?|3lfJrvxn=#ii-L}o%Ho&=DkOKGnYKYcOdp_ zW1=@Vl>Brjg6|wad!apUm46OrP$WlX%euSXZI=L5ds8cJ!GdVI>!mLvC0n*@d($nX zm3XJz)83>NP9&FKySKDAY2yH}${O7ECT%5Iwo=X*Wy}ezm7Zhi~oabHb+*+ws?PO;HN!3Hca;) zc}%U(QjJz)Pb}C>cIQZk^`u<@{=AsSDB7RRG ztMqir1?TbyeBs`J@0z^;C%r!@GlL8GYYy3T@ZcsF?(AkC(;x_Jro(@ba8IuH3L%em zMNRewZRO&^PH-+~)&i0U?vY$j@4tDyfHu?DR}~@q{6r;7F|W{ zAA2Y&wjj8Uk2AfM^WWZg{-%A|I}Vn^AfaCq2o$R&+#pjnhk6j*e@1j5yxE~_D`nC? z2bs{u^g~Z^QcIZ!1(K*nA$;#9>fm%!wI-(!NHsbL#c!>?_-~@BsO&wwG{QZJe{x~} z>exJRgIlmyw>XXG!BORA#JxwL0%w8l*Mk@M*A3=(X!nW#r|Z_^ytH`VFKUURv0nzFF!+6Ziv+G430EcPD*HY*BneqGD zcVt*Pa(71dLvCFlM4A8ZK_;jY?aruaYfk=07bGVAZr+YIkZ>dqan+TRK7$H^)A@t_ zkMJonz3encwMts#x~FCFb^i10OAtP7&$i^6O}TgM<&^vl#cqU)UZrfT`WK2saL=tI zhXL`)hDP{~x{~R&W-l@jv`^2k@@(?>M=3!!#@HzmnlU~88^CW4`McgiAFo97Qtf)> zzf>(%B!su+lwYTWdCKm+48Yv33bu7r%{^BwEK~{~%$2K+5A`8iR7>wrf_L)e5dyEYxDpn5MLy|E5VWC$EX5R zf~Ym@m-O57av4^S+*LnyAII0YT!@7_-K}Fe%dLW>1owj!iujN0!tBqD_7lwIjeM_I zXuziR3hw(_g3E`5wL`(8A*Ly}W zZCc5sm^Rb-H5*TV>pzpn#1RrR&QTi^v=%PWTDVL>YFhc)LXa92Xdy_Aaub|JjbVP{ z2HM!1Av||fegAC6QA_oDUJ*wdIZ2r4+YByfBWs<%7og^DjqqK;ao=dkp4b1(*qjCm zD8xT&n?>Vh20K(m(5a3WRZYGIig4ZDVyfk5iT~t4D1f5a9t##VrJw+HJW#BWQfC(G z>v%D!7M^8$jV&!DveJih1+Opq+Bv@6*v3rx;$4KS64DvKS}Vgddb&SP1Z}hx$BIRG z#)+_K(Y;A|{N(J-=V)V~*+=}emrtN#)(Vv`a0kBPCO7VQ#Y6nv`HCr-!OO`(z}cRe zVNdF*BYqO=zmCy8ayIXivg}s%Bb2Sn^)PHcSbIliWLa!ZnW=E2TN-3ayLT7Xf>MM0 z4@IBrKAyNbIDw8^dXzbGqUv6s=mSU>@R->dqwB4iF=Y^$>$xq@#1G48eJ2<8M7S7A z9)NI?JDb5f@>eSb0kpSS7N!ysJAk1vGrS_R8zN(yTe>c}0qL{n?(uO`_D^o$$kBfU zUbfeXbetT^^W@(D0HU7UP>p?n987CsRrA2-ng_0H>E1)@0hFpxQEsy{;VlJF-D^{3 z2Cd9lxc(ZQhkM69TTs%f@MO#5Lz=I8Qb3t{K01N;NSq{9MIr&J=vA7`JyejtO~wy_ z_yq1B&`PY1ub6TlK0ejZFEjJ$2Ww5V%*z&RVL=;(NE3Z{Sh?I;xKQ zE{W~suZ0OBeMRxZEq!&9!xrd!rr(+8plE(K`R|VSk?Ga(y}{MvNGXi3_i{&{CCOZA zLYIaPpd%yc7SYJcur`T4)~u$;9u&##XvWuDm>pg!8(#g&lEg<`Jecj(OxNAaksqC2 zTGFwSPQY_U&^S>hvsI(@&70p*^(tTa(2ozn#WX>=ete4xRFR%|mc%|qi6u&$OJWBC zbVt=Hs%S6&V5ew-mapNFtGhSXS1K}9kMjktRBp(8d->f_8HLQ$_2ixAXM#KD@ZY^Q z_*PM8BPM0~tz4vM$s2i5$;e4s?UCpcAK-rWyzBLwtGp29hOG-I+{rwoqw4jsFbpUV zkN=NHZ*lnB?yc>pdYTj?aC=LPU;Sj(akok(RdgUQ1m}@imx#I zjnL(66AYyh>qxfTrD8pEC-ziRarvQCtc*wgg-`9}-66U?%1YYW%m0hP*plD!ZX)rS z@{tQQ6-{kCj<%0WJE~4Kqt)w}9}6$8;-#Z%_-Umjb5)5!w=mOqijxkk#- zFeqWGjW|7wEwZ-6(*UwFAN=0Mfc%*h0aC_qywzkV05WWr8as8^O)7sa<(12SZvT8o z;#Wpxom2xuVKNlT*R0ORj~v!dRm~fAEk90r7y9G96>J@?h)*Cmft_3Z6H9v(8(3OETq^>;$1n zBo6s<(@Q=+A2jwkaDDOTsJ-P+h0NZc4X{Mjw6g-7(D?akS^&Tv$59ey7TO_}3U+se%xSW*kkuZ4vRJRb%=c?FDo8PS0bIEUV2Rhpo$`AIt!TwnO z`;~kTSrYiq_?~KTuV8gEu4t?Ru;d$EAv=9=LGeb0G25$-!W~sRbF&U4{AASx=O?2a-?5Uacac4^2O(vln1Q4ed$Ti<-OEogwF#hXuT`L;cpcJp zOLPHIetpjEtMS&L`vbp0 zcf59so=DqEY5OcH_AnHjUC~iBkkb`_Hc@S5dkr^D4m;2Me5bOb>UVtRfcN#C<%2PH zKQ>eTF(?c;jv;5&BHpbus+vCMOGnjHqfPC7R3E6hSEjP=mBh}uk(u6gufzvRg|ydJ zC*G&X5>sS|X_2uo)umJ&0G?RM74en+uLx5@&R?6HJCHN?f@1B#tq}kIN^0)aP#+y2 zE%-YVt5B&E<$ex=6LF0J3upSPdC!y|NdXo!F)xw7cy2G>m%sYgQPl&;b5Do;$&~NJ zhyRbgcY%+pIRD0HNdf`E1T_j)?Xd<8BA5h(fPlMX0~^`ELc&EwlO@@Z#bkHg3k19c z6I#|Knp)a=Ynxiz;A@!A?u>xn^))*@cWzTanN&hFWhMCjY!`+q)o-@xp^UTaM&)jFuK?Y83OZgr>A2G$nVgAxMVkj7*8CO%NcW6GJ`VQWvt)DOF zv{tU0T6DP_PT9&AOt+a{T{qQHfcfYl@?10Ogh8~BMxnU687B(_SOV7R*~*Uc#3 zdo)^fdFU-$dB(5sh(Sv+N6CZMk~-9`_EAdurbe-7<-?) zy*wp_rzB%180d{V>!$Gpy-~StEhXp`=yMh+^-?IcHP{NJ?uAl^jlzwQ!L&ZrnswNG zo`QOfiNrm&`c6~*PWmvL|0Aj#yu7IhXE=HM==Uzi1OMETc>jF)i1i@E3;ds=xNT|H zon3ENHWkwZA>~|RsXwGZ&S)+tn9A3dP!XU}D;Ka+CL98I!vA3lKTp;_cBe|;f1yhD zLS!l4nzUQ_djF2DAJZBXUtdaXGeKL_PGb#+^wq{Kz0HywBggG+3IBRMz1Ne7z8CgEGDZoewqlFyHk@Xp8Z zYN6PAQ{#wI>7R^fC}W+QbpH0nloZNvejTH1+3WB{c9$ z(6axU2>2q(v}lICh#H7!Ff%+jXJ2@Snkme1Q!ADL@WFYsz>q-o0bT8`XvP>jYX5s! z-&SdD6Qe7PnF}GU>v44@Ct!^*#Y}|T6WdeDFVgEm4~F#K*^TtZ^4xk-VtP|`=@p-0 zz)DV}oEC^%(YT-#&PIFwc8X|m*U+c{0uqxNnTP@3xx5AIPTP^6OnLP1HIk7~z-(kA zXK(aCxm8zFZo(-JBCH|;-4+Ak5)hz~ zTDaQyvBR#rW9RX>;bC=mKb4R@;>Hq-bCfLtW4q|hxis;cvEx#N9*abEC-WT2>w)1f zBdHeZf5iuLXmyibs!MB}@&f^ps_dM@PY#1JXcUa@6x}B*8D`8oN=x*0u&&<;|N5Sk zw1%fiYiORv=@@xv&K-Rnc26JwrFD2%f7*K5kK?hTzN9SE(uT1f7V_ytNbOwEt%4qO zSR<)8wSgDzlHMXIXGnUjEu7s+Q;D2UpQgI=BrcG#PCE#e=o_7MR6@)bcz=d)UqOG! zVW>srpBD+Id;mh%JxxzzI7KxgFWjAQf>3Mk)pxLJgQ9p0?48RXR=rseenEuQM7To` zZYIKSQB(=*1AM+K7vUA8qZ(YcNDfza6QbsJvJxJ}?%SRCyMm{zg*1!9p=f!pC#7yWWguY_lP!?Xth) z`RTefHXc*I!x|Fu_Zk9qHB>gKUBbN^?#@!m-kpN*2V!`rNqs;#?<_nL zz?h*TW8rUTG@0>7Jc55Pk9GnVbdUrKowdOi3dz@1M?;Ss>;E8R8GNhmC?~?nM7T^4E+xV!B4iN( zeFIhEj_ zB}cSFtwIvJekJu0p%Yf&lnMmux&`)jt#FsX-MNCYc)lP^BnH^q#lm?3`3K7$ZO8!>jbfXI$j~HbEYxCt}Xy!6|*QA!uy;#=XS+>lpsABcWy# z%I8?@Du#Ayw;2*1B*e&~-_Brlp#X+_Q3gCn#V6$N<0 zvF5gD#@Tqpo+qDr1+DZ63M{G|K~DIP2ulxqK=hV9k|ZXjG^(Oe(cs|4G%9k5SE2Dm zYrdox+P#%pcI4Ge10P{O$i--pnqZABlGk;M2-TLK4pyq~7z6VZ(5J}Mt8gz9-B0Lm zw9#}8%n;+b-DduwKt7gw`D;{G+DKQw0w>J!C9M2*9wfpCg0P(kpAz9VLAVQquJ!7@ z!u3n?rd#Mbds>P#t_PjELui2S7vWkL9s8m!BkX~r4EU~*oxXER4IuRbX&Zh|If$eb zQdnvVo8h)b6uej~SPS}CjlNaTqZ#kbg7TlWVn;0F-F!TD;)5E|j63j%FIc5h2`KoM z=P0OzqQmo->UQK98WEpYqV^D-aO~Jw;+~bTuSm*$*sr1XVKQD8*!3s%PUO6E5o)4n z-~L8-3BxIyz{Ize)cXaYo(P##p)V7Jv}qRyRf0(Sj%NjwW96*+D+kbzBbWci%}W=ZDQcV$p22h14c&wg!*3`fKqjJCu(S znl5z)6Z%p;`zx-h;B@tw5j2>tgLsPX4j~zL19-p)#>WU7+^rA02udQu+fCU!0-bC2 zp+!)d?HLB{f!ocpMcP{Q5`2-XK4Jr+e1D-H5gv~ z8hmE_9Q8BmybXm;OF6psERwSKTdBEbBR)9It}h-t5RO6cL=Gt{pDEf0E)9VS=lvB{{>amCET-}!=&M1&I3-&^!Pj&RCBEWz?a6sjr+ZxNxEBpcdue6|cn z-xR=B(%ddDfIsi z-hct^JqD)ELQ?1Rg760-oIwP7w=g(v0s-|qB3##zcMiPcTVMQ%pM_{0g5zCBF0))- z7(Qs5!O(R3M;EU9gdPg(hcVlDdJ-P1KQ0`*lZf_kdtv=2_|(g53vgycNU&VdTY#l6 z0YpSdOYyGw`Zd~#0$QUmM}}f6VQ(mh7c(Y#bCdBc+u%hsrwg5dNuG12ZvB$a_L88| z!@O6fHEftj-d0?kXLzP1+UPzpS)<*Eu6KIZPdT6F6KVQB`+;c2iHL$`mS;(}~xS#94>|3*lOQK>L}6{WN^z0%;t=(})v7k(9?MQ2p*Ku+lGP zzu-rD&{bngj;8t1jGMt3{vwP?`UXgmwpYL(yAz{@1wkgoSJ^8*Yd`VPR0v1VELdfw zEiVLD#BvK1oAJcO6d{&_>%|CDj(2Q$*)y`Rj(k!5C<_Vc7we0BkwPjJrD(!eC7{tC zQ{X3IhuGv)ktS$mIO2{*!IEU&VnTh2X`58p*Lou7&)L_V_ScbLw^Isss6URa-y;89 zJmg{gw|?IZr}M-0h|~m=h-U0Zs?j;|g%E_z5)s7G->*Kf+=TF~%|go?w8)Tg$26`T z8sqB5-?8->nRU$fz!%=5Em`2wcr^mJXJwwOcg?hiK?LXBF2Cd zjQPnJm&VpKxw4wVfz&q8DT%EHP4f05?%&I|jxwfAjiVWZkZf8yk}>}EWGtYZdhy&; zp0dzjiaonkKrgW1mAxX{{xz{>UXanqI`JC#FTwj7d`|Xvp-Ut^DvdGcp7&vuWpsn%HXVYG$30ziq(I|Vk zKv56CCg?=O0&8P=nziv-eEa8WhwXN>hiCBvvmbnmrg-a$^78S4su~v^3{vdn|3Z^e z1UrA)DSx)c`M8fYq-{=W&G=wNW!s$LHMx7{oH$;+72*pUtuxaL|EBR4J{f!37JJ&N zJ=tP3TbwTzk3GB;?X?5n;Ibk4X2llvWzlz5!#0dg9C4B|IZ34~uH_@a<$&!$#M0bZGIaQu>Y@T{+#m>&31u36gfwB6E0G*N&Whq2%*s}Z~GO5ck{36y}XSnREgFd zsv_Zy4`yP#z|@~&Mv8@5I$jx8gSi?VM|r8Lg4Tr(R@YI48_=9!QakmzAa;oN3`%?A z)Jk-Fon$)MMe9GszAWZ&Bmr()>kx*e zHQa${>bCQQ!SxroY>kg)I*`Piy?YumNy7|h)_B6cjAon!{nBV2X9~cW@xt4%$?!MW zm*z7&e6HL|a~X9%_#-K2ek^u7?g2A;m2D>}D5b`fcMynI&l)Hf@8b(zQ-35Sv;yZ7 zNli5R(Z2tuCCs*MddPFN$Gh57Ne4`3A~+7wq^)0ouA;K7fv5fw)=6gyZBNEo8#3ue zFmZ3Fjt={KZ z`Ic`7!sDzC8>Bu=Pju#Zm&(`8IFa;=Zza?DmNq)$n1yd0pJSs}4x;@|+p@1Re9ByW zSe);Dd_kq%un*0SX>Vm)GL0*?EQ00`M8SC#Q+{TskJi`?s)6j1pCfKc@n+{UmhX+h{VGreW3ws{2KmN^4}@(LW!pt7llV?a*W%ImFPHSoCExuTmh}52 zzFE@OO6-^PTmxP%-3R-@-%7fsk56($zQ2_8dnCT!K-c2AS<+9Jd^;uHC-Kb^KO*r$ z$v;iH{nDK)@ud$L(3-M$G4YMo1!)NL(J$R0#j)EOp;R zae#PlaIGc07l{~R!5b)oSKja=;G|#y{w6mCPgYIXpNWkR>Ej5W+HuK4>ciA;QWJ_e^DrheqccgSj)+*h_M^PuK8c>&WdDi5e%If0`d@_N3%`UF zfj1Tx(>Z$#-YDlO>cme-xk+hTrqF8(%s8@~)$|)6#n)4Ekknl zZpa^NYn)@s!Kdi6c`uI-^2GVyFgF~o#d!|;#?7@T0P$U13>fn9cF%Z>p<8Ti`J+e$ zUH2oO^gZ7q3_d86DBA=juCrbh^6eh9BX4b#QY15eLc_cS4S22Mg5~ zvF$+RkFou5UL&($4p!R1Ob;FG`ZQ)wHu|FR?ySxdRq$)>putW4l#XI-+BG8)O8qyc z)p^^f#$e`{3KzcB9GSJ%)_A!>YfnS@1D1W-sfN&uuXDi|dY=fN{Ndvypi$bG1) z?i&Zq-EB0F$J2gVk6cP?&1K=2(;7bKrSJ`24?$&si*v(Q4O2foLdivbFdDgI2PPG| z_k$Hh(hKWb@ujSN!HoKkef80FTblLng{HS*Fl&;EA}1Avaf+VL_OMh-QDQR7}WI?wQslzlE=RZO!e!xsLuG*Q)V8nquJ>Tpgs&MGehJCdkbrw(?g!Q39tT4%(bkZ4fX#|UK zdgM*q5W$GK8HypxDg!Aem!9Pd66yG~Eqrfgon)x8H8x~6ONS5KXUXSUb;JkQnzv?R zl!>|iCjO2@_2<-#!g9@Gr4COh85l4g@@P>8Q;^{3v=jKH7S#?}Bmh;NsY?)2JKn4g zIvYu!IL;I`H;P+Z^D)!3^l`!1KXggdmu$*knB79s`_t?J~;uYEyUJ3$f>rl z3FVX8x#l#D865B*o9Hj@ElG8ey{6cRL7ZcQ4Ap%KIi*ovpcf|OjZT!;ITiexIEwEw zgMX)%R$_wx)I|T@=~i88Z>nCNy|+9=`uNe< zm^@N6`rpUtE@k70v!2oSzY6tlKj6>EANs-Ba9Lj3>PyO^{X|3IZO_mtQ|7M^{xOn& z7v)dIv2cC)(J>iKU)8E$=>qyv~t2c~l>5=OV&& zhuV3qYRIf3+?X=^LPBcKJDlp8_wd4k8Ou?q zENwl5&z_V;aG2D(Gr>huOKfDLo5w-F#*LXTk_4)rb$RDwo<~lUKUKq}gt2gkEKA_iDdBNCJow3s9npp96r7q)N}es6F&Swf?L&2Lq{Ffm6I_{wBt(mQ zE|f^bYvbyPVy_~aVd4pQlx?FEPwEGtb=?xPcT@zl-gJ6RtgrIU6(c5b;1e6T*6>T} z5ZnN5XblzDA5B_ytn<>5B>t^O^w(wcDw%O_F$O{kKHam4NDJXGiHzrRGQq6Sc0LoOrN@bcwn8w5k z92bzV*gd482#Y$hVG~(cWIZ^z{@cMJK2TFIy5%t<`DQvw$$!uvh9cKN;gRi`btLEF z?U}sRA`{37_CJDRW87iIDL`B(r8*qMkO7A^-%=mKrXj|7C*my!EF4O06K|EnfDG9| z<)ffb9fVh-ov7cv6k8pe#FbPm-(;yC9-NOff)9m5!@HiPhApSnJ{9#-@YPQgx2VZd|kRQbY-g@giP_m#!^e^?h=PANI%=WzOSAUE@b5 za8({U;6=^PPC-?$IvOI|tl>6091c4;mljc?uEUk#$h};%c4(TENVjsEN#juJW?;1p zwE@XqhLu6QM}mc~Pfgo^T7o6tNt18~9iNEb)Job27o-afV}!w%`zd;8*c^YstQ{V> z5|3Ds@G9N@anaPT(i(ooW1X8`6z;U(1c-h|i=W}Q^Ws9rap9O!W)F*$+QTyCVUZIa zDIJB85$ofmk~X1L|>v*~H;AA*ajKr^%&@t;E5#XCBZab$cDP6@;2t>I7V4GuC6gFN~PcJf{{b(D#bMa!TFY8y5bm~Cq%n*efT99h1 z?*cEbTjSITqpKWvVPCARK;w}IR%V5{L4L|Ay^;2kOiL(??ewvsalVl zPOk+s?B%V6JC3BHF&k`88iM9#USskQTjT_;K`PIP2@Mboxq*hqX5@MbO0}Q?ANHm5 z5_Gf_nJ{;r4M!98U?@>!fzpeIRC+Mu0WWGyrJSF-c~I~&8+z1cB<--7UcsM*kX*rZ zo_+UHZ6YaNElItWt^S*I91p1fHa$2(9h%B*Yke1{v26vZ)E)7_U1$N=W>fHStw0XX zO2?;jUjSRz?_=v9GGZ&<9N9SwUPu)*{L9v^^>|$hM4>s>$?UAAOzD1>CDK^vpx3%X z8^CXi+?|<9C58D+JGrqo{U)##1EdaMJLoE5v=iOHhx1QK4-Sr4(!=?u*wH%EkSVR9 zKA9wK;+(dKkffe9L}YafGFgB(Tp;npZ5!9XW3bh4=a`|zp_ukqGw0EtQu;F=*Qrrl z_OwEkOtGx~B@?Uyor9HTkehf?BWq!@^pReeY;aI2|HLlNi}AOF+=OLxGJ&!p`WWXD zxcIB&uD}Csu2>`G>1nszgT%m+($+st30(gnF9%Ebb8DKlWBsQE;eUpPTAl$9Ge3^Y za^2RPBd~z9Tc&{9QXfsa;dDOWDG2vi!iRX`(Wk*&s<0+vIlO0(HH=8sA3%(j`hVhP z+lzRL%pHz(CYV2-Vf&~HSlBt0Jn%W)xu@9bKj+n<43SdDS|xF{#6H5d@^*ArK`YeR zLCziDrowJ;z#MHZt>`bcCE;y~cxPBrNv0XQGQpDyr@n4ZyX{%?wCc?HxXp~yabWr%!aPe?#&Ol@JNAX?bjd(yko(GF5hV{zAT2IeZJIg@-JD#-?y7ekJ zP%tP86ieDIx=lWsWAa(K5%l+jaEP-zV%Bnp}#Q%3b1gcmyyMKd*O zT+7ln+>3PBlY|)-;60&Jg=JdOHnq)ZyzUv4_R-E^`f$i{2PE3V7l(_{4}OTq>`6j> zG(M2kKz4}v)FH0hO|>hbF{o@RIJ?I}uj9FOEfQdBL%E}v^V2Emune*xQ|G(bE79sZ z)do}Neo(~tuKxX`v<7;!T<1KbuCfW05jnJg5ZBVJbcI~5hhT^a#odr)KK!i7@-#&w z-g$%XS0hZKo=zu#rnM)kk_<^Z@{b7X0&&xivOU{&+r_ezlN=p zvfyZ-`B-bCW`T9~phwg6lePt7I-5urqJKv@ack6?pu3=F>dDIxNYz01zm|05Hr zN2k^=IHj=s0JTlj_|bOp(W7`{LDFf|Fh%Abu{S24h5;YeveCxy^QK54n%5i8ltYBj zqr5prk4hJrwD-DV4f}Z$y|1MJFL_At!B9$l2)V&vhXzg9wcOoF(?MPD$H&VU*`&C@ zh~TNT;7;!A4enD6?vEZ!+>s(S-bGguk%B%$W`Zr+#)@VDWh+q zw8z);?n9#!k|C6k)>dv^_$y?A-8FCt14_c-dh9F>fC(7%@>S;oJVS_(? zKR}-zL-@q>K)x~jTQK3{4^JB`k(4plArDxZNROtg-uSS`j@8 zJe}68Fyh4gm}+zj50|b6`TOQE4?s844BD0QJUfk$kzS_m>f-6NLsHi^8iv^TatBUx zMuQ`W3zi>M|Gtl31J6@mOBG6@{G^Kf{1J;J|80I|yvXx&VC}K;b1%>M59H@$k)Mr_ z^aJ@Bq2(u8=7$@0B;|4JINHJ^9wtQ9I&KdrZ}l{+w_y2>kCWk@75C=ldjt!NP(%|~ zJ&i75!>5CUf>CUkKBMetOobBGSg>G}k|)`#)VvqC5_YUX7}ylP@Rq9X{+PN0GhZ9w z<#jUO&r7)*OkMw=^1_gc3SKKOnnOg@@vq8j`-- zzgZ@T5?4rzUdO#ZFKYw$a6iwu`VrTQKF{Kv3umJ3K~`3wwZJNVl#bKUg?Uu! zj9iqoCSCmq7TB+r@?Mczx-do8k_i(geJxGnkrY5*OQ5jLvb4&m(Lh@x8=l6DMKCm3 zPQ4Vh={daA#7DZg^WC^Ef;sAUSm~g(jI4Tds)=4rhZBkPst_t~^)pg0Y?WFeiWaB9 zt&x=4EO8|^AIqkPR_Sv2yVs~&3XT)HG4bSN+=&_u-Rwt&i0Nj_Y9!><5y)*MV=biR z>k zfR<)eVN{9z5F9$CVoqzI`8-m1sZ1eCimBK06s9%M{biBLD?mnRO%kcRUZ2WrO654D z5+g%iTg|)(u_iy97M_QsouEENV=1i)izas^S~?^kPjyniM&)-qL?8+mwuY$uwo;6- zxwaL}3v_L!awJ>j{RFtrC(DAtH*s1+W*x_3u~OZ$hss56Yt*ZCT(MZVP@j4m9@5ao zg&_5GtSQ9`_(>9DKHP?J_Lt%bD-7R>r{pxcg~`IN=Ctm>=T&zmhxft|LPdvn4hrRA zmK?$>zsMALYI&rT%NN=xDb$>;+f6xxiR>AImq*C?MAwuXbk}(o;SIt*XN2QFf?;&km8IRmZXCykmgH)cx`cDQ?Dm%XdL8P(% z6M7F$a_1ppiJiX=x8r3Hr^MaDUW0dVTm6#Ts<2WR=g@FU;~3<=G38GjNz24NT{vl3 ztc>Sr#O8p=HMh`r&;yX46@DV;+b}Li&ToS?q8`0N`yN`(Z-KtlFlsO?l=uHw89`SC zZ4My|9h7!L%s6ele|ZV*7>v`V?nY5j3xiY2FQAW6)PJFcwl&Ueu|3INe{K8r`~SMt zj)N3Q3mjOrGOZegC6&-TTR3)rTAP1Gir-wn&)RsYsdkJtJonA|s#H@U4u=l0hx6OP zZj0m}L5CGTe=d$>SjN8E)vneZiAJ^f>Cnq4mA`pytCj#8y^HXOY1IiTeXdZO-_3na zUC|L6)${(3ny|)d33D$9-^Vp z5X00*=ntkrh#2W0GPj@zIuagClLs}P=cnbp)>y>!JzogS6ZZQJ^@@!dC!vXnWZjCrc}_H3M_l*;aLt7KFW<3eb>|5 zY%!ax|HRkzx#%xB{~Ia9k8^T+@e;h4J!{6i`bUukS$J(g7FCg)`fsB_b9e!5qT#MZ zldX+1j}~hO3?Juo&On8!-)Rc{-5#+h_Aq}d&H{ydqn9U+Z_!7pkK@`JPXO8DX39`w z#vjvxv|;7O%w`gcG9cTc;-+EdC;YhtgG({Y#A+oquL}8BsU0{V2PU@@0WKE3{OXYq zywnTARIzC9SI9(3w)z(OHXd4?f>-dPIi{GX!yeJ5P=~!YxDZY3#R!ao!p1Iwe1_pW zH8vPF%a=&m>H2hI#z!bo6xLZ}pIT#M^65gJg64wyYnXa70$aAiOrv9WhTES!xA3;i z9cuE|2g9#g_P1KkPPs$D)vj`Q!%VYy(UPU-(SAWaf>J5mkamI;)R?li3~51BjHKo4 z`}zxdaaA!iz`dlC5YxxEO?Q#%?_dAWQundUs(~vAyp0wDN_`)v5nRpD4<>n2bX!<9L4* z8SysG_MogUMW*N1=t^u5hVAH1-9jxDbm*ut<0ur3a-NK;7Axn`QlZ>JEAVI-U@X<(8Ytb->H}C41Fr(5e#V9Pi*md`l;b^E;wHo7 z<@h?P9T_H-u}JWvbb-1tW1~p$>oi8!408jrsn%n(WhloEG~m1(-+)oe66Eu#h=n>O zK1-zXJVHUWi3p$2r`$IjB-F%g{hT8{)`nD!+EQ?f4TWmOy#Au6ke*122kjY#U*da7 zb+ySXXaRMpMtuhPMHcx49&^MNG^N^LEjXJ;r(X9o34$6>w#{I_k}l&75dtWxtk4^p z1htGRJkhXT@gelmwY{=wTRH-%TQKjEk`=7EMN(deHweM&wZOd3KpLu%2GDKlzqL;pxhMrWo{RbK68_hbKUEv)Pia>~qC`vDW==(lSm&AGQEw4}=1?F% z2*hopCczvlx;&6^-UBTda+ar_f$AHpe0ZSpvcW_Q<<-fD0LLmX8lQ^tTK_kSJmqO> z2ax@hysXfXraUMqtF??mN2xT#<$5NIP~X}v5}r^*6(SsG(-qNER9|HgS-{e@U6ZTc z#Jy6eJ?^T*;6|)J#k|Xf_Zjf!uT1S%Ro|i^;HvrpHKYku zima}8bp?d=!prIq2gW-ot(cLuS?Z`Av4s~j*~6CGN!fOOLf6s^j$6P%B{n7f11_Lcn2`#)c9W$Zc$4x&N29_imqKRO z-I_jy|F3lZr<4D!T9SGFCrey+$cKc|(2y#1W5$nC;o6uClGH}U8;@m?|BU-9#~IG{gFyEL$~_oV^c|E0?Xb;t(YFF0M# z`lfcjU`Ij2JGJlI=)T?qg&476vzG>~c@&7=;awX%wGbC5DMMzYkIq}<*-SKg#GoFYVk`i@j&^IpzU1Tsv-R|y3DZlE~uqh1|-{ie(^@Y|qK z8tmi7+RrpkGc^S^;!q@qgD~vlb{@QepKhV1*-X})r~a0&0@K`%`Z~1q>PAkHQPh8n zG_HhR({2&kh2cSvzR15Peo^FAX$?11G|1ahgqtSIgHlgP;7LK$OKD^sepMW)Kbht= z!Us&+BbJ@SJkAc^%@iJ~t)g%uyjjsDA=*ycZ!c0tHCYhEV@2yMIEH^ z_pNl^hNsFVZ2YajvCIj)!NP$}E(ZDnj+pW0&xI<4Q6Lg7YF!DP4={JjT>H}2<1Q$? zMWy8L8=#t&iZGqO_#WEPl^`BT7X7v&5I@9*zDhiBQ#vfH0qZC0K$b4-X?np<6|rF- z)QUXS!51Uk4bQu$O3TYZY zMSVrBPiq*B2c)WwqG?SF6P>gNV-QN!+Bm)Pug84B*w(43vW^LJf*vl0C|vyH^%#eo zxGlnTb=E?a)3+66%{t$PcVYNdDs*Awyh`=1nFkSdeYdHThQB;3!86g>*_V^CiJ*{% zN{5Me=bv@OczBR0ScKJt7OIaT1`V5=1bZ!KN1LaY#8a1$WLQ?GI0YaK1bSDfB_N?) zc#X1HFHqn56n*V$|Aggs1HSw-P9$-_ZM}WE5iQ{1nu9S0=AJz?bQX^ z$XxW$#hCQ-6{_q=20Mu#5z3_1!c%RHe3q5*0!_aUU`U2C-_(loRyO1(hjFxp-gu6C zck=%9H#)>F!=7=q;LC zVs?$7J0xzBxI<#aFZ{D5_DNhPal6Fn0Vzk~CW%`mP7g|diJK&DmzafQJQDjPZk4!~ zxyt-xOI#*#lf}x-FpHzNnH27q<@;&4r$?Hc+^8X z^B;M62GxR zNPn70(NFKD#(L1XLO)pF;lDKLCfU3Lko5l0D9NwsPw%EU&y@aJ`t)uJGfo#D#bI<$ zlK$v2_|NE;LHfV`0sW@xXp%eZyUl@ z$Z)EGenh%+rT@4rk#0?IlH3bTlYBEIrZ$JbEZzAM^R^1~0_lDwQ^?o&ZIV7$$4_C3 z`k+&oU1y8%4(YGSDVFZVIyvOGRJyOw(MkT5(p@I8CZ}AwD=zC;3Z_x2m9CgxNZ=kQ2?hO)a>4`}9Ee8H3>HdX*|5ws|hk<^#bpK9bN+ZSb z?N5Y056JXt@%~=&-77J*Gvv2fx*w2O<9}GX|7xH=Cf!d+ti`)cy0;tnpONmJ2Kuwo z{hY*_oad!mUoMoUmn6MiVxm!){nC9vVrpxN{;qVtr{kwE2c=sdFY$jQ>8iv;BltwR zKb4sDM)WVF`zwhxy?rg+-x}ygrJIcv)6ePBt(QY_@0Ip(rjDP&DAIk7#KcQ+jFIjv1OGVbo*=Q7o?Pj^NMbF&Q>1&E z#G2k(WqM{vI`y*@ra-!lbep8ll~}9SCH>GL>IZ+uc{e*ZaXj1|NpvgIMR}R0#LG<| zL7ibdZFDyq{Pkf6o(D8Apn(Am3}|3L0|Ocu(7=EO1~f3BfdLH+Xkb7C0~#36z<>q@ zG%%on0SydjU_b){8W_;PfCdIMFra|}4Gd^tKm!9B7|_6g1_m@Rpn(Am3}|3L0|Ocu z(7=EO1~f3BfdLH+Xkb7C0~#36z<>q@G%%on0SydjU_b){8W_;PfCdIMFra|}4Gd^t zKm!9B7|_6g1_m@Rpn(Am3}|3L0|Ocu(7=EO1~f3BfdLH+XyE@n8ff}Vysxfoym&vI z=JrXqF(*x*3;rgZKfRmJd`QsgnSR*@x1i$v^D@3>89rOeYnAR6!~5`WxS`r-f%1iun5THy^{ltRH_ZKR)TNx$C4`%ZH}V)|-T0jacLB z50^>3w2T(-?RH4)lelAo$(HiW$0;}Wp7+MzF)p6jm#$RyRpJ9+ zamxSMr!j$LV*)JSUR-Ep{F$7E9-rS^UhML(a``9bvXUyl%UR*}tSItUxT=|@xNtrz zo&cyF=c_sbIxMBj_PXHFv&EwykIeXkeRa#>y-a90=; zP@#(>;H?a=~6u`yAb@Ag;VR@jOgoq7&5KD6r->;-$y% zH}V_ZTM_g=e}?U(%u*ScxkN&e*)q;19-T6zCdE46MPR{XwQA&caP!UR~S8QJHr2L?a^o! z@F@A5DlyRsjvyV{b6i7yumy)$S7QkLB{3P!MI{E_W%@ z6(b9g^Sy|g(r5JK;pc~f$0wjTR9=o$vsfk-k2k2eJ?@~}S?ylys$h#ePUNxN?L*O4 z@T4d%zu)Ue7q$v46^bWRv)tuZyp;;_2^~~Z_bR-EQ7C={jnPnoNPf&&S?yfGin;M9 zm0mye##0ao`N-xFe_?gCYlX9#bidq98uWT7uEGoFD?$`S7YJ2WB8{+BrN&j`^{-*G zKtZa4Uazv;y+ZE{)HtiF**vdO4!qo1ezoHFhJtR7O9}W~7R0k_`6e=E#%B@84VhmGR?OhEvQS3^{QxPNCU|tHvL;)*dH1W)l<&YOy z5o7sIvRfJlDX{(;#TnO+NSk1je5?I#)byaYU$)-zP;A^P6|bjyjm&Q>-ncvutPi%E zz?Gmosi|1%XCcMQMQLm0q!k}84OmVE*T1mII8Dg{CFD|8Ak!#FB?$9X*1G)OSQ|oF zrti8C9L5)C=^g!qHK4h@_S_ey_we^cKVBMz=RfnUW{y{;S_C2f_rGfAXcUaULxe9gT>>uzWFJYX$^OTsM-drp}MTT?> zCG-)ech-nL1YMCbj;k}KIGtyX=%-?Vg=if^ zLg-$;2(DS``J&$D%SLyhD}a8E`aqvEADyk+gPM5Vb;=L2(GUa8&JVL$mZRffm6X9i ziPs@4oNQP>D(Q}mKeQgu=JZ$4v`cG#(4&dw${pZsr_b*SQ2*lfEAdu69w>k=zq&Hy zDW?t!GfA}f)Qb6>ln!cL+@eci`XFu(+Rx=^ziQA#k>pSSeQW|XfuGuN3^_=?vbxIU zQDg_}^9Imiqhmx`-JWYgZa)lO{$$@;UhPFshbX8sM$_&gS<7AMLy@=|^nU2lkjR9* zatZUm=kj<%E2?DIO5HRc385?~A;Bsax{Yf>u0Rljg{wW@)gFar&~lhCy8UQ$BA^W5 z0Faxo2D8yaB64&kG?Ek{EBqKI`9%i)H`+HcWT(%~C(txXrHS-}a-WYOsTMrT{uQ#c)AeB%YbJO9gU{KuUDRBZ_XDv=3@Nfs-BoTp#npq z!hqGaJhWnk%kL1j&I^DSr4<%c9$c!-4pmnx))1;;tzs30#QlpI2DGXk^TKl(ln_5ak@Q-3V_WbKJQsT%+G z5Ix7a1kZmSo(qZnA(=Gp(8eJoPyf^C8rJ*K^M4xt`}@AwSG3$A+sAIpFAtono-kn~ z%^&gW5Oi%k!qUw|{l8g0!ZeF%WGh=7ho!Wra9*k1Qc^H4|FY7e;(~mn@xN$CDgq>( zT9VanPiX}oE-_J!#?SQW5|Hoo1w-gU(6aCW6X~WeKHfLT8H&c+7oT2GU;YliyT<8X zV~|9#_8qV2pAGCw+@1>W>VTrlhma8e`+u{1$$qIOX?2kBU;xzv0(y@9%zrV9=c@#+ zyGCNCInl1A9WyZwFy=4bp2&8>C)<-=?T*&o^xe)dWBa1jo0Y0eCu736cmr&$uAbux z=2trdf%(f)%zR)BVGnAPa zl+dz~bS5nR#Fli#ENC2GM&N5lVyG&X9puW;`CD$4n3X#E)K|DAWxPg{>{H}r3s#O_NH+YgPdjR(?M z9mDsX^X|GP?jxS4y`uhm2w);$3P5(QEQ)6zbr`GM{$L0TNth~Bc`NwJi>pF>aW*hB z8cn|h`(=P`Jd=B|0b1dH6!1QP{2?~>3j`~sO~V|c6caCRIrR&0yK2i_Vn-|H9Vf+t z@&{K{>56LaawnGcXjzbzmag!GO3Q0&r%fv@E%$oLLw>)@Q|>CI2}Y?{|Du5X@`XGJ zoTa5=0)lp|6bla()h>T&pemk*($bK}Rg0B5EC%+)5DP7}hPeom6u<DBp?F0Yu0P!37G#Pro=6>XT^~av*kAL@{!#)3- z;k3A%2(JKM`jd!zBk)1!Q1dt9XLNqo;8~0RbL0!-dTNHMv7YXCR#WqgKH)Dt(dQrT ziP~EPre_Tl>8J5%bi#G;o4%zd`pTmMGIh_x@%+`}aX*d6h~EXz(~__GIQWg>m-G?l z+&*Z=aDBP|{TS(ol~=QhAoB&;v}x>8i{I~D!>+iJtqRh{3SW(4i%Uwx13DxqG{jfo z6g|gyw`V*HuJO5OhehzlTvYuGq)LwY*D__A!a~&yi#u4jVU_5_T@31Ru`$&Z zj3*2$J>HNX5wi+cc{Qm-$zl^GOkmey>9Xb=Ci;G?_es5a{Q>1_*BY^6r}<*-hATbM z^V(`>&GHIo78`pGyB4dK&@$Hf5W_jtF|K&NC+dDmz!5yRz1S1I=_TNod!m~`pYuvj zbVXZF^kcw^=V1Tvn*+a(@w{R$FyM*TVehZ?M5i3UGhw(>+k2uLbg%=@$AVRe>k7oV zdVf!J8}R5?d!jV}!gKct_y+jBr+cE8J<}6?18@{@XnRleyBz}4bLwsZp96oqvnQIo z3uywlpM@K+Vh=EYc-`<%Mc5@D^hD1AqyfG=*b|Ka!-%L^K*=hryw%t<#0H`$0(S1X zjP?;}0ghqvzXDsLuocvd^O;gwx(dT2uRn|QJF2rM`u4~Fb8x%b6U~Cm%>ey#)+f*% zU?boiz|yXs=$imz+)ED$+K(XTTDi@wIQ=WmVb`Nt!{})F4+et$7C&3=^;YvgE~keH z${Oq;S9n9Tms;&bgDIb}^Xa5PDaSdvc`W473&Or_oT7JdA#pDf2`S)6kP)K- zV{<-i=QTV2BnRyQcX_GkKG<@samO6oTY3l~dhh8Z{{n?GiM0E%tsUUxnUWrhN>G)V zLW~DGG_%lm%$pd#AXcBarPVXOIkR)G$S6W9b+v5H;D zT=UsgGnmWEu41lh*o+x$g^SI^-yoaGs*Bn5=`$GYn*IjhVAVmK)2S(B<7coMJ3AkL z-E2Iosb)1bZ2WlUaWao=CiYL zGnlWMjblE9pLssRR>(Lw0&uWvLYR*Fi`bYM%wNoAB31qxHir2Fct)LE>%ydn1=cdu zGW0?#Jmhq)O}(irU9 zqgDqLbZE|s3bc6vWsFagtSH)Mk}u#2Rd~@RV%{jue_-1>=q>kFE7&E%evSvCCWzP= zW@7z^TaM!!lqEfXO<+~IKQEgv!13oPy5}G#Qx#rWBU3iPM;pFcDzT4C)egxjrziA` z410K`@-eWodSxl5$T)rw`&j}wZN)e1geuM+HVk`|E3mLKO&JpyHXCg{JzSvJ=}5|$ z(6C_zwY2w0`6LeogJsLNj&`HSt=g5naaHN0q=`gp^= z^Pjxv{&oJX&3DxeIlJYhaQn!=q_XC{V_rJ-S)5N;}QFHgFbMF75=vT^SxjVkMT@%-!^`$o3hB;r58z(2y^9&T{cS~UGy`Cm4>{@Xjx zTUYq<$UmOVl)s$tQQ1!o?goSV7dH%h_Lu*fWc%&m8}IwgM?)*u8~h9J9aEJVx~b^4 zG{*-kAAR7gb%ye~$>9EK#2xH!BmB1dnKjun>mJ^+*8ak$54?Tqta~R^J1(nv_sn_& zfA)i)=PX;$KJvc%v0mkT`WL(IS-3RY_3Fqie_-rL=-O}Ie)vwu)WvZBUbsazzZIwzo)xk-YV0g8KanyoCmZWXwYARW?o~NC7ojKj zVmMlXRUa(RR1~m8|0&?5_3=^~N20r~^cKV<_x+FsX3b?0htBxhW~}TH z6Ki>vvGxYE(tELv@B(8kpgAh>ydJa_3^MV&5BoTPGC(%K3{dvKpTfNaS#IzlobRUy z4@mzT`~eQgNWTp<@U$YncHng2>_<&38*8=-!YPko4U6K0EFb)Rufh#*Ku$ZQsU3IT zo`ekeV+6$UwuK*u#$5H_d z&jd;~>=W@5WJ_o%hg^W80(k)VT;Q!l+{*>j!H>X!S!vT)#4!&13lPst@L3?I0MCmd za|!$wK?a_?O8|JzE&}~LgoR%-ARXyxnv48iig+$Y_zRGx36O`ar|w)}$ZDModGL4G z!2`eSDc}Qd9b_@cB4|R|9i!n7XaP9L4QN?5h;;z6524Nh$^dnr4r0xKGSopIpo!|@ zg?I+Eg3dl0#9DJuhXJe!&s0xQXX}7Fem;n$Lucop-MI*012_TK0)7p67_bL$5D*2N zg5gy*zy??jSOd5X@Ce{#z}J9`E0fp-fC7LEuo|!d@O!{^z{`M-07n5CS0%BDfQ5h> zKm*{{fEK`B!25u20E0`D*l55sz#_mkfO^1h0b2lX0=@%`EK6b&07ZbS06xGk0gnK7 z0}cX)I?;XsW&o}LR0D1R+yU4EcnR<^;2XeM%ad3>zzt{u+ymGN_z;j>p2W@r*Z@la zen1#-KVS#oAfN~E;|k~kPz`7T{0XoV@DIQs7xD!d510d}0Nf1tE8s1_pvok6Cg5Vg zQh*l_20RF82OI+Q07kAzVv_;O071a5fWH7<1AGBUtx9621I7au0D^$q0FMJ+0~`Si zcPFtifLVYQfLj5-1v~`U33vzaZ@`e1No*7#3ve-@2;c&&0^AI^3-CB#58!>k=K#~y zNh}kP4_E-G1k?f|fM&qMfbD>{00#kI0HT25)k*9}fO7#80A@fbAPCq9_&wkWKs(@L zfKrphW&#!iY5)y@y8+Jv{tig-B(WU8B0wYHPQVj@-GF_7F9D;xhzGC|a3f$7;6A|9 zfOi330#bb_7eFpx37`(}XTW|y6p(!l>;g~*s0B0uwgWl=r~08|z$(B4fDXWkfh0B^ zuo7@PU=QFcz?fhXy9}@q@C@Kfz?cwh0k8@1A|QDc(hImA@D$)%z_is#ECkpFFx4ip zLVypj5wIEXD&XIM)7PN?2Y3J*0lxt}3}^+s3-|=^9bouc)CIsafDLdNU?t$EfK7mA zz+VAR16~7s0!X?xiH!iz4)h>~bg~pSm<_?1n4xSKJAn;nBiM;7jis}Z>?C$Fn)wWN zDm#shVx!sV>__Yjb|yQE{g^3OIrs@Xhh<{Ye=ZtFEZ1TMV;q{+@mRgMkY%$RmW!S1 zN$esv8N1hcY$}_E26Z}?MP_2@z>G$G7RzT=R={SnIn2fi*`;hQ!*Ovo4_A{MYyn%y zidhL;#1^w9Y$-aD%h?rd8M_jzA*HO0IoWbn&MKG--Np)5#oTNqyP9FKgL#;j`Peng z&jJjqZ)_D?&1%^iww7Isb&cyWe7KR-v32YwR?iyPdiGQHGq!<++0871Znlx#!fs_v z?C0z@bkdvHFVW5Zn%&OsV0W^+*xl?m?6>T9tQnpBJ?szYs{hFT#Qw}Sv->bHdVoF1 z9%2u(zpxheSM~^dls(2CXIt14Y%ANwo@9Sx+cDsH8iSNpwu9|tyV!2_EZf7{*mGeUOD(hsQur79peab##pR;cE1^bfyi+#oZ%?`7#*%9^)`<8vjzGp{S51k+|nM{LB zNv32|ifOQEh$+=H)HKX=f@!#Egy}?6nkn5h(sYvPWYa084AZG5x>Un2a+TKRO)i~0 ziLY<)%dw@pvqs{&te%qBo0KmOyY=hQM-VzbDo&3wYcZYau$EfIg(ppzf$XSuuAwVB zM)t*Cx&kE=U%*g{z*@MdsQ(l=EDK8tOA6=D>mzJ&!NP)hi;7BT zEh;Xhhk}KclKFjQqZnk%oPvImTw-w)^dWumd^<$;;jv_4VM)RKdHF~=@>&Re7Vcu(HYR4L}%j3coGZL#4lGlsUj|@TX&90e@QLv=xw3uPDUzw%UF4;ugvg4-%|I!7mJ54lLa4kWf=D!} z+%w-7vg1lZk;@stayDIr)x7h)zBODYdV5R&4m_57KFw$n|2fXX9^}{!t3WYAS+E=l#xpqMsGGl z37|}5sV#KL%SL>+Lnk<{i9U-75)wHU!p5<2-=~DW%Q8U(XX!1Y1UEfmBFSPk>ozE! zyn2^Myj?ITQxh3y$fwHE2RWf$#>y}rF0O>$fkg{cNH=#Yap0;yhQ5m+9);0Him?S0 z7ZxyNO;|udjW4)Hi;xPicRCm1j+xPX;vwLdSXE+qFUE3vIZlpy12{MktDv*_eQGVd zp?pkzvLO`j``r|iM&E+^n`SA=~6EtW`*bmxbPTPLKk9S z!&U+>tKRYwBTeK>keJALOs_t(6>p1Y%PW35srpsS&}tmm;i1H8p3 zpzHXBba7m^X3+3FFHcnhMF>hD9fxv{PqPV$)I}lay|qxnFCC)J7;1_ZH0CerYv0uo z;}kbGV_kyBAus7mC5Xl=HgM1clcC2Hfk}ZiP#Uk*U^0@d{AN)Bh9+xx1XKWmCziy1 zSa5=!23J~xgSuqn$D4(K{(QyheI7>wi%4_767=4B5jCz}*^5oN#CWdA8K5>6dD3w% z!If#zdKAz|tA9_77X$Q01IZ*tb|Penmv*q7{Eaew;g<8nTTdlYgDwA_U z*&7m1oXE{u3~LfSga!;gG$PW}A%uuA60a*n;B}|ORZBxVa?3dNVI)abFkjM2p9_1#{2e92kNAif zcabLIF0^IBG288N2dZ2Zv567_7FWAmG+r)6_v@E@!s+$JMZ_v9d2!`QKcJF)-qI^oLx%Zlj!0y&85VR zSVuV#FCr-@7dbNuII4>|Gp7q%rHroO5lkj#{ro3R<>p4SGB@tsNEuT&yVDb&M^#Xi zg6yZ4S%_9O;K-RotinYmS6%JMnJ7Ywcb^1e0TGelBm1S8=%3y<9vilLwCJdKVsHMD zWN1Rr$e8T&=TsAS9>r>P2XIwgOC8T7r^od~iF63%NzL(^q6t8Bd{Br+8HWUfU>cxe zy}%zYfs0CM5yw%E@)7?j0aGaf6cG(7MR@3k7l)4IAep(@i#+}xl1e-|Ql7}FL*Br5 zkd-xxr4eNSx~}&WRAHfRUP8wsfP?d4>u37#Oy7Q zlT8LF!WMArGx$$hfi{)j)~3mOpupk4iR#kJ4O~+($Hlv3ok{LGR%CxqT3=eQ{c2oVo)hIoUO(<)R)23Pjp;zKBuFzn+@g7d0NIjx`qNq_}=* zH7aMK6Z(er%nQ|^;gnf0GEE{T-okNZ7q}g~{g{VZ7%MFZ(f32zWNJhQEU22NUR_Y35=DcfgV$>k*<{}H*K_cG!v0kB_|h0 z%*kEk^?36N9MzhQ_Qg9<$D1>mm;=I~kHwrj=~$Bec)^%I;KHf|RtgFnt8i?dYCvCt zC&^S4qw#U^G^4datCLgOf0&CB!tk_Hpum3+i09$hF->;kEc4``H+PcTgN5&MRMA!a zr%U6Wn0vh3xs!t490WT)*~ESPvM1*LC$fqA_;NWFI?0_>6Ih-gzN%lfp5$eCP>bMn<%Mf{;Eo)9i~k|CVz>-wm{xrwzg59Ot;T%e43 za{Di{$%dNTJ8=JPQm!#@Vv>*9A{fHwPU;=`59B&Aa-+VET}pXzqX<;Fahn$Ng#>fz zS7{TqhFcnkF4;yq>0ic_{uSSc8jn{_f)0Dj>0g~wxDF;_jDfyldB4%c`p`b?Q0qry zM`LqxG1TD7p*6~a_>4miDB_G$6VBRNDk>JbD#hp|#*>?!z_Sobg*dNkWSWw|#Lw!- z6R>cu98!z%OiVN%Z|PFUb07DmaaX^-)@(x(E$Jb{hcW$zgTqWr%MVG zPNPaf{5UEI#l55#|A6%31nI>_=|o77zW4`ZEso2g@s}9X1;l&q;xph<#@~lVBO#1K z;7D8y5fgHsGqxz9y{MD(@`b71%TYe3Sl-1U3h@Fg5jT#G{QuzBTt{bQ#P7(@@w`5X zsXCf^8_wK-)^byv?|abFe};29I@*R`;QSM4&(+8IHiMS60q47PwB4XB1x;y)^G)A` zGfbfM^(zYtx<}$0B)&!ByCuF~;wL43Sz=9Qhjbs3_*;pG-7MsvF7X73XG?sQ#49Df zPU4#-zEk3dCEhLZ+Y)~zadJe)Bk=@@%@SWO@k)u;O1wehUrGFk#Lr9ow#2H$Ur9V{ zqloWRiL)iPOT0{CpTsvvyh-BC67Q7wfW!wS{!-$>jUt{*i7$}YEU{hU#S&LY?3ef! ziJK*Ek@$IuJ0#Z1@vySz=8ucIm!KV!y;U zNxVs7jsH*5{g}jiB!1h#r%Lx>i3c}HyOKCd;>i+UDsh>_L5UkAzD?rI5^s@sx5V#C zd`RL!)F$C~y2KMCwo1HM;tGj_5^t3FZiye3_&JF+Jq)xjLcas;i?E1+_C?skK>H%} z@ZYvC*@LhE&(|{N;_~Yh?&5n8a9Y?5a?@qNpo_bU$W1Ssk)W1>fIEcM;x0O0rs{ zyVzCZ^x=NL3$!=zxfe=oK2DLj@q+kb9IL<)8l1bu7O=~2B(o_d>`Te$t4v~7tO%EN zohwLMjfu{`*xk$Ng&wT-f3_?6gaqfdsMGIXWCb36D~W@FvkKT*lrux7M$7e6e@`S0`H8W2n-h(v8)dGFnRaxqL~+A^Bi^8F)t!hl%tc z`pT1dj}ZM9m_*(8cj`iLkyCc>SJPsUr{j6OiMlR9#t=#Kl#!A!eY(91?J&_5}17d7SD^MVbJ^aEL@1_Ctu!k zA)?=*D`H%@(}8_8bYXiPed(u-Eb#%NAlG_XrKgbg$m7p1bKPP-e-lYlUXBS|4sJt7 zc!>w1UlyoXv^|7L;N4?`pHGeU2V9nJg7m>WJozp$u3O$j$R7l2*XDitH*^NPn(UB_ zq&^HS`FR<>LsBQSv|jZ3_;Y?PdiV=|#)q4yiqa!4;RaHA68hU4(a#~TA+W!VxkdDg zuMq=6^lOOkvVfT+h7d$2UbF{3r!!P**yp-P?bzlfq?(jrV0tR7a1?w&Teh5Qct`V>D%C%m?_@}*SwY-3h@V`{QXBm*yUoi0N;r4vm)|| z=~xIf9-#M$g;0BO*&89wgaS?}dNWk??(%l1xV^Q?xeSuxjN3TF&(;zArUibs$&25W zXDGfAy6sny4#{NyGuR&j0dt-&dz4P)tX1_L(cuX3aBYds%HmAW;4iMH7{V?OLv?udeZ9b%JEKg!Z zLVDsyLOOc`50J$~{8-3vQE$$CLU*vlENo(G%BVNcAW|bfL4XXAlDO+_Ox5BXkRp4! zy|j@zAV>DJGB}7ev+n7<`T3WJg+ZJ#qQY%&uU{ItaLcTzw zNNE|qHT@o2=#fnzD-FB~zYg+rwedMO(N0wyn3jp&uli?GIzOgOz`S@@`V9gG#?y!< zJ@BRU6|i3r&@o==(@g|s#?#A20zos8d2E}2rSUZTn+lALS0XYv@LiTa!}*6}?(`+> zZQ@azB_&T+`sREQUKpuiTWn~fuG?JC>w~)vM`IVD2uT;ORywMu{6uD zEX%P1+hHYEW))UtjA^XJ+N{I6tjGFnz=mwZ#()gZDq$s}M3tBlR}xB6NhxV1qhytw zQc!l3l2TSGN>yQsrnHo{(owp~Kp83{Wel)!td^{$YUx_0maVaxR%_KdwO(yd8v%wK zR-q+>AC8%~UhfEHq2aN>gjL zo89K1IRXGWqQ$g?meq3Fj#kntT2<4ume$d_T3;JzBWR~;q$Ml4r)YE!K&*=rd zq?h%o&h(bv*1LL7ALv7U3@CNjh!`;=ZX}JAkukDH!Pqg%M#W%;X0(lt(KGtS&=>)7 zJ!?kHs2MjCX39*PSu(& zR@tgr%xYO}t84YFfi<+o0C9)yh#j-zcEK*$6}xJ;?2g^D;RAyJzSn{uL|92#Sy?G}!owl=fPFO6%CbKnIZQEVg?b`!;)(JZiC+ftUxRY|y zPR7YPWvAj)9p-3G%V|3ur|a~bp)+#EfSAYJxSMd3Zpux&88_?Z+=5$nD{j?guI9Gf zw%c*LZqFUMBX{i5C?Ge?-1A-EXMJDwee`MHB!-wK+8YrbkCT>^{kZ_mbNTltdUOl{ literal 0 HcmV?d00001 diff --git a/windows/Setup/JackRouter.dll b/windows/Setup/JackRouter.dll index 860fcc39daf68896951326eac0d21b1eccfc6f78..e4709cd30e3d76a513d980d5e0816cfe52df7cf8 100644 GIT binary patch literal 29184 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 E0$M~+W&i*H literal 32768 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 O;ueToAZ~%E1^y4tp5e0q diff --git a/windows/Setup/JackRouter64.dll b/windows/Setup/JackRouter64.dll new file mode 100644 index 0000000000000000000000000000000000000000..543820d4da9665ec71d70e18d83a3a4cdb1882b4 GIT binary patch literal 34816 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 literal 0 HcmV?d00001 diff --git a/windows/Setup/README b/windows/Setup/README index 78588ece..fa854b37 100644 --- a/windows/Setup/README +++ b/windows/Setup/README @@ -14,4 +14,11 @@ Just use : 'dlltool -l libjackserver.lib -D libjackserver.dll -d libjackserver.d Once all binaries are available, just execute the script in 'CreateInstall' to make 'setup.exe'. The setup will copy all binaries to a specified folder, register the JackRouter (in order to have it in the ASIO drivers list) and create some shortcuts in the start menu. -It's a good and proper way to get jack installed on windows. \ No newline at end of file +It's a good and proper way to get jack installed on windows. + +64 bits compilation +==================== + +- for some reasons CodeBlocks create libjack.dll.a and libjack.dll.def names. So the ".dll" part has to be removed before using "lib" tool to create ".lib" files. + +- to create 64 bits ".lib" files, the "/MACHINE:X64 option has to be used. diff --git a/windows/Setup/jack.ci b/windows/Setup/jack.ci index 7ad82cb3..e1dd6386 100644 --- a/windows/Setup/jack.ci +++ b/windows/Setup/jack.ci @@ -1,9 +1,9 @@ <*project version = 4 civer = "Free v4.14.5" winver = "2.6/5.1.2600" > . - Jack_v1.9.7_setup.exe + Jack_v1.9.8_32_setup.exe - Jack v1.9.7 + Jack v1.9.8 Default - 2 @@ -53,8 +53,8 @@ - <_>..\Release\bin\libjack.ainstlibovernewer0 -<_>.\src\vcredist_x86.exeinstovernewer0 +<_>.\src\vcredist_2010_x86.exeinstovernewer0 +<_>..\Release\bin\libjack.ainstlibovernewer0 <_>..\Release\bin\libjack.libinstlibovernewer0 <_>..\Release\bin\libjack.definstlibovernewer0 <_>..\Release\bin\libjackserver.ainstlibovernewer0 @@ -66,10 +66,11 @@ <_>..\Release\bin\jack_lsp.exeinstovernewer0 <_>..\Release\bin\jack_metro.exeinstovernewer0 <_>..\Release\bin\jack_unload.exeinstovernewer0 +<_>..\Release\bin\jack_midi_latency_test.exeinstovernewer0 <_>..\Release\bin\jackd.exeinstovernewer0 <_>..\Release\bin\libjack.dllsysovernewer0 <_>..\Release\bin\libjackserver.dllsysovernewer0 -<_>..\Release\bin\libsamplerate-0.dllinstovernewer0 +<_>..\Release\bin\libsamplerate_x86.dllinstovernewer0 <_>..\Release\bin\portaudio_x86.dllinstovernewer0 <_>..\Release\bin\jack\jack_net.dllinstjackovernewer0 <_>..\Release\bin\jack\jack_netone.dllinstjackovernewer0 @@ -106,8 +107,7 @@ - <_>appinstvcredist_x86.exe1instend - + <_>appinstvcredist_2010_x86.exe1instend diff --git a/windows/Setup/jack64.ci b/windows/Setup/jack64.ci new file mode 100644 index 00000000..24eaa6e9 --- /dev/null +++ b/windows/Setup/jack64.ci @@ -0,0 +1,155 @@ +<*project + version = 4 civer = "Free v4.14.5" winver = "2.8/6.1.7600" > + . + Jack_v1.9.8_64_setup.exe + + Jack v1.9.8 + + + Default - 2 + 1 + nolimit + + disk%i.pak + + 1000 + admin + + + Verdana,8 + English + Green + leftlogo + .\src\logo_installer.bmp + + + + 0 + 1 + .\src\README + .\src\gpl_installer.rtf + + 0 + 1 + 1 + 1 + defnorm + 0 + + over + + 1 + 1 + Uninstall - 2 + 1 + + 0 + + 1 + 1 + My Demo + + + + + +<_>.\src\vcredist_2010_x86.exeinstovernewer0 +<_>.\src\vcredist_2010_x64.exeinstovernewer0 +<_>..\Release64\bin\libjack64.ainstlibovernewer0 +<_>..\Release64\bin\libjack64.libinstlibovernewer0 +<_>..\Release64\bin\libjack64.definstlibovernewer0 +<_>..\Release64\bin\libjack64.dllwinovernewer0 +<_>..\Release64\bin\libjackserver64.ainstlibovernewer0 +<_>..\Release64\bin\libjackserver64.libinstlibovernewer0 +<_>..\Release64\bin\libjackserver64.definstlibovernewer0 +<_>..\Release64\bin\libjackserver64.dllwinovernewer0 +<_>..\Release\bin\libjack.ainstlibovernewer0 +<_>..\Release\bin\libjack.libinstlibovernewer0 +<_>..\Release\bin\libjack.definstlibovernewer0 +<_>..\Release\bin\libjack.dllsysovernewer0 +<_>..\Release\bin\libjackserver.ainstlibovernewer0 +<_>..\Release\bin\libjackserver.libinstlibovernewer0 +<_>..\Release\bin\libjackserver.definstlibovernewer0 +<_>..\Release\bin\libjackserver.dllsysovernewer0 +<_>..\Release64\bin\jack_connect.exeinstovernewer0 +<_>..\Release64\bin\jack_disconnect.exeinstovernewer0 +<_>..\Release64\bin\jack_load.exeinstovernewer0 +<_>..\Release64\bin\jack_lsp.exeinstovernewer0 +<_>..\Release64\bin\jack_metro.exeinstovernewer0 +<_>..\Release64\bin\jack_unload.exeinstovernewer0 +<_>..\Release64\bin\jack_midi_latency_test.exeinstovernewer0 +<_>..\Release64\bin\jackd.exeinstovernewer0 +<_>..\Release64\bin\libsamplerate_x86_64.dllinstovernewer0 +<_>..\Release64\bin\portaudio_x86_64.dllinstovernewer0 +<_>..\Release\bin\portaudio_x86.dllinstovernewer0 +<_>..\Release64\bin\jack\jack_net.dllinstjackovernewer0 +<_>..\Release64\bin\jack\jack_netone.dllinstjackovernewer0 +<_>..\Release64\bin\jack_netsource.exeinstovernewer0 +<_>..\Release64\bin\jack\jack_dummy.dllinstjackovernewer0 +<_>..\Release64\bin\jack\jack_loopback.dllinstjackovernewer0 +<_>..\Release64\bin\jack\jack_winmme.dllinstjackovernewer0 +<_>..\Release64\bin\jack\jack_portaudio.dllinstjackovernewer0 +<_>..\Release64\bin\jack\netmanager.dllinstjackovernewer0 +<_>..\Release64\bin\jack\audioadapter.dllinstjackovernewer0 +<_>..\Release64\bin\jack\netadapter.dllinstjackovernewer0 +<_>..\..\common\jack\control.hinstincludes\jackovernewer0 +<_>..\..\common\jack\intclient.hinstincludes\jackovernewer0 +<_>..\..\common\jack\jack.hinstincludes\jackovernewer0 +<_>..\..\common\jack\jslist.hinstincludes\jackovernewer0 +<_>..\..\common\jack\midiport.hinstincludes\jackovernewer0 +<_>..\..\common\jack\ringbuffer.hinstincludes\jackovernewer0 +<_>..\..\common\jack\statistics.hinstincludes\jackovernewer0 +<_>..\..\common\jack\thread.hinstincludes\jackovernewer0 +<_>..\..\common\jack\transport.hinstincludes\jackovernewer0 +<_>..\..\common\jack\types.hinstincludes\jackovernewer0 +<_>..\..\common\jack\systemdeps.hinstincludes\jackovernewer1 +<_>..\..\common\jack\weakjack.hinstincludes\jackovernewer1 +<_>..\..\common\jack\weakmacros.hinstincludes\jackovernewer1 +<_>.\JackRouter.dllinstovernewer0 +<_>.\JackRouter64.dllinstovernewer0 +<_>.\JackRouter.iniinstovernewer0 +<_>.\qjackctl\mingwm10.dllinstovernewer0 +<_>.\qjackctl\qjackctl.exeinstovernewer0 +<_>.\qjackctl\QtCore4.dllinstovernewer0 +<_>.\qjackctl\QtGui4.dllinstovernewer0 +<_>.\qjackctl\QtXml4.dllinstovernewer0 +<_>.\src\COPYINGinstovernewer0 +<_>.\src\READMEinstovernewer0 + + + + <_>appinstvcredist_2010_x86.exe1instend + <_>appinstvcredist_2010_x64.exe1instend + + + + + + <_>progJack NetDriverinstjackd.exe-R -S -d netinst +<_>progJack Portaudioinstjackd.exe-R -S -d portaudioinst +<_>progJack Controlinstqjackctl.exeinstjackdmp.exe +<_>progJack Commandsyscmd.exeinst + + + + + + + + + + <_>instJackRouter.dll + <_>instJackRouter64.dll + + + + + + + + + + + + Pathadd= + \ No newline at end of file diff --git a/windows/Setup/src/gpl_installer.rtf b/windows/Setup/src/gpl_installer.rtf index cc8bcb4ed44920425b6df55c657aa7f058284e4e..fac711f5b791f8179e8bb515a43b451bd3809618 100644 GIT binary patch delta 217 zcmaLOF$%&k6aY{WQBa&6EshRt63CzhH$hQE+=LHO+oTpgX-QH#gy0!^6tCbx+`Wb3 z0bJhpUj6rA;y_zTAyKCIkybfnoV6o9O-n4by4#}5f-UXMwn>k j{WoK#4O#~^LMmzSFL>`k5|D1@=<%@U$HUGCYgkJF delta 81 zcmaFKevgg2I;N;3%`hf0uQ+p}xaq_KDRx6sJwsCi^NADVnG7s8ekx(o$S5f(u+rBr lFE7_i&nwl-FG| - - - - - + + + + + + diff --git a/windows/jack_connect.cbp b/windows/jack_connect.cbp index 928821d8..177bfca0 100644 --- a/windows/jack_connect.cbp +++ b/windows/jack_connect.cbp @@ -4,50 +4,112 @@

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 z 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