From 86bd973f9d114a8284529fe1e06603b040b17a29 Mon Sep 17 00:00:00 2001 From: falkTX Date: Thu, 15 Mar 2012 19:20:40 +0000 Subject: [PATCH] More Claudia work, patchbay working --- src/catia.py | 22 +-- src/claudia.py | 371 ++++++++++++++++++++++++----------------------- src/jackmeter.py | 3 + 3 files changed, 200 insertions(+), 196 deletions(-) diff --git a/src/catia.py b/src/catia.py index df64cab..013ec1b 100755 --- a/src/catia.py +++ b/src/catia.py @@ -214,14 +214,6 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): port_short_name = str(jacklib.port_short_name(port_ptr), encoding="ascii") - port_type_str = str(jacklib.port_type(port_ptr), encoding="ascii") - if (port_type_str == jacklib.JACK_DEFAULT_AUDIO_TYPE): - type_text = self.tr("JACK Audio") - elif (port_type_str == jacklib.JACK_DEFAULT_MIDI_TYPE): - type_text = self.tr("JACK MIDI") - else: - type_text = self.tr("Unknown") - aliases = jacklib.port_get_aliases(port_ptr) if (aliases[0] == 1): alias1text = aliases[1] @@ -251,13 +243,21 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): flags_text += " | " flags_text += flag + port_type_str = str(jacklib.port_type(port_ptr), encoding="ascii") + if (port_type_str == jacklib.JACK_DEFAULT_AUDIO_TYPE): + type_text = self.tr("JACK Audio") + elif (port_type_str == jacklib.JACK_DEFAULT_MIDI_TYPE): + type_text = self.tr("JACK MIDI") + else: + type_text = self.tr("Unknown") + port_latency = jacklib.port_get_latency(port_ptr) port_total_latency = jacklib.port_get_total_latency(jack.client, port_ptr) latency_text = self.tr("%.1f ms (%i frames)" % (port_latency*1000/self.m_sample_rate, port_latency)) latency_total_text = self.tr("%.1f ms (%i frames)" % (port_total_latency*1000/self.m_sample_rate, port_total_latency)) - info = self.tr("" + info = self.tr("" "" "" "" @@ -613,7 +613,7 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): self.menuJackServer(True) self.cb_buffer_size.setEnabled(True) - self.cb_sample_rate.setEnabled(True) # DBus.jack and jacksettings.getSampleRate() != -1 + self.cb_sample_rate.setEnabled(bool(DBus.jack)) # DBus.jack and jacksettings.getSampleRate() != -1 self.menu_Jack_Buffer_Size.setEnabled(True) self.pb_dsp_load.setMaximum(100) @@ -781,7 +781,7 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): return ret except: QMessageBox.warning(self, self.tr("Warning"), self.tr("Failed to start JACK, please check the logs for more information.")) - self.jackStopped() + #self.jackStopped() return False @pyqtSlot() diff --git a/src/claudia.py b/src/claudia.py index 0749335..05873f0 100755 --- a/src/claudia.py +++ b/src/claudia.py @@ -36,13 +36,12 @@ try: except: hasGL = False -# internal defines -ITEM_TYPE_STUDIO = 0 -ITEM_TYPE_STUDIO_APP = 1 -ITEM_TYPE_ROOM = 2 -ITEM_TYPE_ROOM_APP = 3 +# internal indexes +iConnId = 0 +iConnOutput = 1 +iConnInput = 2 -# jackdbus defines +# jackdbus indexes iGraphVersion = 0 iJackClientId = 1 iJackClientName = 2 @@ -60,23 +59,35 @@ iTargetClientId = 5 iTargetClientName = 6 iTargetPortId = 7 iTargetPortName = 8 +iJackConnId = 9 -# ladish defines +# ladish indexes iStudioListName = 0 iStudioListDict = 1 iStudioRenamedName = 0 -DEFAULT_CANVAS_WIDTH = 3100 -DEFAULT_CANVAS_HEIGHT = 2400 +# internal defines +ITEM_TYPE_STUDIO = 0 +ITEM_TYPE_STUDIO_APP = 1 +ITEM_TYPE_ROOM = 2 +ITEM_TYPE_ROOM_APP = 3 + +# C defines +JACKDBUS_PORT_FLAG_INPUT = 0x00000001 +JACKDBUS_PORT_FLAG_OUTPUT = 0x00000002 +JACKDBUS_PORT_FLAG_PHYSICAL = 0x00000004 +JACKDBUS_PORT_FLAG_CAN_MONITOR = 0x00000008 +JACKDBUS_PORT_FLAG_TERMINAL = 0x00000010 + +JACKDBUS_PORT_TYPE_AUDIO = 0 +JACKDBUS_PORT_TYPE_MIDI = 1 GRAPH_DICT_OBJECT_TYPE_GRAPH = 0 GRAPH_DICT_OBJECT_TYPE_CLIENT = 1 GRAPH_DICT_OBJECT_TYPE_PORT = 2 GRAPH_DICT_OBJECT_TYPE_CONNECTION = 3 -RECENT_PROJECTS_STORE_MAX_ITEMS = 50 - URI_A2J_PORT = "http://ladish.org/ns/a2j" URI_CANVAS_WIDTH = "http://ladish.org/ns/canvas/width" URI_CANVAS_HEIGHT = "http://ladish.org/ns/canvas/height" @@ -86,6 +97,11 @@ URI_CANVAS_SPLIT = "http://kxstudio.sourceforge.net/ns/canvas/split" URI_CANVAS_X_SPLIT = "http://kxstudio.sourceforge.net/ns/canvas/x_split" URI_CANVAS_Y_SPLIT = "http://kxstudio.sourceforge.net/ns/canvas/y_split" +DEFAULT_CANVAS_WIDTH = 3100 +DEFAULT_CANVAS_HEIGHT = 2400 + +RECENT_PROJECTS_STORE_MAX_ITEMS = 50 + # set default project folder DEFAULT_PROJECT_FOLDER = os.path.join(HOME, "ladish-projects") setDefaultProjectFolder(DEFAULT_PROJECT_FOLDER) @@ -229,11 +245,6 @@ class ClaudiaMainW(QMainWindow, ui_claudia.Ui_ClaudiaMainW): #self.systray = None - #self.m_group_list = [] - #self.m_group_split_list = [] - #self.m_connection_list = [] - #self.m_last_connection_id = 1 - self.m_xruns = -1 self.m_buffer_size = 0 self.m_sample_rate = 0 @@ -370,8 +381,8 @@ class ClaudiaMainW(QMainWindow, ui_claudia.Ui_ClaudiaMainW): self.connect(self, SIGNAL("DBusPortAppearedCallback(int, int, QString, int, int)"), SLOT("slot_DBusPortAppearedCallback(int, int, QString, int, int)")) self.connect(self, SIGNAL("DBusPortDisppearedCallback(int)"), SLOT("slot_DBusPortDisppearedCallback(int)")) self.connect(self, SIGNAL("DBusPortRenamedCallback(int, QString)"), SLOT("slot_DBusPortRenamedCallback(int, QString)")) - self.connect(self, SIGNAL("DBusPortsConnectedCallback(int, int)"), SLOT("slot_DBusPortsConnectedCallback(int, int)")) - self.connect(self, SIGNAL("DBusPortsDisconnectedCallback(int, int)"), SLOT("slot_DBusPortsDisconnectedCallback(int, int)")) + self.connect(self, SIGNAL("DBusPortsConnectedCallback(int, int, int)"), SLOT("slot_DBusPortsConnectedCallback(int, int, int)")) + self.connect(self, SIGNAL("DBusPortsDisconnectedCallback(int)"), SLOT("slot_DBusPortsDisconnectedCallback(int)")) # org.ladish.Control self.connect(self, SIGNAL("DBusStudioAppearedCallback()"), SLOT("slot_DBusStudioAppearedCallback()")) @@ -419,97 +430,81 @@ class ClaudiaMainW(QMainWindow, ui_claudia.Ui_ClaudiaMainW): patchcanvas.joinGroup(group_id) self.miniCanvasPreview.update() - #elif (action == patchcanvas.ACTION_PORT_INFO): - #this_port_id = value1 - - #graph_dump = DBus.patchbay.GetGraph(0) - #graph_version = graph_dump[0] - #graph_ports = graph_dump[1] - #graph_conns = graph_dump[2] - - ## Graph Ports - #for i in range(len(graph_ports)): - #group_id = graph_ports[i][0] - #group_name = graph_ports[i][1] - #group_ports = graph_ports[i][2] - - #for j in range(len(group_ports)): - #port_id = group_ports[j][0] - #port_name = group_ports[j][1] - #port_flags = group_ports[j][2] - #port_type = group_ports[j][3] - #if (this_port_id == port_id): - #break - - #if (this_port_id == port_id): - #break - - #if (DBus.ladish_graph.Get(GRAPH_DICT_OBJECT_TYPE_PORT, this_port_id, URI_A2J_PORT) == "yes"): - #port_flags_ = self.get_real_a2j_port_flags(group_name, port_name, jacklib.PortIsInput if (port_flags & jacklib.PortIsInput) else jacklib.PortIsOutput) - #if (port_flags_ != 0): - #port_flags = port_flags_ - - #flags = [] - #if (port_flags & jacklib.PortIsInput): - #flags.append(self.tr("Input")) - #if (port_flags & jacklib.PortIsOutput): - #flags.append(self.tr("Output")) - #if (port_flags & jacklib.PortIsPhysical): - #flags.append(self.tr("Physical")) - #if (port_flags & jacklib.PortCanMonitor): - #flags.append(self.tr("Can Monitor")) - #if (port_flags & jacklib.PortIsTerminal): - #flags.append(self.tr("Terminal")) - - #flags_text = "" - #for i in range(len(flags)): - #if (flags_text): flags_text+= " | " - #flags_text += flags[i] - - #if (port_type == jacklib.AUDIO): - #type_text = self.tr("Audio") - #elif (port_type == jacklib.MIDI): - #type_text = self.tr("MIDI") - #else: - #type_text = self.tr("Unknown") - - #port_full_name = group_name+":"+port_name - - #info = self.tr("" - #"
Group Name: %s
Port Name: %s
" - #"" - #"" - #"" - #"" - #"" - #"" - #"" - #"" - #"
Group Name: %1
Group ID: %2
Port Name: %3
Port ID: %4
Full Port Name: %5
 
Port Flags: %6
Port Type: %7
" - #).arg(group_name).arg(group_id).arg(port_name).arg(port_id).arg(port_full_name).arg(flags_text).arg(type_text) - - #QMessageBox.information(self, self.tr("Port Information"), info) - - #elif (action == patchcanvas.ACTION_PORT_RENAME): - #pass - - #elif (action == patchcanvas.ACTION_PORTS_CONNECT): - #port_a = value1 - #port_b = value2 - #DBus.patchbay.ConnectPortsByID(port_a, port_b) - - #elif (action == patchcanvas.ACTION_PORTS_DISCONNECT): - #connection_id = value1 - - #for i in range(len(self.connection_list)): - #if (connection_id == self.connection_list[i][0]): - #port_a = self.connection_list[i][1] - #port_b = self.connection_list[i][2] - #break - #else: - #return + elif (action == patchcanvas.ACTION_PORT_INFO): + this_port_id = value1 + breakNow = False + + version, groups, conns = DBus.patchbay.GetGraph(0) + + for group in groups: + group_id, group_name, ports = group + + for port in ports: + port_id, port_name, port_flags, port_type_jack = port + + if (this_port_id == port_id): + breakNow = True + break + + if (breakNow): + break + + else: + return + + flags = [] + if (port_flags & JACKDBUS_PORT_FLAG_INPUT): + flags.append(self.tr("Input")) + if (port_flags & JACKDBUS_PORT_FLAG_OUTPUT): + flags.append(self.tr("Output")) + if (port_flags & JACKDBUS_PORT_FLAG_PHYSICAL): + flags.append(self.tr("Physical")) + if (port_flags & JACKDBUS_PORT_FLAG_CAN_MONITOR): + flags.append(self.tr("Can Monitor")) + if (port_flags & JACKDBUS_PORT_FLAG_TERMINAL): + flags.append(self.tr("Terminal")) + + flags_text = "" + for flag in flags: + if (flags_text): + flags_text += " | " + flags_text += flag + + if (port_type_jack == JACKDBUS_PORT_TYPE_AUDIO): + type_text = self.tr("Audio") + elif (port_type_jack == JACKDBUS_PORT_TYPE_MIDI): + type_text = self.tr("MIDI") + else: + type_text = self.tr("Unknown") + + port_full_name = "%s:%s" % (group_name, port_name) + + info = self.tr("" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "
Group ID: %i
Group Name: %s
Port ID: %i
Port Name: %s
Full Port Name: %s
 
Port Flags: %s
Port Type: %s
" + % (group_id, group_name, port_id, port_name, port_full_name, flags_text, type_text)) + + QMessageBox.information(self, self.tr("Port Information"), info) + + elif (action == patchcanvas.ACTION_PORT_RENAME): + pass + + elif (action == patchcanvas.ACTION_PORTS_CONNECT): + port_a = value1 + port_b = value2 + DBus.patchbay.ConnectPortsByID(port_a, port_b) - #DBus.patchbay.DisconnectPortsByID(port_a, port_b) + elif (action == patchcanvas.ACTION_PORTS_DISCONNECT): + connection_id = value1 + DBus.patchbay.DisconnectPortsByConnectionID(connection_id) def init_jack(self): self.m_xruns = -1 @@ -553,17 +548,49 @@ class ClaudiaMainW(QMainWindow, ui_claudia.Ui_ClaudiaMainW): self.init_apps() def init_apps(self): - pass + studio_iface = dbus.Interface(DBus.ladish_studio, 'org.ladish.AppSupervisor') + studio_item = self.treeWidget.topLevelItem(0) + + graph_version, app_list = DBus.ladish_app_iface.GetAll2() + + for app in app_list: + number, name, active, terminal, level = app + text = "[L%s]%s %s" % (level, "" if (active) else " (inactive)", name) + + item = QTreeWidgetItem(ITEM_TYPE_STUDIO_APP) + item.setText(0, text) + #item.properties = [number, name, active, terminal, level] + studio_item.addChild(item) + + #room_list_dump = DBus.ladish_studio.GetRoomList() + #for i in range(len(room_list_dump)): + #room_path = room_list_dump[i][0] + #ladish_room = DBus.bus.get_object("org.ladish", room_path) + #room_name = ladish_room.GetName() + + #room_iface = dbus.Interface(ladish_room, 'org.ladish.AppSupervisor') + #room_app_list_dump = room_iface.GetAll() + #room_item = self.addNewRoom(room_path, room_name) + + #room_graph_version = studio_app_list_dump[0] + #for j in range(len(room_app_list_dump[1])): + #number = room_app_list_dump[1][j][0] + #name = room_app_list_dump[1][j][1] + #active = room_app_list_dump[1][j][2] + #terminal = room_app_list_dump[1][j][3] + #level = room_app_list_dump[1][j][4] + #text = QString("[L%1]%2 %3").arg(level).arg("" if (active) else " (inactive)").arg(name) + #item = QTreeWidgetItem(ITEM_TYPE_ROOM_APP) + #item.setText(0, text) + #item.properties = [number, name, active, terminal, level] + #room_item.addChild(item) + + self.treeWidget.expandAll() def init_ports(self): if (not jack.client or not DBus.patchbay): return - #self.last_connection_id = 1 - #self.group_list = [] - #self.group_split_list = [] - #self.connection_list = [] - version, groups, conns = DBus.patchbay.GetGraph(0) # Graph Ports @@ -574,16 +601,16 @@ class ClaudiaMainW(QMainWindow, ui_claudia.Ui_ClaudiaMainW): for port in ports: port_id, port_name, port_flags, port_type_jack = port - if (port_flags & jacklib.JackPortIsInput): + if (port_flags & JACKDBUS_PORT_FLAG_INPUT): port_mode = patchcanvas.PORT_MODE_INPUT - elif (port_flags & jacklib.JackPortIsOutput): + elif (port_flags & JACKDBUS_PORT_FLAG_OUTPUT): port_mode = patchcanvas.PORT_MODE_OUTPUT else: port_mode = patchcanvas.PORT_MODE_NULL - if (port_type_jack == 0): # Audio + if (port_type_jack == JACKDBUS_PORT_TYPE_AUDIO): port_type = patchcanvas.PORT_TYPE_AUDIO_JACK - elif (port_type_jack == 1): # MIDI + elif (port_type_jack == JACKDBUS_PORT_TYPE_MIDI): if (DBus.ladish_graph.Get(GRAPH_DICT_OBJECT_TYPE_PORT, port_id, URI_A2J_PORT) == "yes"): port_type = patchcanvas.PORT_TYPE_MIDI_A2J else: @@ -594,35 +621,15 @@ class ClaudiaMainW(QMainWindow, ui_claudia.Ui_ClaudiaMainW): self.canvas_add_port(int(group_id), int(port_id), str(port_name), port_mode, port_type) ## Graph Connections - #for i in range(len(graph_conns)): - #conn_source_id = int(graph_conns[i][0]) - #conn_source_name = QStringStr(graph_conns[i][1]) - #conn_source_port_id = int(graph_conns[i][2]) - #conn_source_port_name = QStringStr(graph_conns[i][3]) - #conn_target_id = int(graph_conns[i][4]) - #conn_target_name = QStringStr(graph_conns[i][5]) - #conn_target_port_id = int(graph_conns[i][6]) - #conn_target_port_name = QStringStr(graph_conns[i][7]) - - #self.canvas_connect_ports(conn_source_port_id, conn_target_port_id) - - ## Recheck all group positions - #for i in range(len(self.group_list)): - #group_id = self.group_list[i][0] - - #x = DBus.ladish_graph.Get(GRAPH_DICT_OBJECT_TYPE_CLIENT, group_id, URI_CANVAS_X) - #y = DBus.ladish_graph.Get(GRAPH_DICT_OBJECT_TYPE_CLIENT, group_id, URI_CANVAS_Y) - #x2 = DBus.ladish_graph.Get(GRAPH_DICT_OBJECT_TYPE_CLIENT, group_id, URI_CANVAS_X_SPLIT) - #y2 = DBus.ladish_graph.Get(GRAPH_DICT_OBJECT_TYPE_CLIENT, group_id, URI_CANVAS_Y_SPLIT) - - #if (x != None and y != None): - #if (x2 == None): x2 = float(x)+50 - #if (y2 == None): y2 = float(y)+50 - #patchcanvas.setGroupPos(group_id, float(x), float(y), float(x2), float(y2)) - - #QTimer.singleShot(1000 if (self.saved_settings['Canvas/FancyEyeCandy']) else 0, self.miniCanvasPreview.update) + for conn in conns: + print(conn) + source_group_id, source_group_name, source_port_id, source_port_name, target_group_id, target_group_name, target_port_id, target_port_name, conn_id = conn + self.canvas_connect_ports(int(conn_id), int(source_port_id), int(target_port_id)) + + QTimer.singleShot(1000 if (self.m_savedSettings['Canvas/EyeCandy']) else 0, self.miniCanvasPreview, SLOT("update()")) def canvas_add_group(self, group_id, group_name): + # TODO - get room list names, but not if we're inside a room room_list_names = [] #self.get_room_list_names() if (group_name in ("Hardware Playback", "Hardware Capture")): @@ -643,7 +650,6 @@ class ClaudiaMainW(QMainWindow, ui_claudia.Ui_ClaudiaMainW): split = patchcanvas.SPLIT_UNDEF patchcanvas.addGroup(group_id, group_name, split, icon) - #self.group_list.append([group_id, group_name]) x = DBus.ladish_graph.Get(GRAPH_DICT_OBJECT_TYPE_CLIENT, group_id, URI_CANVAS_X) y = DBus.ladish_graph.Get(GRAPH_DICT_OBJECT_TYPE_CLIENT, group_id, URI_CANVAS_Y) @@ -657,35 +663,29 @@ class ClaudiaMainW(QMainWindow, ui_claudia.Ui_ClaudiaMainW): QTimer.singleShot(0, self.miniCanvasPreview, SLOT("update()")) - def canvas_add_port(self, group_id, port_id, port_name, port_mode, port_type): # , group_id, group_name, split, do_pos=True - #for i in range(len(self.group_list)): - #if (group_id == self.group_list[i][0]): - #break - #else: #Hack for clients started with no ports - #self.canvas_add_group(group_id, group_name, do_pos) + def canvas_remove_group(self, group_id): + patchcanvas.removeGroup(group_id) + QTimer.singleShot(0, self.miniCanvasPreview, SLOT("update()")) - #if (DBus.ladish_graph.Get(GRAPH_DICT_OBJECT_TYPE_PORT, port_id, URI_A2J_PORT) == "yes"): - #port_type = patchcanvas.PORT_TYPE_MIDI_A2J + def canvas_add_port(self, group_id, port_id, port_name, port_mode, port_type): + patchcanvas.addPort(group_id, port_id, port_name, port_mode, port_type) + QTimer.singleShot(0, self.miniCanvasPreview, SLOT("update()")) - #flags = self.get_real_a2j_port_flags(group_name, port_name, port_mode) - #if (flags & jacklib.PortIsPhysical): - #split = True + def canvas_remove_port(self, port_id): + patchcanvas.removePort(port_id) + QTimer.singleShot(0, self.miniCanvasPreview, SLOT("update()")) - patchcanvas.addPort(group_id, port_id, port_name, port_mode, port_type) + def canvas_rename_port(self, port_id, new_port_name): + patchcanvas.renamePort(port_id, new_port_name) + QTimer.singleShot(0, self.miniCanvasPreview, SLOT("update()")) + def canvas_connect_ports(self, connection_id, port_a, port_b): + patchcanvas.connectPorts(connection_id, port_a, port_b) QTimer.singleShot(0, self.miniCanvasPreview, SLOT("update()")) - #if not group_id in self.group_split_list: - #if (split): - #patchcanvas.splitGroup(group_id) - #patchcanvas.setGroupIcon(group_id, patchcanvas.ICON_HARDWARE) - #elif ( group_name == "Hardware Capture" or - #group_name == "Hardware Playback" or - #group_name == "Capture" or - #group_name == "Playback" - #): - #patchcanvas.setGroupIcon(group_id, patchcanvas.ICON_HARDWARE) - #self.group_split_list.append(group_id) + def canvas_disconnect_ports(self, connection_id): + patchcanvas.disconnectPorts(connection_id) + QTimer.singleShot(0, self.miniCanvasPreview, SLOT("update()")) def jackStarted(self): #self.DBusReconnect() @@ -875,9 +875,10 @@ class ClaudiaMainW(QMainWindow, ui_claudia.Ui_ClaudiaMainW): elif (kwds['member'] == "PortRenamed"): self.emit(SIGNAL("DBusPortRenamedCallback(int, QString)"), args[iJackPortId], args[iJackPortNewName]) elif (kwds['member'] == "PortsConnected"): - self.emit(SIGNAL("DBusPortsConnectedCallback(int, int)"), args[iSourcePortId], args[iTargetPortId]) + self.emit(SIGNAL("DBusPortsConnectedCallback(int, int, int)"), args[iJackConnId], args[iSourcePortId], args[iTargetPortId]) elif (kwds['member'] == "PortsDisconnected"): - self.emit(SIGNAL("DBusPortsDisconnectedCallback(int, int)"), args[iSourcePortId], args[iTargetPortId]) + self.emit(SIGNAL("DBusPortsDisconnectedCallback(int)"), args[iJackConnId]) + print(args) elif (kwds['interface'] == "org.ladish.Control"): if (DEBUG): print("DBus signal @org.ladish.Control,", kwds['member']) @@ -1063,21 +1064,21 @@ class ClaudiaMainW(QMainWindow, ui_claudia.Ui_ClaudiaMainW): self.canvas_add_group(group_id, group_name) @pyqtSlot(int) - def slot_DBusClientDisappearedCallback(self): - pass + def slot_DBusClientDisappearedCallback(self, group_id): + self.canvas_remove_group(group_id) @pyqtSlot(int, int, str, int, int) def slot_DBusPortAppearedCallback(self, group_id, port_id, port_name, port_flags, port_type_jack): - if (port_flags & jacklib.JackPortIsInput): + if (port_flags & JACKDBUS_PORT_FLAG_INPUT): port_mode = patchcanvas.PORT_MODE_INPUT - elif (port_flags & jacklib.JackPortIsOutput): + elif (port_flags & JACKDBUS_PORT_FLAG_OUTPUT): port_mode = patchcanvas.PORT_MODE_OUTPUT else: port_mode = patchcanvas.PORT_MODE_NULL - if (port_type_jack == 0): # Audio + if (port_type_jack == JACKDBUS_PORT_TYPE_AUDIO): port_type = patchcanvas.PORT_TYPE_AUDIO_JACK - elif (port_type_jack == 1): # MIDI + elif (port_type_jack == JACKDBUS_PORT_TYPE_MIDI): if (DBus.ladish_graph.Get(GRAPH_DICT_OBJECT_TYPE_PORT, port_id, URI_A2J_PORT) == "yes"): port_type = patchcanvas.PORT_TYPE_MIDI_A2J else: @@ -1089,19 +1090,19 @@ class ClaudiaMainW(QMainWindow, ui_claudia.Ui_ClaudiaMainW): @pyqtSlot(int) def slot_DBusPortDisppearedCallback(self, port_id): - pass + self.canvas_remove_port(port_id) @pyqtSlot(int, str) def slot_DBusPortRenamedCallback(self, port_id, new_port_name): - pass + self.canvas_rename_port(port_id, new_port_name) - @pyqtSlot(int, int) - def slot_DBusPortsConnectedCallback(self, source_port_id, target_port_id): - pass + @pyqtSlot(int, int, int) + def slot_DBusPortsConnectedCallback(self, connection_id, source_port_id, target_port_id): + self.canvas_connect_ports(connection_id, source_port_id, target_port_id) - @pyqtSlot(int, int) - def slot_DBusPortsDisconnectedCallback(self, source_port_id, target_port_id): - pass + @pyqtSlot(int) + def slot_DBusPortsDisconnectedCallback(self, connection_id): + self.canvas_disconnect_ports(connection_id) @pyqtSlot() def slot_DBusStudioAppearedCallback(self): diff --git a/src/jackmeter.py b/src/jackmeter.py index 063d233..577648d 100755 --- a/src/jackmeter.py +++ b/src/jackmeter.py @@ -145,6 +145,9 @@ if __name__ == '__main__': jacklib.set_session_callback(client, session_callback, None) jacklib.activate(client) + #jacklib.port_set_name(port_1, "in111") + #jacklib.port_set_name(port_1, "in1") + reconnect_inputs() # Show GUI