[SCM] jack-audio-connection-kit/master: Imported Upstream version 0.121.0+svn4538

adiknoth-guest at users.alioth.debian.org adiknoth-guest at users.alioth.debian.org
Tue Sep 6 15:17:54 UTC 2011


The following commit has been merged in the master branch:
commit 928482d18786526efd4799a79d18cd16ce997627
Author: Adrian Knoth <adi at drcomp.erfurt.thur.de>
Date:   Tue Sep 6 16:40:03 2011 +0200

    Imported Upstream version 0.121.0+svn4538

diff --git a/Makefile.am b/Makefile.am
index 91c05e6..c526540 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -13,13 +13,13 @@ dist-check-doxygen:
 	@false
 endif
 
-SUBDIRS =      jack libjack jackd drivers example-clients tools config $(DOC_DIR) man
-DIST_SUBDIRS = config jack libjack jackd drivers example-clients tools doc man
+SUBDIRS =      jack libjack jackd drivers example-clients tools config $(DOC_DIR) man python
+DIST_SUBDIRS = config jack libjack jackd drivers example-clients tools doc man python
 
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = jack.pc
 
-EXTRA_DIST = COPYING COPYING.GPL COPYING.LGPL libjack/simd.c jack.spec python/*.py python/*.pyc
+EXTRA_DIST = COPYING COPYING.GPL COPYING.LGPL libjack/simd.c jack.spec
 
 AUTOMAKE_OPTIONS = foreign
 
diff --git a/config/os/gnu-linux/time.c b/config/os/gnu-linux/time.c
index 0fc6ae6..7301200 100644
--- a/config/os/gnu-linux/time.c
+++ b/config/os/gnu-linux/time.c
@@ -157,6 +157,8 @@ jack_get_mhz (void)
 		ret = sscanf(buf, "Clocking:       %" SCNu64, &mhz);
 #elif defined( __s390__  )
 		ret = sscanf(buf, "bogomips per cpu: %" SCNu64, &mhz);
+#elif defined( __sh__  )
+		ret = sscanf(buf, "bogomips        : %" SCNu64, &mhz);
 #else /* MIPS, ARM, alpha */
 		ret = sscanf(buf, "BogoMIPS        : %" SCNu64, &mhz);
 #endif 
diff --git a/configure.ac b/configure.ac
index 0a7e6bc..5441bbd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-dnl $Id: configure.ac 4467 2011-06-23 15:10:03Z paul $
+dnl $Id: configure.ac 4475 2011-06-29 01:50:54Z paul $
 
 AC_INIT(jackd/jackd.c)
 
@@ -62,7 +62,7 @@ dnl                 changes are made
 dnl ---
 JACK_MAJOR_VERSION=0
 JACK_MINOR_VERSION=121
-JACK_MICRO_VERSION=0
+JACK_MICRO_VERSION=2
 
 dnl ---
 dnl HOWTO: updating the jack protocol version
@@ -967,6 +967,7 @@ jack/version.h
 jackd/Makefile
 jackd/jackd.1
 libjack/Makefile
+python/Makefile
 )
 
 dnl
diff --git a/drivers/oss/oss_driver.c b/drivers/oss/oss_driver.c
index 9726249..06394a9 100644
--- a/drivers/oss/oss_driver.c
+++ b/drivers/oss/oss_driver.c
@@ -367,6 +367,7 @@ static int oss_driver_attach (oss_driver_t *driver, jack_engine_t *engine)
 	jack_latency_range_t range;
 
 	driver->engine = engine;
+	set_period_size(driver, driver->period_size);
 
 	if (engine->set_buffer_size(engine, driver->period_size)) {
 		jack_error ("OSS: cannot set engine buffer size to %d (check MIDI)", driver->period_size);
@@ -1171,6 +1172,7 @@ jack_driver_t * driver_initialize (jack_client_t *client,
 			__FILE__, __LINE__, errno);
 		return NULL;
 	}
+	memset(driver, 0x00, sizeof(oss_driver_t));
 	jack_driver_init((jack_driver_t *) driver);
 
 	driver->attach = (JackDriverAttachFunction) oss_driver_attach;
@@ -1240,9 +1242,8 @@ jack_driver_t * driver_initialize (jack_client_t *client,
 	driver->playback_channels = playback_channels;
 	driver->sys_in_latency = in_latency;
 	driver->sys_out_latency = out_latency;
+	/* setting driver->period_usecs & co is delayed until attach */
 
-	set_period_size(driver, period_size);
-	
 	driver->finish = driver_finish;
 
 	if (driver->indev == NULL)
@@ -1255,7 +1256,7 @@ jack_driver_t * driver_initialize (jack_client_t *client,
 	{
 #		ifndef OSS_ENDIAN
 #		ifdef __GNUC__
-#		if (defined(__i386__) || defined(__alpha__) || defined(__arm__) || defined(__x86_64__))
+#		if (defined(__i386__) || defined(__alpha__) || defined(__arm__) || defined(__x86_64__) || (defined(__sh__) && !defined(__LITTLE_ENDIAN__)))
 #		define OSS_LITTLE_ENDIAN 1234
 #		define OSS_ENDIAN OSS_LITTLE_ENDIAN
 #		else
diff --git a/jack/Makefile.am b/jack/Makefile.am
index 8da1399..403eca4 100644
--- a/jack/Makefile.am
+++ b/jack/Makefile.am
@@ -11,10 +11,11 @@ libjackinclude_HEADERS = 	\
 	thread.h                \
 	timestamps.h		\
 	transport.h		\
-	types.h	\
-	midiport.h \
-	weakmacros.h \
-	weakjack.h 
+	types.h	                \
+	midiport.h              \
+	weakmacros.h            \
+	weakjack.h              \
+	control.h
 
 noinst_HEADERS =		\
 	atomicity.h		\
diff --git a/libjack/client.c b/libjack/client.c
index fa7c006..6afcd90 100644
--- a/libjack/client.c
+++ b/libjack/client.c
@@ -90,11 +90,11 @@ init_cpu ()
 {
 	cpu_type = ((have_3dnow() << 8) | have_sse());
 	if (ARCH_X86_HAVE_3DNOW(cpu_type))
-		jack_info("Enhanced3DNow! detected");
+		jack_log("Enhanced3DNow! detected");
 	if (ARCH_X86_HAVE_SSE2(cpu_type))
-		jack_info("SSE2 detected");
+		jack_log("SSE2 detected");
 	if ((!ARCH_X86_HAVE_3DNOW(cpu_type)) && (!ARCH_X86_HAVE_SSE2(cpu_type)))
-		jack_info("No supported SIMD instruction sets detected");
+		jack_log("No supported SIMD instruction sets detected");
 	jack_port_set_funcs();
 }
 
diff --git a/python/Makefile.am b/python/Makefile.am
new file mode 100644
index 0000000..19238bc
--- /dev/null
+++ b/python/Makefile.am
@@ -0,0 +1,3 @@
+noinst_SCRIPTS = jackd.py
+EXTRA_DIST = jackd.py jackctl.pyc mygetopt.pyc reserve_audio.py
+
diff --git a/python/jackctl.py b/python/jackctl.py
index c13b9b0..c56c9b0 100644
--- a/python/jackctl.py
+++ b/python/jackctl.py
@@ -54,6 +54,8 @@ class JSIter:
 
 	return cast( retval, self.typ )
 
+DeviceAcquireFunc = CFUNCTYPE( c_int, c_char_p )
+DeviceReleaseFunc = CFUNCTYPE( None, c_char_p )
 
 jackctl_server_start = libjs.jackctl_server_start
 jackctl_server_start.argtypes = [ POINTER(jackctl_server_t), POINTER(jackctl_driver_t) ]
@@ -64,7 +66,7 @@ jackctl_server_stop.argtypes = [ POINTER(jackctl_server_t) ]
 jackctl_server_stop.restype  = c_bool
 
 jackctl_server_create = libjs.jackctl_server_create
-jackctl_server_create.argtypes = [ POINTER(jackctl_server_t), POINTER(jackctl_driver_t) ]
+jackctl_server_create.argtypes = [ DeviceAcquireFunc, DeviceReleaseFunc ]
 jackctl_server_create.restype  = POINTER(jackctl_server_t)
 
 jackctl_server_get_drivers_list = libjs.jackctl_server_get_drivers_list
@@ -191,9 +193,15 @@ class Driver(object):
 
     name = property( get_name )
 
+
 class Server(object):
     def __init__( self ):
-	self.srv_ptr = jackctl_server_create( None, None )
+	self.dacqd = DeviceAcquireFunc(self.acquire_card)
+	self.reled = DeviceReleaseFunc(self.release_card)
+	self.srv_ptr = jackctl_server_create( self.dacqd, self.reled )
+
+	self.acquire_card_cb = None
+	self.release_card_cb = None
 
 	driver_jslist = jackctl_server_get_drivers_list( self.srv_ptr )
 
@@ -218,3 +226,17 @@ class Server(object):
 
     def stop( self ):
 	return jackctl_server_stop( self.srv_ptr )
+
+
+    def acquire_card( self, cardname ):
+	if self.acquire_card_cb:
+	    return self.acquire_card_cb(cardname)
+	else:
+	    return True
+
+    def release_card( self, cardname ):
+	if self.release_card_cb:
+	    self.release_card_cb(cardname)
+
+
+
diff --git a/python/jackd.py b/python/jackd.py
old mode 100644
new mode 100755
index 594c3bd..02d9413
--- a/python/jackd.py
+++ b/python/jackd.py
@@ -1,10 +1,12 @@
 #!/usr/bin/env python
 
 import sys
-from mygetopt import my_getopt
-import jackctl
+from pyjackd.mygetopt import my_getopt
+from pyjackd import jackctl
 import readline
+import time
 
+import reserve_audio
 
 argv = sys.argv[1:]
 
@@ -75,8 +77,18 @@ def driver_parse_args( drv, argv ):
 		else:
 		    p.value = optarg
 
+def acquire_dev(cardname):
+    reserve_audio.reserve_dev(cardname,20,None)
+    time.sleep(0.1)
+    return True
+
+def release_dev(cardname):
+    reserve_audio.rr.unreserve()
+    reserve_audio.rr = None
 
 srv = jackctl.Server()
+srv.acquire_card_cb = acquire_dev
+srv.release_card_cb = release_dev
 
 drv, argv = server_parse_ags( srv, argv )
 driver_parse_args( drv, argv )
@@ -90,7 +102,16 @@ driver_parse_args( drv, argv )
 #for p in drv.params.values():
 #    print p.name, "-> ", p.value
 
-srv.start( drv )
+started = srv.start( drv )
+
+if not started:
+    print "failed to start with driver " + drv.name
+    print "trying to start with dummy driver, switch to the right master yourself"
+
+    started = srv.start( srv.drivers["dummy"] )
+
+    if not started:
+	sys.exit(20)
 
 quit = False
 while not quit:
diff --git a/python/reserve_audio.py b/python/reserve_audio.py
index 5096600..d664d4c 100644
--- a/python/reserve_audio.py
+++ b/python/reserve_audio.py
@@ -31,6 +31,10 @@ class reservation_t( dbus.service.Object ):
 	return False
 
 
+    def unreserve (self):
+	self.connection.release_name( 'org.freedesktop.ReserveDevice1.' + self.dev_name )
+	rr.remove_from_connection()
+
 
 def reserve_dev( dev_name, prio, override_cb ):
     global rr
@@ -43,6 +47,7 @@ def reserve_dev( dev_name, prio, override_cb ):
 	r_proxy = session_bus.get_object( "org.freedesktop.ReserveDevice1." + dev_name, "/org/freedesktop/ReserveDevice1/" + dev_name )
 	r_iface = dbus.Interface( r_proxy, "org.freedesktop.ReserveDevice1" )
     except Exception:
+	print "no other reservation exists. taking the name"
 	rr = reservation_t( dev_name, prio, override_cb )
 	return
 
diff --git a/tools/iodelay.c b/tools/iodelay.c
index fe56180..dd8a6ea 100644
--- a/tools/iodelay.c
+++ b/tools/iodelay.c
@@ -237,12 +237,17 @@ int main (int ac, char *av [])
         if (mtdm_resolve (mtdm) < 0) printf ("Signal below threshold...\n");
         else 
         {
+            jack_nframes_t systemic_latency;
+
             if (mtdm->_err > 0.3) 
             {
                 mtdm_invert ( mtdm );
                 mtdm_resolve ( mtdm );
             }
-            printf ("%10.3lf frames %10.3lf ms", mtdm->_del, mtdm->_del * t);
+            systemic_latency = (jack_nframes_t) floor (mtdm->_del - (capture_latency.max + playback_latency.max));
+
+            printf ("%10.3lf frames %10.3lf ms total roundtrip latency\n\textra loopback latency: %u frames\n\tuse %u for the backend arguments -I and -O", mtdm->_del, mtdm->_del * t, 
+                    systemic_latency, systemic_latency/2);
             if (mtdm->_err > 0.2) printf (" ??");
                 if (mtdm->_inv) printf (" Inv");
             printf ("\n");

-- 
Debian packaging for jack-audio-connection-kit



More information about the pkg-multimedia-commits mailing list