From b7645eb7c9d233f591cfaadc9ebacd81d456284c Mon Sep 17 00:00:00 2001 From: falkTX Date: Thu, 2 Dec 2010 17:24:11 +0000 Subject: [PATCH] Initial code for bristol --- debian/changelog | 2 +- src/database.py | 7 ++ src/klaudia.ui | 264 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- src/w_klaudia.py | 121 +++++++++++++++++++++++-- 4 files changed, 387 insertions(+), 7 deletions(-) diff --git a/debian/changelog b/debian/changelog index a6771ba..15a7198 100755 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -klaudia (0.3~ppa14) lucid; urgency=low +klaudia (0.3~ppa16) lucid; urgency=low * Initial release diff --git a/src/database.py b/src/database.py index b29c2ae..1df00b7 100755 --- a/src/database.py +++ b/src/database.py @@ -109,6 +109,13 @@ list_Instrument = [ ( "zynaddsubfx", "ZynAddSubFX", "Synth", "zynaddsubfx", "zynaddsubfx", "Manual", 0, "OpenSource", (1, 0, "Jack | ALSA"), ("", "http://zynaddsubfx.sourceforge.net/") ), ] +# Package || AppName || Type || Short name || Icon || Save || Level || License || Features[ built-in-fx, audio-input, midi-mode ] || Doc[ doc, website ] +list_Bristol = [ + ( "bristol", "Explorer", "Synth", "explorer", "audio-x-generic", "Auto", 1, "OpenSource", (1, 1, "Jack | ALSA"), ("", "") ), + ( "bristol", "Mini", "Synth", "mini", "audio-x-generic", "Auto", 1, "OpenSource", (1, 1, "Jack | ALSA"), ("", "") ), + ( "bristol", "Prophet52", "Synth", "prophet52", "audio-x-generic", "Auto", 1, "OpenSource", (1, 1, "Jack | ALSA"), ("", "") ), +] + # Package || AppName || Type || Binary || Icon || Save || Level || License || Features[ stereo, midi-mode ] || Doc[ doc, website ] list_Effect = [ ( "guitarix", "Guitarix", "Guitar FX", "guitarix", "guitarix", "Manual", 0, "OpenSource", (0, "Jack"), ("", "http://guitarix.sourceforge.net/") ), diff --git a/src/klaudia.ui b/src/klaudia.ui index ffbdada..d0a097f 100755 --- a/src/klaudia.ui +++ b/src/klaudia.ui @@ -10,6 +10,9 @@ 591 + + Klaudia + @@ -208,7 +211,7 @@ - 0 + 3 @@ -1187,6 +1190,265 @@ + + + Bristol + + + + + + Bristol Vintage Synths + + + Qt::AlignCenter + + + + + + + Qt::Horizontal + + + + + + + QAbstractItemView::NoEditTriggers + + + true + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + true + + + true + + + false + + + 22 + + + + + + + + + Short Name + + + + + Full Name + + + + + + + + + 200 + 0 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + + 0 + 48 + + + + + 16777215 + 48 + + + + ICO + + + Qt::AlignCenter + + + + + + + App Name + + + Qt::AlignCenter + + + + + + + Qt::Horizontal + + + + + + + Features + + + Qt::AlignCenter + + + + + + Audio Input: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + ico + + + + + + + MIDI Mode: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + mode + + + + + + + Ladish Level: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + # + + + + + + + Built-in FX: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + ico + + + + + + + + + + Help + + + Qt::AlignCenter + + + + + + Documentation + + + Qt::AlignCenter + + + + + + + WebSite + + + Qt::AlignCenter + + + + + + + (Nothing available) + + + Qt::AlignCenter + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + Effect diff --git a/src/w_klaudia.py b/src/w_klaudia.py index d361d8f..e7ed387 100755 --- a/src/w_klaudia.py +++ b/src/w_klaudia.py @@ -60,6 +60,9 @@ class KlaudiaMainW(KXmlGuiWindow, ui_klaudia.Ui_KlaudiaMainW): self.listInstrument.setColumnWidth(1, 125) self.listInstrument.setColumnWidth(2, 125) + self.listBristol.setColumnWidth(0, 22) + self.listBristol.setColumnWidth(1, 150) + self.listEffect.setColumnWidth(0, 22) self.listEffect.setColumnWidth(1, 200) self.listEffect.setColumnWidth(2, 100) @@ -71,6 +74,7 @@ class KlaudiaMainW(KXmlGuiWindow, ui_klaudia.Ui_KlaudiaMainW): self.listDAW.setContextMenuPolicy(Qt.CustomContextMenu) self.listHost.setContextMenuPolicy(Qt.CustomContextMenu) self.listInstrument.setContextMenuPolicy(Qt.CustomContextMenu) + self.listBristol.setContextMenuPolicy(Qt.CustomContextMenu) self.listEffect.setContextMenuPolicy(Qt.CustomContextMenu) self.listTool.setContextMenuPolicy(Qt.CustomContextMenu) @@ -85,6 +89,7 @@ class KlaudiaMainW(KXmlGuiWindow, ui_klaudia.Ui_KlaudiaMainW): self.clearInfo_DAW() self.clearInfo_Host() self.clearInfo_Intrument() + self.clearInfo_Bristol() self.clearInfo_Effect() self.clearInfo_Tool() @@ -104,11 +109,13 @@ class KlaudiaMainW(KXmlGuiWindow, ui_klaudia.Ui_KlaudiaMainW): self.connect(self.listDAW, SIGNAL("currentCellChanged(int, int, int, int)"), self.checkSelectedDAW) self.connect(self.listHost, SIGNAL("currentCellChanged(int, int, int, int)"), self.checkSelectedHost) self.connect(self.listInstrument, SIGNAL("currentCellChanged(int, int, int, int)"), self.checkSelectedInstrument) + self.connect(self.listBristol, SIGNAL("currentCellChanged(int, int, int, int)"), self.checkSelectedBristol) self.connect(self.listEffect, SIGNAL("currentCellChanged(int, int, int, int)"), self.checkSelectedEffect) self.connect(self.listTool, SIGNAL("currentCellChanged(int, int, int, int)"), self.checkSelectedTool) self.connect(self.listDAW, SIGNAL("cellDoubleClicked(int, int)"), self.doubleClickedListDAW) self.connect(self.listHost, SIGNAL("cellDoubleClicked(int, int)"), self.doubleClickedListHost) self.connect(self.listInstrument, SIGNAL("cellDoubleClicked(int, int)"), self.doubleClickedListInstrument) + self.connect(self.listBristol, SIGNAL("cellDoubleClicked(int, int)"), self.doubleClickedListBristol) self.connect(self.listEffect, SIGNAL("cellDoubleClicked(int, int)"), self.doubleClickedListEffect) self.connect(self.listTool, SIGNAL("cellDoubleClicked(int, int)"), self.doubleClickedListTool) @@ -118,6 +125,8 @@ class KlaudiaMainW(KXmlGuiWindow, ui_klaudia.Ui_KlaudiaMainW): self.connect(self.url_website_host, SIGNAL("leftClickedUrl(QString)"), self.openUrl) self.connect(self.url_documentation_ins, SIGNAL("leftClickedUrl(QString)"), self.openUrl) self.connect(self.url_website_ins, SIGNAL("leftClickedUrl(QString)"), self.openUrl) + self.connect(self.url_documentation_bristol, SIGNAL("leftClickedUrl(QString)"), self.openUrl) + self.connect(self.url_website_bristol, SIGNAL("leftClickedUrl(QString)"), self.openUrl) self.connect(self.url_documentation_effect, SIGNAL("leftClickedUrl(QString)"), self.openUrl) self.connect(self.url_website_effect, SIGNAL("leftClickedUrl(QString)"), self.openUrl) self.connect(self.url_documentation_tool, SIGNAL("leftClickedUrl(QString)"), self.openUrl) @@ -163,13 +172,15 @@ class KlaudiaMainW(KXmlGuiWindow, ui_klaudia.Ui_KlaudiaMainW): elif (tab == 2): listSel = self.listInstrument elif (tab == 3): - listSel = self.listEffect + listSel = self.listBristol elif (tab == 4): + listSel = self.listEffect + elif (tab == 5): listSel = self.listTool else: return "" - return listSel.item(listSel.currentRow(), 1).text() + return listSel.item(listSel.currentRow(), 1 if (tab != 3) else 2).text() def getBinaryFromAppName(self, appname): list_DAW = database.list_DAW @@ -190,6 +201,12 @@ class KlaudiaMainW(KXmlGuiWindow, ui_klaudia.Ui_KlaudiaMainW): binary = list_Instrument[i][3] break + list_Bristol = database.list_Bristol + for i in range(len(list_Bristol)): + if (appname == list_Bristol[i][1]): + binary = "startBristol -audio jack -midi jack -"+list_Bristol[i][3] + break + list_Effect = database.list_Effect for i in range(len(list_Effect)): if (appname == list_Effect[i][1]): @@ -220,6 +237,10 @@ class KlaudiaMainW(KXmlGuiWindow, ui_klaudia.Ui_KlaudiaMainW): app = self.listInstrument.item(row, 1).text() self.startApp(app) + def doubleClickedListBristol(self, row, column): + app = self.listInstrument.item(row, 1).text() + self.startApp(app) + def doubleClickedListEffect(self, row, column): app = self.listEffect.item(row, 1).text() self.startApp(app) @@ -420,6 +441,16 @@ class KlaudiaMainW(KXmlGuiWindow, ui_klaudia.Ui_KlaudiaMainW): self.showDoc_Instrument(0, 0) self.frame_Instrument.setEnabled(False) + def clearInfo_Bristol(self): + self.ico_app_bristol.setPixmap(KIcon("start-here-kde").pixmap(48, 48)) + self.label_name_bristol.setText("App Name") + self.ico_builtin_fx_bristol.setPixmap(KIcon("dialog-cancel").pixmap(16, 16)) + self.ico_audio_input_bristol.setPixmap(KIcon("dialog-cancel").pixmap(16, 16)) + self.label_midi_mode_bristol.setText("---") + self.label_ladish_level_bristol.setText("0") + self.showDoc_Bristol(0, 0) + self.frame_Bristol.setEnabled(False) + def clearInfo_Effect(self): self.ico_app_effect.setPixmap(KIcon("start-here-kde").pixmap(48, 48)) self.label_name_effect.setText("App Name") @@ -457,10 +488,13 @@ class KlaudiaMainW(KXmlGuiWindow, ui_klaudia.Ui_KlaudiaMainW): elif (tab == 2): # Instrument if (self.listInstrument.selectedItems()): self.test_selected = True - elif (tab == 3): # Effect + elif (tab == 3): # Bristol + if (self.listBristol.selectedItems()): + self.test_selected = True + elif (tab == 4): # Effect if (self.listEffect.selectedItems()): self.test_selected = True - elif (tab == 4): # Tool + elif (tab == 5): # Tool if (self.listTool.selectedItems()): self.test_selected = True @@ -565,6 +599,36 @@ class KlaudiaMainW(KXmlGuiWindow, ui_klaudia.Ui_KlaudiaMainW): self.clearInfo_Intrument() self.checkButtons() + def checkSelectedBristol(self, row, column, p_row, p_column): + if (row >= 0): + self.test_selected = True + + app_name = self.listBristol.item(row, 2).text() + app_info = [] + list_Bristol = database.list_Bristol + + for i in range(len(list_Bristol)): + if (app_name == list_Bristol[i][1]): + app_info = list_Bristol[i] + break + + if (not app_info): + print "Error here, cod.007" + return + + self.frame_Bristol.setEnabled(True) + self.ico_app_bristol.setPixmap(KIcon(self.MyIcons.iconPath(app_info[4], KIconLoader.Desktop)).pixmap(48, 48)) + self.ico_builtin_fx_bristol.setPixmap(KIcon(self.getIconForYesNo(app_info[8][0])).pixmap(16, 16)) + self.ico_audio_input_bristol.setPixmap(KIcon(self.getIconForYesNo(app_info[8][1])).pixmap(16, 16)) + self.label_name_bristol.setText(app_info[1]) + self.label_midi_mode_bristol.setText(app_info[8][2]) + self.label_ladish_level_bristol.setText(str(app_info[6])) + self.showDoc_Bristol(app_info[9][0], app_info[9][1]) + else: + self.test_selected = False + self.clearInfo_Bristol() + self.checkButtons() + def checkSelectedEffect(self, row, column, p_row, p_column): if (row >= 0): self.test_selected = True @@ -608,7 +672,7 @@ class KlaudiaMainW(KXmlGuiWindow, ui_klaudia.Ui_KlaudiaMainW): break if (not app_info): - print "Error here, cod.005" + print "Error here, cod.006" return self.frame_Tool.setEnabled(True) @@ -671,6 +735,22 @@ class KlaudiaMainW(KXmlGuiWindow, ui_klaudia.Ui_KlaudiaMainW): else: self.label_no_help_ins.setVisible(False) + def showDoc_Bristol(self, doc, web): + if (doc): + self.url_documentation_bristol.setVisible(True) + self.url_documentation_bristol.setUrl(doc) + else: self.url_documentation_bristol.setVisible(False) + + if (web): + self.url_website_bristol.setVisible(True) + self.url_website_bristol.setUrl(web) + else: self.url_website_bristol.setVisible(False) + + if (not doc and not web): + self.label_no_help_bristol.setVisible(True) + else: + self.label_no_help_bristol.setVisible(False) + def showDoc_Effect(self, doc, web): if (doc): self.url_documentation_effect.setVisible(True) @@ -718,6 +798,7 @@ class KlaudiaMainW(KXmlGuiWindow, ui_klaudia.Ui_KlaudiaMainW): self.listDAW.clearContents() self.listHost.clearContents() self.listInstrument.clearContents() + self.listBristol.clearContents() self.listEffect.clearContents() self.listTool.clearContents() for i in range(self.listDAW.rowCount()): @@ -726,6 +807,8 @@ class KlaudiaMainW(KXmlGuiWindow, ui_klaudia.Ui_KlaudiaMainW): self.listHost.removeRow(0) for i in range(self.listInstrument.rowCount()): self.listInstrument.removeRow(0) + for i in range(self.listBristol.rowCount()): + self.listBristol.removeRow(0) for i in range(self.listEffect.rowCount()): self.listEffect.removeRow(0) for i in range(self.listTool.rowCount()): @@ -841,6 +924,32 @@ class KlaudiaMainW(KXmlGuiWindow, ui_klaudia.Ui_KlaudiaMainW): last_pos += 1 last_pos = 0 + list_Bristol = database.list_Bristol + for i in range(len(list_Bristol)): + if (list_Bristol[i][0] in pkglist): + FullName = list_Bristol[i][1] + Type = list_Bristol[i][2] + ShortName = list_Bristol[i][3] + Icon = list_Bristol[i][4] + Save = list_Bristol[i][5] + Level = list_Bristol[i][6] + Licence = list_Bristol[i][7] + Features = list_Bristol[i][8] + Docs = list_Bristol[i][9] + + w_icon = QTableWidgetItem("") + w_icon.setIcon(KIcon(self.MyIcons.iconPath(Icon, KIconLoader.Small))) + w_fullname = QTableWidgetItem(FullName) + w_shortname = QTableWidgetItem(ShortName) + + self.listBristol.insertRow(last_pos) + self.listBristol.setItem(last_pos, 0, w_icon) + self.listBristol.setItem(last_pos, 1, w_shortname) + self.listBristol.setItem(last_pos, 2, w_fullname) + + last_pos += 1 + + last_pos = 0 list_Effect = database.list_Effect for i in range(len(list_Effect)): if (list_Effect[i][0] in pkglist): @@ -904,12 +1013,14 @@ class KlaudiaMainW(KXmlGuiWindow, ui_klaudia.Ui_KlaudiaMainW): self.listDAW.setCurrentCell(-1, -1) self.listHost.setCurrentCell(-1, -1) self.listInstrument.setCurrentCell(-1, -1) + self.listBristol.setCurrentCell(-1, -1) self.listEffect.setCurrentCell(-1, -1) self.listTool.setCurrentCell(-1, -1) self.listDAW.sortByColumn(1, Qt.AscendingOrder) self.listHost.sortByColumn(1, Qt.AscendingOrder) self.listInstrument.sortByColumn(1, Qt.AscendingOrder) + self.listBristol.sortByColumn(1, Qt.AscendingOrder) self.listEffect.sortByColumn(1, Qt.AscendingOrder) self.listTool.sortByColumn(1, Qt.AscendingOrder) -- 2.11.4.GIT