diff options
3 files changed, 6 insertions, 137 deletions
diff --git a/audio/jack-audio-connection-kit/ffado_setbuffsize-jack1.patch b/audio/jack-audio-connection-kit/ffado_setbuffsize-jack1.patch deleted file mode 100644 index 7e43962eec..0000000000 --- a/audio/jack-audio-connection-kit/ffado_setbuffsize-jack1.patch +++ /dev/null @@ -1,124 +0,0 @@ -From 025d3ad4d5adeff00e97b6fafdf32d6d199d0baa Mon Sep 17 00:00:00 2001 -From: Jonathan Woithe <jwoithe@just42.net> -Date: Tue, 13 Mar 2012 15:43:03 +1030 -Subject: [PATCH] Support setbufsize in firewire driver - ---- - drivers/firewire/ffado_driver.c | 69 ++++++++++++++++++++++++++++++++++----- - 1 file changed, 60 insertions(+), 9 deletions(-) - -diff --git a/drivers/firewire/ffado_driver.c b/drivers/firewire/ffado_driver.c -index a8ad1ea..6035af3 100644 ---- a/drivers/firewire/ffado_driver.c -+++ b/drivers/firewire/ffado_driver.c -@@ -7,6 +7,7 @@ - * http://www.jackaudio.org - * - * Copyright (C) 2005-2007 Pieter Palmers -+ * Copyright (C) 2012 Jonathan Woithe - * - * 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 -@@ -50,7 +51,10 @@ - - static int ffado_driver_stop (ffado_driver_t *driver); - -+// Basic functionality requires API version 8. If version 9 or later -+// is present the buffers can be resized at runtime. - #define FIREWIRE_REQUIRED_FFADO_API_VERSION 8 -+#define FIREWIRE_REQUIRED_FFADO_API_VERSION_FOR_SETBUFSIZE 9 - - // enable verbose messages - static int g_verbose=0; -@@ -675,24 +679,71 @@ - static int - ffado_driver_bufsize (ffado_driver_t* driver, jack_nframes_t nframes) - { -- printError("Buffer size change requested but not supported!!!"); -+ signed int chn; -+ -+ // The speed of this function isn't critical; we can afford the -+ // time to check the FFADO API version. -+ if (ffado_get_api_version() < FIREWIRE_REQUIRED_FFADO_API_VERSION_FOR_SETBUFSIZE || -+ ffado_streaming_set_period_size == NULL) { -+ printError("unsupported on current version of FFADO; please upgrade FFADO"); -+ return -1; -+ } - -- /* -- driver->period_size = nframes; -+ driver->period_size = nframes; - driver->period_usecs = - (jack_time_t) floor ((((float) nframes) / driver->sample_rate) - * 1000000.0f); -- */ -- -+ -+ // Reallocate the null and scratch buffers. -+ driver->nullbuffer = calloc(driver->period_size, sizeof(ffado_sample_t)); -+ if(driver->nullbuffer == NULL) { -+ printError("could not allocate memory for null buffer"); -+ return -1; -+ } -+ driver->scratchbuffer = calloc(driver->period_size, sizeof(ffado_sample_t)); -+ if(driver->scratchbuffer == NULL) { -+ printError("could not allocate memory for scratch buffer"); -+ return -1; -+ } -+ -+ // MIDI buffers need reallocating -+ for (chn = 0; chn < driver->capture_nchannels; chn++) { -+ if(driver->capture_channels[chn].stream_type == ffado_stream_type_midi) { -+ // setup the midi buffer -+ if (driver->capture_channels[chn].midi_buffer != NULL) -+ free(driver->capture_channels[chn].midi_buffer); -+ driver->capture_channels[chn].midi_buffer = calloc(driver->period_size, sizeof(uint32_t)); -+ } -+ } -+ for (chn = 0; chn < driver->playback_nchannels; chn++) { -+ if(driver->playback_channels[chn].stream_type == ffado_stream_type_midi) { -+ if (driver->playback_channels[chn].midi_buffer != NULL) -+ free(driver->playback_channels[chn].midi_buffer); -+ driver->playback_channels[chn].midi_buffer = calloc(driver->period_size, sizeof(uint32_t)); -+ } -+ } -+ -+ // Notify FFADO of the period size change -+ if (ffado_streaming_set_period_size(driver->dev, nframes) != 0) { -+ printError("could not alter FFADO device period size"); -+ return -1; -+ } -+ -+ // This is needed to give the shadow variables a chance to -+ // properly update to the changes. -+ sleep(1); -+ - /* tell the engine to change its buffer size */ --#if 0 - if (driver->engine->set_buffer_size (driver->engine, nframes)) { - jack_error ("FFADO: cannot set engine buffer size to %d (check MIDI)", nframes); - return -1; - } --#endif - -- return -1; // unsupported -+ // Other drivers (eg: ALSA) don't seem to adjust latencies via -+ // jack_port_set_latency_range() from the bufsize() callback, so we -+ // won't either. Is this right? -+ -+ return 0; - } - - typedef void (*JackDriverFinishFunction) (jack_driver_t *); -@@ -704,7 +755,7 @@ - { - ffado_driver_t *driver; - -- if(ffado_get_api_version() != FIREWIRE_REQUIRED_FFADO_API_VERSION) { -+ if(ffado_get_api_version() < FIREWIRE_REQUIRED_FFADO_API_VERSION) { - printError("Incompatible libffado version! (%s)", ffado_get_version()); - return NULL; - } --- -1.7.10 - diff --git a/audio/jack-audio-connection-kit/jack-audio-connection-kit.SlackBuild b/audio/jack-audio-connection-kit/jack-audio-connection-kit.SlackBuild index f33b4da5d4..bbb62a4693 100644 --- a/audio/jack-audio-connection-kit/jack-audio-connection-kit.SlackBuild +++ b/audio/jack-audio-connection-kit/jack-audio-connection-kit.SlackBuild @@ -2,7 +2,7 @@ # Slackware build script for jack-audio-connection-kit -# Copyright 2007-2013 Heinz Wiesinger, Amsterdam, The Netherlands +# Copyright 2007-2014 Heinz Wiesinger, Amsterdam, The Netherlands # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -26,8 +26,8 @@ # No additional license terms added :) PRGNAM=jack-audio-connection-kit -VERSION=0.121.3 -BUILD=${BUILD:-2} +VERSION=${VERSION:-0.124.1} +BUILD=${BUILD:-1} TAG=${TAG:-_SBo} if [ -z "$ARCH" ]; then @@ -72,10 +72,6 @@ find -L . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \; -# Fix for latest version of libffado. -# from https://github.com/jackaudio/jack1/commit/025d3ad -patch -p1 -i $CWD/ffado_setbuffsize-jack1.patch - CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure \ @@ -93,9 +89,6 @@ CXXFLAGS="$SLKCFLAGS" \ make make install-strip DESTDIR=$PKG -# Install missing header -install -m 644 jack/jslist.h $PKG/usr/include/jack/ - find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true diff --git a/audio/jack-audio-connection-kit/jack-audio-connection-kit.info b/audio/jack-audio-connection-kit/jack-audio-connection-kit.info index dd775d5e0a..c25d1388a4 100644 --- a/audio/jack-audio-connection-kit/jack-audio-connection-kit.info +++ b/audio/jack-audio-connection-kit/jack-audio-connection-kit.info @@ -1,8 +1,8 @@ PRGNAM="jack-audio-connection-kit" -VERSION="0.121.3" +VERSION="0.124.1" HOMEPAGE="http://jackaudio.org" -DOWNLOAD="http://jackaudio.org/downloads/jack-audio-connection-kit-0.121.3.tar.gz" -MD5SUM="35f470f7422c37b33eb965033f7a42e8" +DOWNLOAD="http://jackaudio.org/downloads/jack-audio-connection-kit-0.124.1.tar.gz" +MD5SUM="d64e90121be8a54860b870a726fb5b5d" DOWNLOAD_x86_64="" MD5SUM_x86_64="" REQUIRES="" |