Browse Source

Re-enable canvas functions, super-incomplete!

tags/v0.9.0
falkTX 13 years ago
parent
commit
e9e9d7f749
14 changed files with 13658 additions and 468 deletions
  1. +1
    -1
      src/carla-discovery/carla-discovery.cpp
  2. +261
    -65
      src/catarina.py
  3. +1
    -0
      src/digitalpeakmeter.py
  4. +7
    -0
      src/icons/icons.qrc
  5. +10423
    -0
      src/icons/scalable/pb_audacious.svg
  6. +451
    -0
      src/icons/scalable/pb_clementine.svg
  7. +206
    -0
      src/icons/scalable/pb_generic.svg
  8. +123
    -0
      src/icons/scalable/pb_hardware.svg
  9. +282
    -0
      src/icons/scalable/pb_jamin.svg
  10. +154
    -0
      src/icons/scalable/pb_mplayer.svg
  11. +92
    -0
      src/icons/scalable/pb_vlc.svg
  12. +0
    -3
      src/ledbutton.py
  13. +1652
    -397
      src/patchcanvas.py
  14. +5
    -2
      src/patchcanvas_theme.py

+ 1
- 1
src/carla-discovery/carla-discovery.cpp View File

@@ -687,7 +687,7 @@ void do_vst_check(void* lib_handle)
midiEvents[1].type = kVstMidiType;
midiEvents[1].byteSize = sizeof(VstMidiEvent);
midiEvents[1].midiData[0] = 0x90;
midiEvents[1].midiData[0] = 0x80;
midiEvents[1].midiData[1] = 64;
midiEvents[1].deltaFrames = bufferSize/2;


+ 261
- 65
src/catarina.py View File

@@ -18,8 +18,8 @@

# Imports (Global)
from PyQt4.QtCore import pyqtSlot, Qt, QSettings
from PyQt4.QtGui import QApplication, QDialog, QDialogButtonBox, QMainWindow, QTableWidgetItem
from PyQt4.QtGui import QPainter
from PyQt4.QtGui import QApplication, QDialog, QDialogButtonBox, QMainWindow, QPainter, QTableWidgetItem
from PyQt4.QtXml import QDomDocument

# Imports (Custom Stuff)
import patchcanvas
@@ -171,10 +171,10 @@ class CatarinaAddPortW(QDialog, ui_catarina_addport.Ui_CatarinaAddPortW):
self.connect(self, SIGNAL("accepted()"), SLOT("slot_setReturn()"))
self.connect(self.le_port_name, SIGNAL("textChanged(QString)"), SLOT("slot_checkText(QString)"))

self.ret_group_id = -1
self.ret_new_port_name = ""
self.ret_new_port_mode = patchcanvas.PORT_MODE_NULL
self.ret_new_port_type = patchcanvas.PORT_TYPE_NULL
self.ret_group_id = -1
self.ret_port_name = ""
self.ret_port_mode = patchcanvas.PORT_MODE_NULL
self.ret_port_type = patchcanvas.PORT_TYPE_NULL

@pyqtSlot(str)
def slot_checkText(self, text):
@@ -184,10 +184,10 @@ class CatarinaAddPortW(QDialog, ui_catarina_addport.Ui_CatarinaAddPortW):
@pyqtSlot()
def slot_setReturn(self):
if (self.cb_group.count() > 0):
self.ret_group_id = int(self.cb_group.currentText().split(" ", 1)[0])
self.ret_new_port_name = self.le_port_name.text()
self.ret_new_port_mode = patchcanvas.PORT_MODE_INPUT if (self.rb_flags_input.isChecked()) else patchcanvas.PORT_MODE_OUTPUT
self.ret_new_port_type = self.cb_port_type.currentIndex()+1 # 1, 2, 3 or 4 for patchcanvas types
self.ret_group_id = int(self.cb_group.currentText().split(" ", 1)[0])
self.ret_port_name = self.le_port_name.text()
self.ret_port_mode = patchcanvas.PORT_MODE_INPUT if (self.rb_flags_input.isChecked()) else patchcanvas.PORT_MODE_OUTPUT
self.ret_port_type = self.cb_port_type.currentIndex()+1 # 1, 2, 3 or 4 for patchcanvas types

# Remove Port Dialog
class CatarinaRemovePortW(QDialog, ui_catarina_removeport.Ui_CatarinaRemovePortW):
@@ -246,9 +246,9 @@ class CatarinaRemovePortW(QDialog, ui_catarina_removeport.Ui_CatarinaRemovePortW
index += 1

def findPortGroupName(self, group_id):
for i in range(len(self.group_list)):
if (self.group_list[i][iGroupId] == group_id):
return self.group_list[i][iGroupName]
for group in self.m_group_list:
if (group[iGroupId] == group_id):
return group[iGroupName]
return ""

@pyqtSlot()
@@ -256,13 +256,14 @@ class CatarinaRemovePortW(QDialog, ui_catarina_removeport.Ui_CatarinaRemovePortW
self.reAddPorts()

@pyqtSlot(int)
def checkCell(self, row):
def slot_checkCell(self, row):
check = bool(row >= 0)
self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(check)

@pyqtSlot()
def setReturn(self):
self.ret_port_id = int(self.tw_port_list.item(self.tw_port_list.currentRow(), 0).text())
def slot_setReturn(self):
if (self.tw_port_list.rowCount() > 0):
self.ret_port_id = int(self.tw_port_list.item(self.tw_port_list.currentRow(), 0).text())

# Rename Port Dialog
class CatarinaRenamePortW(QDialog, ui_catarina_renameport.Ui_CatarinaRenamePortW):
@@ -591,13 +592,13 @@ class CatarinaMainW(QMainWindow, ui_catarina.Ui_CatarinaMainW):
patchcanvas.init(self.scene, self.canvasCallback, DEBUG)

self.connect(self.act_project_new, SIGNAL("triggered()"), SLOT("slot_projectNew()"))
#self.connect(self.act_project_open, SIGNAL("triggered()"), SLOT("slot_projectOpen()"))
#self.connect(self.act_project_save, SIGNAL("triggered()"), SLOT("slot_projectSave()"))
#self.connect(self.act_project_save_as, SIGNAL("triggered()"), SLOT("slot_projectSaveAs()"))
self.connect(self.act_project_open, SIGNAL("triggered()"), SLOT("slot_projectOpen()"))
self.connect(self.act_project_save, SIGNAL("triggered()"), SLOT("slot_projectSave()"))
self.connect(self.act_project_save_as, SIGNAL("triggered()"), SLOT("slot_projectSaveAs()"))
self.connect(self.b_project_new, SIGNAL("clicked()"), SLOT("slot_projectNew()"))
#self.connect(self.b_project_open, SIGNAL("clicked()"), SLOT("slot_projectOpen()"))
#self.connect(self.b_project_save, SIGNAL("clicked()"), SLOT("slot_projectSave()"))
#self.connect(self.b_project_save_as, SIGNAL("clicked()"), SLOT("slot_projectSaveAs()"))
self.connect(self.b_project_open, SIGNAL("clicked()"), SLOT("slot_projectOpen()"))
self.connect(self.b_project_save, SIGNAL("clicked()"), SLOT("slot_projectSave()"))
self.connect(self.b_project_save_as, SIGNAL("clicked()"), SLOT("slot_projectSaveAs()"))
self.connect(self.act_patchbay_add_group, SIGNAL("triggered()"), SLOT("slot_groupAdd()"))
self.connect(self.act_patchbay_remove_group, SIGNAL("triggered()"), SLOT("slot_groupRemove()"))
self.connect(self.act_patchbay_rename_group, SIGNAL("triggered()"), SLOT("slot_groupRename()"))
@@ -622,7 +623,7 @@ class CatarinaMainW(QMainWindow, ui_catarina.Ui_CatarinaMainW):
self.connect(self.act_help_about, SIGNAL("triggered()"), SLOT("slot_aboutCatarina()"))
self.connect(self.act_help_about_qt, SIGNAL("triggered()"), app, SLOT("aboutQt()"))

#self.connect(self, SIGNAL("SIGUSR1()"), SLOT("slot_projectSave()"))
self.connect(self, SIGNAL("SIGUSR1()"), SLOT("slot_projectSave()"))

# Dummy timer to keep events active
self.m_updateTimer = self.startTimer(500)
@@ -633,6 +634,188 @@ class CatarinaMainW(QMainWindow, ui_catarina.Ui_CatarinaMainW):
def canvasCallback(self, action, value1, value2, value_str):
print(action, value1, value2, value_str)

def saveFile(self, path):
content = ("<?xml version='1.0' encoding='UTF-8'?>\n"
"<!DOCTYPE CATARINA>\n"
"<CATARINA VERSION='%s'>\n") % (VERSION)

content += " <Groups>\n"
for i in range(len(self.m_group_list)):
group = self.m_group_list[i]
group_id = group[iGroupId]
group_name = group[iGroupName]
group_split = group[iGroupSplit]
group_icon = group[iGroupIcon]
group_pos_i = patchcanvas.getGroupPos(group_id, patchcanvas.PORT_MODE_INPUT)
group_pos_o = patchcanvas.getGroupPos(group_id, patchcanvas.PORT_MODE_OUTPUT)
content += " <g%i> <name>%s</name> <data>%i:%i:%i:%f:%f:%f:%f</data> </g%i>\n" % (i, group_name, group_id, group_split, group_icon, group_pos_o.x(), group_pos_o.y(), group_pos_i.x(), group_pos_i.y(), i)
content += " </Groups>\n"

content += " <Ports>\n"
for i in range(len(self.m_port_list)):
port = self.m_port_list[i]
content += " <p%i> <name>%s</name> <data>%i:%i:%i:%i</data> </p%i>\n" % (i, port[iPortName], port[iPortGroup], port[iPortId], port[iPortMode], port[iPortType], i)
content += " </Ports>\n"

content += " <Connections>\n"
for i in range(len(self.m_connection_list)):
connection = self.m_connection_list[i]
content += " <c%i>%i:%i:%i</c%i>\n" % (i, connection[iConnId], connection[iConnOutput], connection[iConnInput], i)
content += " </Connections>\n"

content += "</CATARINA>\n"

try:
if (open(path, "w").write(content) == False):
raiseError
except:
QMessageBox.critical(self, self.tr("Error"), self.tr("Failed to save file"))

def loadFile(self, path):
if (os.path.exists(path) == False):
QMessageBox.critical(self, self.tr("Error"), self.tr("The file '%s' does not exist" % (path)))
self.m_save_path = None
return

try:
read = open(path, "r").read()
if (not read):
raiseError
except:
QMessageBox.critical(self, self.tr("Error"), self.tr("Failed to load file"))
self.m_save_path = None
return

self.m_save_path = path
self.m_group_list = []
self.m_group_list_pos = []
self.m_port_list = []
self.m_connection_list = []
self.m_last_group_id = 1
self.m_last_port_id = 1
self.m_last_connection_id = 1

xml = QDomDocument()
xml.setContent(read)

content = xml.documentElement()
if (content.tagName() != "CATARINA"):
QMessageBox.critical(self, self.tr("Error"), self.tr("Not a valid Catarina file"))
return

# Get values from XML - the big code
node = content.firstChild()
while not node.isNull():
if (node.toElement().tagName() == "Groups"):
group_name = ""
groups = node.toElement().firstChild()
while not groups.isNull():
group = groups.toElement().firstChild()
while not group.isNull():
tag = group.toElement().tagName()
text = group.toElement().text()
if (tag == "name"):
group_name = text
elif (tag == "data"):
group_data = text.split(":")

group_obj = [None, None, None, None]
group_obj[iGroupId] = int(group_data[0])
group_obj[iGroupName] = group_name
group_obj[iGroupSplit] = int(group_data[1])
group_obj[iGroupIcon] = int(group_data[2])

group_pos_obj = [None, None, None, None, None]
group_pos_obj[iGroupPosId] = int(group_data[0])
group_pos_obj[iGroupPosX_o] = float(group_data[3])
group_pos_obj[iGroupPosY_o] = float(group_data[4])
group_pos_obj[iGroupPosX_i] = float(group_data[5])
group_pos_obj[iGroupPosY_i] = float(group_data[6])

self.m_group_list.append(group_obj)
self.m_group_list_pos.append(group_pos_obj)

group_id = group_obj[iGroupId]
if (group_id > self.m_last_group_id):
self.m_last_group_id = group_id+1

group = group.nextSibling()
groups = groups.nextSibling()

elif (node.toElement().tagName() == "Ports"):
port_id = 0
port_name = ""
ports = node.toElement().firstChild()
while not ports.isNull():
port = ports.toElement().firstChild()
while not port.isNull():
tag = port.toElement().tagName()
text = port.toElement().text()
if (tag == "name"):
port_name = text
elif (tag == "data"):
port_data = text.split(":")
new_port = [None, None, None, None, None]
new_port[iPortGroup] = int(port_data[0])
new_port[iPortId] = int(port_data[1])
new_port[iPortName] = port_name
new_port[iPortMode] = int(port_data[2])
new_port[iPortType] = int(port_data[3])

port_id = new_port[iPortId]
self.m_port_list.append(new_port)

if (port_id > self.m_last_port_id):
self.m_last_port_id = port_id+1

port = port.nextSibling()
ports = ports.nextSibling()

elif (node.toElement().tagName() == "Connections"):
conns = node.toElement().firstChild()
while not conns.isNull():
conn_data = conns.toElement().text().split(":")
if (conn_data[0].isdigit() == False):
conns = conns.nextSibling()
continue

conn_obj = [None, None, None]
conn_obj[iConnId] = int(conn_data[0])
conn_obj[iConnOutput] = int(conn_data[1])
conn_obj[iConnInput] = int(conn_data[2])

connection_id = conn_obj[iConnId]
self.m_connection_list.append(conn_obj)

if (connection_id >= self.m_last_connection_id):
self.m_last_connection_id = connection_id+1

conns = conns.nextSibling()
node = node.nextSibling()

self.m_last_group_id += 1
self.m_last_port_id += 1
self.m_last_connection_id += 1

patchcanvas.clear()

for group in self.m_group_list:
patchcanvas.addGroup(group[iGroupId], group[iGroupName], patchcanvas.SPLIT_YES if (group[iGroupSplit]) else patchcanvas.SPLIT_NO, group[iGroupIcon])

for group_pos in self.m_group_list_pos:
patchcanvas.setGroupPos(group_pos[iGroupPosId], group_pos[iGroupPosX_o], group_pos[iGroupPosY_o], group_pos[iGroupPosX_i], group_pos[iGroupPosY_i])

for port in self.m_port_list:
patchcanvas.addPort(port[iPortGroup], port[iPortId], port[iPortName], port[iPortMode], port[iPortType])

for connection in self.m_connection_list:
patchcanvas.connectPorts(connection[iConnId], connection[iConnOutput], connection[iConnInput])

self.m_group_list_pos = []

#self.scene.zoom_fit()
#self.scene.zoom_reset()

@pyqtSlot()
def slot_projectNew(self):
self.m_group_list = []
@@ -645,6 +828,26 @@ class CatarinaMainW(QMainWindow, ui_catarina.Ui_CatarinaMainW):
self.m_save_path = None
patchcanvas.clear()

@pyqtSlot()
def slot_projectOpen(self):
path = QFileDialog.getOpenFileName(self, self.tr("Load State"), filter=self.tr("Catarina XML Document (*.xml)"))
if (path):
self.loadFile(path)

@pyqtSlot()
def slot_projectSave(self):
if (self.m_save_path):
self.saveFile(self.m_save_path)
else:
self.slot_projectSaveAs()

@pyqtSlot()
def slot_projectSaveAs(self):
path = QFileDialog.getSaveFileName(self, self.tr("Save State"), filter=self.tr("Catarina XML Document (*.xml)"))
if (path):
self.m_save_path = path
self.saveFile(path)

@pyqtSlot()
def slot_groupAdd(self):
dialog = CatarinaAddGroupW(self, self.m_group_list)
@@ -682,11 +885,8 @@ class CatarinaMainW(QMainWindow, ui_catarina.Ui_CatarinaMainW):
patchcanvas.disconnectPorts(connection[iConnId])
self.m_connection_list.remove(connection)

# TODO - test this
#for port in self.m_port_list:
#if (port[iPortGroup] == group_id):
patchcanvas.removePort(port[iPortId])
self.port_list.remove(port)
self.m_port_list.remove(port)

# Now remove group
patchcanvas.removeGroup(group_id)
@@ -719,23 +919,23 @@ class CatarinaMainW(QMainWindow, ui_catarina.Ui_CatarinaMainW):
@pyqtSlot()
def slot_portAdd(self):
if (len(self.m_group_list) > 0):
dialog = CatarinaAddPortW(self, self.group_list, self.last_port_id)
dialog = CatarinaAddPortW(self, self.m_group_list, self.m_last_port_id)
if (dialog.exec_()):
group_id = dialog.ret_group_id
new_port_name = dialog.ret_new_port_name
new_port_mode = dialog.ret_new_port_mode
new_port_type = dialog.ret_new_port_type
patchcanvas.addPort(group_id, self.last_port_id, new_port_name, new_port_mode, new_port_type)
group_id = dialog.ret_group_id
port_name = dialog.ret_port_name
port_mode = dialog.ret_port_mode
port_type = dialog.ret_port_type
patchcanvas.addPort(group_id, self.m_last_port_id, port_name, port_mode, port_type)

new_port = [None, None, None, None, None]
new_port[iPortGroup] = group_id
new_port[iPortId] = self.last_port_id
new_port[iPortId] = self.m_last_port_id
new_port[iPortName] = new_port_name
new_port[iPortMode] = new_port_mode
new_port[iPortType] = new_port_type

self.port_list.append(new_port)
self.last_port_id += 1
self.m_port_list.append(new_port)
self.m_last_port_id += 1

else:
QMessageBox.warning(self, self.tr("Warning"), self.tr("Please add a Group first!"))
@@ -743,22 +943,20 @@ class CatarinaMainW(QMainWindow, ui_catarina.Ui_CatarinaMainW):
@pyqtSlot()
def slot_portRemove(self):
if (len(self.m_port_list) > 0):
dialog = CatarinaRemovePortW(self, self.group_list, self.port_list)
dialog = CatarinaRemovePortW(self, self.m_group_list, self.m_port_list)
if (dialog.exec_()):
port_id = dialog.ret_port_id

h = 0
for i in range(len(self.connection_list)):
if (self.connection_list[i-h][iConnOutput] == port_id or self.connection_list[i-h][iConnInput] == port_id):
patchcanvas.disconnectPorts(self.connection_list[i-h][iConnId])
self.connection_list.pop(i-h)
h += 1
for connection in self.m_connection_list:
if (connection[iConnOutput] == port_id or connection[iConnInput] == port_id):
patchcanvas.disconnectPorts(self.m_connection_list[i-h][iConnId])
self.m_connection_list.remove(connection)

patchcanvas.removePort(port_id)

for i in range(len(self.port_list)):
if (self.port_list[i][iPortId] == port_id):
self.port_list.pop(i)
for port in range(len(self.m_port_list)):
if (port[iPortId] == port_id):
self.m_port_list.remove(port)
break

else:
@@ -767,15 +965,15 @@ class CatarinaMainW(QMainWindow, ui_catarina.Ui_CatarinaMainW):
@pyqtSlot()
def slot_portRename(self):
if (len(self.m_port_list) > 0):
dialog = CatarinaRenamePortW(self, self.group_list, self.port_list)
dialog = CatarinaRenamePortW(self, self.m_group_list, self.m_port_list)
if (dialog.exec_()):
port_id = dialog.ret_port_id
new_port_name = dialog.ret_new_port_name
patchcanvas.renamePort(port_id, new_port_name)

for i in range(len(self.port_list)):
if (self.port_list[i][iPortId] == port_id):
self.port_list[i][iPortName] = new_port_name
for port in self.m_port_list:
if (port[iPortId] == port_id):
port[iPortName] = new_port_name
break

else:
@@ -784,14 +982,14 @@ class CatarinaMainW(QMainWindow, ui_catarina.Ui_CatarinaMainW):
@pyqtSlot()
def slot_connectPorts(self):
if (len(self.m_port_list) > 0):
dialog = CatarinaConnectPortsW(self, self.group_list, self.port_list)
dialog = CatarinaConnectPortsW(self, self.m_group_list, self.m_port_list)
if (dialog.exec_()):
connection_id = self.last_connection_id
connection_id = self.m_last_connection_id
port_out_id = dialog.ret_port_out_id
port_in_id = dialog.ret_port_in_id

for i in range(len(self.connection_list)):
if (self.connection_list[i][iConnOutput] == port_out_id and self.connection_list[i][iConnInput] == port_in_id):
for connection in range(len(self.m_connection_list)):
if (connection[iConnOutput] == port_out_id and connection[iConnInput] == port_in_id):
QMessageBox.warning(self, self.tr("Warning"), self.tr("Ports already connected!"))
return

@@ -802,8 +1000,8 @@ class CatarinaMainW(QMainWindow, ui_catarina.Ui_CatarinaMainW):
conn_obj[iConnOutput] = port_out_id
conn_obj[iConnInput] = port_in_id

self.connection_list.append(conn_obj)
self.last_connection_id += 1
self.m_connection_list.append(conn_obj)
self.m_last_connection_id += 1

else:
QMessageBox.warning(self, self.tr("Warning"), self.tr("Please add some Ports first!"))
@@ -811,16 +1009,15 @@ class CatarinaMainW(QMainWindow, ui_catarina.Ui_CatarinaMainW):
@pyqtSlot()
def slot_disconnectPorts(self):
if (len(self.m_connection_list) > 0):
dialog = CatarinaDisconnectPortsW(self, self.group_list, self.port_list, self.connection_list)
dialog = CatarinaDisconnectPortsW(self, self.m_group_list, self.m_port_list, self.m_connection_list)
if (dialog.exec_()):
connection_id = 0
port_out_id = dialog.ret_port_out_id
port_in_id = dialog.ret_port_in_id

for i in range(len(self.connection_list)):
if (self.connection_list[i][iConnOutput] == port_out_id and self.connection_list[i][iConnInput] == port_in_id):
connection_id = self.connection_list[i][iConnId]
self.connection_list.pop(i)
for connection in range(len(self.m_connection_list)):
if (connection[iConnOutput] == port_out_id and connection[iConnInput] == port_in_id):
self.m_connection_list.remove(connection)
break

patchcanvas.disconnectPorts(connection_id)
@@ -882,11 +1079,10 @@ if __name__ == '__main__':
# Set-up custom signal handling
set_up_signals(gui)

#if (app.arguments().count() > 1):
#gui.save_path = QStringStr(app.arguments()[1])
#gui.prepareToloadFile()

gui.show()

if (len(app .arguments()) > 1):
gui.loadFile(app.arguments()[1])

# App-Loop
sys.exit(app.exec_())

+ 1
- 0
src/digitalpeakmeter.py View File

@@ -22,6 +22,7 @@ from PyQt4.QtGui import QColor, QLinearGradient, QPainter, QWidget

# Widget Class
class DigitalPeakMeter(QWidget):

HORIZONTAL = 1
VERTICAL = 2



+ 7
- 0
src/icons/icons.qrc View File

@@ -32,6 +32,13 @@

<file>scalable/catarina.svg</file>
<file>scalable/jack.svg</file>
<file>scalable/pb_generic.svg</file>
<file>scalable/pb_hardware.svg</file>
<file>scalable/pb_audacious.svg</file>
<file>scalable/pb_clementine.svg</file>
<file>scalable/pb_jamin.svg</file>
<file>scalable/pb_mplayer.svg</file>
<file>scalable/pb_vlc.svg</file>

<file>bitmaps/dial_01.png</file>
<file>bitmaps/dial_01d.png</file>


+ 10423
- 0
src/icons/scalable/pb_audacious.svg
File diff suppressed because it is too large
View File


+ 451
- 0
src/icons/scalable/pb_clementine.svg View File

@@ -0,0 +1,451 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="43.521561"
height="38.635509"
id="svg2843"
version="1.1"
inkscape:version="0.48.0 r9654"
sodipodi:docname="clementine.svg"
inkscape:export-filename="/home/david/svn/clementine/data/icon.png"
inkscape:export-xdpi="132.35001"
inkscape:export-ydpi="132.35001">
<title
id="title2895">Clementine Music Player Logo</title>
<defs
id="defs2845">
<linearGradient
inkscape:collect="always"
id="linearGradient5911">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop5913" />
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="1"
id="stop5915" />
</linearGradient>
<inkscape:path-effect
effect="spiro"
id="path-effect5857"
is_visible="true" />
<inkscape:path-effect
effect="skeletal"
id="path-effect5298"
is_visible="true"
pattern="M 0,0 1,0"
copytype="single_stretched"
prop_scale="1"
scale_y_rel="false"
spacing="0"
normal_offset="0"
tang_offset="0"
prop_units="false"
vertical_pattern="false"
fuse_tolerance="0" />
<inkscape:path-effect
effect="skeletal"
id="path-effect5294"
is_visible="true"
pattern="M 0,0 1,0"
copytype="single_stretched"
prop_scale="1"
scale_y_rel="false"
spacing="0"
normal_offset="0"
tang_offset="0"
prop_units="false"
vertical_pattern="false"
fuse_tolerance="0" />
<inkscape:path-effect
effect="spiro"
id="path-effect5292"
is_visible="true" />
<inkscape:path-effect
effect="skeletal"
id="path-effect5276"
is_visible="true"
pattern="M 0,0 1,0"
copytype="single_stretched"
prop_scale="1"
scale_y_rel="false"
spacing="0"
normal_offset="0"
tang_offset="0"
prop_units="false"
vertical_pattern="false"
fuse_tolerance="0" />
<inkscape:path-effect
effect="spiro"
id="path-effect5274"
is_visible="true" />
<inkscape:path-effect
effect="skeletal"
id="path-effect5270"
is_visible="true"
pattern="M 0,0 1,0"
copytype="single_stretched"
prop_scale="1"
scale_y_rel="false"
spacing="0"
normal_offset="0"
tang_offset="0"
prop_units="false"
vertical_pattern="false"
fuse_tolerance="0" />
<inkscape:path-effect
effect="spiro"
id="path-effect5268"
is_visible="true" />
<inkscape:path-effect
effect="skeletal"
id="path-effect5264"
is_visible="true"
pattern="M 0,0 1,0"
copytype="single_stretched"
prop_scale="1"
scale_y_rel="false"
spacing="0"
normal_offset="0"
tang_offset="0"
prop_units="false"
vertical_pattern="false"
fuse_tolerance="0" />
<inkscape:path-effect
effect="spiro"
id="path-effect5262"
is_visible="true" />
<inkscape:path-effect
effect="skeletal"
id="path-effect5258"
is_visible="true"
pattern="M 0,0 1,0"
copytype="single_stretched"
prop_scale="1"
scale_y_rel="false"
spacing="0"
normal_offset="0"
tang_offset="0"
prop_units="false"
vertical_pattern="false"
fuse_tolerance="0" />
<inkscape:path-effect
effect="spiro"
id="path-effect5256"
is_visible="true" />
<inkscape:path-effect
effect="skeletal"
id="path-effect5252"
is_visible="true"
pattern="M 0,0 1,0"
copytype="single_stretched"
prop_scale="1"
scale_y_rel="false"
spacing="0"
normal_offset="0"
tang_offset="0"
prop_units="false"
vertical_pattern="false"
fuse_tolerance="0" />
<inkscape:path-effect
effect="spiro"
id="path-effect5250"
is_visible="true" />
<linearGradient
inkscape:collect="always"
id="linearGradient5196">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop5198" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop5200" />
</linearGradient>
<inkscape:path-effect
effect="bend_path"
id="path-effect2873"
is_visible="true"
bendpath="m 493.92856,544.77289 c 0,0 14.5273,11.15646 22.519,11.15146 7.93979,-0.005 24.44529,-11.15146 24.44529,-11.15146"
prop_scale="1"
scale_y_rel="false"
vertical="false"
bendpath-nodetypes="csc" />
<inkscape:path-effect
effect="bend_path"
id="path-effect2869"
is_visible="false"
bendpath="m 436.07142,543.07648 c 0,0 15.37603,3.70177 23.2143,3.75 8.48526,0.0522 25.17856,-3.75 25.17856,-3.75"
prop_scale="1"
scale_y_rel="false"
vertical="false"
bendpath-nodetypes="csc" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective2851" />
<inkscape:perspective
id="perspective2861"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2888"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5458"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath5802">
<path
style="fill:#241c1c;fill-opacity:1;stroke:none"
d="m 505.71875,535.46875 c -0.0913,0.006 -0.19131,0.0169 -0.28125,0.0312 -0.0955,0.0153 -0.1874,0.0375 -0.28125,0.0625 -0.0844,0.0225 -0.16817,0.0636 -0.25,0.0937 -0.003,0.005 -0.0284,-0.005 -0.0312,0 -0.79083,1.25489 -1.4864,2.70521 -1.71875,4.09375 -0.3364,2.01031 -0.60558,4.59838 -0.21875,7.65625 0.31871,2.60411 1.03448,5.62431 2.46875,8.90625 a 1.0096098,0.99067979 1.5151289 0 1 0,0.0625 c 0.85048,2.26648 2.57266,5.1072 5.8125,7.96875 0.0263,0.0232 0.0673,0.0393 0.0937,0.0625 0.36148,0.26611 0.70356,0.54293 1.0625,0.78125 3.08915,2.05084 5.83226,2.96661 7.9375,3.3125 a 1.0096098,0.99067979 1.5151289 0 1 0.0625,0 c 3.57728,0.79896 6.80296,0.94697 9.53125,0.78125 l -0.0312,0.0312 c 2.7977,-0.24267 5.93557,-0.42426 8.34375,-1.34375 1.4935,-0.57027 2.4005,-1.43904 3.1875,-2.34375 0.0506,-0.11958 0.12205,-0.22132 0.15625,-0.34375 0.0391,-0.28476 0.0785,-0.45542 0.0937,-0.53125 0.015,-0.0749 -7.3e-4,-0.0621 0,-0.0625 -6.8e-4,-4.2e-4 0.005,-0.018 0,-0.0937 -0.005,-0.0773 -8.1e-4,-0.21231 0,-0.5 -0.024,-0.1922 -0.0676,-0.40226 -0.125,-0.59375 -0.1152,-0.3785 -0.28887,-0.75013 -0.53125,-1.125 -0.47139,-0.72912 -1.16519,-1.44809 -2.0625,-2.15625 -1.66351,-1.31336 -3.99576,-2.58272 -6.71875,-3.8125 -2.31867,-1.04924 -4.86763,-2.00675 -7.34375,-3.0625 -1.72915,-0.84294 -3.09392,-1.28622 -3.59375,-1.6875 -0.0621,-0.0499 -0.0901,-0.10636 -0.125,-0.15625 -0.45281,-0.0886 -1.17461,-1.31192 -2.4375,-2.84375 -1.45775,-1.97251 -2.84904,-4.05918 -4.25,-5.96875 -1.6371,-2.2372 -3.21891,-4.12475 -4.71875,-5.40625 -0.80971,-0.69174 -1.59101,-1.19859 -2.34375,-1.5 -0.3873,-0.15511 -0.75608,-0.274 -1.125,-0.3125 -0.1869,-0.0199 -0.3809,-0.0121 -0.5625,0 z"
id="path5804" />
</clipPath>
<filter
inkscape:collect="always"
id="filter5814"
color-interpolation-filters="sRGB">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.34837003"
id="feGaussianBlur5816" />
</filter>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath6018">
<path
style="fill:#fda864;fill-opacity:1;stroke:none"
d="m 505.7188,535.46875 c -0.0913,0.006 -0.19131,0.0169 -0.28125,0.0312 -0.0854,0.0137 -0.16595,0.0411 -0.25,0.0625 -0.01,0.003 -0.0213,-0.003 -0.0312,0 -0.0938,0.025 -0.19066,0.0593 -0.28125,0.0937 -1.79515,0.60007 -4.41142,2.89744 -5.28125,4.875 -0.37352,0.81205 -0.6923,1.71506 -0.96875,2.8125 -0.51252,2.03105 -0.65384,4.74515 -0.25,7.9375 0.3298,2.69483 1.08634,5.84095 2.5625,9.21875 0.91661,2.44272 2.74644,5.44877 6.15625,8.4375 0.40045,0.29688 0.78917,0.57928 1.1875,0.84375 3.20319,2.12655 6.07314,3.06958 8.3125,3.4375 3.67177,0.81981 6.96924,0.98331 9.78125,0.8125 3.34236,-0.19132 6.12479,-0.83507 8.125,-1.75 0.84192,-0.45733 1.95625,-1.13921 2.5625,-1.6875 1.786,-1.61523 3.19802,-3.02233 3.96875,-4.25 0.031,-0.043 0.065,-0.0816 0.0937,-0.125 0.0859,-0.14409 0.15233,-0.26698 0.21875,-0.40625 0.0327,-0.0654 0.066,-0.1212 0.0937,-0.1875 0.0488,-0.11704 0.0914,-0.23009 0.125,-0.34375 0.009,-0.0679 0.0235,-0.0718 0.0312,-0.125 0.01,-0.0396 0.0234,-0.0858 0.0312,-0.125 0.0139,-0.0884 0.0233,-0.24156 0.0312,-0.28125 0.0149,-0.0743 -7.3e-4,-0.0622 0,-0.0625 -6.8e-4,-4.5e-4 0.004,-0.018 0,-0.0937 -0.005,-0.0773 -8.2e-4,-0.21231 0,-0.5 -0.024,-0.1922 -0.0676,-0.40226 -0.125,-0.59375 -0.1152,-0.3785 -0.28887,-0.75013 -0.53125,-1.125 -0.47138,-0.72912 -1.16539,-1.44783 -2.0625,-2.15625 -1.66351,-1.31335 -3.99576,-2.58272 -6.71875,-3.8125 -2.31868,-1.04924 -4.86763,-2.00674 -7.34375,-3.0625 -1.72915,-0.84294 -3.0941,-1.28598 -3.59375,-1.6875 -0.0621,-0.0499 -0.0901,-0.10636 -0.125,-0.15625 -0.45282,-0.0886 -1.1746,-1.31192 -2.4375,-2.84375 -1.45776,-1.97251 -2.84903,-4.05918 -4.25,-5.96875 -1.6371,-2.2372 -3.21894,-4.12471 -4.71875,-5.40625 -0.8097,-0.69174 -1.59101,-1.19859 -2.34375,-1.5 -0.38731,-0.15511 -0.75607,-0.27401 -1.125,-0.3125 -0.18689,-0.0199 -0.3809,-0.0121 -0.5625,0 z"
id="path6020" />
</clipPath>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5911"
id="linearGradient6099"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.302895,7.7925006,-220.9128)"
x1="553.21429"
y1="586.09973"
x2="553.21429"
y2="654.58832" />
<mask
maskUnits="userSpaceOnUse"
id="mask6095">
<rect
y="527.1416"
x="480.29251"
height="62.352833"
width="146.07143"
id="rect6097"
style="fill:url(#linearGradient6099);stroke:none" />
</mask>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient5196"
id="radialGradient6139"
gradientUnits="userSpaceOnUse"
cx="520.73364"
cy="551.07397"
fx="520.73364"
fy="551.07397"
r="15.404826" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient5196"
id="radialGradient6141"
gradientUnits="userSpaceOnUse"
cx="520.73364"
cy="551.07397"
fx="520.73364"
fy="551.07397"
r="15.404826" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient5196"
id="radialGradient3038"
gradientUnits="userSpaceOnUse"
cx="520.73364"
cy="551.07397"
fx="520.73364"
fy="551.07397"
r="15.404826" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient5196"
id="radialGradient3056"
gradientUnits="userSpaceOnUse"
cx="520.73364"
cy="551.07397"
fx="520.73364"
fy="551.07397"
r="15.404826" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient5196"
id="radialGradient3848"
gradientUnits="userSpaceOnUse"
cx="520.73364"
cy="551.07397"
fx="520.73364"
fy="551.07397"
r="15.404826" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient5196"
id="radialGradient3046"
gradientUnits="userSpaceOnUse"
cx="520.73364"
cy="551.07397"
fx="520.73364"
fy="551.07397"
r="15.404826" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="7.655319"
inkscape:cx="7.3876852"
inkscape:cy="17.809677"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1024"
inkscape:window-height="554"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1"
showguides="true"
inkscape:guide-bbox="true"
inkscape:snap-nodes="false"
borderlayer="true"
inkscape:showpageshadow="false">
<sodipodi:guide
orientation="0,1"
position="41.680426,22.444142"
id="guide5818" />
<sodipodi:guide
orientation="1,0"
position="23.466136,22.444142"
id="guide5820" />
<sodipodi:guide
orientation="0,1"
position="38.755076,38.927952"
id="guide5829" />
<sodipodi:guide
orientation="0,1"
position="75.787566,-0.055861834"
id="guide5907" />
</sodipodi:namedview>
<metadata
id="metadata2848">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>Clementine Music Player Logo</dc:title>
<dc:date>may 28 2010</dc:date>
<dc:creator>
<cc:Agent>
<dc:title>Carlos Jenkins Perez</dc:title>
</cc:Agent>
</dc:creator>
<dc:rights>
<cc:Agent>
<dc:title>CC-BY-SA</dc:title>
</cc:Agent>
</dc:rights>
<dc:subject>
<rdf:Bag>
<rdf:li>clementine</rdf:li>
<rdf:li>music</rdf:li>
<rdf:li>player</rdf:li>
<rdf:li>logo</rdf:li>
</rdf:Bag>
</dc:subject>
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-sa/3.0/" />
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-sa/3.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Notice" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Attribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
<g
inkscape:label="Capa 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-498.141,-535.45653)">
<path
style="fill:#808080;fill-opacity:1;stroke:none"
d="M 7.59375 0 C 7.5024057 0.0060692593 7.4024399 0.0168698 7.3125 0.03125 C 7.2271309 0.044954213 7.1465496 0.072367007 7.0625 0.09375 C 7.0525468 0.096282197 7.0411838 0.091106801 7.03125 0.09375 C 6.9374304 0.11871354 6.8405918 0.15307764 6.75 0.1875 C 6.7158764 0.20049035 6.689903 0.2356563 6.65625 0.25 C 4.8644988 0.89758935 2.2923894 3.1501645 1.4375 5.09375 C 1.06398 5.9058 0.7452 6.80881 0.46875 7.90625 C -0.04377 9.9373 -0.15384 12.6514 0.25 15.84375 C 0.5798 18.53858 1.30509 21.65345 2.78125 25.03125 C 3.69786 27.47397 5.52769 30.51127 8.9375 33.5 C 9.33795 33.79688 9.72667 34.04803 10.125 34.3125 C 13.32819 36.43905 16.22939 37.41333 18.46875 37.78125 C 22.14052 38.60106 25.43799 38.76456 28.25 38.59375 C 31.59236 38.40243 34.34354 37.75868 36.34375 36.84375 C 37.18567 36.38642 38.3 35.67329 38.90625 35.125 C 40.690124 33.511689 42.103609 32.132877 42.875 30.90625 C 42.882593 30.894175 42.898785 30.887041 42.90625 30.875 C 42.929719 30.84243 42.946536 30.814087 42.96875 30.78125 C 42.976247 30.768678 42.992647 30.762535 43 30.75 C 43.08373 30.623092 43.154117 30.505705 43.21875 30.375 C 43.308532 30.195301 43.385414 29.998905 43.4375 29.8125 C 43.457035 29.670115 43.455737 29.644496 43.46875 29.5625 C 43.481763 29.480504 43.492385 29.350413 43.5 29.3125 C 43.514929 29.238175 43.530516 29.219095 43.53125 29.21875 C 43.530571 29.218303 43.535737 29.23202 43.53125 29.15625 C 43.526673 29.078951 43.49918 28.912686 43.5 28.625 C 43.476035 28.432796 43.432416 28.253993 43.375 28.0625 C 43.259796 27.684 43.086132 27.312369 42.84375 26.9375 C 42.372366 26.208379 41.678356 25.489674 40.78125 24.78125 C 39.117743 23.467904 36.785487 22.198534 34.0625 20.96875 C 31.743824 19.91951 29.226115 18.930756 26.75 17.875 C 25.020852 17.03206 23.655897 16.589023 23.15625 16.1875 C 23.094114 16.137567 23.034894 16.081138 23 16.03125 C 22.547184 15.942618 21.825399 14.750577 20.5625 13.21875 C 19.104742 11.246243 17.71347 9.1283167 16.3125 7.21875 C 14.675402 4.9815487 13.124812 3.0940398 11.625 1.8125 C 10.815297 1.1207599 10.033985 0.61391126 9.28125 0.3125 C 8.893943 0.15738766 8.4939264 0.069744921 8.125 0.03125 C 7.9381122 0.01136253 7.7753487 -0.012066106 7.59375 0 z "
transform="translate(498.141,535.45653)"
id="path2875" />
<flowRoot
xml:space="preserve"
id="flowRoot6185"
style="font-size:4px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Duepuntozero;-inkscape-font-specification:Duepuntozero"
transform="translate(407.56824,479.61896)"><flowRegion
id="flowRegion6187"><rect
id="rect6189"
width="67.08963"
height="8.7880993"
x="137.60876"
y="85.737549"
style="font-size:4px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ffffff;font-family:Duepuntozero;-inkscape-font-specification:Duepuntozero" /></flowRegion><flowPara
id="flowPara6191" /></flowRoot> <text
xml:space="preserve"
style="font-size:8px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
x="138.6805"
y="90.453117"
id="text6193"
transform="translate(407.56824,479.61896)"><tspan
sodipodi:role="line"
id="tspan6195"
x="138.6805"
y="90.453117" /></text>
</g>
</svg>

+ 206
- 0
src/icons/scalable/pb_generic.svg View File

@@ -0,0 +1,206 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="12"
height="12"
id="svg3970"
version="1.1"
inkscape:version="0.48.0 r9654"
sodipodi:docname="generic_app.svg">
<defs
id="defs3972">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective3978" />
<inkscape:perspective
id="perspective3942"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="15.839192"
inkscape:cx="6.7741578"
inkscape:cy="4.682888"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="881"
inkscape:window-height="654"
inkscape:window-x="135"
inkscape:window-y="27"
inkscape:window-maximized="0" />
<metadata
id="metadata3975">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-369,-297.79076)">
<rect
style="opacity:0;fill:#ffffff;fill-opacity:1;stroke:none;display:inline"
id="rect6036"
width="12"
height="12"
x="369"
y="297.79077"
inkscape:export-filename="/home/hbons/Intel/git/moblin-icon-theme/image.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<rect
transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)"
y="476.76953"
x="47.158176"
height="6.4023466"
width="6.4023466"
id="rect6042"
style="color:#000000;fill:none;stroke:#808080;stroke-width:0.99999994000000003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
sodipodi:open="true"
sodipodi:end="5.1447968"
sodipodi:start="2.7118304"
transform="matrix(0.41904762,0,0,0.41904762,36.31905,214.50967)"
d="m 809.40926,221.7343 a 6.5625,6.5625 0 0 1 8.71581,-8.69278"
sodipodi:ry="6.5625"
sodipodi:rx="6.5625"
sodipodi:cy="219"
sodipodi:cx="815.375"
id="path6065"
style="color:#000000;fill:none;stroke:#808080;stroke-width:1.19318187000000009;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
sodipodi:type="arc"
style="color:#000000;fill:#808080;stroke:#808080;stroke-width:1.19318187000000009;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="path6067"
sodipodi:cx="815.375"
sodipodi:cy="219"
sodipodi:rx="6.5625"
sodipodi:ry="6.5625"
d="m 810.39734,223.2766 a 6.5625,6.5625 0 0 1 9.50947,-9.02308 L 815.375,219 z"
transform="matrix(-0.41904762,0,0,-0.41904762,714.1803,393.55253)"
sodipodi:start="2.4318052"
sodipodi:end="5.4746539" />
<path
transform="matrix(0.72725935,0,0,0.72726915,-213.44374,147.55459)"
d="m 807.75,216.1875 a 0.6875,0.6875 0 1 1 -1.375,0 0.6875,0.6875 0 1 1 1.375,0 z"
sodipodi:ry="0.6875"
sodipodi:rx="0.6875"
sodipodi:cy="216.1875"
sodipodi:cx="807.0625"
id="path6069"
style="color:#000000;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
sodipodi:type="arc"
style="color:#000000;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="path6071"
sodipodi:cx="807.0625"
sodipodi:cy="216.1875"
sodipodi:rx="0.6875"
sodipodi:ry="0.6875"
d="m 807.75,216.1875 a 0.6875,0.6875 0 1 1 -1.375,0 0.6875,0.6875 0 1 1 1.375,0 z"
transform="matrix(0.72725935,0,0,0.72726915,-212.19374,146.77335)" />
<path
transform="matrix(0.72725935,0,0,0.72726915,-211.44374,145.5546)"
d="m 807.75,216.1875 a 0.6875,0.6875 0 1 1 -1.375,0 0.6875,0.6875 0 1 1 1.375,0 z"
sodipodi:ry="0.6875"
sodipodi:rx="0.6875"
sodipodi:cy="216.1875"
sodipodi:cx="807.0625"
id="path6073"
style="color:#000000;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
sodipodi:type="arc"
style="color:#000000;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="path6075"
sodipodi:cx="807.0625"
sodipodi:cy="216.1875"
sodipodi:rx="0.6875"
sodipodi:ry="0.6875"
d="m 807.75,216.1875 a 0.6875,0.6875 0 1 1 -1.375,0 0.6875,0.6875 0 1 1 1.375,0 z"
transform="matrix(0.72725935,0,0,0.72726915,-211.44374,144.0546)" />
<path
sodipodi:type="arc"
style="color:#000000;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="path6077"
sodipodi:cx="807.0625"
sodipodi:cy="216.1875"
sodipodi:rx="0.6875"
sodipodi:ry="0.6875"
d="m 807.75,216.1875 a 0.6875,0.6875 0 1 1 -1.375,0 0.6875,0.6875 0 1 1 1.375,0 z"
transform="matrix(0.72725935,0,0,0.72726915,-211.84999,148.05459)" />
<path
transform="matrix(0.72725935,0,0,0.72726915,-211.00624,146.80459)"
d="m 807.75,216.1875 a 0.6875,0.6875 0 1 1 -1.375,0 0.6875,0.6875 0 1 1 1.375,0 z"
sodipodi:ry="0.6875"
sodipodi:rx="0.6875"
sodipodi:cy="216.1875"
sodipodi:cx="807.0625"
id="path6079"
style="color:#000000;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
sodipodi:type="arc"
style="color:#000000;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="path6081"
sodipodi:cx="807.0625"
sodipodi:cy="216.1875"
sodipodi:rx="0.6875"
sodipodi:ry="0.6875"
d="m 807.75,216.1875 a 0.6875,0.6875 0 1 1 -1.375,0 0.6875,0.6875 0 1 1 1.375,0 z"
transform="matrix(0.72725935,0,0,0.72726915,-209.72499,146.11709)" />
<path
transform="matrix(0.72725935,0,0,0.72726915,-212.03749,149.49209)"
d="m 807.75,216.1875 a 0.6875,0.6875 0 1 1 -1.375,0 0.6875,0.6875 0 1 1 1.375,0 z"
sodipodi:ry="0.6875"
sodipodi:rx="0.6875"
sodipodi:cy="216.1875"
sodipodi:cx="807.0625"
id="path6083"
style="color:#000000;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
sodipodi:end="5.4746539"
sodipodi:start="2.4318052"
transform="matrix(-0.41904762,0,0,-0.41904762,714.1803,393.55253)"
d="m 810.39734,223.2766 a 6.5625,6.5625 0 0 1 9.50947,-9.02308 L 815.375,219 z"
sodipodi:ry="6.5625"
sodipodi:rx="6.5625"
sodipodi:cy="219"
sodipodi:cx="815.375"
id="path6085"
style="color:#000000;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1.19318187000000009;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
</g>
</svg>

+ 123
- 0
src/icons/scalable/pb_hardware.svg View File

@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="12"
height="12"
id="svg3829"
version="1.1"
inkscape:version="0.48.0 r9654"
sodipodi:docname="generic_hw.svg">
<defs
id="defs3831">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective3837" />
<inkscape:perspective
id="perspective3815"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="31.678384"
inkscape:cx="6.4170322"
inkscape:cy="5.4764028"
inkscape:document-units="px"
inkscape:current-layer="g10645-3"
showgrid="false"
inkscape:window-width="1069"
inkscape:window-height="660"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="0" />
<metadata
id="metadata3834">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-388.28571,-626.38001)">
<g
style="display:inline;fill:#808080"
transform="matrix(0.49851318,0,0,0.49851318,363.89425,443.24512)"
inkscape:label="audio-card"
id="g10645-3">
<rect
inkscape:label="bbox"
y="367.36218"
x="49"
height="24"
width="24"
id="rect10647-9"
style="opacity:0;fill:#808080;fill-opacity:1;stroke:none;display:inline" />
<g
id="g10728-4"
transform="translate(2,-2)"
style="fill:#808080">
<path
sodipodi:nodetypes="cssscccccccccc"
id="path10661-4"
d="m 55.92842,379.36225 c -1.645008,0 -3,1.35499 -3,3 0,1.64501 1.354992,3 3,3 1.645008,0 3,-1.35499 3,-3 0,-1.64501 -1.354992,-3 -3,-3 z m -1,2.50282 c 0.01105,-0.28727 0.195642,-0.50282 0.493953,-0.50282 0,0 1.027515,0 1.027515,0 0.287262,0.011 0.478532,0.20992 0.478532,0.50823 0,0 0,0.95039 0,0.95039 0,0.34251 -0.202319,0.54138 -0.489581,0.54138 0,0 -0.961223,0 -0.961223,0 -0.287262,0 -0.549196,-0.22097 -0.549196,-0.51928 0,0 0,-0.9779 0,-0.9779 z"
style="color:#000000;fill:#808080;fill-opacity:1;stroke:none;stroke-width:2.50000000000000000;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
sodipodi:nodetypes="cccc"
transform="translate(-389.07158,165.36225)"
id="path10686-6"
d="m 447,217 0,-8 8,0 0,8"
style="color:#000000;fill:#808080;fill-opacity:0;stroke:#808080;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
style="color:#000000;fill:#808080;fill-opacity:1;stroke:none;stroke-width:2.50000000000000000;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 63.92842,379.36225 c -1.645008,0 -3,1.35499 -3,3 0,1.64501 1.354992,3 3,3 1.645008,0 3,-1.35499 3,-3 0,-1.64501 -1.354992,-3 -3,-3 z m -1,2.50282 c 0.01105,-0.28727 0.195642,-0.50282 0.493953,-0.50282 0,0 1.027515,0 1.027515,0 0.287262,0.011 0.478532,0.20992 0.478532,0.50823 0,0 0,0.95039 0,0.95039 0,0.34251 -0.202319,0.54138 -0.489581,0.54138 0,0 -0.961223,0 -0.961223,0 -0.287262,0 -0.549196,-0.22097 -0.549196,-0.51928 0,0 0,-0.9779 0,-0.9779 z"
id="path10702-4"
sodipodi:nodetypes="cssscccccccccc" />
</g>
<path
style="color:#000000;fill:#808080;fill-opacity:0;fill-rule:nonzero;stroke:#808080;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 53.92842,376.36225 -4,0 0,12 3,0 0,2 9.060662,0 0,-1.99914 9.93934,-8.6e-4 0,-12 -1.681264,0"
id="path10704-0"
sodipodi:nodetypes="cccccccccc" />
<path
style="fill:#808080;stroke:#808080;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
d="m 55.42842,390.17475 0,-2.3125"
id="path10754-3" />
<path
id="path10756-0"
d="m 57.42842,390.17475 0,-2.3125"
style="fill:#808080;stroke:#808080;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:#808080;stroke:#808080;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
d="m 59.42842,390.17475 0,-2.3125"
id="path10758-5" />
</g>
</g>
</svg>

+ 282
- 0
src/icons/scalable/pb_jamin.svg View File

@@ -0,0 +1,282 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg1"
height="200.00000"
width="200.00000"
y="0.0000000"
x="0.0000000"
version="1.0"
inkscape:version="0.48.0 r9654"
sodipodi:docname="jamin.svg">
<metadata
id="metadata44">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1366"
inkscape:window-height="719"
id="namedview42"
showgrid="false"
inkscape:zoom="1.555"
inkscape:cx="100"
inkscape:cy="100.32154"
inkscape:window-x="-3"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg1" />
<defs
id="defs3">
<linearGradient
id="linearGradient3134">
<stop
id="stop3136"
offset="0.0000000"
style="stop-color:#36ba4a;stop-opacity:1.0000000;" />
<stop
id="stop3138"
offset="1.0000000"
style="stop-color:#0f3615;stop-opacity:1.0000000;" />
</linearGradient>
<linearGradient
id="linearGradient298">
<stop
id="stop299"
offset="0.0000000"
style="stop-color:#ffffff;stop-opacity:1.0000000;" />
<stop
id="stop300"
offset="1.0000000"
style="stop-color:#0ed12d;stop-opacity:0.0000000;" />
</linearGradient>
<linearGradient
id="linearGradient219">
<stop
id="stop220"
offset="0.0000000"
style="stop-color:#0ed12d;stop-opacity:1.0000000;" />
<stop
id="stop221"
offset="1.0000000"
style="stop-color:#0ed12d;stop-opacity:0.0000000;" />
</linearGradient>
<radialGradient
spreadMethod="pad"
gradientTransform="scale(1.006390,0.993651)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient298"
id="radialGradient301"
fy="74.157272"
fx="58.525269"
r="23.150042"
cy="74.157272"
cx="58.525269" />
<linearGradient
id="linearGradient8890">
<stop
id="stop8891"
offset="0.0000000"
style="stop-color:#f8f8f8;stop-opacity:1.0000000;" />
<stop
id="stop8892"
offset="1.0000000"
style="stop-color:#030303;stop-opacity:1.0000000;" />
</linearGradient>
<linearGradient
id="linearGradient13560">
<stop
id="stop13561"
offset="0.0000000"
style="stop-color:#000000;stop-opacity:1.0000000;" />
<stop
id="stop13562"
offset="1.0000000"
style="stop-color:#ffffff;stop-opacity:1.0000000;" />
</linearGradient>
<linearGradient
gradientTransform="matrix(1.129882,0.000000,0.000000,0.885048,-1692.814,-1045.923)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient13560"
id="linearGradient375"
y2="649.07062"
x2="627.73749"
y1="877.37781"
x1="652.17169" />
<radialGradient
gradientTransform="scale(1.284523,0.778499)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient8890"
id="radialGradient538"
fy="123.33773"
fx="108.12981"
r="5.3944039"
cy="123.33773"
cx="108.12981" />
<radialGradient
gradientTransform="scale(1.284523,0.778499)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient8890"
id="radialGradient542"
fy="123.33773"
fx="108.12981"
r="5.3944039"
cy="123.33773"
cx="108.12981" />
<linearGradient
spreadMethod="reflect"
gradientTransform="scale(1.006390,0.993651)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient219"
id="linearGradient2234"
y2="25.785942"
x2="44.790215"
y1="36.928242"
x1="55.985397" />
<radialGradient
spreadMethod="pad"
gradientTransform="scale(1.006390,0.993651)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient219"
id="radialGradient2308"
fy="74.387192"
fx="61.588699"
r="22.577679"
cy="74.387192"
cx="61.588699" />
<radialGradient
spreadMethod="pad"
gradientTransform="scale(1.006390,0.993651)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient219"
id="radialGradient2336"
fy="74.387192"
fx="61.588699"
r="22.577679"
cy="74.387192"
cx="61.588699" />
<radialGradient
spreadMethod="pad"
gradientTransform="scale(1.006390,0.993651)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient298"
id="radialGradient2337"
fy="74.157272"
fx="58.525269"
r="23.150042"
cy="74.157272"
cx="58.525269" />
<radialGradient
gradientTransform="scale(1.284523,0.778499)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient8890"
id="radialGradient2338"
fy="123.33773"
fx="108.12981"
r="5.3944039"
cy="123.33773"
cx="108.12981" />
<radialGradient
gradientTransform="scale(1.284523,0.778499)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient8890"
id="radialGradient2339"
fy="123.33773"
fx="108.12981"
r="5.3944039"
cy="123.33773"
cx="108.12981" />
<radialGradient
gradientTransform="matrix(0.999803,-0.903606,1.572768,1.740205,-231.8243,-201.5550)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient3134"
id="radialGradient3142"
fy="127.78791"
fx="-62.471836"
r="100.00000"
cy="127.78791"
cx="-62.471836" />
<radialGradient
gradientTransform="matrix(3.243545,0.000000,0.000000,1.965785,-267.6236,-97.96451)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient8890"
id="radialGradient3145"
fy="123.33773"
fx="108.12981"
r="5.3944039"
cy="123.33773"
cx="108.12981" />
<radialGradient
spreadMethod="pad"
gradientTransform="matrix(1.403736,1.221249,-0.710523,1.146068,110.8215,-106.2981)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient298"
id="radialGradient3152"
fy="74.157272"
fx="58.525269"
r="23.150042"
cy="74.157272"
cx="58.525269" />
<radialGradient
spreadMethod="pad"
gradientTransform="matrix(1.970921,2.576196,-2.525733,1.242549,190.9645,-184.6568)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient219"
id="radialGradient3155"
fy="74.387192"
fx="61.588699"
r="22.577679"
cy="74.387192"
cx="61.588699" />
<radialGradient
gradientTransform="scale(1.284523,0.778499)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient8890"
id="radialGradient3168"
fy="123.33773"
fx="108.12981"
r="5.3944039"
cy="123.33773"
cx="108.12981" />
<radialGradient
gradientTransform="matrix(3.224742,0.000000,0.000000,1.954389,-262.7127,-93.11511)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient8890"
id="radialGradient3170"
fy="123.33773"
fx="108.12981"
r="5.3944039"
cy="123.33773"
cx="108.12981" />
</defs>
<g
id="layer1" />
<path
style="color:#000000;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 102.90625 0.625 A 99.420302 99.420302 0 0 0 0.59375 100 A 99.420302 99.420302 0 0 0 199.40625 100 A 99.420302 99.420302 0 0 0 102.90625 0.625 z M 102.6875 25.71875 C 105.96288 27.084515 143.11571 44.249226 143.125 79.71875 C 123.56192 49.939818 116.11563 49.495693 109.96875 48.53125 C 109.00887 61.834846 108.11426 100.87678 113 133.1875 C 113.22843 134.00177 113.20681 134.47095 113.0625 134.8125 C 113.31216 136.28373 113.49727 137.79987 113.5 139.5 C 113.51114 146.425 111.09356 152.76658 107.03125 157.84375 C 89.918605 173.24463 64.208712 167.92941 58.34375 157.875 C 54.264963 152.80247 51.654661 131.53258 84.40625 130.09375 C 92.417328 130.08913 99.23489 131.38651 104.3125 134.375 C 100.57266 106.70704 102.98838 27.631535 102.78125 27.125 L 102.84375 27.125 L 102.6875 25.71875 z "
id="path2087" />
</svg>

+ 154
- 0
src/icons/scalable/pb_mplayer.svg View File

@@ -0,0 +1,154 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
width="48"
height="48"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.48.0 r9654"
sodipodi:docname="mplayer.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<metadata
id="metadata31">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
inkscape:window-height="614"
inkscape:window-width="1011"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10000"
gridtolerance="10000"
objecttolerance="10000"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
width="48px"
height="48px"
showgrid="true"
inkscape:zoom="3.1112699"
inkscape:cx="14.843428"
inkscape:cy="24.984022"
inkscape:window-x="89"
inkscape:window-y="127"
inkscape:current-layer="g2020"
inkscape:window-maximized="0" />
<defs
id="defs4">
<linearGradient
id="linearGradient3655">
<stop
style="stop-color:white;stop-opacity:1"
offset="0"
id="stop3657" />
<stop
style="stop-color:white;stop-opacity:0"
offset="1"
id="stop3659" />
</linearGradient>
<linearGradient
x1="108.11752"
y1="16.246464"
x2="108.97424"
y2="24.144896"
id="linearGradient1969"
xlink:href="#linearGradient3655"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,-1,1,0,-4.523091,226.3445)" />
<linearGradient
x1="108.11752"
y1="16.246464"
x2="108.97424"
y2="24.144896"
id="linearGradient1971"
xlink:href="#linearGradient3655"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,1,-1,0,220.9148,-49.35703)" />
<linearGradient
x1="108.11752"
y1="16.246464"
x2="108.97424"
y2="24.144896"
id="linearGradient1973"
xlink:href="#linearGradient3655"
gradientUnits="userSpaceOnUse" />
<linearGradient
x1="108.11752"
y1="16.246464"
x2="108.97424"
y2="24.144896"
id="linearGradient1975"
xlink:href="#linearGradient3655"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1,0,0,-1,216.0238,177.6105)" />
</defs>
<g
id="layer1"
transform="matrix(0.216424,0,0,0.2188051,0.5410332,3.5916535)"
style="fill:#808080">
<g
id="g2020"
style="fill:#808080">
<g
transform="matrix(1,0,0,0.930282,0,0.766728)"
id="g3763"
style="fill:#808080">
<g
id="g3758"
style="fill:#808080">
<path
style="color:#303030;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:38.11546707000000112;stroke-linecap:round;stroke-linejoin:round;marker:none;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 38.0625 2.125 C 37.723332 2.1242622 37.406436 2.1235485 37.0625 2.15625 L 7 5.03125 C 5.5631055 5.1678579 4.3373208 5.9792012 3.71875 7.15625 C 1.3583789 9.1493204 0.073405307 12.265748 0.375 15.40625 L 1.71875 29.34375 C 0.44375711 30.120106 -0.31468301 31.495603 -0.15625 32.96875 C 0.40222238 38.144185 5.4345274 42.02322 10.9375 41.5 L 25.375 40.125 C 24.68695 38.735718 24.274405 37.180382 24.25 35.53125 C 24.2457 35.485793 24.218955 35.451914 24.21875 35.40625 C 24.218746 35.40397 24.218745 35.377281 24.21875 35.375 L 6.71875 35.375 C 5.0762248 35.375 3.75 34.035596 3.75 32.375 L 3.75 11.84375 C 3.7499999 10.183154 5.0762247 8.84375 6.71875 8.84375 L 41.15625 8.84375 C 42.798777 8.8437501 44.125 10.183154 44.125 11.84375 L 44.125 30.6875 C 44.813527 32.101179 45.21706 33.697669 45.21875 35.375 C 45.218815 35.439358 45.219818 35.498403 45.21875 35.5625 C 46.975086 33.601138 47.883724 30.944089 47.625 28.25 L 46.28125 14.28125 C 47.531811 13.504159 48.283471 12.155915 48.125 10.6875 C 47.601435 5.8355314 43.150014 2.1360644 38.0625 2.125 z "
transform="matrix(4.6205596,0,0,4.9127871,-2.4998762,-18.469218)"
id="rect1872" />
</g>
<g
id="g3753"
style="fill:#808080" />
</g>
<g
id="g2012"
style="fill:#808080">
<g
id="g2006"
style="fill:#808080" />
</g>
<g
transform="translate(0,-10)"
id="g3675"
style="fill:#808080">
<path
d="M 140.95734,128.20425 L 190.13569,156.70785 L 140.86783,183.69661 L 140.95734,128.20425 z "
style="fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path6330" />
</g>
</g>
</g>
<path
style="font-size:42.40975189000000256px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Century Gothic"
d="M 10.875,14.65625 L 8,28.6875 L 11.09375,28.6875 L 12.90625,19.8125 L 16.40625,28.6875 L 19.1875,28.6875 L 22.75,19.8125 L 24.53125,28.6875 L 26.59375,28.6875 C 26.846864,28.371845 27.119824,28.065588 27.40625,27.78125 L 24.78125,14.65625 L 21.71875,14.65625 L 17.8125,24.4375 L 13.96875,14.65625 L 10.875,14.65625 z M 30.125,14.65625 L 30.125,25.8125 C 31.100307,25.326012 32.16595,25.001596 33.28125,24.84375 L 33.28125,22.75 C 34.895005,22.750006 36.014176,22.677611 36.625,22.53125 C 37.665642,22.276725 38.490465,21.805312 39.09375,21.15625 C 39.704557,20.507204 39.999985,19.698704 40,18.71875 C 39.999985,17.834265 39.780026,17.098726 39.3125,16.46875 C 38.852495,15.832435 38.213123,15.373748 37.40625,15.09375 C 36.606901,14.807417 35.286114,14.656264 33.46875,14.65625 L 30.125,14.65625 z M 33.28125,17.28125 L 34.1875,17.28125 C 35.167816,17.281262 35.82553,17.346725 36.1875,17.53125 C 36.685195,17.779428 36.937486,18.177882 36.9375,18.71875 C 36.937487,19.03056 36.837224,19.308545 36.65625,19.53125 C 36.482799,19.74761 36.246669,19.90456 35.9375,20 C 35.628315,20.095458 35.073044,20.125009 34.28125,20.125 L 33.28125,20.125 L 33.28125,17.28125 z "
id="text7217"
sodipodi:nodetypes="cccccccccccccccccccsssssccccssssccc" />
<path
style="opacity:1;color:#303030;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:13.78605175000000038;stroke-linecap:round;stroke-linejoin:round;marker:none;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 34.722499,24.726859 C 28.971286,24.729408 24.284516,29.473549 24.239461,35.291042 C 24.239247,35.31866 24.232702,35.345429 24.232698,35.373094 C 24.232678,35.377653 24.232678,35.382211 24.232698,35.38677 C 24.232693,35.389049 24.232693,35.391328 24.232698,35.393607 C 24.232904,35.439272 24.23516,35.484903 24.239461,35.53036 C 24.32518,41.322569 29.009693,46.028682 34.742788,46.01933 C 40.521296,46.009904 45.224958,41.214722 45.219063,35.359419 C 45.213163,29.504114 40.501013,24.724294 34.722499,24.726859 z M 34.722499,27.742266 C 38.882884,27.74042 42.232206,31.134227 42.236469,35.366257 C 42.240731,39.598284 38.903172,42.997135 34.742788,43.003922 C 30.582403,43.010707 27.224433,39.618788 27.215291,35.38677 C 27.215312,35.382211 27.215312,35.377653 27.215291,35.373094 C 27.215908,31.141064 30.562113,27.744111 34.722499,27.742266 z "
id="path5443" />
</svg>

+ 92
- 0
src/icons/scalable/pb_vlc.svg View File

@@ -0,0 +1,92 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="128"
height="128"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.48.0 r9654"
version="1.0"
sodipodi:docname="vlc.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs4">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.979899"
inkscape:cx="-62.185081"
inkscape:cy="68.125788"
inkscape:document-units="px"
inkscape:current-layer="layer2"
showgrid="true"
showguides="false"
inkscape:window-width="1366"
inkscape:window-height="719"
inkscape:window-x="-3"
inkscape:window-y="27"
inkscape:window-maximized="1">
<inkscape:grid
type="xygrid"
id="grid2383"
visible="true"
enabled="true" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Capa 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="opacity:1;fill:#808080;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect2383"
width="127.59822"
height="19.04673"
x="0.35714287"
y="108.90863" />
<path
style="opacity:1;fill:#808080;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 50.75 0.5 L 37.25 45.71875 L 91.0625 45.71875 L 77.5625 0.5 L 50.75 0.5 z M 25.3125 85.625 L 15.4375 118.71875 L 112.875 118.71875 L 103 85.625 L 25.3125 85.625 z "
id="path2395" />
</g>
<g
inkscape:groupmode="layer"
id="layer2"
style="opacity:0.76">
<path
style="opacity:1;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 91.128807,45.699527 L 37.316307,45.699527 L 25.378807,85.629451 L 103.06631,85.629451 L 91.128807,45.699527 z"
id="path2393" />
</g>
</svg>

+ 0
- 3
src/ledbutton.py View File

@@ -43,9 +43,6 @@ class LEDButton(QPushButton):

self.setColor(self.BLUE)

from PyQt4.QtCore import QTimer
QTimer.singleShot(3000, self.close)

def setColor(self, color):
self.m_color = color



+ 1652
- 397
src/patchcanvas.py
File diff suppressed because it is too large
View File


+ 5
- 2
src/patchcanvas_theme.py View File

@@ -35,7 +35,7 @@ class Theme(object):

if (idx == self.THEME_MODERN_DARK):
# Name this theme
self.m_name = "Modern Dark"
self.name = "Modern Dark"

# Canvas
self.canvas_bg = QColor(0,0,0)
@@ -96,7 +96,7 @@ class Theme(object):

elif (idx == self.THEME_CLASSIC_DARK):
# Name this theme
self.m_name = "Classic Dark"
self.name = "Classic Dark"

# Canvas
self.canvas_bg = QColor(0,0,0)
@@ -165,3 +165,6 @@ def getThemeName(idx):
return "Classic Dark"
else:
return ""

def getDefaultThemeName():
return "Modern Dark"

Loading…
Cancel
Save