# # ChangeLog for /trunk # # Generated by Trac 0.10.4 # 03/28/24 13:30:00 # 06/28/12 07:35:20 jwoithe [2175] * trunk/libffado/src/libieee1394/ieee1394service.cpp (modified) From Stefan Richter: The firewire-core/-ohci drivers of kernel 2.6.28 don't actually work for FFADO. Version 2.6.32 was the very first that worked; kernel 2.6.36 had several issues fixed that affected some audio related use cases. And raw1394 of the old linux1394 stack never gained a request which lets clients choose a clock other than CLOCK_REALTIME. 06/25/12 07:40:16 jwoithe [2174] * trunk/libffado/src/libutil/SystemTimeSource.cpp (modified) SystemTimeSource: defines from config.h are referenced within this module but config.h was not included either implicitly or explicitly. 06/25/12 07:37:30 jwoithe [2173] * trunk/libffado/src/libutil/SystemTimeSource.cpp (modified) The clock values of CLOCK_MONOTONIC_RAW and CLOCK_MONOTONIC are not necessarily comparable. Since clock_nanosleep() can't be used with CLOCK_MONOTONIC_RAW - necessitating the use of CLOCK_MONOTONIC instead - this means it's not possible to use TIMER_ABSTIME with clock_nanosleep if CLOCK_MONOTONIC_RAW is the system clock source. For simplicity, disable the use of TIMER_ABSTIME unconditionally when implementing SleepUsecAbsolute() at this stage. 06/25/12 07:11:38 jwoithe [2172] * trunk/libffado/src/libutil/SystemTimeSource.cpp (modified) Further work on ticket #242. It turns out that clock_nanosleep() isn't implemented when the specified clock is CLOCK_MONOTONIC_RAW. If called with CLOCK_MONOTONIC_RAW it returns straight away and this not surprisingly causes havoc for FFADO's timing. For now, use CLOCK_MONOTONIC as clock_nanosleep()'s clock when FFADO's system clock source is CLOCK_MONOTONIC_RAW. This may need revision if real- world testing demonstrates problems with this approach. 06/23/12 07:03:54 jwoithe [2171] * trunk/libffado/src/bebob/bebob_dl_mgr.cpp (modified) * trunk/libffado/src/debugmodule/debugmodule.cpp (modified) * trunk/libffado/src/libieee1394/ieee1394service.cpp (modified) * trunk/libffado/src/libieee1394/IsoHandlerManager.cpp (modified) * trunk/libffado/src/libstreaming/StreamProcessorManager.cpp (modified) * trunk/libffado/src/libutil/PosixMessageQueue.cpp (modified) * trunk/libffado/src/libutil/SystemTimeSource.cpp (modified) * trunk/libffado/src/libutil/SystemTimeSource.h (modified) A second pass at addressing ticket #242. Define a global clock source within the SystemTimeSource object and use this whenever clock_gettime() is called. On systems which support the new raw1394_read_cycle_timer_and_clock() libraw1394 call and CLOCK_MONOTONIC_RAW, these changes should ensure that all timing- sensitive parts of FFADO are using the same clock source. System tests under tests/systemtests/ have not been converted to use this new framework because they exist for different purposes and are not using the FFADO streaming infrastructure. 06/23/12 06:09:20 jwoithe [2170] * trunk/libffado/src/rme/fireface_hw.cpp (modified) rme: make output fader mixer controls work on the Fireface-800. 06/23/12 03:35:36 adi [2169] * trunk/libffado/src/rme/rme_avdevice.cpp (modified) Use ByteSwap32 from libutil/ByteSwap.h Closes #357 06/20/12 18:01:21 jwoithe [2168] * trunk/libffado/src/motu/motu_avdevice.cpp (modified) motu: add information which might permit the V4HD device to be detected. This device includes 4 sub-devices (its expected that only one is related to audio) and FFADO is not currently set up to deal with such structures in the configROM, so I suspect only the first sub-device will be reported. Note that even if it's detected we currently have no idea how to drive it - this addition is currently aimed at documenting the device's existance and to perhaps make further testing possible. This patch also adds a test for an unset model ID (ie: set to the 'none' identifier), which allows us to bail after device detection if no motu model ID has been set. This patch has only been compile-tested only at this stage. 06/19/12 05:10:51 jwoithe [2167] * trunk/libffado/src/libieee1394/ieee1394service.cpp (modified) * trunk/libffado/src/libieee1394/ieee1394service.h (modified) Possibly address ticket #242. Libraw1394 2.1.0 will introduce a new raw1394_read_cycle_timer_and_clock() which permits a choice of the clock to use. If this function is available, use it in preference to raw1394_read_cycle_timer(). By using CLOCK_MONOTONIC_RAW we should avoid timing glitches induced by NTP. This patch exploits weak linkage to permit ffado to compile and run against all versions libraw1394 regardless of which is present on the runtime system. Correct behaviour with pre-2.1.0 libraw1394 has been verified. Testing with libraw1394 2.1.0 (when it's released) will be needed to confirm that the logic of this patch works as expected. 06/13/12 11:30:23 adi [2166] * trunk/libffado/src/dice/dice_eap.cpp (modified) DICE-EAP: Avoid empty destinations in peak values map Fix Saffire Pro24 peak value map. Patch by Philippe Carriere. 06/12/12 18:39:07 jwoithe [2165] * trunk/libffado/support/dbus/SConscript (modified) Address ticket #355, patch by oget. Some distributions are becoming more conservative in what libraries are brought in by packages. In particular, when compiling under Fedora now, pthread is no longer automatically brought in for ffado-dbus-server, so we need to do it ourselves. 06/12/12 06:11:28 jwoithe [2164] * trunk/libffado/src/libieee1394/ieee1394service.cpp (modified) * trunk/libffado/src/libutil/PosixThread.cpp (modified) * trunk/libffado/src/libutil/PosixThread.h (modified) A more robust solution to ticket #354. Rather than relying on an ad hoc delay, use a condition variable to ensure that PosixThread::ThreadHandler() acquires m_lock before anything else. It is particularly important that PosixThread::Kill() and PosixThread::Stop() don't lock m_lock before PosixThread::ThreadHandler(); otherwise a deadlock will result. 06/09/12 05:53:31 jwoithe [2163] * trunk/libffado/src/genericavc/stanton/scs.cpp (modified) stanton: the HSS1394 datastream is now being handled by an ALSA MIDI- like driver currently under development. Therefore it's not appropriate for FFADO to allocate an ARM to receive these messages, since doing so will prevent the messages getting to the other driver. This change has not been runtime tested because I don't have a Stanton device to test it with, so further tweaks may be needed. 06/04/12 07:06:30 jwoithe [2162] * trunk/libffado/src/libieee1394/ieee1394service.cpp (modified) Possibly address ticket #354. It seems that some FFADO threads can take a while to start: so long in fact that short operations (like 'ffado-test BusReset') can be completed before all threads have completed their startup sequence. This in turn can create problems during shutdown (or any other operation which assumes that all threads are operational) . The obvious way to deal with this is with the use of a small delay to give the threads a chance to start, so we will try that and see what happens. 06/02/12 03:17:16 adi [2161] * trunk/libffado/src/dice/dice_avdevice.cpp (modified) DICE: Ignore streaming status Before, ffado refused to do anything if streaming was enabled. I don't see the rationale behind, so let's disable the checks. 06/02/12 03:17:01 adi [2160] * trunk/libffado/src/dice/dice_avdevice.cpp (modified) DICE: Don't stop streaming in initIoFunctions. Fixes: #345 05/31/12 01:57:41 adi [2159] * trunk/libffado/src/rme/fireface_flash.cpp (modified) Fix another FTBFS with gcc-4.7 It's usleep again: src/rme/fireface_flash.cpp: In member function 'int Rme::Device::wait_while_busy(unsigned int)': src/rme/fireface_flash.cpp:44:34: error: 'usleep' was not declared in this scope 05/30/12 12:30:42 adi [2158] * trunk/libffado/src/rme/rme_avdevice.cpp (modified) Fix FTBFS with gcc-4.7 Like always, a missing include: src/rme/rme_avdevice.cpp:667:24: error: 'usleep' was not declared in this scope 05/24/12 16:11:54 jwoithe [2157] * trunk/libffado/configuration (modified) configuration file: Yamaha is not an acronym and should not be in capitals. 05/24/12 16:07:33 jwoithe [2156] * trunk/libffado/configuration (modified) Add configuration entry for Lexicon Onix-FW810S, provided by gerradblock. 05/22/12 15:03:28 adi [2155] * trunk/libffado/configuration (modified) Fix typo introduced in r2154 Thanks Stefan Richter for spotting. 05/20/12 16:11:48 jwoithe [2154] * trunk/libffado/configuration (modified) Add configuration entry for the Yahama GO46. Information provided by Luis Pablo Gasparotto. 05/19/12 05:50:08 jwoithe [2153] * trunk/libffado/src/rme/rme_avdevice.cpp (modified) rme: since the RME driver now mostly works, change the #warning to reflect this. 05/19/12 05:48:00 jwoithe [2152] * trunk/libffado/SConstruct (modified) rme: include RME support when compiling by default. There are some remining rough edges but it is ready for wider testing. 05/16/12 17:01:01 jwoithe [2151] * trunk/libffado/src/libstreaming/rme/RmeReceiveStreamProcessor.cpp (modified) rme: fix compile error in r2150. Sorry for the inconvenience. 05/15/12 17:17:15 jwoithe [2150] * trunk/libffado/src/libstreaming/rme/RmeReceiveStreamProcessor.cpp (modified) * trunk/libffado/src/libstreaming/rme/RmeTransmitStreamProcessor.cpp (modified) rme: use the same methodology for calculating the maximum buffer size in the RME receive stream processor as is used in the transmit stream processor. This means that both should be equal for a given configuration, and both will take into account the current bandwidth limit setting (by virtue of referencing the number of channels in use). While not technically required, it's best that both stream processors do the same thing in this regard. 05/12/12 02:42:20 adi [2149] * trunk/libffado/support/tools/listirqinfo.py (modified) ffado-diag: fix wrong hardware interrupt counts Patch by Clemens Ladisch. Thanks. 05/11/12 04:46:48 jwoithe [2148] * trunk/libffado/support/tools/ffado_diag_helpers.py (modified) ffado-diag: some systems don't have the location of lspci (normally /sbin) in the path for normal users. Try to work around this. 05/11/12 04:36:40 jwoithe [2147] * trunk/libffado/support/tools/ffado-diag.in (modified) * trunk/libffado/support/tools/ffado_diag_helpers.py (modified) ffado-diag: attempt to detect whether the kernel is configured for low latency and/or is RT patched. This relies on 'uname -v'. While /proc/config.gz could be used and may be more reliable, the kernels on many systems don't have this configured (eg: Fedora 16). Let's see how this goes. 05/02/12 22:40:34 jwoithe [2146] * trunk/libffado/libffado/60-ffado.rules (modified) udev rules: another correction from Stefan Richter (CME was covered twice, with the correct entry in the lower section) 05/02/12 17:45:10 jwoithe [2145] * trunk/libffado/tests/set-default-router-config-dice-eap.cpp (added) dice: oops, I forgot to add this new file to the repo (it should have been included in r2141). Sorry. 05/02/12 16:55:57 jwoithe [2144] * trunk/libffado/libffado/60-ffado.rules (modified) udev rules: fix some inconsistencies as noted by Stefan Richter. 05/01/12 17:40:07 jwoithe [2143] * trunk/libffado/src/dice/focusrite/saffire_pro24.cpp (modified) dice: default router setup patch 10/10 from Philippe Carriere: DICE EAP Saffire Pro 24 default router config: corrects some erroneous settings 05/01/12 17:39:06 jwoithe [2142] * trunk/libffado/src/dice/focusrite/saffire_pro40.cpp (modified) dice: default router setup patch 9/10 from Philippe Carriere: DICE EAP Saffire Pro 40 default router config: corrects some previous eroneous settings 05/01/12 17:38:14 jwoithe [2141] * trunk/libffado/src/dice/dice_eap.h (modified) * trunk/libffado/tests/SConscript (modified) dice: default router setup patch 8/10 from Philippe Carriere: DICE EAP Introduce set-default-router-config-dice-eap.cpp. This is the final utility for user. To be used as a command line: 'set-default- router-config-dice-eap --samplerate=SAMPLERATE --port=PORT'. In the future, this might be displaced by a ffado-mixer utility button. 05/01/12 17:37:01 jwoithe [2140] * trunk/libffado/src/dice/dice_eap.cpp (modified) dice: default router setup patch 7/10 from Philippe Carriere: DICE EAP Correct the default router config of second audio port. Generic device. 05/01/12 17:36:12 jwoithe [2139] * trunk/libffado/src/dice/focusrite/saffire_pro24.cpp (modified) * trunk/libffado/src/dice/focusrite/saffire_pro24.h (modified) dice: default router setup patch 6/10 from Philippe Carriere: DICE EAP Saffire Pro 24 Introduce specific default routing functions. The default configuration for low mid rate has been extracted from output listing from a Pro 24 user. For mid rate, it is an extrapolation which might require further corrections. 05/01/12 17:35:04 jwoithe [2138] * trunk/libffado/src/dice/dice_eap.h (modified) * trunk/libffado/src/dice/focusrite/saffire_pro40.cpp (modified) * trunk/libffado/src/dice/focusrite/saffire_pro40.h (modified) dice: default router setup patch 5/10 from Philippe Carriere: DICE EAP Saffire Pro 40 Introduce specific default routing functions 05/01/12 17:34:17 jwoithe [2137] * trunk/libffado/src/dice/dice_eap.cpp (modified) * trunk/libffado/src/dice/dice_eap.h (modified) dice: default router setup patch 4/10 from Philippe Carriere: DICE EAP Introduce EAP::setDefaultRouterConfig. This introduce the public EAP function to be called for resetting the content of the router memory space to a default config. The related functions for low, mid and high rate are also introduced for a generic device. These latters are intended to be customized for specific devices. 05/01/12 17:32:59 jwoithe [2136] * trunk/libffado/src/dice/dice_eap.cpp (modified) * trunk/libffado/src/dice/dice_eap.h (modified) dice: default router setup patch 3/10 from Philippe Carriere: DICE EAP Add the (intermediate) EAP::addRoute function. The function is mainly a call to the EAP::RouterConfig::createRoute function. This will ease further customization for different devices. 05/01/12 17:30:16 jwoithe [2135] * trunk/libffado/src/dice/dice_eap.cpp (modified) * trunk/libffado/src/dice/dice_eap.h (modified) dice: default router setup patch 2/10 from Philippe Carriere: DICE EAP Introduce a clearRoutes function for erasing the route vector 05/01/12 17:28:44 jwoithe [2134] * trunk/libffado/src/dice/dice_eap.cpp (modified) * trunk/libffado/src/dice/dice_eap.h (modified) dice: default router setup patch 1/10 from Philippe Carriere: This function forces the creation of a destination whatever is the present existing status. This will be useful (in view of a 'hardware default setting' function) since the same destination is sometimes effectively duplicated in the router space for some devices (Focusrite Saffire Pro 24 and Pro 40, for instance). 05/01/12 04:56:44 jwoithe [2133] * trunk/libffado/src/dice/dice_avdevice.cpp (modified) dice: for all currently known devices, 4x sample rates requires dual- wire mode. FFADO doesn't implement this yet, so don't advertise 4x rates as being available for these devices. See also tickets #343 and #353. 04/30/12 18:04:50 jwoithe [2132] * trunk/libffado/configuration (modified) AudioFire: change xmit_max_cycles_early_transmit from 2 to 4. Ben Briedis reports that this results in a more stable and predictable round-trip latency. An open question: does this apply equally well to the other AudioFire devices? Testing is the only way of determining this. 04/28/12 03:29:22 jwoithe [2131] * trunk/libffado/tests/test-scs.cpp (modified) test-scs: buffer certain MIDI messages so the Stanton interface reliably receives them. Patch contributed by Rob Bothof. 04/28/12 00:19:31 jwoithe [2130] * trunk/libffado/support/mixer-qt4/ffado/mixer/audiofire.py (modified) audiofire: possibly fix a bug introduced in r2129. This needs testing by someone with an audiofire. 04/27/12 06:27:03 jwoithe [2129] * trunk/libffado/support/mixer-qt4/ffado/mixer/audiofire.py (modified) audiofire: first attempt at disabling the save-settings button when streaming is active. Evidence suggests the hardware does not cope well when this is done with streaming active. This change has not been tested since I don't have an audiofire device; if I've broken the audiofire mixer with this commit please let me know. 04/25/12 02:01:54 adi [2128] * trunk/libffado/libffado/SConscript (modified) * trunk/libffado/SConstruct (modified) Install udev rules. Default is /lib/udev/rules.d/, but the user can override it by setting UDEVDIR. 04/25/12 02:01:43 adi [2127] * trunk/libffado/libffado/60-ffado.rules (added) Provide udev rules. This file is copied from Debian. 04/24/12 20:29:02 jwoithe [2126] * trunk/libffado/src/dice/focusrite/saffire_pro24.cpp (modified) * trunk/libffado/support/mixer-qt4/ffado/mixer/saffire_dice.py (modified) dice: permit the Saffire pro24dsp to be treated the same as a pro24 so the streaming side of the latter can at least be used. 04/18/12 16:16:02 jwoithe [2125] * trunk/libffado/support/mixer-qt4/ffado-mixer-profiler.in (modified) * trunk/libffado/support/mixer-qt4/ffado-mixer.in (modified) * trunk/libffado/support/tools/ffado-diag.in (modified) From Nils Philippsen: python: prefer installed python modules/paths. This ensures that the ffado python programs find their respective modules before any others which might happen to be reachable via the default python path. 04/18/12 11:40:08 adi [2124] * trunk/libffado/src/dice/focusrite/saffire_pro24.cpp (modified) DICE EAP Saffire Pro 24 Corrects the number of mixer destinations While the manufacturer doc mentions only 8 mixer destinations, the flash is effectively configured with 16 destinations 04/18/12 11:39:57 adi [2123] * trunk/libffado/src/dice/dice_eap.cpp (modified) DICE EAP Use the correct value of offset in EAP::showFullRouter() The correction allows to read the content of the current router config hardware depending on the samplerate in use. 04/16/12 06:33:31 jwoithe [2122] * trunk/libffado/support/mixer-qt4/ffado/ffadowindow.py (modified) ffado-mixer: use a unix domain socket as a lock to prevent multiple ffado-mixers being run simultaneously. This should address the majority of the issues raised in ticket #320. 04/16/12 05:49:56 jwoithe [2121] * trunk/libffado/src/motu/motu_avdevice.h (modified) motu: add a missing 'virtual' in the getStreamingState() method declaration for completeness. 04/16/12 05:48:28 jwoithe [2120] * trunk/libffado/src/dice/dice_avdevice.cpp (modified) * trunk/libffado/src/dice/dice_avdevice.h (modified) dice: implement the getStreamingState() virtual device method as a thin wrapper around isIsoStreamingEnabled(). In theory this will make ffado-mixer aware of the streaming state which in turn will allow it to disable controls which cannot be changed when streaming is active. Compile-tested only. 04/16/12 05:21:40 jwoithe [2119] * trunk/libffado/support/mixer-qt4/ffado/mixer/globalmixer.py (modified) If streaming is started when ffado-mixer is running, make ffado- mixer's sample rate agree with that in use (jackd can change this on startup independently of ffado-mixer). 04/14/12 05:55:26 jwoithe [2118] * trunk/libffado/configuration (modified) apply configuration file patch from yellius for the Tascam IF-FW/DM device. See ticket #338 and #340 for the ongoing discussion about this device. 04/05/12 08:04:06 pnoffke [2117] * trunk/libffado/support/dbus/control-interface.xml (modified) Add annotation for qdbusxml2cpp. 04/03/12 05:35:23 jwoithe [2116] * trunk/libffado/README (modified) README: update jack version requirements 04/03/12 01:36:58 adi [2115] * trunk/libffado/SConstruct (modified) Introduce ENABLE_SETBUFFERSIZE_API_VER=force We now have: * false: use API_VER 8 * auto: use API_VER 8 or 9 depending on the installed jackd version or API_VER 9 if no jackd is installed * true: use API_VER 9, but abort if detected jackd is too old * force: use API_VER 9 04/03/12 01:36:49 adi [2114] * trunk/libffado/SConstruct (modified) Revert "Don't abort on ENABLE_SETBUFFERSIZE_API_VER=true" This reverts commit 487d76efa4df33c9bdf9be4c4264b54105f895b1. 04/02/12 07:21:47 adi [2113] * trunk/libffado/SConstruct (modified) Don't abort on ENABLE_SETBUFFERSIZE_API_VER=true Power to the people. If they ask for APIv9, they get APIv9. Reserve the "I know what's good for you" attitude to the 'auto' case. 04/02/12 07:21:39 adi [2112] * trunk/libffado/src/libstreaming/amdtp/AmdtpReceiveStreamProcessor.cpp (modified) * trunk/libffado/src/libstreaming/amdtp/AmdtpTransmitStreamProcessor.cpp (modified) Fix failing assertion in AMDTP streamer when increasing bufsize Closes #348 04/02/12 05:51:10 jwoithe [2111] * trunk/libffado/support/mixer-qt4/ffado/mixer/phase24control.py (modified) Terratec Producer Phase 24FW: possibly fix a few mixer settings which were not working. Patch from 'maxi' via trac. Addresses ticket #323. 04/02/12 05:28:04 jwoithe [2110] * trunk/libffado/support/mixer-qt4/ffado/ffadowindow.py (modified) * trunk/libffado/support/mixer-qt4/ffado/panelmanager.py (modified) Patch from Philippe Carriere. refreshPanels is the 'orthogonal' function to updatePanels; it permits the reconfiguration and redrawing of the current mixer panels under user request. This may be useful when some hardware settings have been changed that ffado- mixer is unaware of but which can affect the options offered by the mixer. 04/02/12 05:21:03 jwoithe [2109] * trunk/libffado/support/mixer-qt4/ffado/panelmanager.py (modified) Patch from Philippe Carriere. This is just a simple re-writing of updatePanels, intended to have no effects on the behaviour of ffado- mixer. Sub-functions will be used in a future, additional, 'refresh currents' panels function. 04/01/12 16:10:12 jwoithe [2108] * trunk/libffado/configuration (modified) firestudio project: activate the generic DICE mixer since according to Walt Baldwin via the ffado-user mailing list, this works. Apparently it is a touch cryptic though, so an alternative mixer may be on the cards at some point. 04/01/12 07:03:55 jwoithe [2107] * trunk/libffado/src/devicemanager.cpp (modified) * trunk/libffado/src/libstreaming/StreamProcessorManager.cpp (modified) * trunk/libffado/src/libstreaming/StreamProcessorManager.h (modified) The firewire and FFADO architectures impose some lower limits on the number of buffers and buffer size. Test for these and raise an error if an attempt is made to violate these limits. If an error condition is detected print a message using printMessage() so the user has some hope of seeing it. debugFatal() isn't used because it will only print its message if debug was enabled at compile-time and a non-zero debug level is set. Addresses ticket #324. Thanks to 'paradox uncreated' for the initial bug report. 04/01/12 05:24:44 jwoithe [2106] * trunk/libffado/SConstruct (modified) If ffado is compiled on a machine without jack, permit compilation and default to the setbuffersize-compatible API version return when ENABLE_SETBUFFERSIZE_API_VER is set to auto (the default). Having jackd on the system should not be a prerequisite for compiling, but r2104 effectively made it so. Also note that the commit message for r2105 wrongly referred to r2104 as 2014. 03/31/12 05:10:58 jwoithe [2105] * trunk/libffado/SConstruct (modified) Correct/clarify messages related to r2014. Add a suggestion to upgrade jack in the case where r2014's 'auto' setting detects an older jack version. 03/31/12 04:35:39 jwoithe [2104] * trunk/libffado/SConstruct (modified) Allow the FFADO API reported at runtime to be downgraded to the pre- setbuffersize version (8). This will permit newer FFADO snapshots to be run on a system with a jack which predates the setbuffersize API version (9). The resulting FFADO will continue to work if jack is subsequently upgraded, but dynamic setbuffersize support will require FFADO be recompiled. 03/31/12 02:46:33 jwoithe [2103] * trunk/libffado/src/dice/dice_eap.cpp (modified) typecast size_t printf() parameters to prevent format warnings and use an appropriate format specifier. The cast is to 'unsigned long long' because size_t is an unsigned type, and we need to allow for the possibility that size_t is 64-bit (as it will be on 64-bit systems) - even though in this context the value of the size_t object won't go anywhere near the maximum of an unsigned 32-bit integer. Thanks to Yves Grenier for pointing out the warnings. 03/30/12 04:32:03 jwoithe [2102] * trunk/libffado/src/libavc/audiosubunit/avc_function_block.cpp (modified) Remove some unused variables. They become unused in r2090. 03/30/12 04:20:10 jwoithe [2101] * trunk/libffado/tests/test-cycle-time.c (added) Take 2: this time make sure test-cycle-time.c has been added to version control. 03/30/12 04:18:06 jwoithe [2100] * trunk/libffado/tests/SConscript (modified) add test-cycle-time from Stefen Richter to tests/. This tests a host card for a firmware bug whereby the cycle timer can go backwards. If this happens, FFADO's streaming system gets upset. Fortunately there's a simple kernel workaround that can be applied if necessary. 03/30/12 03:33:40 jwoithe [2099] * trunk/libffado/configuration (modified) Add configuration file entries for the Presonus Firestudio Project, and the Presonus StudioLive 2442. Both entries come from Walt Baldwin - thanks! 03/29/12 13:29:32 adi [2098] * trunk/libffado/src/dice/dice_eap.cpp (modified) DICE-EAP avoid adding an empty destination Patch by Philippe Carriere. 03/29/12 13:29:22 adi [2097] * trunk/libffado/src/dice/focusrite/saffire_pro24.cpp (modified) * trunk/libffado/src/dice/focusrite/saffire_pro40.cpp (modified) DICE-EAP Undefine Mute destinations for Saffire Pro40 and 24 By Philippe Carriere: Mute destinations, while existing in the hardware are confusing and not user meaningful; then avoid to define them in the destinations. If some usefulness will be provided in the future, just uncommenting the corresponding line would be required. 03/29/12 13:29:11 adi [2096] * trunk/libffado/src/dice/dice_eap.cpp (modified) * trunk/libffado/src/dice/dice_eap.h (modified) DICE-EAP Mute rather than remove route when disabling a destination By Philippe Carriere: Really removing a route is not fully supported by all devices; then muting is preferable when one just want to set a different connection state (as part of a modification of one source for another one for a given destination). A getMuteId() function is introduced so as to be easily customized for specific devices, if necessary. 03/29/12 13:29:03 adi [2095] * trunk/libffado/src/dice/dice_eap.cpp (modified) * trunk/libffado/src/dice/dice_eap.h (modified) DICE-EAP Use vector of pair rather than map for router config By Philippe Carriere: router config (m_routes2) is the image of what is really written in the flash. The meaning of the router and peak space flash content is entirely manufacturer dependent. Then even the ordering followed by the destinations may be of importance so it must be a priori preserved. 03/29/12 13:28:55 adi [2094] * trunk/libffado/src/dice/dice_eap.cpp (modified) * trunk/libffado/src/dice/dice_eap.h (modified) * trunk/libffado/tests/test-dice-eap.cpp (modified) DICE-EAP Add (possibly) printing the full peak space with test-dice- eap By Philippe Carriere: Further information (peak space) for test purposes 03/29/12 13:28:46 adi [2093] * trunk/libffado/src/dice/dice_eap.cpp (modified) * trunk/libffado/src/dice/dice_eap.h (modified) * trunk/libffado/tests/test-dice-eap.cpp (modified) DICE-EAP add (possibly) printing the full router content with test- dice-eap By Philippe Carriere. Additional debug information. 03/29/12 13:28:37 adi [2092] * trunk/libffado/src/dice/dice_eap.cpp (modified) * trunk/libffado/src/dice/dice_eap.h (modified) DICE-EAP Corrects the number of router entries for clearing in EAP::RouterConfig::write By Philippe Carriere: EAP::RouterConfig::write assumes the router has 128 entries, something which is not part of the Dice EAP specifications. This number is replaced by the maximal number of entries as read in the rom; introduce the function getMaxNbRouterEntries() as a public function of EAP. Then use it in EAP::RouterConfig::write. 03/28/12 01:14:50 jwoithe [2091] * trunk/libffado/src/bebob/bebob_functionblock.cpp (modified) Enable the EnhancedMixer for all Bebob devices. From Orania in ticket #341. As for commit r2090, this has apparently only been tested with an Ozonic, so it would be good to confirm that there are no ill-effects for uses of other Bebob-based devices (Wagi doesn't expect regressions on other devices). Together with r2090, this commit closes ticket #341. 03/28/12 01:11:56 jwoithe [2090] * trunk/libffado/src/libavc/audiosubunit/avc_function_block.cpp (modified) Fixes to the AVC EnhancedMixer functional block which are needed for use with the M-Audio Ozonic. This patch has only been tested against an Ozonic, so it's probably wise for owners of other Bebob-based devices to test this to ensure there are no regressions. From Orania in ticket #341. 03/27/12 07:06:15 jwoithe [2089] * trunk/libffado/SConstruct (modified) * trunk/libffado/support/dbus/ffado-dbus-server.1 (added) * trunk/libffado/support/dbus/SConscript (modified) * trunk/libffado/support/firmware/ffado-bridgeco-downloader.1 (added) * trunk/libffado/support/firmware/ffado-dice-firmware.1 (added) * trunk/libffado/support/firmware/ffado-fireworks-downloader.1 (added) * trunk/libffado/support/firmware/SConscript (modified) * trunk/libffado/support/mixer-qt4/ffado-mixer.1 (added) * trunk/libffado/support/mixer-qt4/SConscript (modified) * trunk/libffado/support/tools/ffado-diag.1 (added) * trunk/libffado/support/tools/SConscript (modified) Provide manpages for commonly used FFADO programs. Closes #294. 03/23/12 04:29:32 jwoithe [2088] * trunk/libffado/src/dice/dice_firmware_loader.cpp (modified) * trunk/libffado/tests/test-dice-eap.cpp (modified) * trunk/libffado/tests/test-fw410.cpp (modified) * trunk/libffado/tests/test-ieee1394service.cpp (modified) * trunk/libffado/tests/test-ipcringbuffer.cpp (modified) * trunk/libffado/tests/test-messagequeue.cpp (modified) * trunk/libffado/tests/test-scs.cpp (modified) * trunk/libffado/tests/test-shm.cpp (modified) * trunk/libffado/tests/test-streamdump.cpp (modified) More fixes for compilation under gcc 4.7. Patch supplied by "oget". Fixes reopened ticket #344. 03/19/12 15:50:49 jwoithe [2087] * trunk/libffado/libffado/ffado.h.in (moved) * trunk/libffado/libffado/SConscript (modified) define FFADO_API_VERSION publically so users of libffado can check the API version at compile time, making it easier to maintain a code base which can compile against older API versions if necessary. 03/18/12 16:12:21 jwoithe [2086] * trunk/libffado/configuration (modified) Add configuration entry for the TC Electronic Impact Twin. Patch provided by mzuther, ticket #349. 03/16/12 03:41:17 jwoithe [2085] * trunk/libffado/src/motu/motu_avdevice.cpp (modified) motu: another 828mk1 packet format correction. This one moves the SPDIF channels to the correct location. This change was meant to be made between r2083 and r2084 but somehow I managed to avoid checking it in. 03/14/12 22:27:12 jwoithe [2084] * trunk/libffado/src/motu/motu_avdevice.cpp (modified) motu: correction to packet size calculations in getEventSize() and initDirPortGroups(), primarily in connection with the 828mk1. 03/14/12 20:33:59 jwoithe [2083] * trunk/libffado/src/libstreaming/motu/MotuReceiveStreamProcessor.cpp (modified) * trunk/libffado/src/libstreaming/motu/MotuReceiveStreamProcessor.h (modified) * trunk/libffado/src/motu/motu_avdevice.cpp (modified) motu: adjustments to 828mk1 packet layout. When parsing received packets make allowances for the lack of control events in the data stream. Compile-tested only. 03/13/12 02:17:31 jwoithe [2082] * trunk/libffado/src/motu/motu_avdevice.cpp (modified) motu: another small debug output for 828mk1 work 03/12/12 04:17:19 jwoithe [2081] * trunk/libffado/libffado/ffado.h (modified) export ffado_driver_bufsize() using weak linkage so-as to not break newer library clients (eg: jackd) when running on systems with an older libffado. 03/12/12 03:38:11 jwoithe [2080] * trunk/libffado/SConstruct (modified) bump API version to account for the new ffado_streaming_set_period_size() function added in r2078. 03/10/12 19:39:36 jwoithe [2079] * trunk/libffado/src/libstreaming/motu/MotuReceiveStreamProcessor.cpp (modified) motu: slight change to debug output to facilitate further investigations into the 828mk1 packet format. 03/10/12 06:03:53 jwoithe [2078] * trunk/libffado/libffado/ffado.h (modified) * trunk/libffado/src/devicemanager.cpp (modified) * trunk/libffado/src/devicemanager.h (modified) * trunk/libffado/src/ffado.cpp (modified) * trunk/libffado/src/libstreaming/generic/Port.cpp (modified) * trunk/libffado/src/libstreaming/generic/StreamProcessor.cpp (modified) * trunk/libffado/src/libstreaming/generic/StreamProcessor.h (modified) * trunk/libffado/src/libstreaming/StreamProcessorManager.cpp (modified) * trunk/libffado/src/libstreaming/StreamProcessorManager.h (modified) * trunk/libffado/src/libutil/TimestampedBuffer.cpp (modified) A first pass at infrastructure required to support jack's runtime setbufsize functionality. It has been tested with exactly one interface (RME Fireface-800) and it seems to work, but there's stacks which can go wrong so wider testing is encouraged. Note that to make use of this a revised firewire jack driver will be required. I'm going to talk to the jack guys about how to proceed with this (it's slightly tricky because the libffado API is changed by this patch to add a new function - ffado_streaming_set_period_size()). 03/09/12 00:14:17 jwoithe [2077] * trunk/libffado/src/libstreaming/rme/RmeTransmitStreamProcessor.cpp (modified) * trunk/libffado/src/libstreaming/rme/RmeTransmitStreamProcessor.h (modified) * trunk/libffado/src/rme/rme_avdevice.cpp (modified) rme: the streaming system can now be restarted after being stopped without having to exit ffado first. This means that the RME interfaces are now tolerant of jackd coming out of freewheeling mode. It may also improve things in the face of bus resets. We'll see. 03/08/12 14:49:56 jwoithe [2076] * trunk/libffado/src/libieee1394/IsoHandlerManager.cpp (modified) isohandlermanager: whitespace cleanup around changes from r2074 and add an explanatory comment. As per the comments, the change prevents getPacket() being called prior to the housekeeping data being properly reset. When these were only reset at the end of the enable() method this was observed. This change may make restarts more reliable on certain devices, which occurs (for example) when jackd is switched out of freewheeling mode.