mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-16 19:50:19 +01:00
audio/jack-audio-connection-kit: Updated for version 0.124.1.
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
parent
5f94687968
commit
958dc7e59b
3 changed files with 6 additions and 137 deletions
|
@ -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
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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=""
|
||||
|
|
Loading…
Reference in a new issue