Thread: [qjackctl-devel] qjackctl/src qjackctlJackConnect.cpp, 1.20, 1.21 qjackctlJackConnect.h, 1.11, 1.12
JACK Audio Connection Kit Qt GUI Interface
Brought to you by:
rncbc
From: Rui N. C. <rn...@us...> - 2008-10-02 16:19:05
|
Update of /cvsroot/qjackctl/qjackctl/src In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31319/src Modified Files: qjackctlJackConnect.cpp qjackctlJackConnect.h qjackctlMainForm.cpp qjackctlMainForm.h qjackctlSetup.cpp qjackctlSetup.h qjackctlSetupForm.cpp qjackctlSetupForm.ui qjackctlSocketForm.h Log Message: - JACK client/port aliases may now be displayed as a global user option (see Setup/Display/Connections/JACK client/port aliases). Index: qjackctlMainForm.h =================================================================== RCS file: /cvsroot/qjackctl/qjackctl/src/qjackctlMainForm.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- qjackctlMainForm.h 14 May 2008 10:52:22 -0000 1.9 +++ qjackctlMainForm.h 2 Oct 2008 16:18:57 -0000 1.10 @@ -161,6 +161,7 @@ void updateMessagesLimit(); void updateConnectionsFont(); void updateConnectionsIconSize(); + void updateJackClientPortAlias(); void updateBezierLines(); void updateDisplayEffect(); void updateTimeDisplayFonts(); Index: qjackctlMainForm.cpp =================================================================== RCS file: /cvsroot/qjackctl/qjackctl/src/qjackctlMainForm.cpp,v retrieving revision 1.34 retrieving revision 1.35 diff -u -d -r1.34 -r1.35 --- qjackctlMainForm.cpp 2 Jul 2008 10:41:16 -0000 1.34 +++ qjackctlMainForm.cpp 2 Oct 2008 16:18:57 -0000 1.35 @@ -407,6 +407,7 @@ updateMessagesLimit(); updateConnectionsFont(); updateConnectionsIconSize(); + updateJackClientPortAlias(); updateBezierLines(); updateActivePatchbay(); updateSystemTray(); @@ -1287,6 +1288,18 @@ } +// Update of JACK client/port alias display mode. +void qjackctlMainForm::updateJackClientPortAlias (void) +{ + if (m_pSetup == NULL) + return; + + qjackctlJackClientList::setJackClientPortAlias(m_pSetup->iJackClientPortAlias); + + refreshJackConnections(); +} + + // Update the connection and patchbay line style. void qjackctlMainForm::updateBezierLines (void) { @@ -2352,6 +2365,7 @@ QString sOldDisplayFont2 = m_pSetup->sDisplayFont2; QString sOldConnectionsFont = m_pSetup->sConnectionsFont; int iOldConnectionsIconSize = m_pSetup->iConnectionsIconSize; + int iOldJackClientPortAlias = m_pSetup->iJackClientPortAlias; int iOldTimeDisplay = m_pSetup->iTimeDisplay; int iOldTimeFormat = m_pSetup->iTimeFormat; bool bOldDisplayEffect = m_pSetup->bDisplayEffect; @@ -2388,6 +2402,8 @@ if (( bOldDisplayEffect && !m_pSetup->bDisplayEffect) || (!bOldDisplayEffect && m_pSetup->bDisplayEffect)) updateDisplayEffect(); + if (iOldJackClientPortAlias != m_pSetup->iJackClientPortAlias) + updateJackClientPortAlias(); if (iOldConnectionsIconSize != m_pSetup->iConnectionsIconSize) updateConnectionsIconSize(); if (sOldConnectionsFont != m_pSetup->sConnectionsFont) Index: qjackctlSetupForm.ui =================================================================== RCS file: /cvsroot/qjackctl/qjackctl/src/qjackctlSetupForm.ui,v retrieving revision 1.105 retrieving revision 1.106 diff -u -d -r1.105 -r1.106 --- qjackctlSetupForm.ui 2 Jul 2008 10:41:19 -0000 1.105 +++ qjackctlSetupForm.ui 2 Oct 2008 16:18:57 -0000 1.106 @@ -3569,7 +3569,60 @@ </property> </spacer> </item> - <item row="4" column="0" colspan="5" > + <item row="4" column="3" > + <widget class="QLabel" name="JackClientPortAliasTextLabel" > + <property name="font" > + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text" > + <string>&JACK client/port aliases:</string> + </property> + <property name="wordWrap" > + <bool>false</bool> + </property> + <property name="buddy" > + <cstring>JackClientPortAliasComboBox</cstring> + </property> + </widget> + </item> + <item row="4" column="4" > + <widget class="QComboBox" name="JackClientPortAliasComboBox" > + <property name="font" > + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="toolTip" > + <string>JACK client/port aliases display mode</string> + </property> + <property name="editable" > + <bool>false</bool> + </property> + <property name="currentIndex" > + <number>0</number> + </property> + <item> + <property name="text" > + <string>Default</string> + </property> + </item> + <item> + <property name="text" > + <string>First</string> + </property> + </item> + <item> + <property name="text" > + <string>Second</string> + </property> + </item> + </widget> + </item> + <item row="4" column="0" colspan="3" > <widget class="QCheckBox" name="AliasesEditingCheckBox" > <property name="font" > <font> Index: qjackctlJackConnect.h =================================================================== RCS file: /cvsroot/qjackctl/qjackctl/src/qjackctlJackConnect.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- qjackctlJackConnect.h 20 Sep 2007 14:27:43 -0000 1.11 +++ qjackctlJackConnect.h 2 Oct 2008 16:18:57 -0000 1.12 @@ -1,7 +1,7 @@ // qjackctlJackConnect.h // /**************************************************************************** - Copyright (C) 2003-2007, rncbc aka Rui Nuno Capela. All rights reserved. + Copyright (C) 2003-2008, rncbc aka Rui Nuno Capela. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -88,8 +88,7 @@ jack_client_t *jackClient() const; // Jack port lookup. - qjackctlJackPort *findJackPort( - const QString& sPortName, jack_port_t *pJackPort); + qjackctlJackPort *findJackPort(jack_port_t *pJackPort); }; @@ -106,13 +105,23 @@ // Jack client accessors. jack_client_t *jackClient() const; + // Jack port lookup. + qjackctlJackPort *findJackClientPort(jack_port_t *pJackPort); + // Client:port refreshner (return newest item count). int updateClientPorts(); + // Jack client port aliases mode. + static void setJackClientPortAlias(int iJackClientPortAlias); + static int jackClientPortAlias(); + private: // Instance variables. jack_client_t *m_pJackClient; + + // Jack client port aliases mode. + static int g_iJackClientPortAlias; }; @@ -134,7 +143,7 @@ // Common pixmap accessor. const QPixmap& pixmap (int iPixmap) const; - + protected: // Virtual Connect/Disconnection primitives. Index: qjackctlSetupForm.cpp =================================================================== RCS file: /cvsroot/qjackctl/qjackctl/src/qjackctlSetupForm.cpp,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- qjackctlSetupForm.cpp 2 Jul 2008 10:41:18 -0000 1.17 +++ qjackctlSetupForm.cpp 2 Oct 2008 16:18:57 -0000 1.18 @@ -357,6 +357,9 @@ QObject::connect(m_ui.AliasesEditingCheckBox, SIGNAL(stateChanged(int)), SLOT(optionsChanged())); + QObject::connect(m_ui.JackClientPortAliasComboBox, + SIGNAL(activated(int)), + SLOT(optionsChanged())); QObject::connect(m_ui.StartJackCheckBox, SIGNAL(stateChanged(int)), @@ -556,6 +559,9 @@ // Connections view icon size. m_ui.ConnectionsIconSizeComboBox->setCurrentIndex( m_pSetup->iConnectionsIconSize); + // and this JACK speciality... + m_ui.JackClientPortAliasComboBox->setCurrentIndex( + m_pSetup->iJackClientPortAlias); // Messages limit option. m_ui.MessagesLimitCheckBox->setChecked(m_pSetup->bMessagesLimit); @@ -1688,6 +1694,7 @@ m_pSetup->sDisplayFont2 = m_ui.DisplayFont2TextLabel->font().toString(); m_pSetup->bDisplayEffect = m_ui.DisplayEffectCheckBox->isChecked(); m_pSetup->bDisplayBlink = m_ui.DisplayBlinkCheckBox->isChecked(); + m_pSetup->iJackClientPortAlias = m_ui.JackClientPortAliasComboBox->currentIndex(); m_pSetup->iConnectionsIconSize = m_ui.ConnectionsIconSizeComboBox->currentIndex(); m_pSetup->sConnectionsFont = m_ui.ConnectionsFontTextLabel->font().toString(); m_pSetup->bStartJack = m_ui.StartJackCheckBox->isChecked(); Index: qjackctlJackConnect.cpp =================================================================== RCS file: /cvsroot/qjackctl/qjackctl/src/qjackctlJackConnect.cpp,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- qjackctlJackConnect.cpp 20 Sep 2007 14:27:43 -0000 1.20 +++ qjackctlJackConnect.cpp 2 Oct 2008 16:18:57 -0000 1.21 @@ -1,7 +1,7 @@ // qjackctlJackConnect.cpp // /**************************************************************************** - Copyright (C) 2003-2007, rncbc aka Rui Nuno Capela. All rights reserved. + Copyright (C) 2003-2008, rncbc aka Rui Nuno Capela. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -121,16 +121,13 @@ // Jack port lookup. -qjackctlJackPort *qjackctlJackClient::findJackPort ( - const QString& sPortName, jack_port_t *pJackPort ) +qjackctlJackPort *qjackctlJackClient::findJackPort ( jack_port_t *pJackPort ) { QListIterator<qjackctlPortItem *> iter(ports()); while (iter.hasNext()) { qjackctlJackPort *pPort = static_cast<qjackctlJackPort *> (iter.next()); - if (pPort - && pPort->portName() == sPortName - && pPort->jackPort() == pJackPort) + if (pPort && pPort->jackPort() == pJackPort) return pPort; } @@ -164,6 +161,24 @@ } +// Jack port lookup. +qjackctlJackPort *qjackctlJackClientList::findJackClientPort ( jack_port_t *pJackPort ) +{ + QListIterator<qjackctlClientItem *> iter(clients()); + while (iter.hasNext()) { + qjackctlJackClient *pClient + = static_cast<qjackctlJackClient *> (iter.next()); + if (pClient) { + qjackctlJackPort *pPort = pClient->findJackPort(pJackPort); + if (pPort) + return pPort; + } + } + + return NULL; +} + + // Client:port refreshner. int qjackctlJackClientList::updateClientPorts (void) { @@ -181,6 +196,13 @@ pszJackType = JACK_DEFAULT_MIDI_TYPE; #endif + char *aliases[2]; + if (g_iJackClientPortAlias > 0) { + unsigned short alias_size = jack_port_name_size() + 1; + aliases[0] = new char [alias_size]; + aliases[1] = new char [alias_size]; + } + int iDirtyCount = 0; markClientPorts(0); @@ -195,13 +217,16 @@ qjackctlJackPort *pPort = 0; jack_port_t *pJackPort = jack_port_by_name(m_pJackClient, ppszClientPorts[iClientPort]); + if (g_iJackClientPortAlias > 0 && + jack_port_get_aliases(pJackPort, aliases) >= g_iJackClientPortAlias) + sClientPort = aliases[g_iJackClientPortAlias - 1]; int iColon = sClientPort.indexOf(':'); if (pJackPort && iColon >= 0) { QString sClientName = sClientPort.left(iColon); QString sPortName = sClientPort.right(sClientPort.length() - iColon - 1); - pClient = (qjackctlJackClient *) findClient(sClientName); + pClient = static_cast<qjackctlJackClient *> (findClient(sClientName)); if (pClient) - pPort = pClient->findJackPort(sPortName, pJackPort); + pPort = pClient->findJackPort(pJackPort); if (pClient == 0) { pClient = new qjackctlJackClient(this, sClientName); iDirtyCount++; @@ -220,10 +245,29 @@ iDirtyCount += cleanClientPorts(0); + if (g_iJackClientPortAlias > 0) { + delete [] aliases[0]; + delete [] aliases[1]; + } + return iDirtyCount; } +// Jack client port aliases mode. +int qjackctlJackClientList::g_iJackClientPortAlias = 0; + +void qjackctlJackClientList::setJackClientPortAlias ( int iJackClientPortAlias ) +{ + g_iJackClientPortAlias = iJackClientPortAlias; +} + +int qjackctlJackClientList::jackClientPortAlias (void) +{ + return g_iJackClientPortAlias; +} + + //---------------------------------------------------------------------- // qjackctlJackConnect -- Output-to-Input client/ports connection object. // @@ -333,6 +377,11 @@ // Update port connection references. void qjackctlJackConnect::updateConnections (void) { + qjackctlJackClientList *pIClientList + = static_cast<qjackctlJackClientList *> (IClientList()); + if (pIClientList == NULL) + return; + // For each output client item... QListIterator<qjackctlClientItem *> oclient(OClientList()->clients()); while (oclient.hasNext()) { @@ -355,12 +404,15 @@ // Now, for each input client port... int iClientPort = 0; while (ppszClientPorts[iClientPort]) { - qjackctlPortItem *pIPort - = IClientList()->findClientPort( - ppszClientPorts[iClientPort]); - if (pIPort) { - pOPort->addConnect(pIPort); - pIPort->addConnect(pOPort); + jack_port_t *pJackPort = jack_port_by_name(pOJack->jackClient(), + ppszClientPorts[iClientPort]); + if (pJackPort) { + qjackctlPortItem *pIPort + = pIClientList->findJackClientPort(pJackPort); + if (pIPort) { + pOPort->addConnect(pIPort); + pIPort->addConnect(pOPort); + } } iClientPort++; } Index: qjackctlSetup.h =================================================================== RCS file: /cvsroot/qjackctl/qjackctl/src/qjackctlSetup.h,v retrieving revision 1.51 retrieving revision 1.52 diff -u -d -r1.51 -r1.52 --- qjackctlSetup.h 2 Jul 2008 10:41:18 -0000 1.51 +++ qjackctlSetup.h 2 Oct 2008 16:18:57 -0000 1.52 @@ -139,6 +139,7 @@ QString sDisplayFont2; bool bDisplayEffect; bool bDisplayBlink; + int iJackClientPortAlias; int iConnectionsIconSize; QString sConnectionsFont; bool bQueryClose; Index: qjackctlSocketForm.h =================================================================== RCS file: /cvsroot/qjackctl/qjackctl/src/qjackctlSocketForm.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- qjackctlSocketForm.h 27 Apr 2008 16:43:18 -0000 1.4 +++ qjackctlSocketForm.h 2 Oct 2008 16:18:57 -0000 1.5 @@ -117,7 +117,6 @@ int m_iDirtyCount; QButtonGroup *m_pSocketTypeButtonGroup; - }; Index: qjackctlSetup.cpp =================================================================== RCS file: /cvsroot/qjackctl/qjackctl/src/qjackctlSetup.cpp,v retrieving revision 1.64 retrieving revision 1.65 diff -u -d -r1.64 -r1.65 --- qjackctlSetup.cpp 2 Jul 2008 10:41:17 -0000 1.64 +++ qjackctlSetup.cpp 2 Oct 2008 16:18:57 -0000 1.65 @@ -80,6 +80,7 @@ sDisplayFont2 = m_settings.value("/DisplayFont2").toString(); bDisplayEffect = m_settings.value("/DisplayEffect", true).toBool(); bDisplayBlink = m_settings.value("/DisplayBlink", true).toBool(); + iJackClientPortAlias = m_settings.value("/JackClientPortAlias", 0).toInt(); iConnectionsIconSize = m_settings.value("/ConnectionsIconSize", QJACKCTL_ICON_16X16).toInt(); sConnectionsFont = m_settings.value("/ConnectionsFont").toString(); bQueryClose = m_settings.value("/QueryClose", true).toBool(); @@ -171,6 +172,7 @@ m_settings.setValue("/DisplayFont2", sDisplayFont2); m_settings.setValue("/DisplayEffect", bDisplayEffect); m_settings.setValue("/DisplayBlink", bDisplayBlink); + m_settings.setValue("/JackClientPortAlias", iJackClientPortAlias); m_settings.setValue("/ConnectionsIconSize", iConnectionsIconSize); m_settings.setValue("/ConnectionsFont", sConnectionsFont); m_settings.setValue("/QueryClose", bQueryClose); |