Browse Source

Update jacklib to support JACK2 API additions

tags/v0.9.0
falkTX 13 years ago
parent
commit
1ba1f5dea3
3 changed files with 45 additions and 10 deletions
  1. +19
    -9
      src/catia.py
  2. +24
    -0
      src/jacklib.py
  3. +2
    -1
      src/shared_jack.py

+ 19
- 9
src/catia.py View File

@@ -392,8 +392,8 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW):
jacklib.set_port_connect_callback(jack.client, self.JackPortConnectCallback, None)
jacklib.on_shutdown(jack.client, self.JackShutdownCallback, None)

#if (JACK2):
#jacklib.set_port_rename_callback(jack.client, self.JackPortRenameCallback, None)
if (JACK2):
jacklib.set_port_rename_callback(jack.client, self.JackPortRenameCallback, None)

def init_ports_prepare(self):
pass
@@ -559,8 +559,13 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW):
else:
self.canvas_remove_group(group_name)

#def canvas_rename_port(self, port_id, port_name):
#patchcanvas.renamePort(port_id, port_name.split(":")[-1])
#def canvas_rename_port(self, port_id, port_short_name):
#patchcanvas.renamePort(port_id, port_short_name)

#for port in self.m_port_list:
#if (port[iPortNameR] == old_name):
#port_id = port[iPortId]
#port[iPortNameR] = new_name

def canvas_connect_ports(self, port_out_name, port_in_name):
port_out_id = -1
@@ -744,9 +749,8 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW):
return 0

def JackPortRenameCallback(self, port_id, old_name, new_name, arg=None):
# FIXME - check string args
if (DEBUG): print("JackPortRenameCallback(%i, %s, %s)" % (port_id, old_name, new_name))
self.emit(SIGNAL("PortRenameCallback(int, QString, QString)"), port_id, old_name, new_name)
self.emit(SIGNAL("PortRenameCallback(int, QString, QString)"), port_id, str(old_name, encoding="ascii"), str(new_name, encoding="ascii"))
return 0

def JackShutdownCallback(self, arg=None):
@@ -840,8 +844,14 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW):
self.canvas_disconnect_ports(port_a_nameR, port_b_nameR)

@pyqtSlot(int, str, str)
def slot_PortRenameCallback(self, port_id, old_name, new_name):
pass
def slot_PortRenameCallback(self, port_id_jack, old_name, new_name):
print(port_id_jack, old_name, new_name)
#for port in self.m_port_list:
#if (port[iPortNameR] == old_name):
#port_id = port[iPortId]
#else:
#return

#self.canvas_rename_port(port_id, new_name)

@pyqtSlot()
@@ -960,7 +970,7 @@ if __name__ == '__main__':
a2j_client_name = None

if (DBus.jack or DBus.a2j):
string = "Catia - using DBus for "
string = "Using DBus for "
if (DBus.jack):
string += "JACK"
if (DBus.a2j):


+ 24
- 0
src/jacklib.py View File

@@ -62,6 +62,7 @@ jack_intclient_t = c_uint64
jack_port_t = _jack_port
jack_client_t = _jack_client
jack_port_id_t = c_uint32
jack_port_type_id_t = c_uint32 # JACK2 only
jack_native_thread_t = pthread_t
jack_options_t = c_enum # JackOptions
jack_status_t = c_enum # JackStatus
@@ -235,6 +236,7 @@ JackSampleRateCallback = CFUNCTYPE(c_int, jack_nframes_t, c_void_p)
JackPortRegistrationCallback = CFUNCTYPE(None, jack_port_id_t, c_int, c_void_p)
JackClientRegistrationCallback = CFUNCTYPE(None, c_char_p, c_int, c_void_p)
JackPortConnectCallback = CFUNCTYPE(None, jack_port_id_t, jack_port_id_t, c_int, c_void_p)
JackPortRenameCallback = CFUNCTYPE(c_int, jack_port_id_t, c_char_p, c_char_p, c_void_p)
JackFreewheelCallback = CFUNCTYPE(None, c_int, c_void_p)
JackThreadCallback = CFUNCTYPE(c_void_p, c_void_p)
JackShutdownCallback = CFUNCTYPE(None, c_void_p)
@@ -246,6 +248,11 @@ JackSessionCallback = CFUNCTYPE(None, jack_session_event_t, c_void_p)
# ---------------------------------------------------------------------------------------------------------------------
# Functions

def get_version_string(): # JACK2 only
jacklib.jack_get_version_string.argtypes = None
jacklib.jack_get_version_string.restype = c_char_p
return jacklib.jack_get_version_string()

def client_open(client_name, options, status):
jacklib.jack_client_open.argtypes = [c_char_p, jack_options_t, POINTER(jack_status_t)]
jacklib.jack_client_open.restype = POINTER(jack_client_t)
@@ -291,6 +298,11 @@ def deactivate(client):
jacklib.jack_deactivate.restype = c_int
return jacklib.jack_deactivate(client)

def get_client_pid(name): # JACK2 only
jacklib.jack_get_client_pid.argtypes = [c_char_p]
jacklib.jack_get_client_pid.restype = c_int
return jacklib.jack_get_client_pid(name.encode("ascii"))

def client_thread_id(client):
jacklib.jack_client_thread_id.argtypes = [POINTER(jack_client_t)]
jacklib.jack_client_thread_id.restype = jack_native_thread_t
@@ -399,6 +411,13 @@ def set_port_connect_callback(client, connect_callback, arg):
jacklib.jack_set_port_connect_callback.restype = c_int
return jacklib.jack_set_port_connect_callback(client, _connect_callback, arg)

def set_port_rename_callback(client, rename_callback, arg):
global _rename_callback
_rename_callback = JackPortRenameCallback(rename_callback)
jacklib.jack_set_port_rename_callback.argtypes = [POINTER(jack_client_t), JackPortRenameCallback, c_void_p]
jacklib.jack_set_port_rename_callback.restype = c_int
return jacklib.jack_set_port_rename_callback(client, _rename_callback, arg)

def set_graph_order_callback(client, graph_callback, arg):
global _graph_callback
_graph_callback = JackGraphOrderCallback(graph_callback)
@@ -491,6 +510,11 @@ def port_type(port):
jacklib.jack_port_type.restype = c_char_p
return jacklib.jack_port_type(port)

def port_type_id(port): # JACK2 only
jacklib.jack_port_type_id.argtypes = [POINTER(jack_port_t)]
jacklib.jack_port_type_id.restype = jack_port_type_id_t
return jacklib.jack_port_type_id(port)

def port_is_mine(client, port):
jacklib.jack_port_is_mine.argtypes = [POINTER(jack_client_t), POINTER(jack_port_t)]
jacklib.jack_port_is_mine.restype = c_int


+ 2
- 1
src/shared_jack.py View File

@@ -27,8 +27,9 @@ from jacklib_helpers import *

# Have JACK2 ?
try:
jacklib.get_version_string()
JACK2 = True
version_str = str(jacklib.get_version_string(), encoding="ascii")
print("Using JACK2, version %s" % (version_str))
except:
JACK2 = False



Loading…
Cancel
Save