summaryrefslogtreecommitdiff
path: root/multimedia/lives/files/patch-jack1
blob: ceeebfa9373ac09a4683599a60f015e178f1434c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
--- configure.ac.orig
+++ configure.ac
@@ -240,6 +240,7 @@ AM_CONDITIONAL(HAVE_LINUX_JOYSTICK_H, $HAVE_LINUX_JOYSTICK_H)
 HAVE_JACK=false
 HAVE_JACK_SERVER=false
 HAVE_JACK_TRANSPORT=false
+JACK_V2=false
 
 AC_ARG_ENABLE(jack, [  --disable-jack     Disable jack support.] , disable_jack=yes)
 AC_ARG_ENABLE(jack-transport, [  --disable-jack-transport     Disable jack transport support.] , disable_jack_transport=yes)
@@ -252,10 +253,23 @@ PKG_CHECK_MODULES(JACK, [jack >= 0.100.0], HAVE_JACK=true, HAVE_JACK=false)
 
 if test "$HAVE_JACK" = "true" ; then
 
+PKG_CHECK_MODULES(JACK_V2, [jack >= 1.0.0], JACK_V2=true, JACK_V2=false)
+
+if test "$JACK_V2" = "true"; then
 JACK_SERVER_LIBS=`$PKG_CONFIG --variable=server_libs jack`
 
 if test "$JACK_SERVER_LIBS" != ""; then
 HAVE_JACK_SERVER=true
+fi
+
+else
+AC_CHECK_HEADERS(jack/control.h, HAVE_JACK_SERVER=true, HAVE_JACK_SERVER=false)
+if test "$HAVE_JACK_SERVER" = "true"; then
+JACK_SERVER_LIBS=-ljackserver
+fi
+fi
+
+if test "$HAVE_JACK_SERVER" = "true"; then
 echo jack server libs found
 else
 echo jack server libs not found
@@ -308,6 +322,7 @@ HAVE_JACK_VIDEO=true
 AM_CONDITIONAL(ENABLE_JACK,$HAVE_JACK)
 AM_CONDITIONAL(ENABLE_JACK_TRANSPORT,$HAVE_JACK_TRANSPORT)
 AM_CONDITIONAL(ENABLE_VJACK,$HAVE_JACK_VIDEO)
+AM_CONDITIONAL(JACK_V2,$JACK_V2)
 
 PKG_CHECK_MODULES(X11,x11,HAVE_X11=true,HAVE_X11=false)
 
--- src/Makefile.am.orig
+++ src/Makefile.am
@@ -92,6 +92,10 @@ jack_LDADD = @JACK_LIBS@ @JACK_SERVER_LIBS@
 if ENABLE_JACK_TRANSPORT
 jack_CFLAGS += -DENABLE_JACK_TRANSPORT=1
 endif
+
+if JACK_V2
+jack_CFLAGS += -DJACK_V2=1
+endif
 endif
 
 if ENABLE_LIBOIL
--- src/jack.c.orig
+++ src/jack.c
@@ -121,6 +121,7 @@ boolean lives_jack_init(void) {
       return FALSE;
     }
 
+#ifdef JACK_V2
     if (!jackctl_server_open(jackserver, driver)) {
       LIVES_ERROR("Could not create the driver for jack");
       return FALSE;
@@ -130,6 +131,12 @@ boolean lives_jack_init(void) {
       LIVES_ERROR("Could not start the jack server");
       return FALSE;
     }
+#else
+    if (!jackctl_server_start(jackserver, driver)) {
+      LIVES_ERROR("Could not create / start the driver for jack");
+      return FALSE;
+    }
+#endif
   }
 
   mainw->jack_inited = TRUE;
@@ -1061,7 +1068,7 @@ int lives_start_ready_callback(jack_transport_state_t state, jack_position_t *po
   if (!jack_transport_client) return TRUE;
 
   if (!LIVES_IS_PLAYING && state == JackTransportStopped) {
-    if (prefs->jack_opts && JACK_OPTS_TIMEBASE_CLIENT) {
+    if (prefs->jack_opts & JACK_OPTS_TIMEBASE_CLIENT) {
       double trtime = (double)jack_transport_get_current_ticks() / TICKS_PER_SECOND_DBL;
       if (!mainw->multitrack) {
 #ifndef ENABLE_GIW_3
@@ -1077,7 +1084,7 @@ int lives_start_ready_callback(jack_transport_state_t state, jack_position_t *po
 
   if (state != JackTransportStarting) return TRUE;
 
-  if (LIVES_IS_PLAYING && prefs->jack_opts & JACK_OPTS_TIMEBASE_CLIENT) {
+  if (LIVES_IS_PLAYING && (prefs->jack_opts & JACK_OPTS_TIMEBASE_CLIENT)) {
     // trigger audio resync
     mainw->scratch = SCRATCH_JUMP;
   }