summaryrefslogtreecommitdiffstats
path: root/pulsecaster
diff options
context:
space:
mode:
Diffstat (limited to 'pulsecaster')
-rw-r--r--pulsecaster/__init__.py23
-rw-r--r--pulsecaster/config.py50
-rw-r--r--pulsecaster/data/icons/16x16/pulsecaster-16.pngbin889 -> 0 bytes
-rw-r--r--pulsecaster/data/icons/24x24/pulsecaster-24.pngbin1570 -> 0 bytes
-rw-r--r--pulsecaster/data/icons/32x32/pulsecaster-32.pngbin2395 -> 0 bytes
-rw-r--r--pulsecaster/data/icons/48x48/pulsecaster-48.pngbin4220 -> 0 bytes
-rw-r--r--pulsecaster/data/icons/64x64/pulsecaster-64.pngbin6367 -> 0 bytes
-rw-r--r--pulsecaster/data/icons/scalable/pulsecaster-logo.svg845
-rw-r--r--pulsecaster/data/icons/scalable/pulsecaster.svg1043
-rw-r--r--pulsecaster/data/pulsecaster.glade471
-rw-r--r--pulsecaster/gconfig.py44
-rw-r--r--pulsecaster/pulseaudio/PulseClient.py66
-rw-r--r--pulsecaster/pulseaudio/PulseObj.py623
-rw-r--r--pulsecaster/pulseaudio/PulseSink.py213
-rw-r--r--pulsecaster/pulseaudio/PulseSource.py189
-rw-r--r--pulsecaster/pulseaudio/PulseVolume.py114
-rw-r--r--pulsecaster/pulseaudio/__init__.py29
-rw-r--r--pulsecaster/pulseaudio/lib_pulseaudio.py733
-rw-r--r--pulsecaster/ui.py239
19 files changed, 0 insertions, 4682 deletions
diff --git a/pulsecaster/__init__.py b/pulsecaster/__init__.py
deleted file mode 100644
index 4204c27..0000000
--- a/pulsecaster/__init__.py
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/usr/bin/python
-#
-# Copyright (C) 2009 Paul W. Frields
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-#
-# Author: Paul W. Frields <stickster@gmail.com>
-
-
-from config import *
-from ui import *
diff --git a/pulsecaster/config.py b/pulsecaster/config.py
deleted file mode 100644
index 31b3409..0000000
--- a/pulsecaster/config.py
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/usr/bin/python
-# -*- coding: iso-8859-15 -*-
-#
-# Copyright (C) 2009 Paul W. Frields
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-#
-# Author: Paul W. Frields <stickster@gmail.com>
-
-
-NAME = u'PulseCaster'
-VERSION = u'0.1.3'
-AUTHOR = u'Paul W. Frields'
-AUTHOR_EMAIL = u'stickster@gmail.com'
-DESCRIPTION = u'PulseAudio based podcast recorder'
-LICENSE = u'GPLv3+'
-COPYRIGHT = u'Copyright © 2009 ' + AUTHOR
-KEYWORDS = u'pulseaudio podcast recorder mixer gstreamer pygtk'
-URL = u'http://pfrields.fedorapeople.org' # FIXME: Project needs a
- # home!
-CONTRIBUTORS = [u'Harry Karvonen <harry.karvonen@gmail.com>']
-
-LICENSE_TEXT = u'''Licensed under the GNU General Public License Version 3
-
-PulseCaster is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 3
-of the License, or (at your option) any later version.
-
-PulseCaster is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301, USA.'''
diff --git a/pulsecaster/data/icons/16x16/pulsecaster-16.png b/pulsecaster/data/icons/16x16/pulsecaster-16.png
deleted file mode 100644
index c6840c9..0000000
--- a/pulsecaster/data/icons/16x16/pulsecaster-16.png
+++ /dev/null
Binary files differ
diff --git a/pulsecaster/data/icons/24x24/pulsecaster-24.png b/pulsecaster/data/icons/24x24/pulsecaster-24.png
deleted file mode 100644
index 4cc7a58..0000000
--- a/pulsecaster/data/icons/24x24/pulsecaster-24.png
+++ /dev/null
Binary files differ
diff --git a/pulsecaster/data/icons/32x32/pulsecaster-32.png b/pulsecaster/data/icons/32x32/pulsecaster-32.png
deleted file mode 100644
index 9a15d49..0000000
--- a/pulsecaster/data/icons/32x32/pulsecaster-32.png
+++ /dev/null
Binary files differ
diff --git a/pulsecaster/data/icons/48x48/pulsecaster-48.png b/pulsecaster/data/icons/48x48/pulsecaster-48.png
deleted file mode 100644
index fdc2f3d..0000000
--- a/pulsecaster/data/icons/48x48/pulsecaster-48.png
+++ /dev/null
Binary files differ
diff --git a/pulsecaster/data/icons/64x64/pulsecaster-64.png b/pulsecaster/data/icons/64x64/pulsecaster-64.png
deleted file mode 100644
index 4a4425a..0000000
--- a/pulsecaster/data/icons/64x64/pulsecaster-64.png
+++ /dev/null
Binary files differ
diff --git a/pulsecaster/data/icons/scalable/pulsecaster-logo.svg b/pulsecaster/data/icons/scalable/pulsecaster-logo.svg
deleted file mode 100644
index 8e51935..0000000
--- a/pulsecaster/data/icons/scalable/pulsecaster-logo.svg
+++ /dev/null
@@ -1,845 +0,0 @@
-<?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="82.392563"
- height="28.269129"
- id="svg2161"
- sodipodi:version="0.32"
- inkscape:version="0.46+devel"
- sodipodi:docname="pulsecaster-logo.svg"
- inkscape:output_extension="org.inkscape.output.svg.inkscape"
- version="1.0">
- <defs
- id="defs2163">
- <radialGradient
- r="12.59534"
- fy="36.907261"
- fx="23.82066"
- cy="36.907261"
- cx="23.82066"
- gradientTransform="matrix(1,0,0,0.508772,0,18.12988)"
- gradientUnits="userSpaceOnUse"
- id="radialGradient3012-3"
- xlink:href="#linearGradient4499-8"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient4499-8"
- inkscape:collect="always">
- <stop
- id="stop4501-0"
- offset="0"
- style="stop-color:black;stop-opacity:1;" />
- <stop
- id="stop4503-9"
- offset="1"
- style="stop-color:black;stop-opacity:0;" />
- </linearGradient>
- <radialGradient
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,0.508772,0,18.12988)"
- r="12.59534"
- fy="36.907261"
- fx="23.82066"
- cy="36.907261"
- cx="23.82066"
- id="radialGradient4505-7"
- xlink:href="#linearGradient4499-8"
- inkscape:collect="always" />
- <linearGradient
- y2="5.5441942"
- x2="32.864544"
- y1="13.794194"
- x1="32.864544"
- gradientTransform="translate(-0.25,13.5)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient4473-9"
- xlink:href="#linearGradient4475-9"
- inkscape:collect="always" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient4475-9">
- <stop
- style="stop-color:black;stop-opacity:1"
- offset="0"
- id="stop4477-3" />
- <stop
- style="stop-color:black;stop-opacity:0"
- offset="1"
- id="stop4479-2" />
- </linearGradient>
- <linearGradient
- gradientTransform="translate(-0.25,12.5)"
- y2="5.5441942"
- x2="32.864544"
- y1="13.794194"
- x1="32.864544"
- gradientUnits="userSpaceOnUse"
- id="linearGradient4460-4"
- xlink:href="#linearGradient4465-3"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient4465-3"
- inkscape:collect="always">
- <stop
- id="stop4467-7"
- offset="0"
- style="stop-color:#2e3436;stop-opacity:1" />
- <stop
- id="stop4469-1"
- offset="1"
- style="stop-color:#2e3436;stop-opacity:0" />
- </linearGradient>
- <radialGradient
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.106546,0,0,0.58328,-1.909343,15.04719)"
- r="13.08399"
- fy="40.578671"
- fx="18.753521"
- cy="40.578671"
- cx="18.753521"
- id="radialGradient3691-2"
- xlink:href="#linearGradient3711-2"
- inkscape:collect="always" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient3711-2">
- <stop
- style="stop-color:#babdb6;stop-opacity:1"
- offset="0"
- id="stop3713-0" />
- <stop
- style="stop-color:#888a85;stop-opacity:1"
- offset="1"
- id="stop3715-2" />
- </linearGradient>
- <radialGradient
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,0.508772,0,18.12988)"
- r="12.59534"
- fy="36.907261"
- fx="23.82066"
- cy="36.907261"
- cx="23.82066"
- id="radialGradient2971-1"
- xlink:href="#linearGradient2965-7"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient2965-7"
- inkscape:collect="always">
- <stop
- id="stop2967-5"
- offset="0"
- style="stop-color:#888a85;stop-opacity:1;" />
- <stop
- id="stop2969-1"
- offset="1"
- style="stop-color:#888a85;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- gradientTransform="matrix(0.980843,0,0,0.974547,0.59387,-0.156861)"
- gradientUnits="userSpaceOnUse"
- y2="32.355263"
- x2="29.74268"
- y1="37.835339"
- x1="23.997437"
- id="linearGradient3785-7"
- xlink:href="#linearGradient3779-4"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient3779-4"
- inkscape:collect="always">
- <stop
- id="stop3781-1"
- offset="0"
- style="stop-color:black;stop-opacity:1;" />
- <stop
- id="stop3783-7"
- offset="1"
- style="stop-color:black;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- gradientUnits="userSpaceOnUse"
- y2="28.590008"
- x2="27.272261"
- y1="41.836731"
- x1="23.8125"
- id="linearGradient3709-1"
- xlink:href="#linearGradient3703-1"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient3703-1"
- inkscape:collect="always">
- <stop
- id="stop3705-1"
- offset="0"
- style="stop-color:white;stop-opacity:1;" />
- <stop
- id="stop3707-7"
- offset="1"
- style="stop-color:white;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- gradientTransform="translate(0,-1)"
- gradientUnits="userSpaceOnUse"
- y2="30.421146"
- x2="23.640165"
- y1="36.722809"
- x1="25.606806"
- id="linearGradient3732-0"
- xlink:href="#linearGradient3726-4"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient3726-4">
- <stop
- id="stop3728-0"
- offset="0"
- style="stop-color:#555753;stop-opacity:1" />
- <stop
- id="stop3730-8"
- offset="1"
- style="stop-color:#888a85;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- gradientTransform="translate(0,-1)"
- gradientUnits="userSpaceOnUse"
- y2="19.231655"
- x2="13.567612"
- y1="18.432873"
- x1="13.567612"
- id="linearGradient3801-5"
- xlink:href="#linearGradient3795-1"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient3795-1">
- <stop
- id="stop3797-6"
- offset="0"
- style="stop-color:white;stop-opacity:1" />
- <stop
- id="stop3799-6"
- offset="1"
- style="stop-color:#eeeeec;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- gradientTransform="translate(20,-1)"
- y2="19.231655"
- x2="13.567612"
- y1="18.432873"
- x1="13.567612"
- gradientUnits="userSpaceOnUse"
- id="linearGradient3805-2"
- xlink:href="#linearGradient3795-1"
- inkscape:collect="always" />
- <linearGradient
- gradientTransform="matrix(1,0,0,0.940947,0,1.564893)"
- gradientUnits="userSpaceOnUse"
- y2="25.229111"
- x2="21.649811"
- y1="19.452076"
- x1="23.374121"
- id="linearGradient2987-1"
- xlink:href="#linearGradient2981-9"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient2981-9">
- <stop
- id="stop2983-6"
- offset="0"
- style="stop-color:#eeeeec;stop-opacity:1;" />
- <stop
- id="stop2985-4"
- offset="1"
- style="stop-color:white;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- gradientTransform="translate(14,0)"
- y2="20.381033"
- x2="16.65625"
- y1="16.14632"
- x1="16.65625"
- gradientUnits="userSpaceOnUse"
- id="linearGradient2953-8"
- xlink:href="#linearGradient2943-0"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient2943-0">
- <stop
- id="stop2945-8"
- offset="0"
- style="stop-color:#555753;stop-opacity:1" />
- <stop
- id="stop2947-1"
- offset="1"
- style="stop-color:#2e3436;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- gradientUnits="userSpaceOnUse"
- y2="20.381033"
- x2="16.65625"
- y1="16.14632"
- x1="16.65625"
- id="linearGradient2949-0"
- xlink:href="#linearGradient2943-0"
- inkscape:collect="always" />
- <linearGradient
- gradientUnits="userSpaceOnUse"
- y2="13.351768"
- x2="30.230837"
- y1="13.351768"
- x1="18.737373"
- id="linearGradient2902-2"
- xlink:href="#linearGradient2904-2"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient2904-2">
- <stop
- style="stop-color:#babdb6;stop-opacity:1"
- offset="0"
- id="stop2906-9" />
- <stop
- id="stop2910-7"
- offset="0.21551724"
- style="stop-color:white;stop-opacity:1;" />
- <stop
- style="stop-color:#c3c4c2;stop-opacity:1;"
- offset="0.70243758"
- id="stop2912-5" />
- <stop
- style="stop-color:#888a85;stop-opacity:1"
- offset="1"
- id="stop2908-6" />
- </linearGradient>
- <linearGradient
- gradientUnits="userSpaceOnUse"
- y2="5.125"
- x2="17.625"
- y1="20.814491"
- x1="17.625"
- id="linearGradient4487-4"
- xlink:href="#linearGradient4481-6"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient4481-6">
- <stop
- id="stop4483-3"
- offset="0"
- style="stop-color:#555753;stop-opacity:1;" />
- <stop
- id="stop4485-7"
- offset="1"
- style="stop-color:#babdb6;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- gradientTransform="translate(0,-1)"
- gradientUnits="userSpaceOnUse"
- y2="28.617105"
- x2="24.6875"
- y1="36.75"
- x1="24.6875"
- id="linearGradient3740-9"
- xlink:href="#linearGradient3734-7"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient3734-7">
- <stop
- id="stop3736-4"
- offset="0"
- style="stop-color:#babdb6;stop-opacity:1" />
- <stop
- id="stop3738-9"
- offset="1"
- style="stop-color:white;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- y2="10.76408"
- x2="23.176371"
- y1="10.76408"
- x1="19.583334"
- gradientTransform="matrix(1,0,0,0.809211,0,2.763158)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient2890-1"
- xlink:href="#linearGradient2867-7"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient2867-7"
- inkscape:collect="always">
- <stop
- id="stop2869-0"
- offset="0"
- style="stop-color:white;stop-opacity:1;" />
- <stop
- id="stop2871-6"
- offset="1"
- style="stop-color:white;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- y2="15.94703"
- x2="23.246162"
- y1="24.761473"
- x1="23.246162"
- gradientUnits="userSpaceOnUse"
- id="linearGradient2892-0"
- xlink:href="#linearGradient3815-8"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient3815-8"
- inkscape:collect="always">
- <stop
- id="stop3817-5"
- offset="0"
- style="stop-color:black;stop-opacity:1;" />
- <stop
- id="stop3819-3"
- offset="1"
- style="stop-color:black;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- y2="10.75"
- x2="24.508121"
- y1="6.3608937"
- x1="21.961548"
- gradientUnits="userSpaceOnUse"
- id="linearGradient2894-9"
- xlink:href="#linearGradient2877-4"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient2877-4"
- inkscape:collect="always">
- <stop
- id="stop2879-1"
- offset="0"
- style="stop-color:white;stop-opacity:1;" />
- <stop
- id="stop2881-5"
- offset="1"
- style="stop-color:white;stop-opacity:0;" />
- </linearGradient>
- <radialGradient
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.580773,0,0,0.961547,-12.77702,-2.531609)"
- r="6.46875"
- fy="10.432782"
- fx="22.553526"
- cy="10.432782"
- cx="22.553526"
- id="radialGradient2926-4"
- xlink:href="#linearGradient2920-1"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient2920-1"
- inkscape:collect="always">
- <stop
- id="stop2922-5"
- offset="0"
- style="stop-color:white;stop-opacity:1;" />
- <stop
- id="stop2924-5"
- offset="1"
- style="stop-color:white;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- gradientTransform="translate(0,3)"
- y2="10.081399"
- x2="30"
- y1="10.081399"
- x1="17.999674"
- gradientUnits="userSpaceOnUse"
- id="linearGradient3567-4"
- xlink:href="#linearGradient3228-9"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient3228-9">
- <stop
- id="stop3230-8"
- offset="0"
- style="stop-color:black;stop-opacity:1;" />
- <stop
- style="stop-color:black;stop-opacity:0.42857143;"
- offset="0.06770357"
- id="stop3573-3" />
- <stop
- style="stop-color:black;stop-opacity:0;"
- offset="0.29894069"
- id="stop3569-8" />
- <stop
- id="stop3571-5"
- offset="0.77437174"
- style="stop-color:black;stop-opacity:0.49803922;" />
- <stop
- id="stop3232-2"
- offset="1"
- style="stop-color:black;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- gradientTransform="matrix(1.09091,0,0,1.100001,-1.681827,0.84999)"
- gradientUnits="userSpaceOnUse"
- y2="25.991137"
- x2="28.357954"
- y1="3.4711361"
- x1="20.483149"
- id="linearGradient3585-2"
- xlink:href="#linearGradient3579-2"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient3579-2"
- inkscape:collect="always">
- <stop
- id="stop3581-7"
- offset="0"
- style="stop-color:white;stop-opacity:1;" />
- <stop
- id="stop3583-0"
- offset="1"
- style="stop-color:white;stop-opacity:0;" />
- </linearGradient>
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="6.727323"
- inkscape:cx="28.86207"
- inkscape:cy="20.847678"
- inkscape:current-layer="layer1"
- showgrid="true"
- inkscape:grid-bbox="true"
- inkscape:document-units="px"
- inkscape:window-width="872"
- inkscape:window-height="624"
- inkscape:window-x="0"
- inkscape:window-y="25"
- inkscape:window-maximized="0" />
- <metadata
- id="metadata2166">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <cc:license
- rdf:resource="http://www.gnu.org/copyleft/gpl.html" />
- <dc:title></dc:title>
- <dc:date>2006-08-28</dc:date>
- <dc:creator>
- <cc:Agent>
- <dc:title>Pierre Ossman &lt;ossman@cendio.se&gt; for Cendio AB</dc:title>
- </cc:Agent>
- </dc:creator>
- <dc:rights>
- <cc:Agent>
- <dc:title />
- </cc:Agent>
- </dc:rights>
- <dc:contributor>
- <cc:Agent>
- <dc:title>Rafael Jannone (basic idea)</dc:title>
- </cc:Agent>
- </dc:contributor>
- </cc:Work>
- <cc:License
- rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
- <cc:permits
- rdf:resource="http://web.resource.org/cc/Reproduction" />
- <cc:permits
- rdf:resource="http://web.resource.org/cc/Distribution" />
- <cc:requires
- rdf:resource="http://web.resource.org/cc/Notice" />
- <cc:permits
- rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
- <cc:requires
- rdf:resource="http://web.resource.org/cc/ShareAlike" />
- <cc:requires
- rdf:resource="http://web.resource.org/cc/SourceCode" />
- </cc:License>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:groupmode="layer"
- id="layer5"
- inkscape:label="Mic"
- transform="translate(-1.8065748,-0.0439041)">
- <g
- style="display:inline"
- id="g306"
- transform="matrix(0.49976071,0,0,0.49976071,3.2433793,5.5836561)">
- <g
- style="display:inline"
- inkscape:label="vectors"
- id="layer2">
- <path
- transform="matrix(0.727673,0,0,1.235135,7.166344,-12.0556)"
- d="m 36.415999,36.907261 c 0,3.539126 -5.639125,6.408155 -12.595339,6.408155 -6.956214,0 -12.59534,-2.869029 -12.59534,-6.408155 0,-3.539127 5.639126,-6.408156 12.59534,-6.408156 6.956214,0 12.595339,2.869029 12.595339,6.408156 z"
- sodipodi:ry="6.4081554"
- sodipodi:rx="12.59534"
- sodipodi:cy="36.907261"
- sodipodi:cx="23.82066"
- id="path3010"
- style="opacity:0.1;fill:url(#radialGradient3012-3);fill-opacity:1;stroke:none;display:inline"
- sodipodi:type="arc" />
- <path
- transform="matrix(1.233813,0,0,1.235135,-4.890235,-6.055598)"
- d="m 36.415999,36.907261 c 0,3.539126 -5.639125,6.408155 -12.595339,6.408155 -6.956214,0 -12.59534,-2.869029 -12.59534,-6.408155 0,-3.539127 5.639126,-6.408156 12.59534,-6.408156 6.956214,0 12.595339,2.869029 12.595339,6.408156 z"
- sodipodi:ry="6.4081554"
- sodipodi:rx="12.59534"
- sodipodi:cy="36.907261"
- sodipodi:cx="23.82066"
- id="path4489"
- style="opacity:0.7;fill:url(#radialGradient4505-7);fill-opacity:1;stroke:none;display:inline"
- sodipodi:type="arc" />
- <path
- style="opacity:0.2;fill:none;stroke:url(#linearGradient4473-9);stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
- d="M 32.800044,40.588388 C 24.781634,29.5 47,35.875 46.25,32 45.476667,28.004445 36.399824,30.554499 36.875,26.25 37.336541,22.069018 46.75,23.75 44.625,15"
- id="path4471"
- sodipodi:nodetypes="czzc" />
- <path
- style="fill:none;stroke:url(#linearGradient4460-4);stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
- d="M 32.800044,39.588388 C 24.781634,28.5 47,34.875 46.25,31 45.476667,27.004445 36.399824,29.554499 36.875,25.25 37.336541,21.069018 46.75,22.75 44.625,14"
- id="path4172"
- sodipodi:nodetypes="czzc" />
- <path
- transform="matrix(1.032128,0,0,1.014402,-0.08596444,1.56074)"
- d="m 36.415999,36.907261 c 0,3.539126 -5.639125,6.408155 -12.595339,6.408155 -6.956214,0 -12.59534,-2.869029 -12.59534,-6.408155 0,-3.539127 5.639126,-6.408156 12.59534,-6.408156 6.956214,0 12.595339,2.869029 12.595339,6.408156 z"
- sodipodi:ry="6.4081554"
- sodipodi:rx="12.59534"
- sodipodi:cy="36.907261"
- sodipodi:cx="23.82066"
- id="path3683"
- style="fill:url(#radialGradient3691-2);fill-opacity:1;stroke:#555753;stroke-width:0.97730058;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
- sodipodi:type="arc" />
- <path
- transform="matrix(0.43667,0,0,0.429141,14.09824,21.41158)"
- d="m 36.415999,36.907261 c 0,3.539126 -5.639125,6.408155 -12.595339,6.408155 -6.956214,0 -12.59534,-2.869029 -12.59534,-6.408155 0,-3.539127 5.639126,-6.408156 12.59534,-6.408156 6.956214,0 12.595339,2.869029 12.595339,6.408156 z"
- sodipodi:ry="6.4081554"
- sodipodi:rx="12.59534"
- sodipodi:cy="36.907261"
- sodipodi:cx="23.82066"
- id="path2955"
- style="fill:url(#radialGradient2971-1);fill-opacity:1;stroke:none;display:inline"
- sodipodi:type="arc" />
- <path
- sodipodi:nodetypes="ccssccc"
- id="path3766"
- d="m 27.35249,32.125 c -1.738654,0.735383 -2.545819,2.052948 -3.67816,3.167277 -0.486309,0.3076 -0.5997,0.709446 -0.51965,1.276685 0.08005,0.567243 0.489446,1.055334 1.042146,1.218184 0.552698,0.162848 0.999547,0.130039 1.377887,-0.302139 C 26.676195,35.285524 28.744563,33.983863 31,32.85591 29.870496,32.536987 28.651039,32.264053 27.35249,32.125 z"
- style="opacity:0.7;fill:url(#linearGradient3785-7);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
- <path
- transform="matrix(1.032128,0,0,1.014402,-0.08596444,1.56074)"
- d="m 23.8125,31.5 c -3.339495,0 -6.371551,0.683256 -8.46875,1.75 -2.097199,1.066744 -3.125,2.416366 -3.125,3.65625 0,1.239884 1.027801,2.589506 3.125,3.65625 2.097199,1.066744 5.129255,1.750001 8.46875,1.75 3.339495,0 6.371551,-0.683256 8.46875,-1.75 2.097199,-1.066744 3.125,-2.416366 3.125,-3.65625 0,-1.239884 -1.027801,-2.589506 -3.125,-3.65625 C 30.184051,32.183256 27.151995,31.5 23.8125,31.5 z"
- id="path3697"
- style="opacity:0.4;fill:none;stroke:url(#linearGradient3709-1);stroke-width:0.97730058;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
- inkscape:original="M 23.8125 30.5 C 16.859872 30.5 11.21875 33.368948 11.21875 36.90625 C 11.21875 40.443552 16.859872 43.312502 23.8125 43.3125 C 30.765128 43.3125 36.406249 40.443552 36.40625 36.90625 C 36.40625 33.368948 30.765128 30.5 23.8125 30.5 z "
- inkscape:radius="-0.99470079"
- sodipodi:type="inkscape:offset" />
- <path
- sodipodi:nodetypes="cc"
- id="path3589"
- d="m 24.5,27.5 0,9"
- style="fill:none;stroke:url(#linearGradient3732-0);stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
- <path
- sodipodi:nodetypes="csc"
- id="path2781"
- d="m 34.500008,18.999997 c -8e-6,4.285711 -4.46,7.500001 -10.000002,7.500001 -5.540002,0 -10.000006,-3.21429 -10.000003,-7.500001"
- style="fill:none;stroke:#888a85;stroke-width:3.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
- <rect
- y="16.499998"
- x="12.5"
- height="2.9999995"
- width="4"
- id="rect2783"
- style="fill:url(#linearGradient3801-5);fill-opacity:1;stroke:#888a85;stroke-width:0.99999988;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline" />
- <rect
- y="16.499998"
- x="32.5"
- height="2.9999995"
- width="4"
- id="rect3803"
- style="fill:url(#linearGradient3805-2);fill-opacity:1;stroke:#888a85;stroke-width:0.99999988;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline" />
- <path
- sodipodi:nodetypes="csc"
- id="rect1882"
- d="m 34.500008,18.999991 c 0,4.28571 -4.46,7.500001 -10.000002,7.500001 -5.540002,0 -10.000006,-3.214291 -10.000003,-7.500001"
- style="fill:none;stroke:url(#linearGradient2987-1);stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
- <rect
- ry="0.9722718"
- rx="0.9722718"
- y="15"
- x="30"
- height="6"
- width="3.0000005"
- id="rect2951"
- style="fill:url(#linearGradient2953-8);fill-opacity:1;stroke:none;display:inline" />
- <path
- transform="matrix(1.5,0,0,1.5,12.25,-11.25)"
- d="m 14.5,19 c 0,0.276142 -0.223858,0.5 -0.5,0.5 -0.276142,0 -0.5,-0.223858 -0.5,-0.5 0,-0.276142 0.223858,-0.5 0.5,-0.5 0.276142,0 0.5,0.223858 0.5,0.5 z"
- sodipodi:ry="0.5"
- sodipodi:rx="0.5"
- sodipodi:cy="19"
- sodipodi:cx="14"
- id="path3825"
- style="fill:#ffffff;fill-opacity:1;stroke:none;display:inline"
- sodipodi:type="arc" />
- <rect
- ry="0.9722718"
- rx="0.9722718"
- y="15"
- x="16"
- height="6"
- width="3.0000005"
- id="rect2787"
- style="fill:url(#linearGradient2949-0);fill-opacity:1;stroke:none;display:inline" />
- <rect
- ry="7.0108709"
- rx="7.0000019"
- y="1.5000002"
- x="17.499996"
- height="24.000008"
- width="14.000004"
- id="rect1880"
- style="fill:url(#linearGradient2902-2);fill-opacity:1;stroke:url(#linearGradient4487-4);stroke-width:1.00000048;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
- <path
- sodipodi:nodetypes="cc"
- id="path3587"
- d="m 24.5,26.5 0,10"
- style="fill:none;stroke:url(#linearGradient3740-9);stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
- <path
- transform="matrix(1.5,0,0,1.5,-7.75,-11.25)"
- d="m 14.5,19 c 0,0.276142 -0.223858,0.5 -0.5,0.5 -0.276142,0 -0.5,-0.223858 -0.5,-0.5 0,-0.276142 0.223858,-0.5 0.5,-0.5 0.276142,0 0.5,0.223858 0.5,0.5 z"
- sodipodi:ry="0.5"
- sodipodi:rx="0.5"
- sodipodi:cy="19"
- sodipodi:cx="14"
- id="path3823"
- style="fill:#ffffff;fill-opacity:1;stroke:none"
- sodipodi:type="arc" />
- <g
- id="g3270"
- inkscape:label="Shadow"
- transform="translate(-9.25,46.68088)" />
- <g
- transform="translate(-9.25,61.74691)"
- inkscape:label="Shadow"
- id="g2611" />
- <g
- transform="translate(-9.25,61.74691)"
- style="display:inline"
- inkscape:label="Lavoro"
- id="g2613" />
- <g
- id="g2885">
- <rect
- style="fill:url(#linearGradient2890-1);fill-opacity:1;stroke:none;display:inline"
- id="rect1975"
- width="4"
- height="15.374996"
- x="20"
- y="6"
- rx="2"
- ry="2.1991496" />
- <path
- sodipodi:type="inkscape:offset"
- inkscape:radius="-0.54470092"
- inkscape:original="M 24.5 2.5 C 20.621999 2.5 17.5 5.615977 17.5 9.5 L 17.5 19.5 C 17.5 23.384022 20.621999 26.5 24.5 26.5 C 28.378001 26.5 31.5 23.384022 31.5 19.5 L 31.5 9.5 C 31.5 5.6159775 28.378001 2.5 24.5 2.5 z "
- style="opacity:0.2;fill:url(#linearGradient2892-0);fill-opacity:1;stroke:none;display:inline"
- id="path3811"
- d="m 24.5,3.03125 c -3.586223,0 -6.46875,2.8766161 -6.46875,6.46875 l 0,10 c 0,3.592133 2.882528,6.46875 6.46875,6.46875 3.586222,0 6.46875,-2.876617 6.46875,-6.46875 l 0,-10 c 0,-3.5921334 -2.882527,-6.46875 -6.46875,-6.46875 z"
- transform="translate(0,-1)" />
- <path
- sodipodi:type="arc"
- style="fill:url(#linearGradient2894-9);fill-opacity:1;stroke:none"
- id="path2875"
- sodipodi:cx="23.65625"
- sodipodi:cy="7.6875"
- sodipodi:rx="3.34375"
- sodipodi:ry="3.0625"
- d="M 27,7.6875 C 27,9.378872 25.502952,10.75 23.65625,10.75 21.809548,10.75 20.3125,9.378872 20.3125,7.6875 20.3125,5.996128 21.809548,4.625 23.65625,4.625 25.502952,4.625 27,5.996128 27,7.6875 z"
- transform="matrix(1,0,0,1.081633,-0.375,-1.252551)" />
- </g>
- <path
- sodipodi:nodetypes="cccccc"
- id="path2916"
- d="m 24.5,3.03125 c -3.586223,0 -6.46875,2.8766161 -6.46875,6.46875 l 0,5 12.9375,0 0,-5 c 0,-3.5921334 -2.882527,-6.46875 -6.46875,-6.46875 z"
- style="opacity:0.9;fill:url(#radialGradient2926-4);fill-opacity:1;stroke:none;display:inline"
- transform="translate(0,-1)" />
- </g>
- <g
- style="display:inline"
- inkscape:label="buchi"
- id="layer3">
- <path
- sodipodi:nodetypes="csssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssc"
- id="path2902"
- d="M 22.5,3 C 22.224,3 22,3.224 22,3.5 22,3.776 22.224,4 22.5,4 22.776,4 23,3.776 23,3.5 23,3.224 22.776,3 22.5,3 z m 2,0 C 24.224,3 24,3.224 24,3.5 24,3.776 24.224,4 24.5,4 24.776,4 25,3.776 25,3.5 25,3.224 24.776,3 24.5,3 z m 2,0 C 26.224,3 26,3.224 26,3.5 26,3.776 26.224,4 26.5,4 26.776,4 27,3.776 27,3.5 27,3.224 26.776,3 26.5,3 z m -5,1 C 21.224,4 21,4.224 21,4.5 21,4.776 21.224,5 21.5,5 21.776,5 22,4.776 22,4.5 22,4.224 21.776,4 21.5,4 z m 2,0 C 23.224,4 22.999999,4.2240007 23,4.5 23,4.7759993 23.223999,5 23.5,5 23.776,5 24,4.7759993 24,4.5 24,4.2240007 23.776,4 23.5,4 z m 2,0 C 25.224,4 24.999999,4.2240007 25,4.5 25,4.7759993 25.223999,5 25.5,5 25.776,5 26,4.7759993 26,4.5 26,4.2240007 25.776,4 25.5,4 z m 2,0 C 27.224,4 27,4.224 27,4.5 27,4.776 27.224,5 27.5,5 27.776,5 28,4.776 28,4.5 28,4.224 27.776,4 27.5,4 z m -7,1 C 20.224,5 19.999999,5.2240008 20,5.5 20,5.7759993 20.223999,6 20.5,6 20.776,6 21,5.7759994 21,5.5 21,5.2240007 20.776,5 20.5,5 z m 2,0 C 22.224,5 21.999999,5.2240008 22,5.5 22,5.7759993 22.223999,6 22.5,6 22.776,6 23,5.7759994 23,5.5 23,5.2240007 22.776,5 22.5,5 z m 2,0 C 24.224,5 23.999999,5.2240008 24,5.5 24,5.7759993 24.223999,6 24.5,6 24.776,6 25,5.7759994 25,5.5 25,5.2240007 24.776,5 24.5,5 z m 2,0 C 26.224,5 25.999999,5.2240008 26,5.5 26,5.7759993 26.223999,6 26.5,6 26.776,6 27,5.7759994 27,5.5 27,5.2240007 26.776,5 26.5,5 z m 2,0 C 28.224,5 28,5.224 28,5.5 28,5.776 28.224,6 28.5,6 28.776,6 29,5.776 29,5.5 29,5.224 28.776,5 28.5,5 z m -9,1 C 19.224,6 18.999999,6.2240008 19,6.5 19,6.7759993 19.223999,7 19.5,7 19.776,7 20,6.7759994 20,6.5 20,6.2240007 19.776,6 19.5,6 z m 2,0 C 21.224,6 20.999999,6.2240008 21,6.5 21,6.7759993 21.223999,7 21.5,7 21.776,7 22,6.7759994 22,6.5 22,6.2240007 21.776,6 21.5,6 z m 2,0 C 23.224,6 22.999999,6.2240008 23,6.5 23,6.7759993 23.223999,7 23.5,7 23.776,7 24,6.7759994 24,6.5 24,6.2240007 23.776,6 23.5,6 z m 2,0 C 25.224,6 24.999999,6.2240008 25,6.5 25,6.7759993 25.223999,7 25.5,7 25.776,7 26,6.7759994 26,6.5 26,6.2240007 25.776,6 25.5,6 z m 2,0 C 27.224,6 26.999999,6.2240008 27,6.5 27,6.7759993 27.223999,7 27.5,7 27.776,7 28,6.7759994 28,6.5 28,6.2240007 27.776,6 27.5,6 z m 2,0 C 29.224,6 29,6.224 29,6.5 29,6.776 29.224,7 29.5,7 29.776,7 30,6.776 30,6.5 30,6.224 29.776,6 29.5,6 z m -9,1 C 20.224,7 19.999999,7.2240008 20,7.5 20,7.7759993 20.223999,8.0000002 20.5,8 20.776,8 21,7.7759994 21,7.5 21,7.2240007 20.776,7 20.5,7 z m 2,0 C 22.224,7 21.999999,7.2240008 22,7.5 22,7.7759993 22.223999,8.0000002 22.5,8 22.776,8 23,7.7759994 23,7.5 23,7.2240007 22.776,7 22.5,7 z m 2,0 C 24.224,7 23.999999,7.2240008 24,7.5 24,7.7759993 24.223999,8.0000002 24.5,8 24.776,8 25,7.7759994 25,7.5 25,7.2240007 24.776,7 24.5,7 z m 2,0 C 26.224,7 25.999999,7.2240008 26,7.5 26,7.7759993 26.223999,8.0000002 26.5,8 26.776,8 27,7.7759994 27,7.5 27,7.2240007 26.776,7 26.5,7 z m 2,0 C 28.224,7 27.999999,7.2240008 28,7.5 28,7.7759993 28.223999,8.0000002 28.5,8 28.776,8 29,7.7759994 29,7.5 29,7.2240007 28.776,7 28.5,7 z m 2,0 C 30.224,7 30,7.224 30,7.5 30,7.776 30.224,8 30.5,8 30.776,8 31,7.776 31,7.5 31,7.224 30.776,7 30.5,7 z m -11,1 C 19.224,8 18.999999,8.2240008 19,8.5 19,8.7759993 19.223999,9 19.5,9 19.776,9 20,8.7759994 20,8.5 20,8.2240007 19.776,8 19.5,8 z m 2,0 C 21.224,8 20.999999,8.2240008 21,8.5 21,8.7759993 21.223999,9 21.5,9 21.776,9 22,8.7759994 22,8.5 22,8.2240007 21.776,8 21.5,8 z m 2,0 C 23.224,8 22.999999,8.2240008 23,8.5 23,8.7759993 23.223999,9 23.5,9 23.776,9 24,8.7759994 24,8.5 24,8.2240007 23.776,8 23.5,8 z m 2,0 C 25.224,8 24.999999,8.2240008 25,8.5 25,8.7759993 25.223999,9 25.5,9 25.776,9 26,8.7759994 26,8.5 26,8.2240007 25.776,8 25.5,8 z m 2,0 C 27.224,8 26.999999,8.2240008 27,8.5 27,8.7759993 27.223999,9 27.5,9 27.776,9 28,8.7759994 28,8.5 28,8.2240007 27.776,8 27.5,8 z m 2,0 C 29.224,8 28.999999,8.2240008 29,8.5 29,8.7759993 29.223999,9 29.5,9 29.776,9 30,8.7759994 30,8.5 30,8.2240007 29.776,8 29.5,8 z m -11,1 C 18.224,9 17.999999,9.224001 18,9.5 18,9.775999 18.223999,10 18.5,10 18.776,10 19,9.775999 19,9.5 19,9.224001 18.776,9 18.5,9 z m 2,0 C 20.224,9 19.999999,9.224001 20,9.5 20,9.775999 20.223999,10 20.5,10 20.776,10 21,9.775999 21,9.5 21,9.224001 20.776,9 20.5,9 z m 2,0 C 22.224,9 21.999999,9.224001 22,9.5 22,9.775999 22.223999,10 22.5,10 22.776,10 23,9.775999 23,9.5 23,9.224001 22.776,9 22.5,9 z m 2,0 C 24.224,9 23.999999,9.224001 24,9.5 24,9.775999 24.223999,10 24.5,10 24.776,10 25,9.775999 25,9.5 25,9.224001 24.776,9 24.5,9 z m 2,0 C 26.224,9 25.999999,9.224001 26,9.5 26,9.775999 26.223999,10 26.5,10 26.776,10 27,9.775999 27,9.5 27,9.224001 26.776,9 26.5,9 z m 2,0 C 28.224,9 27.999999,9.224001 28,9.5 28,9.775999 28.223999,10 28.5,10 28.776,10 29,9.775999 29,9.5 29,9.224001 28.776,9 28.5,9 z m 2,0 C 30.224,9 30,9.224 30,9.5 30,9.776 30.224,10 30.5,10 30.776,10 31,9.776 31,9.5 31,9.224 30.776,9 30.5,9 z m -11,1 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 19.776,11 20,10.775999 20,10.5 20,10.224001 19.776,10 19.5,10 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 21.776,11 22,10.775999 22,10.5 22,10.224001 21.776,10 21.5,10 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 23.776,11 24,10.775999 24,10.5 24,10.224001 23.776,10 23.5,10 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 25.776,11 26,10.775999 26,10.5 26,10.224001 25.776,10 25.5,10 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 27.776,11 28,10.775999 28,10.5 28,10.224001 27.776,10 27.5,10 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 29.776,11 30,10.775999 30,10.5 30,10.224001 29.776,10 29.5,10 z m -11,1 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 18.776,12 19,11.775999 19,11.5 19,11.224001 18.776,11 18.5,11 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 20.776,12 21,11.775999 21,11.5 21,11.224001 20.776,11 20.5,11 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 22.776,12 23,11.775999 23,11.5 23,11.224001 22.776,11 22.5,11 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 24.776,12 25,11.775999 25,11.5 25,11.224001 24.776,11 24.5,11 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 26.776,12 27,11.775999 27,11.5 27,11.224001 26.776,11 26.5,11 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 28.776,12 29,11.775999 29,11.5 29,11.224001 28.776,11 28.5,11 z m 2,0 C 30.224,11 30,11.224 30,11.5 30,11.776 30.224,12 30.5,12 30.776,12 31,11.776 31,11.5 31,11.224 30.776,11 30.5,11 z m -11,1 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 19.776,13 20,12.775999 20,12.5 20,12.224001 19.776,12 19.5,12 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 21.776,13 22,12.775999 22,12.5 22,12.224001 21.776,12 21.5,12 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 23.776,13 24,12.775999 24,12.5 24,12.224001 23.776,12 23.5,12 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 25.776,13 26,12.775999 26,12.5 26,12.224001 25.776,12 25.5,12 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 27.776,13 28,12.775999 28,12.5 28,12.224001 27.776,12 27.5,12 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 29.776,13 30,12.775999 30,12.5 30,12.224001 29.776,12 29.5,12 z m -11,1 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 18.776,14 19,13.775999 19,13.5 19,13.224001 18.776,13 18.5,13 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 20.776,14 21,13.775999 21,13.5 21,13.224001 20.776,13 20.5,13 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 22.776,14 23,13.775999 23,13.5 23,13.224001 22.776,13 22.5,13 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 24.776,14 25,13.775999 25,13.5 25,13.224001 24.776,13 24.5,13 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 26.776,14 27,13.775999 27,13.5 27,13.224001 26.776,13 26.5,13 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 28.776,14 29,13.775999 29,13.5 29,13.224001 28.776,13 28.5,13 z m 2,0 C 30.224,13 30,13.224 30,13.5 30,13.776 30.224,14 30.5,14 30.776,14 31,13.776 31,13.5 31,13.224 30.776,13 30.5,13 z m -11,1 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 19.776,15 20,14.775999 20,14.5 20,14.224001 19.776,14 19.5,14 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 21.776,15 22,14.775999 22,14.5 22,14.224001 21.776,14 21.5,14 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 23.776,15 24,14.775999 24,14.5 24,14.224001 23.776,14 23.5,14 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 25.776,15 26,14.775999 26,14.5 26,14.224001 25.776,14 25.5,14 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 27.776,15 28,14.775999 28,14.5 28,14.224001 27.776,14 27.5,14 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 29.776,15 30,14.775999 30,14.5 30,14.224001 29.776,14 29.5,14 z m -11,1 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 18.776,16 19,15.775999 19,15.5 19,15.224001 18.776,15 18.5,15 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 20.776,16 21,15.775999 21,15.5 21,15.224001 20.776,15 20.5,15 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 22.776,16 23,15.775999 23,15.5 23,15.224001 22.776,15 22.5,15 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 24.776,16 25,15.775999 25,15.5 25,15.224001 24.776,15 24.5,15 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 26.776,16 27,15.775999 27,15.5 27,15.224001 26.776,15 26.5,15 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 28.776,16 29,15.775999 29,15.5 29,15.224001 28.776,15 28.5,15 z m 2,0 C 30.224,15 30,15.224 30,15.5 30,15.776 30.224,16 30.5,16 30.776,16 31,15.776 31,15.5 31,15.224 30.776,15 30.5,15 z m -11,1 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 19.776,17 20,16.776 20,16.5 20,16.224001 19.776,16 19.5,16 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 21.776,17 22,16.776 22,16.5 22,16.224001 21.776,16 21.5,16 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 23.776,17 24,16.776 24,16.5 24,16.224001 23.776,16 23.5,16 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 25.776,17 26,16.776 26,16.5 26,16.224001 25.776,16 25.5,16 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 27.776,17 28,16.776 28,16.5 28,16.224001 27.776,16 27.5,16 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 29.776,17 30,16.775999 30,16.5 30,16.224001 29.776,16 29.5,16 z m -11,1 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 18.776,18 19,17.776 19,17.5 19,17.224001 18.776,17 18.5,17 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 20.776,18 21,17.776 21,17.5 21,17.224001 20.776,17 20.5,17 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 22.776,18 23,17.776 23,17.5 23,17.224001 22.776,17 22.5,17 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 24.776,18 25,17.776 25,17.5 25,17.224001 24.776,17 24.5,17 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 26.776,18 27,17.776 27,17.5 27,17.224001 26.776,17 26.5,17 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 28.776,18 29,17.776 29,17.5 29,17.224001 28.776,17 28.5,17 z m 2,0 C 30.224,17 30,17.224 30,17.5 30,17.776 30.224,18 30.5,18 30.776,18 31,17.776 31,17.5 31,17.224 30.776,17 30.5,17 z m -11,1 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 19.776,19 20,18.776 20,18.5 20,18.224001 19.776,18 19.5,18 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 21.776,19 22,18.776 22,18.5 22,18.224001 21.776,18 21.5,18 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 23.776,19 24,18.776 24,18.5 24,18.224001 23.776,18 23.5,18 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 25.776,19 26,18.776 26,18.5 26,18.224001 25.776,18 25.5,18 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 27.776,19 28,18.776 28,18.5 28,18.224001 27.776,18 27.5,18 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 29.776,19 30,18.776 30,18.5 30,18.224001 29.776,18 29.5,18 z m -11,1 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 18.776,20 19,19.776 19,19.5 19,19.224001 18.776,19 18.5,19 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 20.776,20 21,19.776 21,19.5 21,19.224001 20.776,19 20.5,19 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 22.776,20 23,19.776 23,19.5 23,19.224001 22.776,19 22.5,19 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 24.776,20 25,19.776 25,19.5 25,19.224001 24.776,19 24.5,19 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 26.776,20 27,19.776 27,19.5 27,19.224001 26.776,19 26.5,19 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 28.776,20 29,19.776 29,19.5 29,19.224001 28.776,19 28.5,19 z m 2,0 C 30.224,19 30,19.224 30,19.5 30,19.776 30.224,20 30.5,20 30.776,20 31,19.776 31,19.5 31,19.224 30.776,19 30.5,19 z m -11,1 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 19.776,21 20,20.776 20,20.5 20,20.224001 19.776,20 19.5,20 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 21.776,21 22,20.776 22,20.5 22,20.224001 21.776,20 21.5,20 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 23.776,21 24,20.776 24,20.5 24,20.224001 23.776,20 23.5,20 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 25.776,21 26,20.776 26,20.5 26,20.224001 25.776,20 25.5,20 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 27.776,21 28,20.776 28,20.5 28,20.224001 27.776,20 27.5,20 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 29.776,21 30,20.776 30,20.5 30,20.224001 29.776,20 29.5,20 z m -9,1 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 20.776,22 21,21.776 21,21.5 21,21.224001 20.776,21 20.5,21 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 22.776,22 23,21.776 23,21.5 23,21.224001 22.776,21 22.5,21 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 24.776,22 25,21.776 25,21.5 25,21.224001 24.776,21 24.5,21 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 26.776,22 27,21.776 27,21.5 27,21.224001 26.776,21 26.5,21 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 28.776,22 29,21.776 29,21.5 29,21.224001 28.776,21 28.5,21 z m -7,1 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 21.776,23 22,22.776 22,22.5 22,22.224001 21.776,22 21.5,22 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 23.776,23 24,22.776 24,22.5 24,22.224001 23.776,22 23.5,22 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 25.776,23 26,22.776 26,22.5 26,22.224001 25.776,22 25.5,22 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 27.776,23 28,22.776 28,22.5 28,22.224001 27.776,22 27.5,22 z m -5,1 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 22.776,24 23,23.776 23,23.5 23,23.224001 22.776,23 22.5,23 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 24.776,24 25,23.776 25,23.5 25,23.224001 24.776,23 24.5,23 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 26.776,24 27,23.776 27,23.5 27,23.224001 26.776,23 26.5,23 z m -3,1 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 23.776,25 24,24.776 24,24.5 24,24.224001 23.776,24 23.5,24 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 25.776,25 26,24.776 26,24.5 26,24.224001 25.776,24 25.5,24 z"
- style="opacity:0.5;fill:url(#linearGradient3567-4);fill-opacity:1;stroke:none;display:inline" />
- <rect
- ry="6.0500031"
- rx="6.0000024"
- y="2.5000026"
- x="18.500008"
- height="22.000008"
- width="12.000005"
- id="rect3575"
- style="fill:none;stroke:url(#linearGradient3585-2);stroke-width:1.0000006;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline" />
- </g>
- </g>
- </g>
- <g
- id="layer1"
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- transform="translate(-11.455575,-6.2799821)"
- style="display:inline">
- <g
- id="g781"
- transform="matrix(0.88131313,0,0,0.88131313,2.9517844,0.78404468)">
- <path
- style="fill:#729fcf;fill-opacity:1;stroke:none"
- d="m 22.365786,11.528391 c -4.16858,1.106752 -7.242777,4.906525 -7.242774,9.421848 0,4.51531 3.074196,8.318988 7.242774,9.42574 -3.007226,-1.349598 -5.168955,-5.062913 -5.168955,-9.42574 -1e-6,-4.362815 2.161728,-8.07225 5.168955,-9.421848 z m 5.009131,0 c 3.007227,1.349598 5.168955,5.059021 5.168955,9.421848 0,4.362827 -2.161729,8.076142 -5.168955,9.42574 4.16858,-1.106752 7.242777,-4.91043 7.242774,-9.42574 0,-4.515311 -3.074193,-8.315096 -7.242774,-9.421848 z"
- id="path2419" />
- <path
- id="path2421"
- d="M 20.959247,6.236078 C 14.449633,7.9643721 9.6489964,13.898061 9.6490002,20.949142 c 0,7.05107 4.8006348,12.990862 11.3102468,14.719148 -4.696056,-2.107524 -8.071791,-7.906196 -8.071791,-14.719148 -2e-6,-6.812926 3.375734,-12.6055448 8.071791,-14.713064 z m 7.82221,0 c 4.696057,2.1075192 8.07179,7.900118 8.07179,14.713064 0,6.812952 -3.375735,12.611624 -8.07179,14.719148 6.509614,-1.728286 11.31025,-7.668078 11.310246,-14.719148 0,-7.051061 -4.80063,-12.9847699 -11.310246,-14.713064 z"
- style="fill:#729fcf;fill-opacity:1;stroke:none" />
- </g>
- <text
- xml:space="preserve"
- style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- x="39.743385"
- y="34.479111"
- id="text2991"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan2993"
- x="39.743385"
- y="34.479111"
- style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Engebrechtre;-inkscape-font-specification:Engebrechtre">PulseCaster</tspan></text>
- </g>
- <g
- inkscape:groupmode="layer"
- id="layer4"
- inkscape:label="center"
- style="display:none"
- transform="translate(-1.8065748,-0.0439041)">
- <path
- transform="matrix(0.2091112,0,0,0.2091112,15.430463,-165.87494)"
- d="m 22,863.61249 c 0,12.70255 -10.297451,23 -23,23 -12.702549,0 -23,-10.29745 -23,-23 0,-12.70255 10.297451,-23 23,-23 12.702549,0 23,10.29745 23,23 z"
- sodipodi:ry="23"
- sodipodi:rx="23"
- sodipodi:cy="863.61249"
- sodipodi:cx="-1"
- id="path2417"
- style="fill:#729fcf;fill-opacity:1;stroke:none"
- sodipodi:type="arc" />
- </g>
-</svg>
diff --git a/pulsecaster/data/icons/scalable/pulsecaster.svg b/pulsecaster/data/icons/scalable/pulsecaster.svg
deleted file mode 100644
index b15a05c..0000000
--- a/pulsecaster/data/icons/scalable/pulsecaster.svg
+++ /dev/null
@@ -1,1043 +0,0 @@
-<?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="30.442703"
- height="29.432213"
- id="svg2161"
- sodipodi:version="0.32"
- inkscape:version="0.46+devel"
- sodipodi:docname="pulseaudio.svg"
- inkscape:output_extension="org.inkscape.output.svg.inkscape"
- version="1.0">
- <defs
- id="defs2163">
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 24 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="48 : 24 : 1"
- inkscape:persp3d-origin="24 : 16 : 1"
- id="perspective69" />
- <linearGradient
- id="linearGradient3093">
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="0"
- id="stop3095" />
- <stop
- style="stop-color:#000000;stop-opacity:0;"
- offset="1"
- id="stop3097" />
- </linearGradient>
- <linearGradient
- id="linearGradient2503">
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="0"
- id="stop2505" />
- <stop
- style="stop-color:#141413;stop-opacity:1;"
- offset="1"
- id="stop2507" />
- </linearGradient>
- <linearGradient
- id="linearGradient2495">
- <stop
- style="stop-color:#0a0a09;stop-opacity:1;"
- offset="0"
- id="stop2497" />
- <stop
- style="stop-color:#282927;stop-opacity:1;"
- offset="1"
- id="stop2499" />
- </linearGradient>
- <linearGradient
- id="linearGradient2535">
- <stop
- id="stop2537"
- offset="0"
- style="stop-color:#ffffff;stop-opacity:0.36078432;" />
- <stop
- id="stop2539"
- offset="1"
- style="stop-color:#ffffff;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- id="linearGradient3072">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop3074" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop3076" />
- </linearGradient>
- <linearGradient
- id="linearGradient3228">
- <stop
- id="stop3230"
- offset="0"
- style="stop-color:black;stop-opacity:1;" />
- <stop
- style="stop-color:black;stop-opacity:0.42857143;"
- offset="0.06770357"
- id="stop3573" />
- <stop
- style="stop-color:black;stop-opacity:0;"
- offset="0.29894069"
- id="stop3569" />
- <stop
- id="stop3571"
- offset="0.77437174"
- style="stop-color:black;stop-opacity:0.49803922;" />
- <stop
- id="stop3232"
- offset="1"
- style="stop-color:black;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- id="linearGradient3726">
- <stop
- id="stop3728"
- offset="0"
- style="stop-color:#555753;stop-opacity:1" />
- <stop
- id="stop3730"
- offset="1"
- style="stop-color:#888a85;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- id="linearGradient3734">
- <stop
- id="stop3736"
- offset="0"
- style="stop-color:#babdb6;stop-opacity:1" />
- <stop
- id="stop3738"
- offset="1"
- style="stop-color:white;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- id="linearGradient3795">
- <stop
- id="stop3797"
- offset="0"
- style="stop-color:white;stop-opacity:1" />
- <stop
- id="stop3799"
- offset="1"
- style="stop-color:#eeeeec;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- id="linearGradient4481">
- <stop
- id="stop4483"
- offset="0"
- style="stop-color:#555753;stop-opacity:1;" />
- <stop
- id="stop4485"
- offset="1"
- style="stop-color:#babdb6;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- id="linearGradient2943">
- <stop
- id="stop2945"
- offset="0"
- style="stop-color:#555753;stop-opacity:1" />
- <stop
- id="stop2947"
- offset="1"
- style="stop-color:#2e3436;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- id="linearGradient2981">
- <stop
- id="stop2983"
- offset="0"
- style="stop-color:#eeeeec;stop-opacity:1;" />
- <stop
- id="stop2985"
- offset="1"
- style="stop-color:white;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- id="linearGradient2904">
- <stop
- style="stop-color:#babdb6;stop-opacity:1"
- offset="0"
- id="stop2906" />
- <stop
- id="stop2910"
- offset="0.21551724"
- style="stop-color:white;stop-opacity:1;" />
- <stop
- style="stop-color:#c3c4c2;stop-opacity:1;"
- offset="0.70243758"
- id="stop2912" />
- <stop
- style="stop-color:#888a85;stop-opacity:1"
- offset="1"
- id="stop2908" />
- </linearGradient>
- <inkscape:perspective
- id="perspective215"
- inkscape:persp3d-origin="24 : 16 : 1"
- inkscape:vp_z="48 : 24 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 24 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective350"
- 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="perspective374"
- 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" />
- <radialGradient
- r="12.59534"
- fy="36.907261"
- fx="23.82066"
- cy="36.907261"
- cx="23.82066"
- gradientTransform="matrix(1,0,0,0.508772,0,18.12988)"
- gradientUnits="userSpaceOnUse"
- id="radialGradient3012-3"
- xlink:href="#linearGradient4499-8"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient4499-8"
- inkscape:collect="always">
- <stop
- id="stop4501-0"
- offset="0"
- style="stop-color:black;stop-opacity:1;" />
- <stop
- id="stop4503-9"
- offset="1"
- style="stop-color:black;stop-opacity:0;" />
- </linearGradient>
- <radialGradient
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,0.508772,0,18.12988)"
- r="12.59534"
- fy="36.907261"
- fx="23.82066"
- cy="36.907261"
- cx="23.82066"
- id="radialGradient4505-7"
- xlink:href="#linearGradient4499-8"
- inkscape:collect="always" />
- <linearGradient
- y2="5.5441942"
- x2="32.864544"
- y1="13.794194"
- x1="32.864544"
- gradientTransform="translate(-0.25,13.5)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient4473-9"
- xlink:href="#linearGradient4475-9"
- inkscape:collect="always" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient4475-9">
- <stop
- style="stop-color:black;stop-opacity:1"
- offset="0"
- id="stop4477-3" />
- <stop
- style="stop-color:black;stop-opacity:0"
- offset="1"
- id="stop4479-2" />
- </linearGradient>
- <linearGradient
- gradientTransform="translate(-0.25,12.5)"
- y2="5.5441942"
- x2="32.864544"
- y1="13.794194"
- x1="32.864544"
- gradientUnits="userSpaceOnUse"
- id="linearGradient4460-4"
- xlink:href="#linearGradient4465-3"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient4465-3"
- inkscape:collect="always">
- <stop
- id="stop4467-7"
- offset="0"
- style="stop-color:#2e3436;stop-opacity:1" />
- <stop
- id="stop4469-1"
- offset="1"
- style="stop-color:#2e3436;stop-opacity:0" />
- </linearGradient>
- <radialGradient
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.106546,0,0,0.58328,-1.909343,15.04719)"
- r="13.08399"
- fy="40.578671"
- fx="18.753521"
- cy="40.578671"
- cx="18.753521"
- id="radialGradient3691-2"
- xlink:href="#linearGradient3711-2"
- inkscape:collect="always" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient3711-2">
- <stop
- style="stop-color:#babdb6;stop-opacity:1"
- offset="0"
- id="stop3713-0" />
- <stop
- style="stop-color:#888a85;stop-opacity:1"
- offset="1"
- id="stop3715-2" />
- </linearGradient>
- <radialGradient
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,0.508772,0,18.12988)"
- r="12.59534"
- fy="36.907261"
- fx="23.82066"
- cy="36.907261"
- cx="23.82066"
- id="radialGradient2971-1"
- xlink:href="#linearGradient2965-7"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient2965-7"
- inkscape:collect="always">
- <stop
- id="stop2967-5"
- offset="0"
- style="stop-color:#888a85;stop-opacity:1;" />
- <stop
- id="stop2969-1"
- offset="1"
- style="stop-color:#888a85;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- gradientTransform="matrix(0.980843,0,0,0.974547,0.59387,-0.156861)"
- gradientUnits="userSpaceOnUse"
- y2="32.355263"
- x2="29.74268"
- y1="37.835339"
- x1="23.997437"
- id="linearGradient3785-7"
- xlink:href="#linearGradient3779-4"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient3779-4"
- inkscape:collect="always">
- <stop
- id="stop3781-1"
- offset="0"
- style="stop-color:black;stop-opacity:1;" />
- <stop
- id="stop3783-7"
- offset="1"
- style="stop-color:black;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- gradientUnits="userSpaceOnUse"
- y2="28.590008"
- x2="27.272261"
- y1="41.836731"
- x1="23.8125"
- id="linearGradient3709-1"
- xlink:href="#linearGradient3703-1"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient3703-1"
- inkscape:collect="always">
- <stop
- id="stop3705-1"
- offset="0"
- style="stop-color:white;stop-opacity:1;" />
- <stop
- id="stop3707-7"
- offset="1"
- style="stop-color:white;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- gradientTransform="translate(0,-1)"
- gradientUnits="userSpaceOnUse"
- y2="30.421146"
- x2="23.640165"
- y1="36.722809"
- x1="25.606806"
- id="linearGradient3732-0"
- xlink:href="#linearGradient3726-4"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient3726-4">
- <stop
- id="stop3728-0"
- offset="0"
- style="stop-color:#555753;stop-opacity:1" />
- <stop
- id="stop3730-8"
- offset="1"
- style="stop-color:#888a85;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- gradientTransform="translate(0,-1)"
- gradientUnits="userSpaceOnUse"
- y2="19.231655"
- x2="13.567612"
- y1="18.432873"
- x1="13.567612"
- id="linearGradient3801-5"
- xlink:href="#linearGradient3795-1"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient3795-1">
- <stop
- id="stop3797-6"
- offset="0"
- style="stop-color:white;stop-opacity:1" />
- <stop
- id="stop3799-6"
- offset="1"
- style="stop-color:#eeeeec;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- gradientTransform="translate(20,-1)"
- y2="19.231655"
- x2="13.567612"
- y1="18.432873"
- x1="13.567612"
- gradientUnits="userSpaceOnUse"
- id="linearGradient3805-2"
- xlink:href="#linearGradient3795-1"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient422">
- <stop
- id="stop424"
- offset="0"
- style="stop-color:white;stop-opacity:1" />
- <stop
- id="stop426"
- offset="1"
- style="stop-color:#eeeeec;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- gradientTransform="matrix(1,0,0,0.940947,0,1.564893)"
- gradientUnits="userSpaceOnUse"
- y2="25.229111"
- x2="21.649811"
- y1="19.452076"
- x1="23.374121"
- id="linearGradient2987-1"
- xlink:href="#linearGradient2981-9"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient2981-9">
- <stop
- id="stop2983-6"
- offset="0"
- style="stop-color:#eeeeec;stop-opacity:1;" />
- <stop
- id="stop2985-4"
- offset="1"
- style="stop-color:white;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- gradientTransform="translate(14,0)"
- y2="20.381033"
- x2="16.65625"
- y1="16.14632"
- x1="16.65625"
- gradientUnits="userSpaceOnUse"
- id="linearGradient2953-8"
- xlink:href="#linearGradient2943-0"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient2943-0">
- <stop
- id="stop2945-8"
- offset="0"
- style="stop-color:#555753;stop-opacity:1" />
- <stop
- id="stop2947-1"
- offset="1"
- style="stop-color:#2e3436;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- gradientUnits="userSpaceOnUse"
- y2="20.381033"
- x2="16.65625"
- y1="16.14632"
- x1="16.65625"
- id="linearGradient2949-0"
- xlink:href="#linearGradient2943-0"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient437">
- <stop
- id="stop439"
- offset="0"
- style="stop-color:#555753;stop-opacity:1" />
- <stop
- id="stop441"
- offset="1"
- style="stop-color:#2e3436;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- gradientUnits="userSpaceOnUse"
- y2="13.351768"
- x2="30.230837"
- y1="13.351768"
- x1="18.737373"
- id="linearGradient2902-2"
- xlink:href="#linearGradient2904-2"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient2904-2">
- <stop
- style="stop-color:#babdb6;stop-opacity:1"
- offset="0"
- id="stop2906-9" />
- <stop
- id="stop2910-7"
- offset="0.21551724"
- style="stop-color:white;stop-opacity:1;" />
- <stop
- style="stop-color:#c3c4c2;stop-opacity:1;"
- offset="0.70243758"
- id="stop2912-5" />
- <stop
- style="stop-color:#888a85;stop-opacity:1"
- offset="1"
- id="stop2908-6" />
- </linearGradient>
- <linearGradient
- gradientUnits="userSpaceOnUse"
- y2="5.125"
- x2="17.625"
- y1="20.814491"
- x1="17.625"
- id="linearGradient4487-4"
- xlink:href="#linearGradient4481-6"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient4481-6">
- <stop
- id="stop4483-3"
- offset="0"
- style="stop-color:#555753;stop-opacity:1;" />
- <stop
- id="stop4485-7"
- offset="1"
- style="stop-color:#babdb6;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- gradientTransform="translate(0,-1)"
- gradientUnits="userSpaceOnUse"
- y2="28.617105"
- x2="24.6875"
- y1="36.75"
- x1="24.6875"
- id="linearGradient3740-9"
- xlink:href="#linearGradient3734-7"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient3734-7">
- <stop
- id="stop3736-4"
- offset="0"
- style="stop-color:#babdb6;stop-opacity:1" />
- <stop
- id="stop3738-9"
- offset="1"
- style="stop-color:white;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- y2="10.76408"
- x2="23.176371"
- y1="10.76408"
- x1="19.583334"
- gradientTransform="matrix(1,0,0,0.809211,0,2.763158)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient2890-1"
- xlink:href="#linearGradient2867-7"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient2867-7"
- inkscape:collect="always">
- <stop
- id="stop2869-0"
- offset="0"
- style="stop-color:white;stop-opacity:1;" />
- <stop
- id="stop2871-6"
- offset="1"
- style="stop-color:white;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- y2="15.94703"
- x2="23.246162"
- y1="24.761473"
- x1="23.246162"
- gradientUnits="userSpaceOnUse"
- id="linearGradient2892-0"
- xlink:href="#linearGradient3815-8"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient3815-8"
- inkscape:collect="always">
- <stop
- id="stop3817-5"
- offset="0"
- style="stop-color:black;stop-opacity:1;" />
- <stop
- id="stop3819-3"
- offset="1"
- style="stop-color:black;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- y2="10.75"
- x2="24.508121"
- y1="6.3608937"
- x1="21.961548"
- gradientUnits="userSpaceOnUse"
- id="linearGradient2894-9"
- xlink:href="#linearGradient2877-4"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient2877-4"
- inkscape:collect="always">
- <stop
- id="stop2879-1"
- offset="0"
- style="stop-color:white;stop-opacity:1;" />
- <stop
- id="stop2881-5"
- offset="1"
- style="stop-color:white;stop-opacity:0;" />
- </linearGradient>
- <radialGradient
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.580773,0,0,0.961547,-12.77702,-2.531609)"
- r="6.46875"
- fy="10.432782"
- fx="22.553526"
- cy="10.432782"
- cx="22.553526"
- id="radialGradient2926-4"
- xlink:href="#linearGradient2920-1"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient2920-1"
- inkscape:collect="always">
- <stop
- id="stop2922-5"
- offset="0"
- style="stop-color:white;stop-opacity:1;" />
- <stop
- id="stop2924-5"
- offset="1"
- style="stop-color:white;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- gradientTransform="translate(0,3)"
- y2="10.081399"
- x2="30"
- y1="10.081399"
- x1="17.999674"
- gradientUnits="userSpaceOnUse"
- id="linearGradient3567-4"
- xlink:href="#linearGradient3228-9"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient3228-9">
- <stop
- id="stop3230-8"
- offset="0"
- style="stop-color:black;stop-opacity:1;" />
- <stop
- style="stop-color:black;stop-opacity:0.42857143;"
- offset="0.06770357"
- id="stop3573-3" />
- <stop
- style="stop-color:black;stop-opacity:0;"
- offset="0.29894069"
- id="stop3569-8" />
- <stop
- id="stop3571-5"
- offset="0.77437174"
- style="stop-color:black;stop-opacity:0.49803922;" />
- <stop
- id="stop3232-2"
- offset="1"
- style="stop-color:black;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- gradientTransform="matrix(1.09091,0,0,1.100001,-1.681827,0.84999)"
- gradientUnits="userSpaceOnUse"
- y2="25.991137"
- x2="28.357954"
- y1="3.4711361"
- x1="20.483149"
- id="linearGradient3585-2"
- xlink:href="#linearGradient3579-2"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient3579-2"
- inkscape:collect="always">
- <stop
- id="stop3581-7"
- offset="0"
- style="stop-color:white;stop-opacity:1;" />
- <stop
- id="stop3583-0"
- offset="1"
- style="stop-color:white;stop-opacity:0;" />
- </linearGradient>
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="13.454646"
- inkscape:cx="15.221352"
- inkscape:cy="14.716106"
- inkscape:current-layer="layer1"
- showgrid="true"
- inkscape:grid-bbox="true"
- inkscape:document-units="px"
- inkscape:window-width="872"
- inkscape:window-height="624"
- inkscape:window-x="0"
- inkscape:window-y="25" />
- <metadata
- id="metadata2166">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <cc:license
- rdf:resource="http://www.gnu.org/copyleft/gpl.html" />
- <dc:title>PulseAudio logotype</dc:title>
- <dc:date>2006-08-28</dc:date>
- <dc:creator>
- <cc:Agent>
- <dc:title>Pierre Ossman &lt;ossman@cendio.se&gt; for Cendio AB</dc:title>
- </cc:Agent>
- </dc:creator>
- <dc:rights>
- <cc:Agent>
- <dc:title />
- </cc:Agent>
- </dc:rights>
- <dc:contributor>
- <cc:Agent>
- <dc:title>Rafael Jannone (basic idea)</dc:title>
- </cc:Agent>
- </dc:contributor>
- </cc:Work>
- <cc:License
- rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
- <cc:permits
- rdf:resource="http://web.resource.org/cc/Reproduction" />
- <cc:permits
- rdf:resource="http://web.resource.org/cc/Distribution" />
- <cc:requires
- rdf:resource="http://web.resource.org/cc/Notice" />
- <cc:permits
- rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
- <cc:requires
- rdf:resource="http://web.resource.org/cc/ShareAlike" />
- <cc:requires
- rdf:resource="http://web.resource.org/cc/SourceCode" />
- </cc:License>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:groupmode="layer"
- id="layer5"
- inkscape:label="Mic">
- <g
- style="display:inline"
- id="g306"
- transform="matrix(0.49976071,0,0,0.49976071,3.2433793,5.5836561)">
- <g
- style="display:inline"
- inkscape:label="vectors"
- id="layer2">
- <path
- transform="matrix(0.727673,0,0,1.235135,7.166344,-12.0556)"
- d="m 36.415999,36.907261 c 0,3.539126 -5.639125,6.408155 -12.595339,6.408155 -6.956214,0 -12.59534,-2.869029 -12.59534,-6.408155 0,-3.539127 5.639126,-6.408156 12.59534,-6.408156 6.956214,0 12.595339,2.869029 12.595339,6.408156 z"
- sodipodi:ry="6.4081554"
- sodipodi:rx="12.59534"
- sodipodi:cy="36.907261"
- sodipodi:cx="23.82066"
- id="path3010"
- style="opacity:0.1;fill:url(#radialGradient3012-3);fill-opacity:1;stroke:none;display:inline"
- sodipodi:type="arc" />
- <path
- transform="matrix(1.233813,0,0,1.235135,-4.890235,-6.055598)"
- d="m 36.415999,36.907261 c 0,3.539126 -5.639125,6.408155 -12.595339,6.408155 -6.956214,0 -12.59534,-2.869029 -12.59534,-6.408155 0,-3.539127 5.639126,-6.408156 12.59534,-6.408156 6.956214,0 12.595339,2.869029 12.595339,6.408156 z"
- sodipodi:ry="6.4081554"
- sodipodi:rx="12.59534"
- sodipodi:cy="36.907261"
- sodipodi:cx="23.82066"
- id="path4489"
- style="opacity:0.7;fill:url(#radialGradient4505-7);fill-opacity:1;stroke:none;display:inline"
- sodipodi:type="arc" />
- <path
- style="opacity:0.2;fill:none;stroke:url(#linearGradient4473-9);stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
- d="M 32.800044,40.588388 C 24.781634,29.5 47,35.875 46.25,32 45.476667,28.004445 36.399824,30.554499 36.875,26.25 37.336541,22.069018 46.75,23.75 44.625,15"
- id="path4471"
- sodipodi:nodetypes="czzc" />
- <path
- style="fill:none;stroke:url(#linearGradient4460-4);stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
- d="M 32.800044,39.588388 C 24.781634,28.5 47,34.875 46.25,31 45.476667,27.004445 36.399824,29.554499 36.875,25.25 37.336541,21.069018 46.75,22.75 44.625,14"
- id="path4172"
- sodipodi:nodetypes="czzc" />
- <path
- transform="matrix(1.032128,0,0,1.014402,-0.08596444,1.56074)"
- d="m 36.415999,36.907261 c 0,3.539126 -5.639125,6.408155 -12.595339,6.408155 -6.956214,0 -12.59534,-2.869029 -12.59534,-6.408155 0,-3.539127 5.639126,-6.408156 12.59534,-6.408156 6.956214,0 12.595339,2.869029 12.595339,6.408156 z"
- sodipodi:ry="6.4081554"
- sodipodi:rx="12.59534"
- sodipodi:cy="36.907261"
- sodipodi:cx="23.82066"
- id="path3683"
- style="fill:url(#radialGradient3691-2);fill-opacity:1;stroke:#555753;stroke-width:0.97730058;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
- sodipodi:type="arc" />
- <path
- transform="matrix(0.43667,0,0,0.429141,14.09824,21.41158)"
- d="m 36.415999,36.907261 c 0,3.539126 -5.639125,6.408155 -12.595339,6.408155 -6.956214,0 -12.59534,-2.869029 -12.59534,-6.408155 0,-3.539127 5.639126,-6.408156 12.59534,-6.408156 6.956214,0 12.595339,2.869029 12.595339,6.408156 z"
- sodipodi:ry="6.4081554"
- sodipodi:rx="12.59534"
- sodipodi:cy="36.907261"
- sodipodi:cx="23.82066"
- id="path2955"
- style="fill:url(#radialGradient2971-1);fill-opacity:1;stroke:none;display:inline"
- sodipodi:type="arc" />
- <path
- sodipodi:nodetypes="ccssccc"
- id="path3766"
- d="m 27.35249,32.125 c -1.738654,0.735383 -2.545819,2.052948 -3.67816,3.167277 -0.486309,0.3076 -0.5997,0.709446 -0.51965,1.276685 0.08005,0.567243 0.489446,1.055334 1.042146,1.218184 0.552698,0.162848 0.999547,0.130039 1.377887,-0.302139 C 26.676195,35.285524 28.744563,33.983863 31,32.85591 29.870496,32.536987 28.651039,32.264053 27.35249,32.125 z"
- style="opacity:0.7;fill:url(#linearGradient3785-7);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
- <path
- transform="matrix(1.032128,0,0,1.014402,-0.08596444,1.56074)"
- d="m 23.8125,31.5 c -3.339495,0 -6.371551,0.683256 -8.46875,1.75 -2.097199,1.066744 -3.125,2.416366 -3.125,3.65625 0,1.239884 1.027801,2.589506 3.125,3.65625 2.097199,1.066744 5.129255,1.750001 8.46875,1.75 3.339495,0 6.371551,-0.683256 8.46875,-1.75 2.097199,-1.066744 3.125,-2.416366 3.125,-3.65625 0,-1.239884 -1.027801,-2.589506 -3.125,-3.65625 C 30.184051,32.183256 27.151995,31.5 23.8125,31.5 z"
- id="path3697"
- style="opacity:0.4;fill:none;stroke:url(#linearGradient3709-1);stroke-width:0.97730058;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
- inkscape:original="M 23.8125 30.5 C 16.859872 30.5 11.21875 33.368948 11.21875 36.90625 C 11.21875 40.443552 16.859872 43.312502 23.8125 43.3125 C 30.765128 43.3125 36.406249 40.443552 36.40625 36.90625 C 36.40625 33.368948 30.765128 30.5 23.8125 30.5 z "
- inkscape:radius="-0.99470079"
- sodipodi:type="inkscape:offset" />
- <path
- sodipodi:nodetypes="cc"
- id="path3589"
- d="m 24.5,27.5 0,9"
- style="fill:none;stroke:url(#linearGradient3732-0);stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
- <path
- sodipodi:nodetypes="csc"
- id="path2781"
- d="m 34.500008,18.999997 c -8e-6,4.285711 -4.46,7.500001 -10.000002,7.500001 -5.540002,0 -10.000006,-3.21429 -10.000003,-7.500001"
- style="fill:none;stroke:#888a85;stroke-width:3.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
- <rect
- y="16.499998"
- x="12.5"
- height="2.9999995"
- width="4"
- id="rect2783"
- style="fill:url(#linearGradient3801-5);fill-opacity:1;stroke:#888a85;stroke-width:0.99999988;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline" />
- <rect
- y="16.499998"
- x="32.5"
- height="2.9999995"
- width="4"
- id="rect3803"
- style="fill:url(#linearGradient3805-2);fill-opacity:1;stroke:#888a85;stroke-width:0.99999988;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline" />
- <path
- sodipodi:nodetypes="csc"
- id="rect1882"
- d="m 34.500008,18.999991 c 0,4.28571 -4.46,7.500001 -10.000002,7.500001 -5.540002,0 -10.000006,-3.214291 -10.000003,-7.500001"
- style="fill:none;stroke:url(#linearGradient2987-1);stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
- <rect
- ry="0.9722718"
- rx="0.9722718"
- y="15"
- x="30"
- height="6"
- width="3.0000005"
- id="rect2951"
- style="fill:url(#linearGradient2953-8);fill-opacity:1;stroke:none;display:inline" />
- <path
- transform="matrix(1.5,0,0,1.5,12.25,-11.25)"
- d="m 14.5,19 c 0,0.276142 -0.223858,0.5 -0.5,0.5 -0.276142,0 -0.5,-0.223858 -0.5,-0.5 0,-0.276142 0.223858,-0.5 0.5,-0.5 0.276142,0 0.5,0.223858 0.5,0.5 z"
- sodipodi:ry="0.5"
- sodipodi:rx="0.5"
- sodipodi:cy="19"
- sodipodi:cx="14"
- id="path3825"
- style="fill:#ffffff;fill-opacity:1;stroke:none;display:inline"
- sodipodi:type="arc" />
- <rect
- ry="0.9722718"
- rx="0.9722718"
- y="15"
- x="16"
- height="6"
- width="3.0000005"
- id="rect2787"
- style="fill:url(#linearGradient2949-0);fill-opacity:1;stroke:none;display:inline" />
- <rect
- ry="7.0108709"
- rx="7.0000019"
- y="1.5000002"
- x="17.499996"
- height="24.000008"
- width="14.000004"
- id="rect1880"
- style="fill:url(#linearGradient2902-2);fill-opacity:1;stroke:url(#linearGradient4487-4);stroke-width:1.00000048;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
- <path
- sodipodi:nodetypes="cc"
- id="path3587"
- d="m 24.5,26.5 0,10"
- style="fill:none;stroke:url(#linearGradient3740-9);stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
- <path
- transform="matrix(1.5,0,0,1.5,-7.75,-11.25)"
- d="m 14.5,19 c 0,0.276142 -0.223858,0.5 -0.5,0.5 -0.276142,0 -0.5,-0.223858 -0.5,-0.5 0,-0.276142 0.223858,-0.5 0.5,-0.5 0.276142,0 0.5,0.223858 0.5,0.5 z"
- sodipodi:ry="0.5"
- sodipodi:rx="0.5"
- sodipodi:cy="19"
- sodipodi:cx="14"
- id="path3823"
- style="fill:#ffffff;fill-opacity:1;stroke:none"
- sodipodi:type="arc" />
- <g
- id="g3270"
- inkscape:label="Shadow"
- transform="translate(-9.25,46.68088)" />
- <g
- transform="translate(-9.25,61.74691)"
- inkscape:label="Shadow"
- id="g2611" />
- <g
- transform="translate(-9.25,61.74691)"
- style="display:inline"
- inkscape:label="Lavoro"
- id="g2613" />
- <g
- id="g2885">
- <rect
- style="fill:url(#linearGradient2890-1);fill-opacity:1;stroke:none;display:inline"
- id="rect1975"
- width="4"
- height="15.374996"
- x="20"
- y="6"
- rx="2"
- ry="2.1991496" />
- <path
- sodipodi:type="inkscape:offset"
- inkscape:radius="-0.54470092"
- inkscape:original="M 24.5 2.5 C 20.621999 2.5 17.5 5.615977 17.5 9.5 L 17.5 19.5 C 17.5 23.384022 20.621999 26.5 24.5 26.5 C 28.378001 26.5 31.5 23.384022 31.5 19.5 L 31.5 9.5 C 31.5 5.6159775 28.378001 2.5 24.5 2.5 z "
- style="opacity:0.2;fill:url(#linearGradient2892-0);fill-opacity:1;stroke:none;display:inline"
- id="path3811"
- d="m 24.5,3.03125 c -3.586223,0 -6.46875,2.8766161 -6.46875,6.46875 l 0,10 c 0,3.592133 2.882528,6.46875 6.46875,6.46875 3.586222,0 6.46875,-2.876617 6.46875,-6.46875 l 0,-10 c 0,-3.5921334 -2.882527,-6.46875 -6.46875,-6.46875 z"
- transform="translate(0,-1)" />
- <path
- sodipodi:type="arc"
- style="fill:url(#linearGradient2894-9);fill-opacity:1;stroke:none"
- id="path2875"
- sodipodi:cx="23.65625"
- sodipodi:cy="7.6875"
- sodipodi:rx="3.34375"
- sodipodi:ry="3.0625"
- d="M 27,7.6875 C 27,9.378872 25.502952,10.75 23.65625,10.75 21.809548,10.75 20.3125,9.378872 20.3125,7.6875 20.3125,5.996128 21.809548,4.625 23.65625,4.625 25.502952,4.625 27,5.996128 27,7.6875 z"
- transform="matrix(1,0,0,1.081633,-0.375,-1.252551)" />
- </g>
- <path
- sodipodi:nodetypes="cccccc"
- id="path2916"
- d="m 24.5,3.03125 c -3.586223,0 -6.46875,2.8766161 -6.46875,6.46875 l 0,5 12.9375,0 0,-5 c 0,-3.5921334 -2.882527,-6.46875 -6.46875,-6.46875 z"
- style="opacity:0.9;fill:url(#radialGradient2926-4);fill-opacity:1;stroke:none;display:inline"
- transform="translate(0,-1)" />
- </g>
- <g
- style="display:inline"
- inkscape:label="buchi"
- id="layer3">
- <path
- sodipodi:nodetypes="csssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssccsssc"
- id="path2902"
- d="M 22.5,3 C 22.224,3 22,3.224 22,3.5 22,3.776 22.224,4 22.5,4 22.776,4 23,3.776 23,3.5 23,3.224 22.776,3 22.5,3 z m 2,0 C 24.224,3 24,3.224 24,3.5 24,3.776 24.224,4 24.5,4 24.776,4 25,3.776 25,3.5 25,3.224 24.776,3 24.5,3 z m 2,0 C 26.224,3 26,3.224 26,3.5 26,3.776 26.224,4 26.5,4 26.776,4 27,3.776 27,3.5 27,3.224 26.776,3 26.5,3 z m -5,1 C 21.224,4 21,4.224 21,4.5 21,4.776 21.224,5 21.5,5 21.776,5 22,4.776 22,4.5 22,4.224 21.776,4 21.5,4 z m 2,0 C 23.224,4 22.999999,4.2240007 23,4.5 23,4.7759993 23.223999,5 23.5,5 23.776,5 24,4.7759993 24,4.5 24,4.2240007 23.776,4 23.5,4 z m 2,0 C 25.224,4 24.999999,4.2240007 25,4.5 25,4.7759993 25.223999,5 25.5,5 25.776,5 26,4.7759993 26,4.5 26,4.2240007 25.776,4 25.5,4 z m 2,0 C 27.224,4 27,4.224 27,4.5 27,4.776 27.224,5 27.5,5 27.776,5 28,4.776 28,4.5 28,4.224 27.776,4 27.5,4 z m -7,1 C 20.224,5 19.999999,5.2240008 20,5.5 20,5.7759993 20.223999,6 20.5,6 20.776,6 21,5.7759994 21,5.5 21,5.2240007 20.776,5 20.5,5 z m 2,0 C 22.224,5 21.999999,5.2240008 22,5.5 22,5.7759993 22.223999,6 22.5,6 22.776,6 23,5.7759994 23,5.5 23,5.2240007 22.776,5 22.5,5 z m 2,0 C 24.224,5 23.999999,5.2240008 24,5.5 24,5.7759993 24.223999,6 24.5,6 24.776,6 25,5.7759994 25,5.5 25,5.2240007 24.776,5 24.5,5 z m 2,0 C 26.224,5 25.999999,5.2240008 26,5.5 26,5.7759993 26.223999,6 26.5,6 26.776,6 27,5.7759994 27,5.5 27,5.2240007 26.776,5 26.5,5 z m 2,0 C 28.224,5 28,5.224 28,5.5 28,5.776 28.224,6 28.5,6 28.776,6 29,5.776 29,5.5 29,5.224 28.776,5 28.5,5 z m -9,1 C 19.224,6 18.999999,6.2240008 19,6.5 19,6.7759993 19.223999,7 19.5,7 19.776,7 20,6.7759994 20,6.5 20,6.2240007 19.776,6 19.5,6 z m 2,0 C 21.224,6 20.999999,6.2240008 21,6.5 21,6.7759993 21.223999,7 21.5,7 21.776,7 22,6.7759994 22,6.5 22,6.2240007 21.776,6 21.5,6 z m 2,0 C 23.224,6 22.999999,6.2240008 23,6.5 23,6.7759993 23.223999,7 23.5,7 23.776,7 24,6.7759994 24,6.5 24,6.2240007 23.776,6 23.5,6 z m 2,0 C 25.224,6 24.999999,6.2240008 25,6.5 25,6.7759993 25.223999,7 25.5,7 25.776,7 26,6.7759994 26,6.5 26,6.2240007 25.776,6 25.5,6 z m 2,0 C 27.224,6 26.999999,6.2240008 27,6.5 27,6.7759993 27.223999,7 27.5,7 27.776,7 28,6.7759994 28,6.5 28,6.2240007 27.776,6 27.5,6 z m 2,0 C 29.224,6 29,6.224 29,6.5 29,6.776 29.224,7 29.5,7 29.776,7 30,6.776 30,6.5 30,6.224 29.776,6 29.5,6 z m -9,1 C 20.224,7 19.999999,7.2240008 20,7.5 20,7.7759993 20.223999,8.0000002 20.5,8 20.776,8 21,7.7759994 21,7.5 21,7.2240007 20.776,7 20.5,7 z m 2,0 C 22.224,7 21.999999,7.2240008 22,7.5 22,7.7759993 22.223999,8.0000002 22.5,8 22.776,8 23,7.7759994 23,7.5 23,7.2240007 22.776,7 22.5,7 z m 2,0 C 24.224,7 23.999999,7.2240008 24,7.5 24,7.7759993 24.223999,8.0000002 24.5,8 24.776,8 25,7.7759994 25,7.5 25,7.2240007 24.776,7 24.5,7 z m 2,0 C 26.224,7 25.999999,7.2240008 26,7.5 26,7.7759993 26.223999,8.0000002 26.5,8 26.776,8 27,7.7759994 27,7.5 27,7.2240007 26.776,7 26.5,7 z m 2,0 C 28.224,7 27.999999,7.2240008 28,7.5 28,7.7759993 28.223999,8.0000002 28.5,8 28.776,8 29,7.7759994 29,7.5 29,7.2240007 28.776,7 28.5,7 z m 2,0 C 30.224,7 30,7.224 30,7.5 30,7.776 30.224,8 30.5,8 30.776,8 31,7.776 31,7.5 31,7.224 30.776,7 30.5,7 z m -11,1 C 19.224,8 18.999999,8.2240008 19,8.5 19,8.7759993 19.223999,9 19.5,9 19.776,9 20,8.7759994 20,8.5 20,8.2240007 19.776,8 19.5,8 z m 2,0 C 21.224,8 20.999999,8.2240008 21,8.5 21,8.7759993 21.223999,9 21.5,9 21.776,9 22,8.7759994 22,8.5 22,8.2240007 21.776,8 21.5,8 z m 2,0 C 23.224,8 22.999999,8.2240008 23,8.5 23,8.7759993 23.223999,9 23.5,9 23.776,9 24,8.7759994 24,8.5 24,8.2240007 23.776,8 23.5,8 z m 2,0 C 25.224,8 24.999999,8.2240008 25,8.5 25,8.7759993 25.223999,9 25.5,9 25.776,9 26,8.7759994 26,8.5 26,8.2240007 25.776,8 25.5,8 z m 2,0 C 27.224,8 26.999999,8.2240008 27,8.5 27,8.7759993 27.223999,9 27.5,9 27.776,9 28,8.7759994 28,8.5 28,8.2240007 27.776,8 27.5,8 z m 2,0 C 29.224,8 28.999999,8.2240008 29,8.5 29,8.7759993 29.223999,9 29.5,9 29.776,9 30,8.7759994 30,8.5 30,8.2240007 29.776,8 29.5,8 z m -11,1 C 18.224,9 17.999999,9.224001 18,9.5 18,9.775999 18.223999,10 18.5,10 18.776,10 19,9.775999 19,9.5 19,9.224001 18.776,9 18.5,9 z m 2,0 C 20.224,9 19.999999,9.224001 20,9.5 20,9.775999 20.223999,10 20.5,10 20.776,10 21,9.775999 21,9.5 21,9.224001 20.776,9 20.5,9 z m 2,0 C 22.224,9 21.999999,9.224001 22,9.5 22,9.775999 22.223999,10 22.5,10 22.776,10 23,9.775999 23,9.5 23,9.224001 22.776,9 22.5,9 z m 2,0 C 24.224,9 23.999999,9.224001 24,9.5 24,9.775999 24.223999,10 24.5,10 24.776,10 25,9.775999 25,9.5 25,9.224001 24.776,9 24.5,9 z m 2,0 C 26.224,9 25.999999,9.224001 26,9.5 26,9.775999 26.223999,10 26.5,10 26.776,10 27,9.775999 27,9.5 27,9.224001 26.776,9 26.5,9 z m 2,0 C 28.224,9 27.999999,9.224001 28,9.5 28,9.775999 28.223999,10 28.5,10 28.776,10 29,9.775999 29,9.5 29,9.224001 28.776,9 28.5,9 z m 2,0 C 30.224,9 30,9.224 30,9.5 30,9.776 30.224,10 30.5,10 30.776,10 31,9.776 31,9.5 31,9.224 30.776,9 30.5,9 z m -11,1 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 19.776,11 20,10.775999 20,10.5 20,10.224001 19.776,10 19.5,10 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 21.776,11 22,10.775999 22,10.5 22,10.224001 21.776,10 21.5,10 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 23.776,11 24,10.775999 24,10.5 24,10.224001 23.776,10 23.5,10 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 25.776,11 26,10.775999 26,10.5 26,10.224001 25.776,10 25.5,10 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 27.776,11 28,10.775999 28,10.5 28,10.224001 27.776,10 27.5,10 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 29.776,11 30,10.775999 30,10.5 30,10.224001 29.776,10 29.5,10 z m -11,1 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 18.776,12 19,11.775999 19,11.5 19,11.224001 18.776,11 18.5,11 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 20.776,12 21,11.775999 21,11.5 21,11.224001 20.776,11 20.5,11 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 22.776,12 23,11.775999 23,11.5 23,11.224001 22.776,11 22.5,11 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 24.776,12 25,11.775999 25,11.5 25,11.224001 24.776,11 24.5,11 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 26.776,12 27,11.775999 27,11.5 27,11.224001 26.776,11 26.5,11 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 28.776,12 29,11.775999 29,11.5 29,11.224001 28.776,11 28.5,11 z m 2,0 C 30.224,11 30,11.224 30,11.5 30,11.776 30.224,12 30.5,12 30.776,12 31,11.776 31,11.5 31,11.224 30.776,11 30.5,11 z m -11,1 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 19.776,13 20,12.775999 20,12.5 20,12.224001 19.776,12 19.5,12 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 21.776,13 22,12.775999 22,12.5 22,12.224001 21.776,12 21.5,12 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 23.776,13 24,12.775999 24,12.5 24,12.224001 23.776,12 23.5,12 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 25.776,13 26,12.775999 26,12.5 26,12.224001 25.776,12 25.5,12 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 27.776,13 28,12.775999 28,12.5 28,12.224001 27.776,12 27.5,12 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 29.776,13 30,12.775999 30,12.5 30,12.224001 29.776,12 29.5,12 z m -11,1 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 18.776,14 19,13.775999 19,13.5 19,13.224001 18.776,13 18.5,13 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 20.776,14 21,13.775999 21,13.5 21,13.224001 20.776,13 20.5,13 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 22.776,14 23,13.775999 23,13.5 23,13.224001 22.776,13 22.5,13 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 24.776,14 25,13.775999 25,13.5 25,13.224001 24.776,13 24.5,13 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 26.776,14 27,13.775999 27,13.5 27,13.224001 26.776,13 26.5,13 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 28.776,14 29,13.775999 29,13.5 29,13.224001 28.776,13 28.5,13 z m 2,0 C 30.224,13 30,13.224 30,13.5 30,13.776 30.224,14 30.5,14 30.776,14 31,13.776 31,13.5 31,13.224 30.776,13 30.5,13 z m -11,1 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 19.776,15 20,14.775999 20,14.5 20,14.224001 19.776,14 19.5,14 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 21.776,15 22,14.775999 22,14.5 22,14.224001 21.776,14 21.5,14 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 23.776,15 24,14.775999 24,14.5 24,14.224001 23.776,14 23.5,14 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 25.776,15 26,14.775999 26,14.5 26,14.224001 25.776,14 25.5,14 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 27.776,15 28,14.775999 28,14.5 28,14.224001 27.776,14 27.5,14 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 29.776,15 30,14.775999 30,14.5 30,14.224001 29.776,14 29.5,14 z m -11,1 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 18.776,16 19,15.775999 19,15.5 19,15.224001 18.776,15 18.5,15 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 20.776,16 21,15.775999 21,15.5 21,15.224001 20.776,15 20.5,15 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 22.776,16 23,15.775999 23,15.5 23,15.224001 22.776,15 22.5,15 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 24.776,16 25,15.775999 25,15.5 25,15.224001 24.776,15 24.5,15 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 26.776,16 27,15.775999 27,15.5 27,15.224001 26.776,15 26.5,15 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 28.776,16 29,15.775999 29,15.5 29,15.224001 28.776,15 28.5,15 z m 2,0 C 30.224,15 30,15.224 30,15.5 30,15.776 30.224,16 30.5,16 30.776,16 31,15.776 31,15.5 31,15.224 30.776,15 30.5,15 z m -11,1 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 19.776,17 20,16.776 20,16.5 20,16.224001 19.776,16 19.5,16 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 21.776,17 22,16.776 22,16.5 22,16.224001 21.776,16 21.5,16 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 23.776,17 24,16.776 24,16.5 24,16.224001 23.776,16 23.5,16 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 25.776,17 26,16.776 26,16.5 26,16.224001 25.776,16 25.5,16 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 27.776,17 28,16.776 28,16.5 28,16.224001 27.776,16 27.5,16 z m 2,0 c -0.276,0 -0.500001,0.224 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 29.776,17 30,16.775999 30,16.5 30,16.224001 29.776,16 29.5,16 z m -11,1 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 18.776,18 19,17.776 19,17.5 19,17.224001 18.776,17 18.5,17 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 20.776,18 21,17.776 21,17.5 21,17.224001 20.776,17 20.5,17 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 22.776,18 23,17.776 23,17.5 23,17.224001 22.776,17 22.5,17 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 24.776,18 25,17.776 25,17.5 25,17.224001 24.776,17 24.5,17 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 26.776,18 27,17.776 27,17.5 27,17.224001 26.776,17 26.5,17 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 28.776,18 29,17.776 29,17.5 29,17.224001 28.776,17 28.5,17 z m 2,0 C 30.224,17 30,17.224 30,17.5 30,17.776 30.224,18 30.5,18 30.776,18 31,17.776 31,17.5 31,17.224 30.776,17 30.5,17 z m -11,1 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 19.776,19 20,18.776 20,18.5 20,18.224001 19.776,18 19.5,18 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 21.776,19 22,18.776 22,18.5 22,18.224001 21.776,18 21.5,18 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 23.776,19 24,18.776 24,18.5 24,18.224001 23.776,18 23.5,18 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 25.776,19 26,18.776 26,18.5 26,18.224001 25.776,18 25.5,18 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 27.776,19 28,18.776 28,18.5 28,18.224001 27.776,18 27.5,18 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.5 0.5,0.5 C 29.776,19 30,18.776 30,18.5 30,18.224001 29.776,18 29.5,18 z m -11,1 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 18.776,20 19,19.776 19,19.5 19,19.224001 18.776,19 18.5,19 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 20.776,20 21,19.776 21,19.5 21,19.224001 20.776,19 20.5,19 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 22.776,20 23,19.776 23,19.5 23,19.224001 22.776,19 22.5,19 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 24.776,20 25,19.776 25,19.5 25,19.224001 24.776,19 24.5,19 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 26.776,20 27,19.776 27,19.5 27,19.224001 26.776,19 26.5,19 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 28.776,20 29,19.776 29,19.5 29,19.224001 28.776,19 28.5,19 z m 2,0 C 30.224,19 30,19.224 30,19.5 30,19.776 30.224,20 30.5,20 30.776,20 31,19.776 31,19.5 31,19.224 30.776,19 30.5,19 z m -11,1 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 19.776,21 20,20.776 20,20.5 20,20.224001 19.776,20 19.5,20 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 21.776,21 22,20.776 22,20.5 22,20.224001 21.776,20 21.5,20 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 23.776,21 24,20.776 24,20.5 24,20.224001 23.776,20 23.5,20 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 25.776,21 26,20.776 26,20.5 26,20.224001 25.776,20 25.5,20 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 27.776,21 28,20.776 28,20.5 28,20.224001 27.776,20 27.5,20 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 29.776,21 30,20.776 30,20.5 30,20.224001 29.776,20 29.5,20 z m -9,1 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 20.776,22 21,21.776 21,21.5 21,21.224001 20.776,21 20.5,21 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 22.776,22 23,21.776 23,21.5 23,21.224001 22.776,21 22.5,21 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 24.776,22 25,21.776 25,21.5 25,21.224001 24.776,21 24.5,21 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 26.776,22 27,21.776 27,21.5 27,21.224001 26.776,21 26.5,21 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 28.776,22 29,21.776 29,21.5 29,21.224001 28.776,21 28.5,21 z m -7,1 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 21.776,23 22,22.776 22,22.5 22,22.224001 21.776,22 21.5,22 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 23.776,23 24,22.776 24,22.5 24,22.224001 23.776,22 23.5,22 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 25.776,23 26,22.776 26,22.5 26,22.224001 25.776,22 25.5,22 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 27.776,23 28,22.776 28,22.5 28,22.224001 27.776,22 27.5,22 z m -5,1 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 22.776,24 23,23.776 23,23.5 23,23.224001 22.776,23 22.5,23 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 24.776,24 25,23.776 25,23.5 25,23.224001 24.776,23 24.5,23 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 26.776,24 27,23.776 27,23.5 27,23.224001 26.776,23 26.5,23 z m -3,1 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 23.776,25 24,24.776 24,24.5 24,24.224001 23.776,24 23.5,24 z m 2,0 c -0.276,0 -0.500001,0.224001 -0.5,0.5 0,0.275999 0.223999,0.499999 0.5,0.5 C 25.776,25 26,24.776 26,24.5 26,24.224001 25.776,24 25.5,24 z"
- style="opacity:0.5;fill:url(#linearGradient3567-4);fill-opacity:1;stroke:none;display:inline" />
- <rect
- ry="6.0500031"
- rx="6.0000024"
- y="2.5000026"
- x="18.500008"
- height="22.000008"
- width="12.000005"
- id="rect3575"
- style="fill:none;stroke:url(#linearGradient3585-2);stroke-width:1.0000006;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline" />
- </g>
- </g>
- </g>
- <g
- id="layer1"
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- transform="translate(-9.6490002,-6.236078)"
- style="display:inline">
- <g
- id="g781"
- transform="matrix(0.88131313,0,0,0.88131313,2.9517844,0.78404468)">
- <path
- style="fill:#729fcf;fill-opacity:1;stroke:none"
- d="m 22.365786,11.528391 c -4.16858,1.106752 -7.242777,4.906525 -7.242774,9.421848 0,4.51531 3.074196,8.318988 7.242774,9.42574 -3.007226,-1.349598 -5.168955,-5.062913 -5.168955,-9.42574 -1e-6,-4.362815 2.161728,-8.07225 5.168955,-9.421848 z m 5.009131,0 c 3.007227,1.349598 5.168955,5.059021 5.168955,9.421848 0,4.362827 -2.161729,8.076142 -5.168955,9.42574 4.16858,-1.106752 7.242777,-4.91043 7.242774,-9.42574 0,-4.515311 -3.074193,-8.315096 -7.242774,-9.421848 z"
- id="path2419" />
- <path
- id="path2421"
- d="M 20.959247,6.236078 C 14.449633,7.9643721 9.6489964,13.898061 9.6490002,20.949142 c 0,7.05107 4.8006348,12.990862 11.3102468,14.719148 -4.696056,-2.107524 -8.071791,-7.906196 -8.071791,-14.719148 -2e-6,-6.812926 3.375734,-12.6055448 8.071791,-14.713064 z m 7.82221,0 c 4.696057,2.1075192 8.07179,7.900118 8.07179,14.713064 0,6.812952 -3.375735,12.611624 -8.07179,14.719148 6.509614,-1.728286 11.31025,-7.668078 11.310246,-14.719148 0,-7.051061 -4.80063,-12.9847699 -11.310246,-14.713064 z"
- style="fill:#729fcf;fill-opacity:1;stroke:none" />
- </g>
- </g>
- <g
- inkscape:groupmode="layer"
- id="layer4"
- inkscape:label="center"
- style="display:none">
- <path
- transform="matrix(0.2091112,0,0,0.2091112,15.430463,-165.87494)"
- d="m 22,863.61249 a 23,23 0 1 1 -46,0 23,23 0 1 1 46,0 z"
- sodipodi:ry="23"
- sodipodi:rx="23"
- sodipodi:cy="863.61249"
- sodipodi:cx="-1"
- id="path2417"
- style="fill:#729fcf;fill-opacity:1;stroke:none"
- sodipodi:type="arc" />
- </g>
-</svg>
diff --git a/pulsecaster/data/pulsecaster.glade b/pulsecaster/data/pulsecaster.glade
deleted file mode 100644
index f46c93c..0000000
--- a/pulsecaster/data/pulsecaster.glade
+++ /dev/null
@@ -1,471 +0,0 @@
-<?xml version="1.0"?>
-<interface>
- <requires lib="gtk+" version="2.16"/>
- <!-- interface-naming-policy project-wide -->
- <object class="GtkAboutDialog" id="about_dialog">
- <property name="border_width">5</property>
- <property name="resizable">False</property>
- <property name="window_position">center-always</property>
- <property name="destroy_with_parent">True</property>
- <property name="type_hint">normal</property>
- <property name="has_separator">False</property>
- <property name="authors"></property>
- <child internal-child="vbox">
- <object class="GtkVBox" id="dialog-vbox1">
- <property name="visible">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">2</property>
- <child>
- <placeholder/>
- </child>
- <child internal-child="action_area">
- <object class="GtkHButtonBox" id="dialog-action_area1">
- <property name="visible">True</property>
- <property name="layout_style">end</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="pack_type">end</property>
- <property name="position">0</property>
- </packing>
- </child>
- </object>
- </child>
- </object>
- <object class="GtkDialog" id="main_dialog">
- <property name="border_width">5</property>
- <property name="default_width">300</property>
- <property name="icon">icons/scalable/pulsecaster.svg</property>
- <property name="type_hint">normal</property>
- <property name="has_separator">False</property>
- <child internal-child="vbox">
- <object class="GtkVBox" id="dialog-vbox2">
- <property name="visible">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">5</property>
- <child>
- <object class="GtkHBox" id="hbox1">
- <property name="visible">True</property>
- <property name="spacing">10</property>
- <child>
- <object class="GtkImage" id="logo">
- <property name="visible">True</property>
- <property name="xpad">10</property>
- <property name="pixbuf">icons/48x48/pulsecaster-48.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="main_title">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="yalign">0.40000000596046448</property>
- <property name="use_markup">True</property>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="padding">5</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkVBox" id="vbox2">
- <property name="visible">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">5</property>
- <child>
- <object class="GtkLabel" id="label2">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="yalign">0</property>
- <property name="xpad">10</property>
- <property name="ypad">10</property>
- <property name="label" translatable="yes">&lt;i&gt;Select the audio sources to mix, and a destination file for saving the resulting audio.&lt;/i&gt;</property>
- <property name="use_markup">True</property>
- <property name="wrap">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkHBox" id="hbox5">
- <property name="visible">True</property>
- <child>
- <object class="GtkVBox" id="vbox1">
- <property name="visible">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">5</property>
- <property name="homogeneous">True</property>
- <child>
- <object class="GtkLabel" id="label3">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="xpad">10</property>
- <property name="label" translatable="yes">Your voice:</property>
- <property name="justify">right</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="padding">5</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label4">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="xpad">10</property>
- <property name="label" translatable="yes">Subject's voice:</property>
- <property name="justify">right</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="padding">5</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkVBox" id="combo_vbox">
- <property name="visible">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">5</property>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkHBox" id="hbox2">
- <property name="visible">True</property>
- <child>
- <object class="GtkLabel" id="label5">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="xpad">10</property>
- <property name="label" translatable="yes">Destination file:</property>
- <property name="justify">right</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="padding">5</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="destfile_label">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="use_markup">True</property>
- <property name="ellipsize">middle</property>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="open_button">
- <property name="label" translatable="yes">Browse...</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">2</property>
- </packing>
- </child>
- <child internal-child="action_area">
- <object class="GtkHButtonBox" id="dialog-action_area2">
- <property name="visible">True</property>
- <property name="layout_style">end</property>
- <child>
- <object class="GtkButton" id="about_button">
- <property name="label" translatable="yes">gtk-about</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_stock">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- <property name="secondary">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="close_button">
- <property name="label" translatable="yes">gtk-close</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_stock">True</property>
- <signal name="clicked" handler="gtk_main_quit"/>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">5</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="record_button">
- <property name="label" translatable="yes">gtk-media-record</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_stock">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">5</property>
- <property name="pack_type">end</property>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">5</property>
- <property name="pack_type">end</property>
- <property name="position">0</property>
- </packing>
- </child>
- </object>
- </child>
- <action-widgets>
- <action-widget response="0">about_button</action-widget>
- <action-widget response="0">close_button</action-widget>
- <action-widget response="0">record_button</action-widget>
- </action-widgets>
- </object>
- <object class="GtkFileChooserDialog" id="file_chooser">
- <property name="border_width">5</property>
- <property name="modal">True</property>
- <property name="destroy_with_parent">True</property>
- <property name="type_hint">normal</property>
- <property name="has_separator">False</property>
- <property name="do_overwrite_confirmation">True</property>
- <property name="local_only">False</property>
- <property name="action">save</property>
- <child internal-child="vbox">
- <object class="GtkVBox" id="dialog-vbox4">
- <property name="visible">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">2</property>
- <child>
- <placeholder/>
- </child>
- <child internal-child="action_area">
- <object class="GtkHButtonBox" id="dialog-action_area4">
- <property name="visible">True</property>
- <property name="layout_style">end</property>
- <child>
- <object class="GtkButton" id="file_chooser_cancel_button">
- <property name="label" translatable="yes">gtk-cancel</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_stock">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="file_chooser_save_button">
- <property name="label" translatable="yes">gtk-save</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_stock">True</property>
- <property name="xalign">0.43999999761581421</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="pack_type">end</property>
- <property name="position">0</property>
- </packing>
- </child>
- </object>
- </child>
- <action-widgets>
- <action-widget response="0">file_chooser_cancel_button</action-widget>
- <action-widget response="0">file_chooser_save_button</action-widget>
- </action-widgets>
- </object>
- <object class="GtkWindow" id="warning">
- <property name="resizable">False</property>
- <property name="modal">True</property>
- <property name="window_position">center-on-parent</property>
- <property name="destroy_with_parent">True</property>
- <property name="urgency_hint">True</property>
- <child>
- <object class="GtkVBox" id="vbox1">
- <property name="visible">True</property>
- <property name="border_width">10</property>
- <property name="orientation">vertical</property>
- <property name="spacing">5</property>
- <child>
- <object class="GtkHBox" id="hbox1">
- <property name="visible">True</property>
- <child>
- <object class="GtkImage" id="image1">
- <property name="visible">True</property>
- <property name="yalign">0</property>
- <property name="stock">gtk-dialog-warning</property>
- <property name="icon-size">6</property>
- </object>
- <packing>
- <property name="padding">5</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkVBox" id="vbox2">
- <property name="visible">True</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkLabel" id="label2">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">&lt;big&gt;&lt;big&gt;&lt;b&gt;&lt;i&gt;Important notice&lt;/i&gt;&lt;/b&gt;&lt;/big&gt;&lt;/big&gt;</property>
- <property name="use_markup">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">5</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label3">
- <property name="visible">True</property>
- <property name="label" translatable="yes">This program can be used to record speech
-from remote locations. You are responsible
-for adhering to all applicable laws and
-regulations when using this program. In
-general you should not record other parties
-without their consent.</property>
- <property name="use_markup">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">5</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">5</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="skip_warn_checkbox">
- <property name="label" translatable="yes">_Do not show this again</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">5</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkHButtonBox" id="hbuttonbox1">
- <property name="visible">True</property>
- <property name="spacing">10</property>
- <property name="homogeneous">True</property>
- <property name="layout_style">end</property>
- <child>
- <object class="GtkButton" id="dismiss_warning">
- <property name="label" translatable="yes">gtk-ok</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_stock">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- </child>
- </object>
-</interface>
diff --git a/pulsecaster/gconfig.py b/pulsecaster/gconfig.py
deleted file mode 100644
index d956d42..0000000
--- a/pulsecaster/gconfig.py
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/usr/bin/python
-#
-# Copyright (C) 2009 Paul W. Frields
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-#
-# Author: Paul W. Frields <stickster@gmail.com>
-
-
-import gconf
-from config import *
-
-class PulseCasterGconf:
- def __init__(self):
- self.dirbase = '/apps/' + NAME
- self.client = gconf.client_get_default()
- if self.client.dir_exists(self.dirbase) is False:
- self.client.add_dir(self.dirbase, gconf.CLIENT_PRELOAD_NONE)
-
- self.skip_warn = self.client.get_bool(self.dirbase + '/skip_warning')
- if self.skip_warn is None or type(self.skip_warn) is not bool:
- self.skip_warn = False
-
- self.vorbisq = self.client.get(self.dirbase + '/vorbisq')
- if type(self.vorbisq) is not int:
- self.vorbisq = 4
- self.client.set_int(self.dirbase + '/vorbisq', self.vorbisq)
-
- def change_warn(self, val):
- if type(val) is not bool:
- raise ValueError, "requires bool value"
- self.client.set_bool(self.dirbase + '/skip_warning', val)
diff --git a/pulsecaster/pulseaudio/PulseClient.py b/pulsecaster/pulseaudio/PulseClient.py
deleted file mode 100644
index 6705080..0000000
--- a/pulsecaster/pulseaudio/PulseClient.py
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/usr/bin/python
-# vi: et sw=2
-#
-# PulseClient.py
-# Copyright (C) 2009 Harry Karvonen
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-#
-# Author: Harry Karvonen <harry.karvonen@gmail.com>
-#
-
-from lib_pulseaudio import *
-
-# This class contains all basic client features
-class PulseClient:
- def __init__(self, name, index = 0):
- self.index = index
- self.name = name
- return
-
- ###
-
- def printDebug(self):
- print "self.index:", self.index
- print "self.name:", self.name
- return
-
- ###
-
- def __str__(self):
- return "Client-ID: " + str(self.index) + ", Name: \"" + self.name + "\""
-
-################################################################################
-
-# This class is used with Ctypes
-class PulseClientCtypes(PulseClient):
- def __init__(self, pa_client):
- PulseClient.__init__(self, pa_client.name, pa_client.index)
-
- self.owner_module = pa_client.owner_module
- self.driver = pa_client.driver
- #self.proplist = pa_sink_input_info.proplist
- return
-
- ###
-
- def printDebug(self):
- print "PulseClientCtypes"
- PulseClient.printDebug(self)
- print "self.owner_module:", self.owner_module
- print "self.driver:", self.driver
- #print "self.proplist:", self.proplist
- return
-
diff --git a/pulsecaster/pulseaudio/PulseObj.py b/pulsecaster/pulseaudio/PulseObj.py
deleted file mode 100644
index 98c4105..0000000
--- a/pulsecaster/pulseaudio/PulseObj.py
+++ /dev/null
@@ -1,623 +0,0 @@
-#!/usr/bin/python
-# vi: et sw=2
-#
-# PulseObj.py
-# Copyright (C) 2009 Harry Karvonen
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-#
-# Author: Harry Karvonen <harry.karvonen@gmail.com>
-#
-
-from lib_pulseaudio import *
-from PulseSink import PulseSinkInputInfo, PulseSinkInfo
-from PulseSource import PulseSourceOutputInfo, PulseSourceInfo
-from PulseClient import PulseClientCtypes
-
-################################################################################
-#
-# Classes
-#
-################################################################################
-
-class PulseObj:
- "Basic PulseAudio object"
-
- ##############################################################################
- #
- # Init
- #
- ##############################################################################
-
- def __init__(self, server = None, retry = False, clientName = 'Unknown (Python)'):
- "Initialise pulseaudio connection"
-
- # Variables
- self.server = server
- self.mainloop = None
- self.mainloop_api = None
- self.context = None
- self.ret = None
- self.retry = retry
- self.operation = None
- self.connected = False
- self.action_done = False
- self.data = None
-
- # Init
-
- #
- # Callbacks
- #
- self.PA_SIGNAL_CB = PA_SIGNAL_CB_T(self.py_signal_cb)
-
- self.PA_STATE_CB = PA_STATE_CB_T(self.py_state_cb)
- #
- # Mainloop init
- #
- self.mainloop = pa_mainloop_new()
-
- self.mainloop_api = pa_mainloop_get_api(self.mainloop)
-
- #
- # Signal binding
- #
- r = pa_signal_init(self.mainloop_api)
-
- if r != 0:
- # FIXME
- print "FIXME Do something. Something is wrong"
-
- # SIGINT
- pa_signal_new(2, self.PA_SIGNAL_CB, None)
-
- # SIGTERM
- pa_signal_new(15, self.PA_SIGNAL_CB, None)
-
- #
- # Context creating
- #
- self.context = pa_context_new(self.mainloop_api, clientName)
-
- pa_context_set_state_callback(self.context, self.PA_STATE_CB, None)
-
- self.start_action()
-
- #
- # Connect
- #
- if 0 > pa_context_connect(self.context,
- self.server,
- 0,
- None):
- if self.retry:
- pa_context_disconnect(self.context)
- return
- self.pulse_context_error()
-
- self.pulse_iterate()
-
- return
-
- ##############################################################################
- #
- # Callback methods
- #
- # FIXME: rename methods better
- #
- ##############################################################################
-
- def py_signal_cb(self, api, e, sig, userdata):
- #print "py_signal_cb:", api, e, sig, userdata
-
- if sig == 2:
- self.pulse_disconnect()
- elif sig == 15:
- self.pulse_disconnect()
-
- return 0
-
- ###
-
- def py_state_cb(self, c, b):
- #print "py_state_cb:", c[0]._opaque_struct, b
- state = pa_context_get_state(c);
-
-
- if state == 0:
- None
- #print "py_state_cb: Unconnected"
-
- elif state == 1:
- None
- #print "py_state_cb: Connecting"
-
- elif state == 2:
- None
- #print "py_state_cb: Authorizing"
-
- elif state == 3:
- None
- #print "py_state_cb: Setting name"
-
- elif state == 4:
- #print "py_state_cb: Ready"
- self.complete_action()
- self.connected = True
-
- elif state == 5:
- None
- #print "py_state_cb: Failed"
-
- elif state == 6:
- None
- #print "py_state_cb: Terminated"
- if not self.retry:
- import sys
- sys.exit(pa_context_errno(c))
-
- self.complete_action()
-
- else:
- None
- #print "py_state_cb: Unknown state", state
-
-
- #print "py_state_cb:", pa_strerror(pa_context_errno(c))
- return 0
-
- ###
-
- def py_client_cb(self, c, client_info, endofdata, userdata):
- "Sink callback"
- #print "py_client_cb:", c, client_info, endofdata, userdata
-
- if (endofdata):
- self.complete_action()
- return 0
-
- if self.data == None:
- self.data = [ PulseClientCtypes(client_info[0]) ]
- else:
- self.data.append(PulseClientCtypes(client_info[0]))
-
- return 0
-
- ###
-
- def py_sink_input_cb(self, c, sink_input_info, endofdata, userdata):
- "Sink input callback"
- #print "py_sink_input_cb:", c, sink_input_info, endofdata, userdata
-
- if (endofdata):
- self.complete_action()
- return 0
-
- if self.data == None:
- self.data = [ PulseSinkInputInfo(sink_input_info[0]) ]
- else:
- self.data.append(PulseSinkInputInfo(sink_input_info[0]))
-
- return 0
-
- ###
-
- def py_sink_cb(self, c, sink_info, endofdata, userdata):
- "Sink callback"
- #print "py_sink_cb:", c, sink_info, endofdata, userdata
-
- if (endofdata):
- self.complete_action()
- return 0
-
- if self.data == None:
- self.data = [ PulseSinkInfo(sink_info[0]) ]
- else:
- self.data.append(PulseSinkInfo(sink_info[0]))
-
- return 0
- ###
-
- def py_source_output_cb(self, c, source_output_info, endofdata, userdata):
- "Source output callback"
- #print "py_source_output_cb:", c, source_output_info, endofdata, userdata
-
- if (endofdata):
- self.complete_action()
- return 0
-
- if self.data == None:
- self.data = [ PulseSourceOutputInfo(source_output_info[0]) ]
- else:
- self.data.append(PulseSourceOutputInfo(source_output_info[0]))
-
- return 0
-
- ###
-
- def py_source_cb(self, c, source_info, endofdata, userdata):
- "Source callback"
- #print "py_source_cb:", c, source_info, endofdata, userdata
-
- if (endofdata):
- self.complete_action()
- return 0
-
- if self.data == None:
- self.data = [ PulseSourceInfo(source_info[0]) ]
- else:
- self.data.append(PulseSourceInfo(source_info[0]))
-
- return 0
- ###
-
- def py_drain_cb(self, c, userdata):
- #print "py_drain_cb: called"
- return
-
- ###
-
- def py_subscribe_cb(self, c, event, index, userdata):
- print 'py_subscribe_cb: called'
- print 'py_subscribe_cb:', c, event, index, userdata
- self.complete_action()
- return 0
-
- def py_context_success(self, c, success, userdata):
- if success == 0:
- None
- #print "py_context_success: Failed"
- else:
- None
- #print "py_context_success: Success"
-
- self.complete_action()
- return 0
-
- ##############################################################################
- #
- ##############################################################################
-
- def complete_action(self):
- "Completed action"
- #print "complete_action: Called"
- self.action_done = True
- return
-
- ###
-
- def start_action(self):
- "Call every time when starting action"
- #print "start_action: Called"
- self.action_done = False
- return
-
- ###
-
- def pulse_disconnect(self):
- "Call when disconnect object"
-
- #print "pulse_disconnect: Disconnecting"
- pa_context_disconnect(self.context)
- pa_mainloop_free(self.mainloop)
- return
-
- ###
-
- def pulse_context_error(self):
- "Print context error msg"
-
- #print "pulse_context_error:", pa_strerror(pa_context_errno(self.context))
- self.pulse_disconnect()
- return
-
- ###
-
- def pulse_sink_input_list(self):
- "List all sink input"
- #print "pulse_sink_input_list: Called";
-
- return_data = None
-
- self.start_action()
-
- # Callback function
- SINK_INPUT_LIST_CB = PA_SINK_INPUT_INFO_CB_T(self.py_sink_input_cb)
-
- self.operation = pa_context_get_sink_input_info_list(self.context,
- SINK_INPUT_LIST_CB,
- None)
- self.pulse_iterate()
-
- #print "pulse_sink_input_list:", self.data
- return_data = self.data
- self.data = None
-
- return return_data
-
- ###
-
- def pulse_sink_list(self):
- "List all sinks"
- #print "pulse_sink_list: Called";
-
- return_data = None
-
- self.start_action()
-
- # Callback function
- SINK_LIST_CB = PA_SINK_INFO_CB_T(self.py_sink_cb)
-
- self.operation = pa_context_get_sink_info_list(self.context,
- SINK_LIST_CB,
- None)
- self.pulse_iterate()
-
- #print "pulse_sink_list:", self.data
- return_data = self.data
- self.data = None
-
- return return_data
-
- ###
-
- def pulse_source_output_list(self):
- "List all source outputs"
- #print "pulse_source_output_list: Called";
-
- return_data = None
-
- self.start_action()
-
- # Callback function
- SOURCE_OUTPUT_LIST_CB = PA_SOURCE_OUTPUT_INFO_CB_T(self.py_source_output_cb)
-
- self.operation = pa_context_get_source_output_info_list(self.context,
- SOURCE_OUTPUT_LIST_CB,
- None)
- self.pulse_iterate()
-
- #print "pulse_source_output_list:", self.data
- return_data = self.data
- self.data = None
-
- return return_data
-
- ###
-
- def pulse_source_list(self):
- "List all sources"
- #print "pulse_source_list: Called";
-
- return_data = None
-
- self.start_action()
-
- # Callback function
- SOURCE_LIST_CB = PA_SOURCE_INFO_CB_T(self.py_source_cb)
-
- self.operation = pa_context_get_source_info_list(self.context,
- SOURCE_LIST_CB,
- None)
- self.pulse_iterate()
-
- #print "pulse_source_list:", self.data
- return_data = self.data
- self.data = None
-
- return return_data
-
- ###
- def pulse_client_list(self):
- "Fetch all clients"
-
- self.start_action()
-
- CLIENT_INFO_CB = PA_CLIENT_INFO_CB_T(self.py_client_cb)
-
- self.operation = pa_context_get_client_info_list(self.context,
- CLIENT_INFO_CB,
- None)
-
- self.pulse_iterate()
-
- #print "pulse_client_list:", self.data
- return_data = self.data
- self.data = None
-
- return return_data
-
- ###
-
- def pulse_sink_input_mute(self, index, mute):
- "Mute one stream by index"
-
- self.start_action()
-
- CONTEXT_SUCCESS = PA_CONTEXT_SUCCESS_CB_T(self.py_context_success)
-
- self.operation = pa_context_set_sink_input_mute(self.context,
- index,
- mute, # Mute = 1
- CONTEXT_SUCCESS,
- None)
-
- self.pulse_iterate()
-
- return
-
- ###
-
- def pulse_sink_mute(self, index, mute):
- "Mute sink by index"
-
- self.start_action()
-
- CONTEXT_SUCCESS = PA_CONTEXT_SUCCESS_CB_T(self.py_context_success)
-
- self.operation = pa_context_set_sink_mute_by_index(self.context,
- index,
- mute, # Mute = 1
- CONTEXT_SUCCESS,
- None)
-
- self.pulse_iterate()
-
- return
-
- ###
-
- def pulse_mute_stream(self, index):
- self.pulse_sink_input_mute(index, 1)
- return
-
- ###
-
- def pulse_unmute_stream(self, index):
- self.pulse_sink_input_mute(index, 0)
- return
-
- ###
-
- def pulse_mute_sink(self, index):
- self.pulse_sink_mute(index, 1)
- return
-
- ###
-
- def pulse_unmute_sink(self, index):
- self.pulse_sink_mute(index, 0)
- return
-
- ###
-
- def pulse_set_sink_input_volume(self, index, vol):
- "Set volume by index"
- self.start_action()
-
- #print "pulse_set_sink_input_volume:", index, "Vol:", vol
-
- #print vol.values
- #for a in vol.toCtypes().values:
- # print a
- #return
-
- PA_CONTEXT_SUCCESS_CB = PA_CONTEXT_SUCCESS_CB_T(self.py_context_success)
-
- self.operation = pa_context_set_sink_input_volume(self.context,
- index,
- vol.toCtypes(),
- PA_CONTEXT_SUCCESS_CB,
- None)
-
- self.pulse_iterate()
-
- return
-
- ###
-
- def pulse_set_sink_volume(self, index, vol):
- "Set volume by index"
- self.start_action()
-
- #print "pulse_set_sink_volume:", index, "Vol:", vol
-
- PA_CONTEXT_SUCCESS_CB = PA_CONTEXT_SUCCESS_CB_T(self.py_context_success)
-
- self.operation = pa_context_set_sink_volume_by_index(self.context,
- index,
- vol.toCtypes(),
- PA_CONTEXT_SUCCESS_CB,
- None)
-
- self.pulse_iterate()
-
- return
-
- ###
-
- def pulse_context_subscribe(self, mask):
- "Subscribe to event"
- self.start_action()
- print "pulse_context_subscribe:", mask
- CONTEXT_SUCCESS = PA_CONTEXT_SUCCESS_CB_T(self.py_context_success)
-
- self.operation = pa_context_subscribe(self.context,
- mask,
- CONTEXT_SUCCESS,
- None)
- self.pulse_iterate()
- return
-
- ###
-
- def pulse_context_set_subscribe_callback(self, callback):
- "Set subscribe callback"
- print "py_context_set_subscribe_callback:", callback
- PA_CONTEXT_SUBSCRIBE_CB = PA_CONTEXT_SUBSCRIBE_CB_T(callback)
-
- # This returns a void, not a PA_OPERATION
- pa_context_set_subscribe_callback(self.context,
- PA_CONTEXT_SUBSCRIBE_CB,
- None)
- return
-
- ###
-
- def reconnect(self):
- self.context = pa_context_new(self.mainloop_api, clientName)
-
- pa_context_set_state_callback(self.context, self.PA_STATE_CB, None)
-
- self.start_action()
-
-
- if 0 > pa_context_connect(self.context,
- self.server,
- 0,
- None):
- if self.retry:
- pa_context_disconnect(self.context)
- #print "bar"
- return
- self.pulse_context_error()
- #print "foo"
-
- self.pulse_iterate()
-
- return
-
- ###
-
- def pulse_iterate(self, times = 1):
- "Runs queries"
- #print "pulse_iterate: Called"
- self.ret = pointer(c_int())
-
- pa_mainloop_iterate(self.mainloop, times, self.ret)
-
- while not self.action_done:
- pa_mainloop_iterate(self.mainloop, times, self.ret)
-
- return
-
- ###
-
- def pulse_run(self):
- self.ret = pointer(c_int(0))
-
- #pa_mainloop_iterate(self.mainloop, 11, self.ret)
- pa_mainloop_run(self.mainloop, self.ret)
- return
diff --git a/pulsecaster/pulseaudio/PulseSink.py b/pulsecaster/pulseaudio/PulseSink.py
deleted file mode 100644
index 15a6517..0000000
--- a/pulsecaster/pulseaudio/PulseSink.py
+++ /dev/null
@@ -1,213 +0,0 @@
-#!/usr/bin/python
-# vi: et sw=2
-#
-# PulseSink.py
-# Copyright (C) 2009 Harry Karvonen
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-#
-# Author: Harry Karvonen <harry.karvonen@gmail.com>
-#
-
-from lib_pulseaudio import *
-
-from PulseClient import PulseClient
-from PulseVolume import PulseVolumeCtypes
-
-# This class contains all commons features from PulseSinkInputInfo and
-# PulseSinkInfo
-class PulseSink:
- def __init__(self, index, name, mute, volume, client):
- self.index = index
- self.name = name
- self.mute = mute
- self.volume = volume
- self.client = client
- return
-
- # PROTOTYPE
- def unmuteStream(self):
- raise Exception("ABSTRACT METHOD CALLED")
- return
-
- # PROTOTYPE
- def muteStream(self):
- raise Exception("ABSTRACT METHOD CALLED")
- return
-
- # PROTOTYPE
- def setVolume(self):
- raise Exception("ABSTRACT METHOD CALLED")
- return
-
- def printDebug(self):
- print "self.index:", self.index
- print "self.name:", self.name
- print "self.mute:", self.mute
- print "self.volume:", self.volume
- print "self.client:", self.client
- return
-
-################################################################################
-
-class PulseSinkInfo(PulseSink):
- def __init__(self, pa_sink_info):
- PulseSink.__init__(self, pa_sink_info.index,
- pa_sink_info.name,
- pa_sink_info.mute,
- PulseVolumeCtypes(pa_sink_info.volume),
- PulseClient("Selected Sink"))
-
- self.description = pa_sink_info.description
- self.sample_spec = pa_sink_info.sample_spec
- self.channel_map = pa_sink_info.channel_map
- self.owner_module = pa_sink_info.owner_module
- self.monitor_source = pa_sink_info.monitor_source
- self.monitor_source_name = pa_sink_info.monitor_source_name
- self.latency = pa_sink_info.latency
- self.driver = pa_sink_info.driver
- self.flags = pa_sink_info.flags
- self.proplist = pa_sink_info.proplist
- self.configured_latency = pa_sink_info.configured_latency
-
- return
-
- ###
- #
- # Define PROTOTYPE functions
-
- def unmuteStream(self, pulseInterface):
- pulseInterface.pulse_unmute_sink(self.index)
-
- self.mute = 0
- return
-
- ###
-
- def muteStream(self, pulseInterface):
- pulseInterface.pulse_mute_sink(self.index)
-
- self.mute = 1
- return
-
- ###
-
- def setVolume(self, pulseInterface, volume):
- pulseInterface.pulse_set_sink_volume(self.index, volume)
-
- self.volume = volume
- return
-
- ###
-
- def printDebug(self):
- print "PulseSinkInfo"
- PulseSink.printDebug(self)
- print "self.description", self.description
- print "self.sample_spec", self.sample_spec
- print "self.channel_map", self.channel_map
- print "self.owner_module", self.owner_module
- print "self.monitor_source", self.monitor_source
- print "self.monitor_source_name", self.monitor_source_name
- print "self.latency", self.latency
- print "self.driver", self.driver
- print "self.flags", self.flags
- print "self.proplist", self.proplist
- print "self.configured_latency", self.configured_latency
- return
-
- ###
-
- def __str__(self):
- return "ID: " + str(self.index) + ", Name: \"" + \
- self.name + "\""
-
-################################################################################
-
-class PulseSinkInputInfo(PulseSink):
- def __init__(self, pa_sink_input_info):
- PulseSink.__init__(self, pa_sink_input_info.index,
- pa_sink_input_info.name,
- pa_sink_input_info.mute,
- PulseVolumeCtypes(pa_sink_input_info.volume),
- PulseClient("Unknown client"))
- self.owner_module = pa_sink_input_info.owner_module
- self.client_id = pa_sink_input_info.client
- self.sink = pa_sink_input_info.sink
- self.sample_spec = pa_sink_input_info.sample_spec
- self.channel_map = pa_sink_input_info.channel_map
- self.buffer_usec = pa_sink_input_info.buffer_usec
- self.sink_usec = pa_sink_input_info.sink_usec
- self.resample_method = pa_sink_input_info.resample_method
- self.driver = pa_sink_input_info.driver
- #self.proplist = pa_sink_input_info.proplist
-
- return
-
- ###
-
- def setClient(self, c):
- self.client = c
-
- ###
- #
- # Define PROTOTYPE functions
-
- def unmuteStream(self, pulseInterface):
- pulseInterface.pulse_unmute_stream(self.index)
-
- self.mute = 0
- return
-
- ###
-
- def muteStream(self, pulseInterface):
- pulseInterface.pulse_mute_stream(self.index)
-
- self.mute = 1
- return
-
- ###
-
- def setVolume(self, pulseInterface, volume):
- pulseInterface.pulse_set_sink_input_volume(self.index, volume)
-
- self.volume = volume
- return
-
- ###
-
- def printDebug(self):
- print "PulseSinkInputInfo"
- PulseSink.printDebug(self)
-
- print "self.owner_module:", self.owner_module
- print "self.client_id:", self.client_id
- print "self.sink:", self.sink
- print "self.sample_spec:", self.sample_spec
- print "self.channel_map:", self.channel_map
- print "self.buffer_usec:", self.buffer_usec
- print "self.sink_usec:", self.sink_usec
- print "self.resample_method:", self.resample_method
- print "self.driver:", self.driver
-
- ###
-
- def __str__(self):
- if self.client:
- return "ID: " + str(self.index) + ", Name: \"" + \
- self.name + "\", mute: " + str(self.mute) + ", " + str(self.client)
- return "ID: " + str(self.index) + ", Name: \"" + \
- self.name + "\", mute: " + str(self.mute)
diff --git a/pulsecaster/pulseaudio/PulseSource.py b/pulsecaster/pulseaudio/PulseSource.py
deleted file mode 100644
index e99eaaf..0000000
--- a/pulsecaster/pulseaudio/PulseSource.py
+++ /dev/null
@@ -1,189 +0,0 @@
-#!/usr/bin/python
-# vi: et sw=2
-#
-# PulseSource.py
-# Copyright (C) 2009 Harry Karvonen, Paul W. Frields
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-#
-# Author: Harry Karvonen <harry.karvonen@gmail.com>
-# Paul W. Frields <stickster@gmail.com>
-#
-
-from lib_pulseaudio import *
-
-from PulseClient import PulseClient
-from PulseVolume import PulseVolumeCtypes
-
-# This class contains all commons features from PulseSourceInputInfo and
-# PulseSourceInfo
-class PulseSource:
- def __init__(self, index, name, mute, volume, client):
- self.index = index
- self.name = name
- self.mute = mute
- self.volume = volume
- self.client = client
- return
-
- # PROTOTYPE
- def unmuteStream(self):
- raise Exception("ABSTRACT METHOD CALLED")
- return
-
- # PROTOTYPE
- def muteStream(self):
- raise Exception("ABSTRACT METHOD CALLED")
- return
-
- # PROTOTYPE
- def setVolume(self):
- raise Exception("ABSTRACT METHOD CALLED")
- return
-
- def printDebug(self):
- print "self.index:", self.index
- print "self.name:", self.name
- print "self.mute:", self.mute
- print "self.volume:", self.volume
- print "self.client:", self.client
- return
-
-################################################################################
-
-class PulseSourceInfo(PulseSource):
- def __init__(self, pa_source_info):
- PulseSource.__init__(self, pa_source_info.index,
- pa_source_info.name,
- pa_source_info.mute,
- PulseVolumeCtypes(pa_source_info.volume),
- PulseClient("Selected Source"))
-
- self.description = pa_source_info.description
- self.sample_spec = pa_source_info.sample_spec
- self.channel_map = pa_source_info.channel_map
- self.owner_module = pa_source_info.owner_module
- self.monitor_of_sink = pa_source_info.monitor_of_sink
- self.monitor_of_sink_name = pa_source_info.monitor_of_sink_name
- self.latency = pa_source_info.latency
- self.driver = pa_source_info.driver
- self.flags = pa_source_info.flags
- self.proplist = pa_source_info.proplist
- self.configured_latency = pa_source_info.configured_latency
-
- return
-
- ###
- #
- # Define PROTOTYPE functions
-
- def unmuteStream(self, pulseInterface):
- pulseInterface.pulse_unmute_source(self.index)
-
- self.mute = 0
- return
-
- ###
-
- def muteStream(self, pulseInterface):
- pulseInterface.pulse_mute_source(self.index)
-
- self.mute = 1
- return
-
- ###
-
- def setVolume(self, pulseInterface, volume):
- pulseInterface.pulse_set_source_volume(self.index, volume)
-
- self.volume = volume
- return
-
- ###
-
- def printDebug(self):
- print "PulseSourceInfo"
- PulseSource.printDebug(self)
- print "self.description", self.description
- print "self.sample_spec", self.sample_spec
- print "self.channel_map", self.channel_map
- print "self.owner_module", self.owner_module
- print "self.monitor_of_sink", self.monitor_of_sink
- print "self.monitor_of_sink_name", self.monitor_of_sink_name
- print "self.latency", self.latency
- print "self.driver", self.driver
- print "self.flags", self.flags
- print "self.proplist", self.proplist
- print "self.configured_latency", self.configured_latency
- return
-
- ###
-
- def __str__(self):
- return "ID: " + str(self.index) + ", Name: \"" + \
- self.name + "\""
-
-################################################################################
-
-class PulseSourceOutputInfo(PulseSource):
- def __init__(self, pa_source_output_info):
- PulseSource.__init__(self, pa_source_output_info.index,
- pa_source_output_info.name,
- pa_source_output_info.mute,
- PulseVolumeCtypes(pa_source_output_info.volume),
- PulseClient("Unknown client"))
- self.owner_module = pa_source_output_info.owner_module
- self.client_id = pa_source_output_info.client
- self.source = pa_source_output_info.source
- self.sample_spec = pa_source_output_info.sample_spec
- self.channel_map = pa_source_output_info.channel_map
- self.buffer_usec = pa_source_output_info.buffer_usec
- self.source_usec = pa_source_output_info.source_usec
- self.resample_method = pa_source_output_info.resample_method
- self.driver = pa_source_output_info.driver
- #self.proplist = pa_source_output_info.proplist
-
- return
-
- ###
-
- def setClient(self, c):
- self.client = c
-
- ###
-
- def printDebug(self):
- print "PulseSourceInputInfo"
- PulseSource.printDebug(self)
-
- print "self.owner_module:", self.owner_module
- print "self.client_id:", self.client_id
- print "self.source:", self.source
- print "self.sample_spec:", self.sample_spec
- print "self.channel_map:", self.channel_map
- print "self.buffer_usec:", self.buffer_usec
- print "self.source_usec:", self.source_usec
- print "self.resample_method:", self.resample_method
- print "self.driver:", self.driver
-
- ###
-
- def __str__(self):
- if self.client:
- return "ID: " + str(self.index) + ", Name: \"" + \
- self.name + "\", mute: " + str(self.mute) + ", " + str(self.client)
- return "ID: " + str(self.index) + ", Name: \"" + \
- self.name + "\", mute: " + str(self.mute)
-
diff --git a/pulsecaster/pulseaudio/PulseVolume.py b/pulsecaster/pulseaudio/PulseVolume.py
deleted file mode 100644
index 1ff6b7a..0000000
--- a/pulsecaster/pulseaudio/PulseVolume.py
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/usr/bin/python
-# vi: et sw=2
-#
-# PulseVolume.py
-# Copyright (C) 2009 Harry Karvonen
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-#
-# Author: Harry Karvonen <harry.karvonen@gmail.com>
-#
-
-from lib_pulseaudio import *
-import math
-
-# This contains all basic volume features
-class PulseVolume:
- def __init__(self, vol = 0, channels = 2):
- self.channels = channels
-
- if vol > 100 or vol < 0:
- print "WARNING: Volume is invalid!"
- vol = 0
-
- self.values = [vol] * self.channels
-
- return
-
- ##############################
- #
- # Type conversions
- #
- #def fromCtypes(self, pa_cvolume):
- # self.channels = pa_cvolume.channels
- # self.values = map(lambda x: (math.ceil(float(x) * 100 / PA_VOLUME_NORM)),
- # pa_cvolume.values[0:self.channels])
- # return self
-
- def toCtypes(self):
- ct = PA_CVOLUME()
- ct.channels = self.channels
-
- for x in range(0, self.channels):
- ct.values[x] = (self.values[x] * PA_VOLUME_NORM) / 100
-
- return ct
-
- ###
-
- def printDebug(self):
- print "PulseVolume"
- print "self.channels:", self.channels
- print "self.values:", self.values
- #print "self.proplist:", self.proplist
-
- ###
-
- def incVolume(self, vol):
- "Increment volume level (mono only)"
- vol += sum(self.values) / len(self.values)
-
- vol = int(vol)
-
- if vol > 100:
- vol = 100
- elif vol < 0:
- vol = 0
-
- self.setVolume(vol)
-
- return
-
- ###
-
- def setVolume(self, vol, balance = None):
- if not balance:
- self.values = [vol] * self.channels
- else:
- self.values[balance] = vol
-
- return
-
- ###
-
- def getVolume(self):
- "Return mono volume"
- return int(sum(self.values) / len(self.values))
-
- ###
-
- def __str__(self):
- return "Channels: " + str(self.channels) + \
- ", values: \"" + str(map(lambda x: str(x) + "%", self.values)) + "\""
-
-################################################################################
-
-class PulseVolumeCtypes(PulseVolume):
- def __init__(self, pa_cvolume):
- self.channels = pa_cvolume.channels
- self.values = map(lambda x: (math.ceil(float(x) * 100 / PA_VOLUME_NORM)),
- pa_cvolume.values[0:self.channels])
- return
-
diff --git a/pulsecaster/pulseaudio/__init__.py b/pulsecaster/pulseaudio/__init__.py
deleted file mode 100644
index 8fa7217..0000000
--- a/pulsecaster/pulseaudio/__init__.py
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/python
-# vi: et sw=2
-#
-# __init__.py
-# Copyright (C) 2009 Harry Karvonen
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-#
-# Author: Harry Karvonen <harry.karvonen@gmail.com>
-#
-
-
-
-from PulseObj import *
-from PulseVolume import *
-from PulseClient import *
-from PulseSink import *
diff --git a/pulsecaster/pulseaudio/lib_pulseaudio.py b/pulsecaster/pulseaudio/lib_pulseaudio.py
deleted file mode 100644
index 95a26d7..0000000
--- a/pulsecaster/pulseaudio/lib_pulseaudio.py
+++ /dev/null
@@ -1,733 +0,0 @@
-#!/usr/bin/python
-# vi: et sw=2
-#
-# lib_pulseaudio.py
-# Copyright (C) 2009 Harry Karvonen
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-#
-# Provides pulseaudio interface for python
-#
-# Author: Harry Karvonen <harry.karvonen@gmail.com>
-#
-
-from ctypes import *
-
-pulse = CDLL("libpulse.so.0");
-
-################################################################################
-#
-# Constrants
-#
-################################################################################
-
-PA_CHANNELS_MAX = 32
-PA_VOLUME_NORM = 0x10000
-
-# sample types
-(
- PA_SAMPLE_U8,
- PA_SAMPLE_ALAW,
- PA_SAMPLE_ULAW,
- PA_SAMPLE_S16LE,
- PA_SAMPLE_S16BE,
- PA_SAMPLE_FLOAT32LE,
- PA_SAMPLE_FLOAT32BE,
- PA_SAMPLE_S32LE,
- PA_SAMPLE_S32BE,
- PA_SAMPLE_S24LE,
- PA_SAMPLE_S24BE,
- PA_SAMPLE_S24_32LE,
- PA_SAMPLE_S24_32BE,
- PA_SAMPLE_MAX,
- PA_SAMPLE_INVALID
-) = map(c_int, xrange(15))
-
-# channel positions
-(
- PA_CHANNEL_POSITION_INVALID,
- PA_CHANNEL_POSITION_MONO,
- PA_CHANNEL_POSITION_LEFT,
- PA_CHANNEL_POSITION_RIGHT,
- PA_CHANNEL_POSITION_CENTER,
- PA_CHANNEL_POSITION_FRONT_LEFT,
- PA_CHANNEL_POSITION_FRONT_RIGHT,
- PA_CHANNEL_POSITION_FRONT_CENTER,
- PA_CHANNEL_POSITION_REAR_CENTER,
- PA_CHANNEL_POSITION_REAR_LEFT,
- PA_CHANNEL_POSITION_REAR_RIGHT,
- PA_CHANNEL_POSITION_LFE,
- PA_CHANNEL_POSITION_SUBWOOFER,
- PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER,
- PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER,
- PA_CHANNEL_POSITION_SIDE_LEFT,
- PA_CHANNEL_POSITION_SIDE_RIGHT,
- PA_CHANNEL_POSITION_AUX0,
- PA_CHANNEL_POSITION_AUX1,
- PA_CHANNEL_POSITION_AUX2,
- PA_CHANNEL_POSITION_AUX3,
- PA_CHANNEL_POSITION_AUX4,
- PA_CHANNEL_POSITION_AUX5,
- PA_CHANNEL_POSITION_AUX6,
- PA_CHANNEL_POSITION_AUX7,
- PA_CHANNEL_POSITION_AUX8,
- PA_CHANNEL_POSITION_AUX9,
- PA_CHANNEL_POSITION_AUX10,
- PA_CHANNEL_POSITION_AUX11,
- PA_CHANNEL_POSITION_AUX12,
- PA_CHANNEL_POSITION_AUX13,
- PA_CHANNEL_POSITION_AUX14,
- PA_CHANNEL_POSITION_AUX15,
- PA_CHANNEL_POSITION_AUX16,
- PA_CHANNEL_POSITION_AUX17,
- PA_CHANNEL_POSITION_AUX18,
- PA_CHANNEL_POSITION_AUX19,
- PA_CHANNEL_POSITION_AUX20,
- PA_CHANNEL_POSITION_AUX21,
- PA_CHANNEL_POSITION_AUX22,
- PA_CHANNEL_POSITION_AUX23,
- PA_CHANNEL_POSITION_AUX24,
- PA_CHANNEL_POSITION_AUX25,
- PA_CHANNEL_POSITION_AUX26,
- PA_CHANNEL_POSITION_AUX27,
- PA_CHANNEL_POSITION_AUX28,
- PA_CHANNEL_POSITION_AUX29,
- PA_CHANNEL_POSITION_AUX30,
- PA_CHANNEL_POSITION_AUX31,
- PA_CHANNEL_POSITION_TOP_CENTER,
- PA_CHANNEL_POSITION_TOP_FRONT_LEFT,
- PA_CHANNEL_POSITION_TOP_FRONT_RIGHT,
- PA_CHANNEL_POSITION_TOP_FRONT_CENTER,
- PA_CHANNEL_POSITION_TOP_REAR_LEFT,
- PA_CHANNEL_POSITION_TOP_REAR_RIGHT,
- PA_CHANNEL_POSITION_TOP_REAR_CENTER,
- PA_CHANNEL_POSITION_MAX
-) = map(c_int, xrange(57))
-
-# stream states
-(
- PA_STREAM_UNCONNECTED,
- PA_STREAM_CREATING,
- PA_STREAM_READY,
- PA_STREAM_FAILED,
- PA_STREAM_TERMINATED
-) = map(c_int, xrange(5))
-
-# stream directions
-(
- PA_STREAM_NODIRECTION,
- PA_STREAM_PLAYBACK,
- PA_STREAM_RECORD,
- PA_STREAM_UPLOAD
-) = map(c_int, xrange(4))
-
-# stream flags
-(
- PA_STREAM_START_CORKED,
- PA_STREAM_INTERPOLATE_TIMING,
- PA_STREAM_NOT_MONOTONIC,
- PA_STREAM_AUTO_TIMING_UPDATE,
- PA_STREAM_NO_REMAP_CHANNELS,
- PA_STREAM_NO_REMIX_CHANNELS,
- PA_STREAM_FIX_FORMAT,
- PA_STREAM_FIX_RATE,
- PA_STREAM_FIX_CHANNELS,
- PA_STREAM_DONT_MOVE,
- PA_STREAM_VARIABLE_RATE,
- PA_STREAM_PEAK_DETECT,
- PA_STREAM_START_MUTED,
- PA_STREAM_ADJUST_LATENCY,
- PA_STREAM_EARLY_REQUESTS,
- PA_STREAM_DONT_INHIBIT_AUTO_SUSPEND,
- PA_STREAM_START_UNMUTED,
- PA_STREAM_FAIL_ON_SUSPEND
-) = map(c_int, xrange(18))
-
-# subscription event masks
-PA_SUBSCRIPTION_MASK_NULL = 0x0000
-PA_SUBSCRIPTION_MASK_SINK = 0x0001
-PA_SUBSCRIPTION_MASK_SOURCE = 0x0002
-PA_SUBSCRIPTION_MASK_SINK_INPUT = 0x0004
-PA_SUBSCRIPTION_MASK_SOURCE_OUTPUT = 0x0008
-PA_SUBSCRIPTION_MASK_MODULE = 0x0010
-PA_SUBSCRIPTION_MASK_CLIENT = 0x0020
-PA_SUBSCRIPTION_MASK_SAMPLE_CACHE = 0x0040
-PA_SUBSCRIPTION_MASK_SERVER = 0x0080
-PA_SUBSCRIPTION_MASK_CARD = 0x0200
-PA_SUBSCRIPTION_MASK_ALL = 0x02ff
-
-# subscription event types
-PA_SUBSCRIPTION_EVENT_SINK = 0x0000
-PA_SUBSCRIPTION_EVENT_SOURCE = 0x0001
-PA_SUBSCRIPTION_EVENT_SINK_INPUT = 0x0002
-PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT = 0x0003
-PA_SUBSCRIPTION_EVENT_MODULE = 0x0004
-PA_SUBSCRIPTION_EVENT_CLIENT = 0x0005
-PA_SUBSCRIPTION_EVENT_SAMPLE_CACHE = 0x0006
-PA_SUBSCRIPTION_EVENT_SERVER = 0x0007
-PA_SUBSCRIPTION_EVENT_CARD = 0x0009
-PA_SUBSCRIPTION_EVENT_FACILITY_MASK = 0x000F
-PA_SUBSCRIPTION_EVENT_NEW = 0x0000
-PA_SUBSCRIPTION_EVENT_CHANGE = 0x0010
-PA_SUBSCRIPTION_EVENT_REMOVE = 0x0020
-PA_SUBSCRIPTION_EVENT_TYPE_MASK = 0x0030
-
-################################################################################
-#
-# Structs
-#
-################################################################################
-
-class PA_IO_EVENT(Structure):
- _fields_ = [("_opaque_struct", c_int)]
-
-class PA_MAINLOOP(Structure):
- _fields_ = [("_opaque_struct", c_int)]
-
-class PA_MAINLOOP_API(Structure):
- _fields_ = [("_opaque_struct", c_int)]
-
-class PA_SIGNAL_EVENT(Structure):
- _fields_ = [("_opaque_struct", c_int)]
-
-class PA_CONTEXT(Structure):
- _fields_ = [("_opaque_struct", c_int)]
-
-class PA_OPERATION(Structure):
- _fields_ = [("_opaque_struct", c_int)]
-
-class PA_STREAM(Structure):
- _fields_ = [("_opaque_struct", c_int)]
-
-class PA_SAMPLE_SPEC(Structure):
- _fields_ = [
- ("format", c_int), # FIXME check this
- ("rate", c_uint32),
- ("channels", c_uint8)
- ]
-
-class PA_CHANNEL_MAP(Structure):
- _fields_ = [
- ("channels", c_uint8),
- ("map", c_int * PA_CHANNELS_MAX)
- ]
-
-class PA_CVOLUME(Structure):
- _fields_ = [
- ("channels", c_uint8),
- ("values", c_uint32 * PA_CHANNELS_MAX)
- ]
-
-class PA_BUFFER_ATTR(Structure):
- _fields_ = [
- ("maxlength", c_uint32),
- ("tlength", c_uint32),
- ("prebuf", c_uint32),
- ("minreq", c_uint32),
- ("fragsize", c_uint32)
- ]
-
-PA_USEC_T = c_uint64
-
-class PA_SERVER_INFO(Structure):
- _fields_ = [
- ('user_name', c_char_p),
- ('host_name', c_char_p),
- ('server_version', c_char_p),
- ('server_name', c_char_p),
- ('sample_spec', PA_SAMPLE_SPEC),
- ('default_sink_name', c_char_p),
- ('default_source_name', c_char_p),
- ('cookie', c_uint32),
- ('channel_map', PA_CHANNEL_MAP)
- ]
-
-class PA_SINK_INPUT_INFO(Structure):
- __slots__ = [
- 'index',
- 'name',
- 'owner_module',
- 'client',
- 'sink',
- 'sample_spec',
- 'channel_map',
- 'volume',
- 'buffer_usec',
- 'sink_usec',
- 'resample_method',
- 'driver',
- 'mute',
- ]
- _fields_ = [
- ("index", c_uint32),
- ("name", c_char_p),
- ("owner_module", c_uint32),
- ("client", c_uint32),
- ("sink", c_uint32),
- ("sample_spec", PA_SAMPLE_SPEC),
- ("channel_map", PA_CHANNEL_MAP),
- ("volume", PA_CVOLUME),
- ("buffer_usec", PA_USEC_T),
- ("sink_usec", PA_USEC_T),
- ("resample_method", c_char_p),
- ("driver", c_char_p),
- ("mute", c_int)
- #("proplist", POINTER(c_int))
- ]
-
-class PA_SINK_INFO(Structure):
- _fields_ = [
- ("name", c_char_p),
- ("index", c_uint32),
- ("description", c_char_p),
- ("sample_spec", PA_SAMPLE_SPEC),
- ("channel_map", PA_CHANNEL_MAP),
- ("owner_module", c_uint32),
- ("volume", PA_CVOLUME),
- ("mute", c_int),
- ("monitor_source", c_uint32),
- ("monitor_source_name", c_char_p),
- ("latency", PA_USEC_T),
- ("driver", c_char_p),
- ("flags", c_int),
- ("proplist", POINTER(c_int)),
- ("configured_latency", PA_USEC_T)
- ]
-
-class PA_SOURCE_OUTPUT_INFO(Structure):
- __slots__ = [
- 'index',
- 'name',
- 'owner_module',
- 'client',
- 'source',
- 'sample_spec',
- 'channel_map',
- 'volume',
- 'buffer_usec',
- 'sink_usec',
- 'resample_method',
- 'driver',
- 'mute',
- ]
- _fields_ = [
- ("index", c_uint32),
- ("name", c_char_p),
- ("owner_module", c_uint32),
- ("client", c_uint32),
- ("source", c_uint32),
- ("sample_spec", PA_SAMPLE_SPEC),
- ("channel_map", PA_CHANNEL_MAP),
- ("volume", PA_CVOLUME),
- ("buffer_usec", PA_USEC_T),
- ("sink_usec", PA_USEC_T),
- ("resample_method", c_char_p),
- ("driver", c_char_p),
- ("mute", c_int)
- #("proplist", POINTER(c_int))
- ]
-
-class PA_SOURCE_INFO(Structure):
- _fields_ = [
- ("name", c_char_p),
- ("index", c_uint32),
- ("description", c_char_p),
- ("sample_spec", PA_SAMPLE_SPEC),
- ("channel_map", PA_CHANNEL_MAP),
- ("owner_module", c_uint32),
- ("volume", PA_CVOLUME),
- ("mute", c_int),
- ("monitor_of_sink", c_uint32),
- ("monitor_of_sink_name", c_char_p),
- ("latency", PA_USEC_T),
- ("driver", c_char_p),
- ("flags", c_int),
- ("proplist", POINTER(c_int)),
- ("configured_latency", PA_USEC_T)
- ]
-
-class PA_CLIENT_INFO(Structure):
- _fields_ = [
- ("index", c_uint32),
- ("name", c_char_p),
- ("owner_module", c_uint32),
- ("driver", c_char_p)
- #("proplist", POINTER(c_int))
- ]
-
-################################################################################
-#
-# Callback types
-#
-################################################################################
-
-#PA_IO_EVENT_CB_T = CFUNCTYPE(c_void_p,
-# POINTER(PA_MAINLOOP_API),
-# POINTER(PA_IO_EVENT),
-# c_int,
-# c_int,
-# c_void_p)
-
-# SIGNAL
-PA_SIGNAL_CB_T = CFUNCTYPE(c_void_p,
- POINTER(PA_MAINLOOP_API),
- POINTER(PA_SIGNAL_EVENT),
- c_int,
- c_void_p)
-
-# STATE
-PA_STATE_CB_T = CFUNCTYPE(c_int,
- POINTER(PA_CONTEXT),
- c_void_p)
-
-# CLIENT
-PA_CLIENT_INFO_CB_T = CFUNCTYPE(c_void_p,
- POINTER(PA_CONTEXT),
- POINTER(PA_CLIENT_INFO),
- c_int,
- c_void_p)
-# SINK INPUT
-PA_SINK_INPUT_INFO_CB_T = CFUNCTYPE(c_int, #FIXME wrong type
- POINTER(PA_CONTEXT),
- POINTER(PA_SINK_INPUT_INFO),
- c_int,
- c_void_p)
-
-# SINK
-PA_SINK_INFO_CB_T = CFUNCTYPE(c_int, #FIXME wrong type
- POINTER(PA_CONTEXT),
- POINTER(PA_SINK_INFO),
- c_int,
- c_void_p)
-# SOURCE OUTPUT
-PA_SOURCE_OUTPUT_INFO_CB_T = CFUNCTYPE(c_int, #FIXME wrong type
- POINTER(PA_CONTEXT),
- POINTER(PA_SOURCE_OUTPUT_INFO),
- c_int,
- c_void_p)
-
-# SOURCE
-PA_SOURCE_INFO_CB_T = CFUNCTYPE(c_int, #FIXME wrong type
- POINTER(PA_CONTEXT),
- POINTER(PA_SOURCE_INFO),
- c_int,
- c_void_p)
-# CONTEXT
-PA_CONTEXT_DRAIN_CB_T = CFUNCTYPE(c_void_p,
- POINTER(PA_CONTEXT),
- c_void_p)
-
-PA_CONTEXT_SUCCESS_CB_T = CFUNCTYPE(c_void_p,
- POINTER(PA_CONTEXT),
- c_int,
- c_void_p)
-
-PA_CONTEXT_SUBSCRIBE_CB_T = CFUNCTYPE(c_void_p,
- POINTER(PA_CONTEXT),
- c_int,
- c_uint32,
- c_void_p)
-
-################################################################################
-#
-# Functions
-#
-################################################################################
-
-#
-# pa_strerror
-pa_strerror = pulse.pa_strerror
-pa_strerror.restype = c_char_p
-pa_strerror.argtypes = [
- c_int
-]
-
-#
-# pa_mainloop_*
-pa_mainloop_new = pulse.pa_mainloop_new
-pa_mainloop_new.restype = POINTER(PA_MAINLOOP)
-pa_mainloop_new.argtypes = [
-]
-
-pa_mainloop_get_api = pulse.pa_mainloop_get_api
-pa_mainloop_get_api.restype = POINTER(PA_MAINLOOP_API)
-pa_mainloop_get_api.argtypes = [
- POINTER(PA_MAINLOOP)
-]
-
-pa_mainloop_run = pulse.pa_mainloop_run
-pa_mainloop_run.restype = c_int
-pa_mainloop_run.argtypes = [
- POINTER(PA_MAINLOOP),
- POINTER(c_int)
-]
-
-pa_mainloop_iterate = pulse.pa_mainloop_iterate
-pa_mainloop_iterate.restype = c_int
-pa_mainloop_iterate.argtypes = [
- POINTER(PA_MAINLOOP),
- c_int,
- POINTER(c_int)
-]
-
-pa_mainloop_quit = pulse.pa_mainloop_quit
-pa_mainloop_quit.restype = c_int
-pa_mainloop_quit.argtypes = [
- POINTER(PA_MAINLOOP),
- c_int
-]
-
-pa_mainloop_dispatch = pulse.pa_mainloop_dispatch
-pa_mainloop_dispatch.restype = c_int
-pa_mainloop_dispatch.argtypes = [
- POINTER(PA_MAINLOOP)
-]
-
-pa_mainloop_free = pulse.pa_mainloop_run
-pa_mainloop_free.restype = c_int
-pa_mainloop_free.argtypes = [
- POINTER(PA_MAINLOOP)
-]
-
-#
-# pa_signal_*
-pa_signal_init = pulse.pa_signal_init
-pa_signal_init.restype = c_int
-pa_signal_init.argtypes = [
- POINTER(PA_MAINLOOP_API)
-]
-
-pa_signal_new = pulse.pa_signal_new
-pa_signal_new.restype = POINTER(PA_SIGNAL_EVENT)
-pa_signal_new.argtypes = [
- c_int,
- PA_SIGNAL_CB_T,
- c_void_p
-]
-
-#
-# pa_context_*
-pa_context_errno = pulse.pa_context_errno
-pa_context_errno.restype = c_int
-pa_context_errno.argtypes = [
- POINTER(PA_CONTEXT)
-]
-
-pa_context_new = pulse.pa_context_new
-pa_context_new.restype = POINTER(PA_CONTEXT)
-pa_context_new.argtypes = [
- POINTER(PA_MAINLOOP_API),
- c_char_p
-]
-
-
-pa_context_set_state_callback = pulse.pa_context_set_state_callback
-pa_context_set_state_callback.restype = None
-pa_context_set_state_callback.argtypes = [
- POINTER(PA_CONTEXT),
- PA_STATE_CB_T,
- c_void_p
-]
-
-pa_context_connect = pulse.pa_context_connect
-pa_context_connect.restype = c_int
-pa_context_connect.argtypes = [
- POINTER(PA_CONTEXT),
- c_char_p,
- c_int, #FIXME | isn't correct
- POINTER(c_int)
-]
-
-pa_context_get_state = pulse.pa_context_get_state
-pa_context_get_state.restype = c_int;
-pa_context_get_state.argtypes = [
- POINTER(PA_CONTEXT)
-]
-
-pa_context_drain = pulse.pa_context_drain
-pa_context_drain.restype = POINTER(PA_OPERATION)
-pa_context_drain.argtypes = [
- POINTER(PA_CONTEXT),
- PA_CONTEXT_DRAIN_CB_T,
- c_void_p
-]
-
-pa_context_disconnect = pulse.pa_context_disconnect
-pa_context_disconnect.restype = c_int;
-pa_context_disconnect.argtypes = [
- POINTER(PA_CONTEXT)
-]
-
-#
-# pa_context_*_sink_*
-pa_context_get_sink_input_info_list = pulse.pa_context_get_sink_input_info_list
-pa_context_get_sink_input_info_list.restype = POINTER(c_int)
-pa_context_get_sink_input_info_list.argtypes = [
- POINTER(PA_CONTEXT),
- PA_SINK_INPUT_INFO_CB_T,
- c_void_p
-]
-
-pa_context_get_sink_info_list = pulse.pa_context_get_sink_info_list
-pa_context_get_sink_info_list.restype = POINTER(c_int)
-pa_context_get_sink_info_list.argtypes = [
- POINTER(PA_CONTEXT),
- PA_SINK_INFO_CB_T,
- c_void_p
-]
-
-pa_context_set_sink_mute_by_index = pulse.pa_context_set_sink_mute_by_index
-pa_context_set_sink_mute_by_index.restype = POINTER(c_int)
-pa_context_set_sink_mute_by_index.argtypes = [
- POINTER(PA_CONTEXT),
- c_uint32,
- c_int,
- PA_CONTEXT_SUCCESS_CB_T,
- c_void_p
-]
-
-pa_context_set_sink_input_mute = pulse.pa_context_set_sink_input_mute
-pa_context_set_sink_input_mute.restype = POINTER(c_int)
-pa_context_set_sink_input_mute.argtypes = [
- POINTER(PA_CONTEXT),
- c_uint32,
- c_int,
- PA_CONTEXT_SUCCESS_CB_T,
- c_void_p
-]
-
-pa_context_set_sink_volume_by_index = pulse.pa_context_set_sink_volume_by_index
-pa_context_set_sink_volume_by_index.restype = POINTER(c_int)
-pa_context_set_sink_volume_by_index.argtypes = [
- POINTER(PA_CONTEXT),
- c_uint32,
- POINTER(PA_CVOLUME),
- PA_CONTEXT_SUCCESS_CB_T,
- c_void_p
-]
-
-pa_context_set_sink_input_volume = pulse.pa_context_set_sink_input_volume
-pa_context_set_sink_input_volume.restype = POINTER(c_int)
-pa_context_set_sink_input_volume.argtypes = [
- POINTER(PA_CONTEXT),
- c_uint32,
- POINTER(PA_CVOLUME),
- PA_CONTEXT_SUCCESS_CB_T,
- c_void_p
-]
-
-#
-# pa_context_*_source_*
-pa_context_get_source_output_info_list = pulse.pa_context_get_source_output_info_list
-pa_context_get_source_output_info_list.restype = POINTER(c_int)
-pa_context_get_source_output_info_list.argtypes = [
- POINTER(PA_CONTEXT),
- PA_SOURCE_OUTPUT_INFO_CB_T,
- c_void_p
-]
-
-pa_context_get_source_info_list = pulse.pa_context_get_source_info_list
-pa_context_get_source_info_list.restype = POINTER(c_int)
-pa_context_get_source_info_list.argtypes = [
- POINTER(PA_CONTEXT),
- PA_SOURCE_INFO_CB_T,
- c_void_p
-]
-
-pa_context_set_source_mute_by_index = pulse.pa_context_set_source_mute_by_index
-pa_context_set_source_mute_by_index.restype = POINTER(c_int)
-pa_context_set_source_mute_by_index.argtypes = [
- POINTER(PA_CONTEXT),
- c_uint32,
- c_int,
- PA_CONTEXT_SUCCESS_CB_T,
- c_void_p
-]
-
-pa_context_set_source_volume_by_index = pulse.pa_context_set_source_volume_by_index
-pa_context_set_source_volume_by_index.restype = POINTER(c_int)
-pa_context_set_source_volume_by_index.argtypes = [
- POINTER(PA_CONTEXT),
- c_uint32,
- POINTER(PA_CVOLUME),
- PA_CONTEXT_SUCCESS_CB_T,
- c_void_p
-]
-
-#
-# pa_context_*_client_*
-
-pa_context_get_client_info_list = pulse.pa_context_get_client_info_list
-pa_context_get_client_info_list.restype = POINTER(c_int)
-pa_context_get_client_info_list.argtypes = [
- POINTER(PA_CONTEXT),
- PA_CLIENT_INFO_CB_T,
- c_void_p
-]
-pa_context_get_client_info = pulse.pa_context_get_client_info
-pa_context_get_client_info.restype = POINTER(c_int)
-pa_context_get_client_info.argtypes = [
- POINTER(PA_CONTEXT),
- c_uint32,
- PA_CLIENT_INFO_CB_T,
- c_void_p
-]
-
-#
-# pa_context_*_subscribe*
-pa_context_set_subscribe_callback = pulse.pa_context_set_subscribe_callback
-pa_context_set_subscribe_callback.restype = c_int
-pa_context_set_subscribe_callback.argtypes = [
- POINTER(PA_CONTEXT),
- PA_CONTEXT_SUBSCRIBE_CB_T,
- c_void_p
-]
-
-pa_context_subscribe = pulse.pa_context_subscribe
-pa_context_subscribe.restype = POINTER(PA_OPERATION)
-pa_context_subscribe.argtypes = [
- POINTER(PA_CONTEXT),
- c_int,
- PA_CONTEXT_SUCCESS_CB_T,
- c_void_p
-]
-
-#
-# pa_operation_*
-pa_operation_unref = pulse.pa_operation_unref
-pa_operation_unref.restype = c_int
-pa_operation_unref.argtypes = [
- POINTER(PA_OPERATION)
-]
-
-#
-# pa_stream_*
-pa_stream_connect_record = pulse.pa_stream_connect_record
-pa_stream_connect_record.restype = c_int
-pa_stream_connect_record.argtypes = [
- POINTER(PA_STREAM),
- c_char_p,
- POINTER(PA_BUFFER_ATTR),
- c_int # original pa_stream_flags_t
-]
-
-pa_stream_peek = pulse.pa_stream_peek
-pa_stream_peek.restype = c_int
-pa_stream_peek.argtypes = [
- POINTER(PA_STREAM),
- POINTER(c_void_p), # original is void **data, no idea if this works
- POINTER(c_size_t)
-]
-
diff --git a/pulsecaster/ui.py b/pulsecaster/ui.py
deleted file mode 100644
index 67829e1..0000000
--- a/pulsecaster/ui.py
+++ /dev/null
@@ -1,239 +0,0 @@
-#!/usr/bin/python
-#
-# Copyright (C) 2009 Paul W. Frields
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-#
-# Author: Paul W. Frields <stickster@gmail.com>
-
-
-from config import *
-import gconfig
-from pulseaudio.PulseObj import PulseObj
-import gtk
-#import gtk.glade
-import os
-import dbus
-import gobject
-import dbus.mainloop.glib
-import pygst
-pygst.require('0.10')
-import gst
-
-# FIXME
-fname = os.getcwd() + '/data/pulsecaster.glade'
-logofile = os.getcwd() + '/data/icons/scalable/pulsecaster.svg'
-_debug = True
-
-def _debugPrint(text):
- if _debug:
- print (text)
-
-class PulseCasterUI:
- def __init__(self):
- self.builder = gtk.Builder()
- self.builder.add_from_file(fname)
- self.logo = gtk.gdk.pixbuf_new_from_file(logofile)
- self.gconfig = gconfig.PulseCasterGconf()
-
- self.warning = self.builder.get_object('warning')
- self.dismiss = self.builder.get_object('dismiss_warning')
- self.swckbox = self.builder.get_object('skip_warn_checkbox')
- self.swckbox.set_active(int(self.gconfig.skip_warn))
- self.dismiss.connect('clicked', self.hideWarn)
-
- # Main dialog basics
- self.main = self.builder.get_object('main_dialog')
- self.main.set_title(NAME)
- self.main_title = self.builder.get_object('main_title')
- self.main_title.set_label('<big><big><big><b><i>' +
- NAME + '</i></b></big></big></big>')
- self.main.connect('delete_event', self.on_close)
- self.about_button = self.builder.get_object('about_button')
- self.about_button.connect('clicked', self.showAbout)
- self.close = self.builder.get_object('close_button')
- self.close.connect('clicked', self.on_close)
- self.record = self.builder.get_object('record_button')
- self.record_id = self.record.connect('clicked', self.on_record)
-
- # About dialog basics
- self.about = self.builder.get_object('about_dialog')
- self.about.connect('delete_event', self.hideAbout)
- self.about.connect('response', self.hideAbout)
- self.about.set_name(NAME)
- self.about.set_version(VERSION)
- self.about.set_copyright(COPYRIGHT)
- self.about.set_comments(DESCRIPTION)
- self.about.set_license(LICENSE_TEXT)
- self.about.set_website(URL)
- self.about.set_website_label(URL)
- self.authors = [AUTHOR + ' <' + AUTHOR_EMAIL + '>']
- for contrib in CONTRIBUTORS:
- self.authors.append(contrib)
- self.about.set_authors(self.authors)
- self.about.set_logo(self.logo)
- self.about.set_program_name(NAME)
-
- # Create PulseAudio backing
- self.pa = PulseObj(clientName=NAME)
-
- # Create and populate combo boxes
- self.combo_vbox = self.builder.get_object('combo_vbox')
- self.user_vox = gtk.combo_box_new_text()
- self.subject_vox = gtk.combo_box_new_text()
- self.combo_vbox.add(self.user_vox)
- self.combo_vbox.add(self.subject_vox)
- self.user_vox.connect('button-press-event', self.repop_sources)
- self.subject_vox.connect('button-press-event', self.repop_sources)
-
- # Fill the combo boxes initially
- self.repop_sources()
- self.listener = PulseCasterListener(self)
-
- self.destfile_label = self.builder.get_object('destfile_label')
- self.file_chooser = self.builder.get_object('file_chooser')
- self.open_button = self.builder.get_object('open_button')
- self.open_button.connect('button-press-event', self.showFileChooser)
- self.file_chooser_cancel_button = self.builder.get_object('file_chooser_cancel_button')
- self.file_chooser_cancel_button.connect('clicked', self.hideFileChooser)
- self.file_chooser_save_button = self.builder.get_object('file_chooser_save_button')
- self.file_chooser_save_button.connect('clicked', self.updateFileSinkPath)
- self.filesinkpath = os.path.join(os.getenv('HOME'), 'podcast.ogg')
- self.file_chooser.set_filename(self.filesinkpath)
- self.destfile_label.set_text(self.filesinkpath)
-
- def repop_sources(self, *args):
- self.sources = self.pa.pulse_source_list()
- l = self.user_vox.get_model()
- l.clear()
- l = self.subject_vox.get_model()
- l.clear()
- self.uservoxes = []
- self.subjectvoxes = []
- for source in self.sources:
- if source.monitor_of_sink_name == None:
- self.uservoxes.append((source.name, source.description))
- self.user_vox.append_text(source.description)
- else:
- self.subjectvoxes.append((source.name, source.description))
- self.subject_vox.append_text(source.description)
- self.user_vox.set_active(0)
- self.subject_vox.set_active(0)
- self.combo_vbox.reorder_child(self.user_vox, 0)
- self.combo_vbox.reorder_child(self.subject_vox, 1)
- self.combo_vbox.show_all()
-
- if self.gconfig.skip_warn is False:
- self.warning.show()
- else:
- self.hideWarn()
-
- def on_record(self, *args):
- # Get filename
- # Check whether filename exists, if so, overwrite? y/n
- filesinkpath = self.destfile_label.get_text()
- if filesinkpath is None:
- return
- # Set up GStreamer stuff
- self.combiner = gst.Pipeline('PulseCasterCombinePipe')
- self.lsource = gst.element_factory_make('pulsesrc', 'lsrc')
- self.lsource.set_property('device',
- self.uservoxes[self.user_vox.get_active()][0])
- self.rsource = gst.element_factory_make('pulsesrc', 'rsrc')
- self.rsource.set_property('device',
- self.subjectvoxes[self.subject_vox.get_active()][0])
-
- self.adder = gst.element_factory_make('adder', 'mix')
- self.encoder = gst.element_factory_make('vorbisenc', 'enc')
- self.muxer = gst.element_factory_make('oggmux', 'mux')
- self.filesink = gst.element_factory_make('filesink', 'fsink')
- self.filesink.set_property('location', filesinkpath)
-
- self.combiner.add(self.lsource,
- self.rsource,
- self.adder,
- self.encoder,
- self.muxer,
- self.filesink)
- gst.element_link_many(self.lsource,
- self.adder,
- self.encoder,
- self.muxer,
- self.filesink)
- gst.element_link_many(self.rsource, self.adder)
-
- # FIXME: Dim elements other than the 'record' widget
- self.record.set_label(gtk.STOCK_MEDIA_STOP)
- self.record.disconnect(self.record_id)
- self.stop_id = self.record.connect('clicked', self.on_stop)
- self.record.show()
- self.combiner.set_state(gst.STATE_PLAYING)
-
- def on_stop(self, *args):
- self.combiner.set_state(gst.STATE_NULL)
- self.record.set_label(gtk.STOCK_MEDIA_RECORD)
- self.record.disconnect(self.stop_id)
- self.record_id = self.record.connect('clicked', self.on_record)
- self.record.show()
-
- def on_close(self, *args):
- try:
- self.pa.disconnect()
- except:
- pass
- gtk.main_quit()
-
- def hideWarn(self, *args):
- self.gconfig.change_warn(self.swckbox.get_active())
- self.warning.hide()
- self.main.show()
-
- def showAbout(self, *args):
- self.about.show()
-
- def hideAbout(self, *args):
- self.about.hide()
-
- def showFileChooser(self, *args):
- self.file_chooser.set_filename(self.filesinkpath)
- self.file_chooser.show()
-
- def hideFileChooser(self, *args):
- self.file_chooser.hide()
-
- def updateFileSinkPath(self, *args):
- self.hideFileChooser()
- self.filesinkpath = self.file_chooser.get_filename()
- self.destfile_label.set_text(self.filesinkpath)
-
-
-class PulseCasterListener:
- def __init__(self, ui):
- dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
- self.bus = dbus.SystemBus()
-
- self.bus.add_signal_receiver(ui.repop_sources,
- signal_name='DeviceAdded',
- dbus_interface='org.freedesktop.Hal.Manager',
- path='/org/freedesktop/Hal/Manager')
- self.bus.add_signal_receiver(ui.repop_sources,
- signal_name='DeviceRemoved',
- dbus_interface='org.freedesktop.Hal.Manager',
- path='/org/freedesktop/Hal/Manager')
-
-
-if __name__ == '__main__':
- pulseCaster = PulseCasterUI()
- gtk.main()