summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Huddleston <eradicator@gentoo.org>2004-09-30 06:59:27 +0000
committerJeremy Huddleston <eradicator@gentoo.org>2004-09-30 06:59:27 +0000
commitbfecf76f61fc9dfd2eef7099e153b2eaa281af74 (patch)
treed4623b08671d5e90ad98a02894de2b497eea0f4c /media-sound/jamin/files
parentdamn i am a fool (diff)
downloadgentoo-2-bfecf76f61fc9dfd2eef7099e153b2eaa281af74.tar.gz
gentoo-2-bfecf76f61fc9dfd2eef7099e153b2eaa281af74.tar.bz2
gentoo-2-bfecf76f61fc9dfd2eef7099e153b2eaa281af74.zip
Stable on amd64 and x86. Added a patch to work with jack-0.99.0. Closes bug #65098 thanks to Reuben Martin <martinr@jbu.edu>.
Diffstat (limited to 'media-sound/jamin/files')
-rw-r--r--media-sound/jamin/files/digest-jamin-0.9.01
-rw-r--r--media-sound/jamin/files/jamin-0.9.0-jack99.patch272
2 files changed, 272 insertions, 1 deletions
diff --git a/media-sound/jamin/files/digest-jamin-0.9.0 b/media-sound/jamin/files/digest-jamin-0.9.0
deleted file mode 100644
index 1e4edfef2ddc..000000000000
--- a/media-sound/jamin/files/digest-jamin-0.9.0
+++ /dev/null
@@ -1 +0,0 @@
-MD5 2c98cd525304c35f6b9f881209b5e6e4 jamin-0.9.0.tar.gz 725400
diff --git a/media-sound/jamin/files/jamin-0.9.0-jack99.patch b/media-sound/jamin/files/jamin-0.9.0-jack99.patch
new file mode 100644
index 000000000000..5d0b05f52c4c
--- /dev/null
+++ b/media-sound/jamin/files/jamin-0.9.0-jack99.patch
@@ -0,0 +1,272 @@
+diff -Naur jamin-0.9.0.orig/configure.in jamin-0.9.0/configure.in
+--- jamin-0.9.0.orig/configure.in 2004-08-05 10:39:43.000000000 -0700
++++ jamin-0.9.0/configure.in 2004-09-29 23:53:58.269328327 -0700
+@@ -1,7 +1,7 @@
+ dnl Process this file with autoconf to produce a configure script.
+
+ AC_INIT(configure.in)
+-AM_INIT_AUTOMAKE(jamin, 0.9.0)
++AM_INIT_AUTOMAKE(jamin, 0.9.03)
+ AM_CONFIG_HEADER(config.h)
+ AM_MAINTAINER_MODE
+
+@@ -32,11 +32,13 @@
+ [AC_DEFINE(HAVE_POSIX_SCHED,,[POSIX scheduler support])])
+
+ PKG_CHECK_MODULES(JACK, jack >= 0.80.0)
++AC_CHECK_LIB(jack,jack_create_thread,
++ [AC_DEFINE(HAVE_JACK_CREATE_THREAD,,[JACK supports thread creation])])
+ AC_CHECK_LIB(jack,jack_ringbuffer_create,
+- [AC_DEFINE(HAVE_JACK_RINGBUFFER,,[JACK has ringbuffer support])],)
++ [AC_DEFINE(HAVE_JACK_RINGBUFFER,,[JACK has ringbuffer support])])
+ AC_CHECK_LIB(jack,jack_client_name_size,
+ [AC_DEFINE(HAVE_JACK_CLIENT_NAME_SIZE,,
+- [JACK returns client name size])],)
++ [JACK returns client name size])])
+
+ [if test "${enable_double_fft+set}" = set; then]
+ PKG_CHECK_MODULES(FFTW, fftw3 >= 3.0, AC_DEFINE(FFTW_TYPE, [double], [Datatype used by installed FFTW libraries]), [AC_MSG_ERROR([Didn't find any double precision FFTW3 libraries])])
+diff -Naur jamin-0.9.0.orig/src/compressor-ui.c jamin-0.9.0/src/compressor-ui.c
+--- jamin-0.9.0.orig/src/compressor-ui.c 2004-07-17 07:34:58.000000000 -0700
++++ jamin-0.9.0/src/compressor-ui.c 2004-09-29 23:53:58.271327996 -0700
+@@ -139,13 +139,6 @@
+ ma[i] = scale;
+
+ auto_gain[i] = 0;
+-
+- prev_value_at[i] = -1.0;
+- prev_value_re[i] = -1.0;
+- prev_value_th[i] = 1.0;
+- prev_value_ra[i] = -1.0;
+- prev_value_kn[i] = -1.0;
+- prev_value_ma[i] = -1.0;
+ }
+ }
+
+@@ -166,14 +159,7 @@
+
+ if (!suspend_gang && gang_at[i])
+ {
+- if (prev_value_at[i] > 0.0)
+- {
+- diff = value - prev_value_at[i];
+- }
+- else
+- {
+- diff = 0.0;
+- }
++ diff = value - prev_value_at[i];
+
+ for (j = 0 ; j < XO_BANDS ; j++)
+ {
+@@ -213,14 +199,7 @@
+
+ if (!suspend_gang && gang_re[i])
+ {
+- if (prev_value_re[i] > 0.0)
+- {
+- diff = value - prev_value_re[i];
+- }
+- else
+- {
+- diff = 0.0;
+- }
++ diff = value - prev_value_re[i];
+
+ for (j = 0 ; j < XO_BANDS ; j++)
+ {
+@@ -260,14 +239,7 @@
+
+ if (!suspend_gang && gang_th[i])
+ {
+- if (prev_value_th[i] < 0.0)
+- {
+- diff = value - prev_value_th[i];
+- }
+- else
+- {
+- diff = 0.0;
+- }
++ diff = value - prev_value_th[i];
+
+ for (j = 0 ; j < XO_BANDS ; j++)
+ {
+@@ -317,14 +289,7 @@
+
+ if (!suspend_gang && gang_ra[i])
+ {
+- if (prev_value_ra[i] > 0.0)
+- {
+- diff = value - prev_value_ra[i];
+- }
+- else
+- {
+- diff = 0.0;
+- }
++ diff = value - prev_value_ra[i];
+
+ for (j = 0 ; j < XO_BANDS ; j++)
+ {
+@@ -374,14 +339,7 @@
+
+ if (!suspend_gang && gang_kn[i])
+ {
+- if (prev_value_kn[i] > 0.0)
+- {
+- diff = value - prev_value_kn[i];
+- }
+- else
+- {
+- diff = 0.0;
+- }
++ diff = value - prev_value_kn[i];
+
+ for (j = 0 ; j < XO_BANDS ; j++)
+ {
+@@ -423,14 +381,7 @@
+
+ if (!suspend_gang && gang_ma[i])
+ {
+- if (prev_value_ma[i] > 0.0)
+- {
+- diff = value - prev_value_ma[i];
+- }
+- else
+- {
+- diff = 0.0;
+- }
++ diff = value - prev_value_ma[i];
+
+ for (j = 0 ; j < XO_BANDS ; j++)
+ {
+@@ -581,7 +532,7 @@
+ gang_at[band] = FALSE;
+ gtk_widget_modify_fg ((GtkWidget *) lab_at[band], GTK_STATE_NORMAL,
+ get_color (TEXT_COLOR));
+- prev_value_at[band] = -1.0;
++ prev_value_at[band] = gtk_adjustment_get_value (adj_at[band]);
+ }
+ else
+ {
+@@ -598,7 +549,7 @@
+ gang_re[band] = FALSE;
+ gtk_widget_modify_fg ((GtkWidget *) lab_re[band], GTK_STATE_NORMAL,
+ get_color (TEXT_COLOR));
+- prev_value_re[band] = -1.0;
++ prev_value_re[band] = gtk_adjustment_get_value (adj_re[band]);
+ }
+ else
+ {
+@@ -615,7 +566,7 @@
+ gang_th[band] = FALSE;
+ gtk_widget_modify_fg ((GtkWidget *) lab_th[band], GTK_STATE_NORMAL,
+ get_color (TEXT_COLOR));
+- prev_value_th[band] = 1.0;
++ prev_value_th[band] = gtk_adjustment_get_value (adj_th[band]);
+ }
+ else
+ {
+@@ -632,7 +583,7 @@
+ gang_ra[band] = FALSE;
+ gtk_widget_modify_fg ((GtkWidget *) lab_ra[band], GTK_STATE_NORMAL,
+ get_color (TEXT_COLOR));
+- prev_value_ra[band] = -1.0;
++ prev_value_ra[band] = gtk_adjustment_get_value (adj_ra[band]);
+ }
+ else
+ {
+@@ -648,7 +599,7 @@
+ gang_kn[band] = FALSE;
+ gtk_widget_modify_fg ((GtkWidget *) lab_kn[band], GTK_STATE_NORMAL,
+ get_color (TEXT_COLOR));
+- prev_value_kn[band] = -1.0;
++ prev_value_kn[band] = gtk_adjustment_get_value (adj_kn[band]);
+ }
+ else
+ {
+@@ -665,7 +616,7 @@
+ gang_ma[band] = FALSE;
+ gtk_widget_modify_fg ((GtkWidget *) lab_ma[band], GTK_STATE_NORMAL,
+ get_color (TEXT_COLOR));
+- prev_value_ma[band] = -1.0;
++ prev_value_ma[band] = gtk_adjustment_get_value (adj_ma[band]);
+ }
+ else
+ {
+diff -Naur jamin-0.9.0.orig/src/io.c jamin-0.9.0/src/io.c
+--- jamin-0.9.0.orig/src/io.c 2004-04-02 18:47:19.000000000 -0800
++++ jamin-0.9.0/src/io.c 2004-09-29 23:54:06.053042018 -0700
+@@ -58,6 +58,8 @@
+ * + JACK not running realtime
+ */
+
++#include "config.h"
++
+ #include <stdio.h>
+ #include <stdarg.h>
+ #include <stdlib.h>
+@@ -71,8 +73,10 @@
+ #include <errno.h>
+ #include <assert.h>
+ #include <jack/jack.h>
++#ifdef HAVE_JACK_CREATE_THREAD
++#include <jack/thread.h>
++#endif
+
+-#include "config.h"
+ #include "ringbuffer.h" /* uses <jack/ringbuffer.h>, if available */
+ #include "process.h"
+ #include "resource.h"
+@@ -857,9 +861,12 @@
+ {
+ int rc;
+ int policy;
+- struct sched_param rt_param, my_param;
++ struct sched_param rt_param;
+ pthread_attr_t attributes;
+ pthread_attr_init(&attributes);
++#ifndef HAVE_JACK_CREATE_THREAD
++ struct sched_param my_param;
++#endif
+
+ /* Set priority and scheduling parameters based on the attributes
+ * of the JACK client thread. */
+@@ -884,6 +891,23 @@
+ } else
+ IF_DEBUG(DBG_TERSE, io_trace("JACK subsystem not realtime"));
+
++#ifdef HAVE_JACK_CREATE_THREAD
++
++ rc = jack_create_thread(&dsp_thread, rt_param.sched_priority,
++ jst.realtime, io_dsp_thread, NULL);
++ switch (rc) {
++ case 0:
++ IF_DEBUG(DBG_TERSE, io_trace("DSP thread created"));
++ break;
++ case EPERM:
++ io_errlog(EPERM, "no realtime privileges for DSP thread");
++ break;
++ default:
++ io_errlog(rc, "error creating DSP thread");
++ }
++
++#else /* !HAVE_JACK_CREATE_THREAD */
++
+ rc = pthread_attr_setschedpolicy(&attributes, policy);
+ if (rc) {
+ io_errlog(EPERM, "cannot set scheduling policy, rc = %d.", rc);
+@@ -984,10 +1008,11 @@
+ /* return this thread to the scheduler it used before */
+ sched_setscheduler(0, policy, &my_param);
+ IF_DEBUG(DBG_TERSE, io_trace("DSP thread finally created"));
+- return 0;
+-#else /* !HAVE_POSIX_SCHED */
+- return rc;
++ rc = 0;
+ #endif /* HAVE_POSIX_SCHED */
++#endif /* HAVE_JACK_CREATE_THREAD */
++
++ return rc;
+ }
+
+