Import Upstream version 3.1.0.2022+0310

This commit is contained in:
谢炜 2022-06-02 16:27:49 +08:00
commit d15f7705ca
324 changed files with 92228 additions and 0 deletions

19
AUTHORS Normal file
View File

@ -0,0 +1,19 @@
UKUI:
Hao Lee <lihao@kylinos.cn>
MATE:
Perberos <perberos@gmail.com>
Steve Zesch <stevezesch2@gmail.com>
Stefano Karapetsas <stefano@karapetsas.com>
Michal Ratajsky <michal.ratajsky@gmail.com>
GNOME Maintainers:
Marc-Andre Lureau <marcandre.lureau@gmail.com>
Bastien Nocera <hadess@hadess.net>
GNOME Authors:
Andreas Hyden <a.hyden@cyberpoint.se> (grecord)
Seth Nickell <snickell@stanford.edu> (gst-mixer)
Ronald Bultje <rbultje@ronald.bitfreak.net> (gst-mixer)
Thomas Vander Stichele <thomas at apestaart dot org> (profiles)
William Jon McCann <jmccann@redhat.com> (mate-volume-control)

339
COPYING Normal file
View File

@ -0,0 +1,339 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
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 2 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, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

2
ChangeLog Normal file
View File

@ -0,0 +1,2 @@
The ChangeLog is auto-generated when releasing. If you are seeing this, use
'git log' for a detailed list of changes.

48
Makefile.am Normal file
View File

@ -0,0 +1,48 @@
NULL =
SUBDIRS = data po man
DISTCHECK_CONFIGURE_FLAGS = \
--enable-more-warnings \
--enable-compile-warnings=maximum \
--enable-deprecated
DIST_SUBDIRS = \
data \
po \
man \
$(NULL)
EXTRA_DIST = \
.version \
autogen.sh \
configure \
ChangeLog \
COPYING \
COPYING-DOCS \
build-aux/git-version-gen \
$(INTLTOOL_BUILT:=.in) \
$(NULL)
DISTCLEANFILES = \
po/.intltool-merge-cache \
$(NULL)
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
# see build-aux/git-version-get for details
BUILT_SOURCES = $(top_srcdir)/.version
$(top_srcdir)/.version:
echo $(VERSION) > $@-t && mv $@-t $@
# Build ChangeLog from GIT history
ChangeLog:
$(AM_V_GEN) if test -d $(top_srcdir)/.git; then \
GIT_DIR="$(top_srcdir)/.git" git log --stat > $@; \
fi
dist: ChangeLog
.PHONY: ChangeLog
-include $(top_srcdir)/git.mk

2
NEWS Normal file
View File

@ -0,0 +1,2 @@
### ukui-media 1.1.0
Fork mate-media

11
README Normal file
View File

@ -0,0 +1,11 @@
These are the media tools for UKUI:
ukui-volume-control - UKUI volume control application and applet
Refer to the following files for license information for each sub-component
of ukui-media:
ukui-volume-control - COPYING
documentation - COPYING-DOCS
UKUI-Media is a fork of MATE-Media.

97
audio/audio.cpp Normal file
View File

@ -0,0 +1,97 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
*
* 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 2 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, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#include "audio.h"
#include "ui_audio.h"
#include <QDebug>
#include <QLibraryInfo>
#include <QStandardPaths>
Audio::Audio() : mFirstLoad(true)
{
#ifndef QT_NO_TRANSLATION
QString translatorFileName = QLatin1String("qt_");
translatorFileName += QLocale::system().name();
QTranslator *pTranslator = new QTranslator();
if (pTranslator->load(translatorFileName, QLibraryInfo::location(QLibraryInfo::TranslationsPath)))
QApplication::installTranslator(pTranslator);
#endif
QTranslator *translator = new QTranslator(this);
translator->load("/usr/share/ukui-media/translations/audio/" + QLocale::system().name());
QApplication::installTranslator(translator);
pluginName = tr("Audio");
pluginType = SYSTEM;
}
Audio::~Audio()
{
}
QString Audio::plugini18nName()
{
return pluginName;
}
int Audio::pluginTypes()
{
return pluginType;
}
QWidget *Audio::pluginUi()
{
if (mFirstLoad) {
mFirstLoad = false;
widget = new UkmediaMainWidget;
}
return widget;
}
bool Audio::isEnable() const
{
return true;
}
const QString Audio::name() const
{
return QStringLiteral("Audio");
}
bool Audio::isShowOnHomePage() const
{
return true;
}
QIcon Audio::icon() const
{
return QIcon();
}
QString Audio::translationPath() const
{
return "/usr/share/ukui-media/translations/audio/%1.ts";
}
void Audio::initSearchText()
{
//~ contents_path /UkccPlugin/UkccPlugin
tr("UkccPlugin");
//~ contents_path /UkccPlugin/ukccplugin test
tr("ukccplugin test");
}

73
audio/audio.h Normal file
View File

@ -0,0 +1,73 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
*
* 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 2 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, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#ifndef AUDIO_H
#define AUDIO_H
#include <QWidget>
#include <QObject>
#include <QtPlugin>
#include <QProcess>
#include "ukmedia_main_widget.h"
#include <ukcc/interface/interface.h>
#include <QTranslator>
#include <QtCore/qglobal.h>
#if defined(LIBUKCC_LIBRARY)
# define LIBUKCC_EXPORT Q_DECL_EXPORT
#else
# define LIBUKCC_EXPORT Q_DECL_IMPORT
#endif
namespace Ui {
class Audio;
}
class Audio : public QObject, CommonInterface
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.ukcc.CommonInterface")
Q_INTERFACES(CommonInterface)
public:
Audio();
~Audio();
QString plugini18nName() Q_DECL_OVERRIDE;
int pluginTypes() Q_DECL_OVERRIDE;
QWidget *pluginUi() Q_DECL_OVERRIDE;
bool isEnable() const Q_DECL_OVERRIDE;
const QString name() const Q_DECL_OVERRIDE;
bool isShowOnHomePage() const Q_DECL_OVERRIDE;
QIcon icon() const Q_DECL_OVERRIDE;
QString translationPath() const Q_DECL_OVERRIDE;
private:
QString pluginName;
int pluginType;
QWidget *widget;
bool mFirstLoad;
private:
void initSearchText(); // 搜索翻译
};
#endif // AUDIO_H

86
audio/audio.pro Normal file
View File

@ -0,0 +1,86 @@
#-------------------------------------------------
#
# Project created by QtCreator 2019-05-30T09:45:54
#
#-------------------------------------------------
#include(../../../env.pri)
QT += widgets xml dbus
TEMPLATE = lib
CONFIG += plugin
#include($$PROJECT_COMPONENTSOURCE/switchbutton.pri)
#include($$PROJECT_COMPONENTSOURCE/label.pri)
INCLUDEPATH += ../../.. \
$$PROJECT_COMPONENTSOURCE \
TARGET = $$qtLibraryTarget(audio)
DESTDIR = ../
target.path = $$[QT_INSTALL_LIBS]/ukui-control-center
CONFIG += c++11 \
no_keywords link_pkgconfig
PKGCONFIG += gio-2.0 \
libxml-2.0 \
Qt5Multimedia \
gsettings-qt \
libcanberra \
dconf \
libpulse \
libpulse-mainloop-glib
#DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
audio.cpp \
ukmedia_input_widget.cpp \
ukmedia_main_widget.cpp \
ukmedia_output_widget.cpp \
ukmedia_sound_effects_widget.cpp \
ukmedia_volume_control.cpp \
ukui_custom_style.cpp \
customstyle.cpp \
ukmedia_slider_tip_label_helper.cpp \
ukui_list_widget_item.cpp \
titlelabel.cpp \
switchbutton.cpp
HEADERS += \
audio.h \
ukmedia_input_widget.h \
ukmedia_main_widget.h \
ukmedia_output_widget.h \
ukmedia_sound_effects_widget.h \
ukmedia_volume_control.h \
ukui_custom_style.h \
customstyle.h \
ukmedia_slider_tip_label_helper.h \
ukui_list_widget_item.h \
titlelabel.h \
switchbutton.h
FORMS += \
audio.ui
TRANSLATIONS += \
translations/zh_CN.ts \
translations/tr.ts \
translations/bo.ts
isEmpty(PREFIX) {
PREFIX = /usr
}
qm_files.path = $${PREFIX}/share/ukui-media/translations/audio/
qm_files.files = translations/*
CONFIG(release, debug|release) {
!system($$PWD/translate_generation.sh): error("Failed to generate translation")
}
INSTALLS += target \
qm_files \

49
audio/audio.ui Normal file
View File

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Audio</class>
<widget class="QWidget" name="Audio">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>710</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="windowTitle">
<string>Audio</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>32</number>
</property>
<property name="bottomMargin">
<number>48</number>
</property>
</layout>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>

371
audio/customstyle.cpp Normal file
View File

@ -0,0 +1,371 @@
#include "customstyle.h"
#include <QStyleOptionToolButton>
#include <QPainter>
#include <QPainterPath>
#include <QApplication>
CustomStyle::CustomStyle(const QString &proxyStyleName, QObject *parent) : QProxyStyle (proxyStyleName)
{
Q_UNUSED(parent);
m_helpTip = new SliderTipLabelHelper(this);
}
CustomStyle::~CustomStyle()
{
}
void CustomStyle::drawComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget) const
{
if(control == CC_ToolButton)
{
/// 我们需要获取ToolButton的详细信息通过qstyleoption_cast可以得到
/// 对应的option通过拷贝构造函数得到一份备份用于绘制子控件
/// 我们一般不用在意option是怎么得到的大部分的Qt控件都能够提供了option的init方法
}
return QProxyStyle::drawComplexControl(control, option, painter, widget);
}
void CustomStyle::drawControl(QStyle::ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const
{
switch (element) {
case CE_ProgressBar:
{
if (const QStyleOptionProgressBar *pb = qstyleoption_cast<const QStyleOptionProgressBar *>(option)) {
QStyleOptionProgressBar subopt = *pb;
subopt.rect = subElementRect(SE_ProgressBarGroove, pb, widget);
proxy()->drawControl(CE_ProgressBarGroove, &subopt, painter, widget);
subopt.rect = subElementRect(SE_ProgressBarContents, pb, widget);
proxy()->drawControl(CE_ProgressBarContents, &subopt, painter, widget);
//这是这个控件的当前进度的文字,你那边看情况是否需要绘制
// if (pb->textVisible) {
// subopt.rect = subElementRect(SE_ProgressBarLabel, pb, widget);
// proxy()->drawControl(CE_ProgressBarLabel, &subopt, painter, widget);
// }
return;
}
break;
}
case CE_ProgressBarGroove:
{
//这是这个控件的背景,你那边看情况是否绘制
return;
if (const QStyleOptionProgressBar *pbg = qstyleoption_cast<const QStyleOptionProgressBar *>(option)) {
const bool enable = pbg->state &State_Enabled;
painter->save();
painter->setRenderHint(QPainter::Antialiasing, true);
painter->setPen(Qt::NoPen);
painter->setBrush(pbg->palette.brush(enable ? QPalette::Active : QPalette::Disabled, QPalette::Window));
painter->drawRect(pbg->rect);
painter->restore();
return;
}
break;
}
case CE_ProgressBarContents:
{
if (const QStyleOptionProgressBar *bar = qstyleoption_cast<const QStyleOptionProgressBar *>(option)) {
if (bar->progress == bar->maximum)
return;
const bool enable = bar->state & QStyle::State_Enabled;
const bool vertical = bar->orientation == Qt::Vertical;
const bool inverted = bar->invertedAppearance;
qint64 minimum = qint64(bar->minimum);
qint64 maximum = qint64(bar->maximum);
qint64 progress = qint64(bar->progress);
qint64 totalSteps = qMax(Q_INT64_C(1), maximum - minimum);
qint64 progressSteps = progress - bar->minimum;
qint64 progressBarWidth = progressSteps * (vertical ? bar->rect.height() : bar->rect.width()) / totalSteps;
int ProgressBarItem_Width = 4;
int ProgressBarItem_Distance = 16;
int distance = ProgressBarItem_Distance + ProgressBarItem_Width;
int num = progressBarWidth / distance;
int totalnum = (vertical ? bar->rect.height() : bar->rect.width()) / distance;
bool reverse = (!vertical && (bar->direction == Qt::RightToLeft)) || vertical;
if (inverted)
reverse = !reverse;
int ProgressBarItem_Hight = 16;
QRect drawRect(bar->rect);
if (vertical) {
drawRect.setWidth(ProgressBarItem_Hight);
} else {
drawRect.setHeight(ProgressBarItem_Hight);
}
drawRect.moveCenter(bar->rect.center());
QRect itemRect(drawRect);
painter->save();
painter->setPen(Qt::NoPen);
painter->setRenderHints(QPainter::Antialiasing, true);
for (int var = 0; var < totalnum; ++var) {
if (var < num) {
if (enable)
painter->setBrush(bar->palette.brush(QPalette::Active, QPalette::Highlight));
else
painter->setBrush(bar->palette.color(QPalette::Active, QPalette::Highlight).light(150));
} else {
painter->setBrush(bar->palette.brush(enable ? QPalette::Active : QPalette::Disabled, QPalette::Button));
}
if (vertical)
itemRect.setRect(drawRect.left(), !reverse ? drawRect.top() + var * distance : drawRect.bottom() - ProgressBarItem_Width - var * distance,
drawRect.width(), ProgressBarItem_Width);
else
itemRect.setRect(reverse ? drawRect.right() - ProgressBarItem_Width - var * distance : drawRect.left() + var * distance, drawRect.top(),
ProgressBarItem_Width, drawRect.height());
painter->drawRoundedRect(itemRect, ProgressBarItem_Width/2, ProgressBarItem_Width/2);
}
painter->restore();;
return;
}
break;
}
default:
break;
}
return QProxyStyle::drawControl(element, option, painter, widget);
}
void CustomStyle::drawItemPixmap(QPainter *painter, const QRect &rectangle, int alignment, const QPixmap &pixmap) const
{
return QProxyStyle::drawItemPixmap(painter, rectangle, alignment, pixmap);
}
void CustomStyle::drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette &palette, bool enabled, const QString &text, QPalette::ColorRole textRole) const
{
return QProxyStyle::drawItemText(painter, rectangle, alignment, palette, enabled, text, textRole);
}
//绘制简单的颜色圆角等
void CustomStyle::drawPrimitive(QStyle::PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const
{
switch (element) {
//绘制 ToolButton
case PE_PanelButtonTool:{
painter->save();
painter->setRenderHint(QPainter::Antialiasing,true);
painter->setPen(Qt::NoPen);
painter->setBrush(QColor(0xff,0xff,0xff,0x00));
painter->drawRoundedRect(option->rect,4,4);
if (option->state & State_MouseOver) {
if (option->state & State_Sunken) {
painter->setRenderHint(QPainter::Antialiasing,true);
painter->setPen(Qt::NoPen);
painter->setBrush(QColor(0xff,0xff,0xff,0x14));
painter->drawRoundedRect(option->rect,4,4);
qDebug() << " 点击按钮";
} else {
painter->setRenderHint(QPainter::Antialiasing,true);
painter->setPen(Qt::NoPen);
painter->setBrush(QColor(0xff,0xff,0xff,0x1f));
painter->drawRoundedRect(option->rect,4,4);
qDebug() << "悬停按钮";
}
}
painter->restore();
return;
}
case PE_PanelTipLabel:{
painter->save();
painter->setRenderHint(QPainter::Antialiasing,true);
painter->setPen(Qt::NoPen);
painter->setBrush(QColor(0xff,0xff,0x00,0xff));
painter->drawRoundedRect(option->rect,4,4);
painter->restore();
return;
}break;
case PE_PanelButtonCommand:{
painter->save();
painter->setRenderHint(QPainter::TextAntialiasing,true);
painter->setPen(Qt::NoPen);
painter->setBrush(QColor(0xff,0xff,0xff,0x00));
if (option->state & State_MouseOver) {
if (option->state & State_Sunken) {
painter->setRenderHint(QPainter::Antialiasing,true);
painter->setPen(Qt::NoPen);
painter->setBrush(QColor(0x3d,0x6b,0xe5,0xff));
painter->drawRoundedRect(option->rect,4,4);
} else {
painter->setRenderHint(QPainter::Antialiasing,true);
painter->setPen(Qt::NoPen);
painter->setBrush(QColor(0xff,0xff,0xff,0x1f));
painter->drawRoundedRect(option->rect.adjusted(2,2,-2,-2),4,4);
}
}
painter->restore();
return;
}break;
}
return QProxyStyle::drawPrimitive(element, option, painter, widget);
}
QPixmap CustomStyle::generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *option) const
{
return QProxyStyle::generatedIconPixmap(iconMode, pixmap, option);
}
QStyle::SubControl CustomStyle::hitTestComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, const QPoint &position, const QWidget *widget) const
{
return QProxyStyle::hitTestComplexControl(control, option, position, widget);
}
QRect CustomStyle::itemPixmapRect(const QRect &rectangle, int alignment, const QPixmap &pixmap) const
{
return QProxyStyle::itemPixmapRect(rectangle, alignment, pixmap);
}
QRect CustomStyle::itemTextRect(const QFontMetrics &metrics, const QRect &rectangle, int alignment, bool enabled, const QString &text) const
{
return QProxyStyle::itemTextRect(metrics, rectangle, alignment, enabled, text);
}
//
int CustomStyle::pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option, const QWidget *widget) const
{
switch (metric){
case PM_ProgressBarChunkWidth:
{
int ProgressBarItem_Width = 4;
int ProgressBarItem_Distance = 16;
return ProgressBarItem_Width + ProgressBarItem_Distance;
}
case PM_ToolBarIconSize:{
return (int)48*qApp->devicePixelRatio();
}
default:
break;
}
return QProxyStyle::pixelMetric(metric, option, widget);
}
//
void CustomStyle::polish(QWidget *widget)
{
if (widget) {
if (widget->inherits("QTipLabel")) {
widget->setAttribute(Qt::WA_TranslucentBackground);
QPainterPath path;
auto rect = widget->rect();
rect.adjust(0,0,0,0);
path.addRoundedRect(rect,6,6);
widget->setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon()));
}
}
if (widget) {
if (widget->inherits("QLable")) {
const_cast<QWidget *> (widget)->setAttribute(Qt::WA_TranslucentBackground);
widget->setAttribute(Qt::WA_TranslucentBackground);
QPainterPath path;
auto rect = widget->rect();
rect.adjust(0,0,0,0);
path.addRoundedRect(rect,6,6);
widget->setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon()));
}
}
if (widget){
widget->setAttribute(Qt::WA_Hover);
widget->inherits("QSlider");
m_helpTip->registerWidget(widget);
widget->installEventFilter(this);
}
return QProxyStyle::polish(widget);
}
void CustomStyle::polish(QApplication *application)
{
return QProxyStyle::polish(application);
}
//
void CustomStyle::polish(QPalette &palette)
{
// return QProxyStyle::polish(palette);
// QProxyStyle::polish(palette);
// palette.setBrush(QPalette::Foreground, Qt::black);
QColor lightBlue(200, 0, 0);
palette.setBrush(QPalette::Highlight, lightBlue);
}
void CustomStyle::unpolish(QWidget *widget)
{
return QProxyStyle::unpolish(widget);
}
void CustomStyle::unpolish(QApplication *application)
{
return QProxyStyle::unpolish(application);
}
QSize CustomStyle::sizeFromContents(QStyle::ContentsType type, const QStyleOption *option, const QSize &contentsSize, const QWidget *widget) const
{
QSize newSize = contentsSize;
switch (type) {
case CT_ProgressBar:
{
qDebug()<<newSize;
int ProgressBarItem_Num = 20;
int cw = proxy()->pixelMetric(QStyle::PM_ProgressBarChunkWidth, option, widget);
newSize.setWidth(cw * ProgressBarItem_Num);
return newSize;
}
default:
break;
}
return QProxyStyle::sizeFromContents(type, option, contentsSize, widget);
}
QIcon CustomStyle::standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *option, const QWidget *widget) const
{
return QProxyStyle::standardIcon(standardIcon, option, widget);
}
QPalette CustomStyle::standardPalette() const
{
return QProxyStyle::standardPalette();
}
//如果需要背景透明也许需要用到这个函数
int CustomStyle::styleHint(QStyle::StyleHint hint, const QStyleOption *option, const QWidget *widget, QStyleHintReturn *returnData) const
{
switch (hint) {
/// 让ScrollView viewport的绘制区域包含scrollbar和corner widget
/// 这个例子中没有什么作用,如果我们需要绘制一个背景透明的滚动条
/// 这个style hint对我们的意义应该很大因为我们希望视图能够帮助
/// 我们填充滚动条的背景区域,否则当背景透明时底下会出现明显的分割
case SH_ScrollView_FrameOnlyAroundContents: {
return false;
}
default:
break;
}
return QProxyStyle::styleHint(hint, option, widget, returnData);
}
QRect CustomStyle::subControlRect(QStyle::ComplexControl control, const QStyleOptionComplex *option, QStyle::SubControl subControl, const QWidget *widget) const
{
return QProxyStyle::subControlRect(control, option, subControl, widget);
}
QRect CustomStyle::subElementRect(QStyle::SubElement element, const QStyleOption *option, const QWidget *widget) const
{
switch (element) {
case SE_ProgressBarGroove:
case SE_ProgressBarContents:
return option->rect;
default:
break;
}
return QProxyStyle::subElementRect(element, option, widget);
}

158
audio/customstyle.h Normal file
View File

@ -0,0 +1,158 @@
/*
* Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
*
* 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, 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/&gt;.
*
*/
#ifndef CUSTOMSTYLE_H
#define CUSTOMSTYLE_H
#include <QProxyStyle>
#include <QDebug>
#include "ukmedia_slider_tip_label_helper.h"
/*!
* \brief The CustomStyle class
* \details
* QStyle
* QProxyStyle使QProxyStyle的实例绘制控件
* QProxyStyle可以从现有的qt style实例化style的名字即可
* style的代码直接引入我们的项目中
* style类进行二次开发
*
* QStyle的所有的接口使QStyle进行控件的绘制使得qt应用能够进行风格的切换
*
*
* \note
* QStyle与QSS并不兼容QSS本身其实上也是QStyle的一种实现
* QStyle进行绘制
*/
class CustomStyle : public QProxyStyle
{
Q_OBJECT
public:
explicit CustomStyle(const QString &proxyStyleName = "windows", QObject *parent = nullptr);
~CustomStyle();
/*!
* \brief drawComplexControl
* \param control ScrollBarCC枚举类型
* \param option
* \param painter
* \param widget
* \details
* drawComplexControl用于绘制具有子控件的复杂控件
* QStyle的其它方法将复杂控件分解成子控件再调用其它的draw方法绘制
*
*
*
* 使
*
*
*/
virtual void drawComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = nullptr) const;
/*!
* \brief drawControl
* \param element CE枚举类型
* \param option
* \param painter
* \param widget
* \details
* drawControl用于绘制基本控件元素
* QStyle中的源码
*
*
* QStyle一般会遵循QCommonStyle的绘制流程QCommenStyle是大部分主流style的最基类
* 使
*
*/
virtual void drawControl(QStyle::ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const;
virtual void drawItemPixmap(QPainter *painter, const QRect &rectangle, int alignment, const QPixmap &pixmap) const;
virtual void drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette &palette, bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const;
/*!
* \brief drawPrimitive
* \param element PE枚举类型
* \param option
* \param painter
* \param widget
* \details
* drawPrimitive用于绘制控件背景
*
* hover和点击效果
*/
virtual void drawPrimitive(QStyle::PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const;
virtual QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *option) const;
virtual QStyle::SubControl hitTestComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, const QPoint &position, const QWidget *widget = nullptr) const;
virtual QRect itemPixmapRect(const QRect &rectangle, int alignment, const QPixmap &pixmap) const;
virtual QRect itemTextRect(const QFontMetrics &metrics, const QRect &rectangle, int alignment, bool enabled, const QString &text) const;
//virtual int layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option, const QWidget *widget);
virtual int pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const;
/*!
* \brief polish
* \param widget
* \details
* polish用于对widget进行预处理polish中修改其属性
* polish是对动画和特效实现而言十分重要的一个方法
* polish我们能够使widget和特效和动画形成对应关系
*/
virtual void polish(QWidget *widget);
virtual void polish(QApplication *application);
virtual void polish(QPalette &palette);
virtual void unpolish(QWidget *widget);
virtual void unpolish(QApplication *application);
virtual QSize sizeFromContents(QStyle::ContentsType type, const QStyleOption *option, const QSize &contentsSize, const QWidget *widget = nullptr) const;
virtual QIcon standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *option, const QWidget *widget) const;
virtual QPalette standardPalette() const;
/*!
* \brief styleHint
* \param hint SH
* \param option
* \param widget
* \param returnData
* \return
* \details
* styleHint比较特殊QMenu是否可以滚动
*/
virtual int styleHint(QStyle::StyleHint hint, const QStyleOption *option = nullptr, const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const;
/*!
* \brief subControlRect
* \param control
* \param option
* \param subControl
* \param widget
* \return
* \details
* subControlRect返回子控件的位置和大小信息
*
*/
virtual QRect subControlRect(QStyle::ComplexControl control, const QStyleOptionComplex *option, QStyle::SubControl subControl, const QWidget *widget = nullptr) const;
/*!
* \brief subElementRect
* \param element
* \param option
* \param widget
* \return
* \details
* subControlRect类似
*/
virtual QRect subElementRect(QStyle::SubElement element, const QStyleOption *option, const QWidget *widget = nullptr) const;
Q_SIGNALS:
public Q_SLOTS:
private:
SliderTipLabelHelper *m_helpTip;
};
#endif // CUSTOMSTYLE_H

325
audio/switchbutton.cpp Normal file
View File

@ -0,0 +1,325 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
*
* 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 2 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, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#include "switchbutton.h"
#include <QDebug>
#define THEME_QT_SCHEMA "org.ukui.style"
#define THEME_GTK_SCHEMA "org.mate.interface"
#define TIMER_INTERVAL 5 //每隔5ms动画移动一次
#define MOVING_STEPS 40 //动画总共移动40次
SwitchButton::SwitchButton(QWidget *parent) :
QWidget(parent)
{
// this->resize(QSize(52, 24));
this->setFixedSize(QSize(50, 24));
checked = false;
hover = false;
disabled = false;
isMoving = false;
isAnimation = true;
space = 4;
rectRadius = height()/2;
mStep = width()/MOVING_STEPS;//也就是40次动画就可以走完每次时间间隔是固定的5ms
mStartX = 0;
mEndX= 0;
mTimer = new QTimer(this);
mTimer->setInterval(TIMER_INTERVAL);//动画更新时间
connect(mTimer, SIGNAL(timeout()), this, SLOT(updatevalue()));
if(QGSettings::isSchemaInstalled(THEME_GTK_SCHEMA) && QGSettings::isSchemaInstalled(THEME_QT_SCHEMA)) {
QByteArray qtThemeID(THEME_QT_SCHEMA);
QByteArray gtkThemeID(THEME_GTK_SCHEMA);
m_gtkThemeSetting = new QGSettings(gtkThemeID,QByteArray(),this);
m_qtThemeSetting = new QGSettings(qtThemeID,QByteArray(),this);
QString style = m_qtThemeSetting->get("styleName").toString();
changeColor(style);
connect(m_qtThemeSetting,&QGSettings::changed, [this] (const QString &key) {
QString style = m_qtThemeSetting->get("styleName").toString();
if (key == "styleName") {
changeColor(style);
}
});
}
}
SwitchButton::~SwitchButton()
{
}
void SwitchButton::paintEvent(QPaintEvent *){
QPainter painter(this);
//启用反锯齿
painter.setRenderHint(QPainter::Antialiasing, true);
painter.setCompositionMode(QPainter::CompositionMode_Source);
drawBg(&painter);
if(!isAnimation)//动画如果禁用则圆形滑块isMoving始终为false
isMoving =false;
if(isMoving)
animation(&painter);
drawSlider(&painter);
painter.end();
}
void SwitchButton::changeColor(const QString &themes) {
if (hover) {
return ;//在鼠标下,禁止切换颜色鼠标离开时切换颜色
}
if (themes == "ukui-dark" || themes == "ukui-black") {
bgColorOff = QColor(OFF_BG_DARK_COLOR);
bgColorOn = QColor(ON_BG_DARK_COLOR);
rectColorEnabled = QColor(ENABLE_RECT_DARK_COLOR);
rectColorDisabled = QColor(DISABLE_RECT_DARK_COLOR);
sliderColorDisabled = QColor(DISABLE_RECT_DARK_COLOR);
sliderColorEnabled = QColor(ENABLE_RECT_DARK_COLOR);
bgHoverOnColor = QColor(ON_HOVER_BG_DARK_COLOR);
bgHoverOffColor = QColor(OFF_HOVER_BG_DARK_COLOR);
bgColorDisabled = QColor(DISABLE_DARK_COLOR);
} else {
bgColorOff = QColor(OFF_BG_LIGHT_COLOR);
bgColorOn = QColor(ON_BG_LIGHT_COLOR);
rectColorEnabled = QColor(ENABLE_RECT_LIGHT_COLOR);
rectColorDisabled = QColor(DISABLE_RECT_LIGHT_COLOR);
sliderColorDisabled = QColor(DISABLE_RECT_LIGHT_COLOR);
sliderColorEnabled = QColor(ENABLE_RECT_LIGHT_COLOR);
bgHoverOnColor = QColor(ON_HOVER_BG_LIGHT_COLOR);
bgHoverOffColor = QColor(OFF_HOVER_BG_LIGHT_COLOR);
bgColorDisabled = QColor(DISABLE_LIGHT_COLOR);
}
}
//动画绘制
void SwitchButton::animation(QPainter *painter){
painter->save();
int h = height();
int w = width();
painter->setPen(Qt::NoPen);
//颜色设置
if(checked){
//开关在左侧时
painter->setBrush(bgColorOn);
rect.setRect(0,0,h+mStartX,h);
}else{
painter->setBrush(bgColorOff);
rect.setRect(mStartX,0,w-mStartX,h);
}
painter->drawRoundedRect(rect,rectRadius,rectRadius);
painter->restore();
}
//绘制背景
void SwitchButton::drawBg(QPainter *painter){
int w = width();
int h = height();
painter->save();
painter->setPen(Qt::NoPen);
if (disabled) {
painter->setPen(Qt::NoPen);
painter->setBrush(bgColorDisabled);
} else {
if(checked){
if(isMoving){
painter->setBrush(bgColorOff);
rect.setRect(mStartX,0,w-mStartX,h);
}else {
painter->setBrush(bgColorOn);
rect.setRect(0, 0, w, h);
}
}else{
if(isMoving){
painter->setBrush(bgColorOn);
rect.setRect(0,0,mStartX+h,h);
}
else {
painter->setBrush(bgColorOff);
rect.setRect(0, 0, w, h);
}
}
}
//半径为高度的一半
painter->drawRoundedRect(rect,rectRadius,rectRadius);
painter->restore();
}
//绘制滑块,也就是圆形按钮
void SwitchButton::drawSlider(QPainter *painter){
painter->save();
painter->setPen(Qt::NoPen);
if (!disabled){
painter->setBrush(sliderColorEnabled);
}
else
painter->setBrush(sliderColorDisabled);
if (disabled) {
if (!checked){
QRect smallRect(8, height() / 2 - 2, 10 , 4);
painter->drawRoundedRect(smallRect,3,3);
}else{
QRect smallRect(width() - 8 * 2, height() / 2 - 2, 10 , 4);
painter->drawRoundedRect(smallRect,3,3);
}
}
QRect rect(0, 0, width(), height());
int sliderWidth = rect.height() - space * 2;
QRect sliderRect(mStartX + space, space, sliderWidth, sliderWidth);
painter->drawEllipse(sliderRect);
painter->restore();
}
void SwitchButton::mousePressEvent(QMouseEvent *){
qDebug()<<isMoving<<checked<<disabled;
if (isMoving) {
return ;
}
if(disabled){
mEndX = 0;
return ;
}else{
checked = !checked;
Q_EMIT checkedChanged(checked);
mStep = width() / MOVING_STEPS;
if (checked){
//circle out
// endX = width() - height() + space;
//circle in
mEndX = width() - height();
}
else {
mEndX = 0;
}
mTimer->start();
isMoving = true;
}
}
void SwitchButton::resizeEvent(QResizeEvent *){
//每次开始的x坐标都是跳过圆角从直线的地方开始计算
mStep = width() / MOVING_STEPS;
if (checked){
//circle out
// startX = width() - height() + space;
//circle in
mStartX = width() - height();
}
else
mStartX = 0;
rectRadius = height()/2;
update();
}
void SwitchButton::enterEvent(QEvent *event) {
bgColorOn = bgHoverOnColor;
bgColorOff = bgHoverOffColor;
hover = true;
update();
return QWidget::enterEvent(event);
}
void SwitchButton::leaveEvent(QEvent *event) {
hover = false;
QString style = m_qtThemeSetting->get("styleName").toString();
changeColor(style);
update();
return QWidget::leaveEvent(event);
}
//根据事件向左还是向右移动
void SwitchButton::updatevalue(){
if (checked)
if (mStartX < mEndX-mStep){
mStartX = mStartX + mStep;
}
else{
mStartX = mEndX;
mTimer->stop();
isMoving = false;
}
else{
if (mStartX > mEndX+mStep){
mStartX = mStartX - mStep;
}
else{
mStartX = mEndX;
mTimer->stop();
isMoving = false;
}
}
update();
}
void SwitchButton::setChecked(bool checked){
if (this->checked != checked){
this->checked = checked;
Q_EMIT checkedChanged(checked);
update();
}
mStep = width() / MOVING_STEPS;
if (checked){
//circle out
// endX = width() - height() + space;
//circle in
mEndX = width() - height();
}
else{
mEndX = 0;
}
mTimer->start();
isMoving = true;
}
bool SwitchButton::isChecked(){
return this->checked;
}
void SwitchButton::setDisabledFlag(bool value)
{
disabled = value;
update();
}
bool SwitchButton::getDisabledFlag()
{
return disabled;
}
void SwitchButton::setAnimation(bool on){
isAnimation = on;
}

119
audio/switchbutton.h Normal file
View File

@ -0,0 +1,119 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
*
* 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 2 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, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#ifndef SWITCHBUTTON_H
#define SWITCHBUTTON_H
#include <QWidget>
#include <QTimer>
#include <QPainter>
#include <QPainterPath>
#include <QEvent>
#include <QGSettings/QGSettings>
#define OFF_BG_DARK_COLOR "#404040"
#define OFF_HOVER_BG_DARK_COLOR "#666666"
#define ON_BG_DARK_COLOR "#3790FA"
#define ON_HOVER_BG_DARK_COLOR "#40A9FB"
#define DISABLE_DARK_COLOR "#474747"
#define DISABLE_RECT_DARK_COLOR "#6E6E6E"
#define ENABLE_RECT_DARK_COLOR "#FFFFFF"
#define OFF_BG_LIGHT_COLOR "#E0E0E0"
#define OFF_HOVER_BG_LIGHT_COLOR "#B3B3B3"
#define ON_BG_LIGHT_COLOR "#3790FA"
#define ON_HOVER_BG_LIGHT_COLOR "#40A9FB"
#define DISABLE_LIGHT_COLOR "#E9E9E9"
#define DISABLE_RECT_LIGHT_COLOR "#B3B3B3"
#define ENABLE_RECT_LIGHT_COLOR "#FFFFFF"
class SwitchButton : public QWidget
{
Q_OBJECT
public:
SwitchButton(QWidget *parent = 0);
~SwitchButton();
void setChecked(bool checked);
void setAnimation(bool on);
bool isChecked();
void setDisabledFlag(bool);
bool getDisabledFlag();
protected:
void mousePressEvent(QMouseEvent *);
void resizeEvent(QResizeEvent *);
void paintEvent(QPaintEvent *);
void enterEvent(QEvent *event);
void leaveEvent(QEvent *event);
void drawBg(QPainter * painter);
void drawSlider(QPainter * painter);
void changeColor(const QString &themes);
private:
bool checked; //切换的判断
bool disabled;
void animation(QPainter *painter);
QRect rect;
bool isMoving; //滑块动作判断
bool isAnimation; // 是否允许动画执行
QColor bgColorOff;
QColor bgColorOn;
QColor bgHoverOnColor;
QColor bgHoverOffColor;
QColor bgColorDisabled;
QColor sliderColorEnabled;
QColor sliderColorDisabled;
QColor rectColorEnabled;
QColor rectColorDisabled;
QColor sliderColorOff;
QColor sliderColorOn;
QGSettings *m_qtThemeSetting;
QGSettings *m_gtkThemeSetting;
int space; //滑块离背景间隔
int rectRadius; //圆角角度
int mStep; //移动步长
int mStartX;
int mEndX;
bool hover;
QTimer * mTimer;
private Q_SLOTS:
void updatevalue();
Q_SIGNALS:
void checkedChanged(bool checked);
};
#endif // SWITCHBUTTON_H

46
audio/titlelabel.cpp Normal file
View File

@ -0,0 +1,46 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
*
* 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 2 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, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#include "titlelabel.h"
#include <QFont>
#include <QGSettings>
#include <QVariant>
#include <QDebug>
TitleLabel::TitleLabel(QWidget *parent):
QLabel(parent)
{
/*初始化字体*/
// QFont font;
// QGSettings *m_fontSetting = new QGSettings("org.ukui.style");
// font.setFamily(m_fontSetting->get("systemFont").toString());
// font.setPixelSize(m_fontSetting->get("systemFontSize").toInt() * 18 / 11); //设置的是pt按照公式计算为px,标题默认字为18px
// font.setWeight(QFont::Medium);
// this->setFont(font);
this ->setContentsMargins(16,0,0,0);
// delete m_fontSetting;
// m_fontSetting = nullptr;
}
TitleLabel::~TitleLabel()
{
}

34
audio/titlelabel.h Normal file
View File

@ -0,0 +1,34 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
*
* 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 2 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, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#ifndef TITLE_LABEL_H
#define TITLE_LABEL_H
#include <QLabel>
class TitleLabel : public QLabel
{
Q_OBJECT
public:
TitleLabel(QWidget *parent = nullptr);
~TitleLabel();
};
#endif // TITLE_LABEL_H

15
audio/translate_generation.sh Executable file
View File

@ -0,0 +1,15 @@
#!/bin/bash
ts_list=(`ls translations/*.ts`)
source /etc/os-release
version=(`echo $ID`)
for ts in "${ts_list[@]}"
do
printf "\nprocess ${ts}\n"
if [ "$version" == "fedora" ] || [ "$version" == "opensuse-leap" ] || [ "$version" == "opensuse-tumbleweed" ];then
lrelease-qt5 "${ts}"
else
lrelease "${ts}"
fi
done

406
audio/translations/bo.ts Normal file
View File

@ -0,0 +1,406 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
<context>
<name>Audio</name>
<message>
<location filename="../audio.ui" line="26"/>
<location filename="../audio.cpp" line="38"/>
<source>Audio</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../audio.cpp" line="93"/>
<source>UkccPlugin</source>
<translation type="unfinished"></translation>
<extra-contents_path>/UkccPlugin/UkccPlugin</extra-contents_path>
</message>
<message>
<location filename="../audio.cpp" line="95"/>
<source>ukccplugin test</source>
<translation type="unfinished"></translation>
<extra-contents_path>/UkccPlugin/ukccplugin test</extra-contents_path>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../ukmedia_volume_control.cpp" line="217"/>
<location filename="../ukmedia_volume_control.cpp" line="1562"/>
<location filename="../ukmedia_volume_control.cpp" line="1638"/>
<source>pa_context_get_server_info() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1206"/>
<source>Card callback failure</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1224"/>
<location filename="../ukmedia_volume_control.cpp" line="1267"/>
<source>Sink callback failure</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1250"/>
<location filename="../ukmedia_volume_control.cpp" line="1289"/>
<source>Source callback failure</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1310"/>
<location filename="../ukmedia_volume_control.cpp" line="1792"/>
<source>Sink input callback failure</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1329"/>
<source>Source output callback failure</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1377"/>
<source>Client callback failure</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1393"/>
<source>Server info callback failure</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1430"/>
<source>Failed to initialize stream_restore extension: %s</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1447"/>
<source>pa_ext_stream_restore_read() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1464"/>
<source>Failed to initialize device manager extension: %s</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1483"/>
<source>pa_ext_device_manager_read() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1500"/>
<source>pa_context_get_sink_info_by_index() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1513"/>
<source>pa_context_get_source_info_by_index() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1526"/>
<location filename="../ukmedia_volume_control.cpp" line="1539"/>
<source>pa_context_get_sink_input_info() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1552"/>
<source>pa_context_get_client_info() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1589"/>
<source>pa_context_get_card_info_by_index() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1629"/>
<source>pa_context_subscribe() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1645"/>
<source>pa_context_client_info_list() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1652"/>
<source>pa_context_get_card_info_list() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1659"/>
<source>pa_context_get_sink_info_list() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1666"/>
<source>pa_context_get_source_info_list() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1673"/>
<source>pa_context_get_sink_input_info_list() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1680"/>
<source>pa_context_get_source_output_info_list() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1696"/>
<source>Connection failed, attempting reconnect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1716"/>
<source>Ukui Media Volume Control</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UkmediaInputWidget</name>
<message>
<location filename="../ukmedia_input_widget.cpp" line="48"/>
<source>Input</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Input</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_input_widget.cpp" line="53"/>
<source>Input Device</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Input Device</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_input_widget.cpp" line="56"/>
<source>Volume</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Volume</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_input_widget.cpp" line="61"/>
<source>Input Level</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Input Level</extra-contents_path>
</message>
</context>
<context>
<name>UkmediaMainWidget</name>
<message>
<location filename="../ukmedia_main_widget.cpp" line="2441"/>
<location filename="../ukmedia_main_widget.cpp" line="2630"/>
<location filename="../ukmedia_main_widget.cpp" line="2716"/>
<location filename="../ukmedia_main_widget.cpp" line="2725"/>
<source>None</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UkmediaOutputWidget</name>
<message>
<location filename="../ukmedia_output_widget.cpp" line="68"/>
<source>Output</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Output</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_output_widget.cpp" line="72"/>
<source>Output Device</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Output Device</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_output_widget.cpp" line="75"/>
<source>Master Volume</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Master Volume</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_output_widget.cpp" line="80"/>
<source>Balance</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Balance</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_output_widget.cpp" line="81"/>
<source>Left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_output_widget.cpp" line="83"/>
<source>Right</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UkmediaSoundEffectsWidget</name>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="52"/>
<source>System Sound</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="55"/>
<source>Sound Theme</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Sound Theme</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="58"/>
<source>Alert Sound</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Alert Sound</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="61"/>
<source>Beep Switch</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Beep Switch</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="63"/>
<source>Poweroff Music</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Poweroff Music</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="65"/>
<source>Startup Music</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Startup Music</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="67"/>
<source>Wakeup Music</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Wakeup Music</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="69"/>
<source>Volume Change</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Volume Change</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="71"/>
<source>Logout Music</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Logout Music</extra-contents_path>
</message>
</context>
<context>
<name>UkmediaVolumeControl</name>
<message>
<location filename="../ukmedia_volume_control.cpp" line="71"/>
<location filename="../ukmedia_volume_control.cpp" line="96"/>
<location filename="../ukmedia_volume_control.cpp" line="100"/>
<location filename="../ukmedia_volume_control.cpp" line="114"/>
<location filename="../ukmedia_volume_control.cpp" line="140"/>
<location filename="../ukmedia_volume_control.cpp" line="166"/>
<location filename="../ukmedia_volume_control.cpp" line="247"/>
<location filename="../ukmedia_volume_control.cpp" line="251"/>
<location filename="../ukmedia_volume_control.cpp" line="263"/>
<source>pa_context_set_sink_volume_by_index() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="135"/>
<source>pa_context_set_source_mute_by_index() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="280"/>
<location filename="../ukmedia_volume_control.cpp" line="284"/>
<source>pa_context_set_source_output_volume() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="296"/>
<source>pa_context_set_source_output_mute() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="308"/>
<source>pa_context_set_card_profile_by_index() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="322"/>
<source>pa_context_set_default_sink() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="336"/>
<location filename="../ukmedia_volume_control.cpp" line="348"/>
<location filename="../ukmedia_volume_control.cpp" line="905"/>
<source>pa_context_set_default_source() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="340"/>
<source>pa_context_get_source_info_by_name() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="369"/>
<source>pa_context_set_sink_port_by_name() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="383"/>
<source>pa_context_set_source_port_by_name() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="412"/>
<source> (plugged in)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="416"/>
<location filename="../ukmedia_volume_control.cpp" line="551"/>
<source> (unavailable)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="418"/>
<location filename="../ukmedia_volume_control.cpp" line="548"/>
<source> (unplugged)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="679"/>
<source>Failed to read data from stream</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="728"/>
<source>Peak detect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="729"/>
<source>Failed to create monitoring stream</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="744"/>
<source>Failed to connect monitoring stream</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="863"/>
<source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1172"/>
<source>Establishing connection to PulseAudio. Please wait...</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

406
audio/translations/tr.ts Normal file
View File

@ -0,0 +1,406 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
<context>
<name>Audio</name>
<message>
<location filename="../audio.ui" line="26"/>
<location filename="../audio.cpp" line="38"/>
<source>Audio</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../audio.cpp" line="93"/>
<source>UkccPlugin</source>
<translation type="unfinished"></translation>
<extra-contents_path>/UkccPlugin/UkccPlugin</extra-contents_path>
</message>
<message>
<location filename="../audio.cpp" line="95"/>
<source>ukccplugin test</source>
<translation type="unfinished"></translation>
<extra-contents_path>/UkccPlugin/ukccplugin test</extra-contents_path>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../ukmedia_volume_control.cpp" line="217"/>
<location filename="../ukmedia_volume_control.cpp" line="1562"/>
<location filename="../ukmedia_volume_control.cpp" line="1638"/>
<source>pa_context_get_server_info() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1206"/>
<source>Card callback failure</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1224"/>
<location filename="../ukmedia_volume_control.cpp" line="1267"/>
<source>Sink callback failure</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1250"/>
<location filename="../ukmedia_volume_control.cpp" line="1289"/>
<source>Source callback failure</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1310"/>
<location filename="../ukmedia_volume_control.cpp" line="1792"/>
<source>Sink input callback failure</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1329"/>
<source>Source output callback failure</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1377"/>
<source>Client callback failure</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1393"/>
<source>Server info callback failure</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1430"/>
<source>Failed to initialize stream_restore extension: %s</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1447"/>
<source>pa_ext_stream_restore_read() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1464"/>
<source>Failed to initialize device manager extension: %s</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1483"/>
<source>pa_ext_device_manager_read() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1500"/>
<source>pa_context_get_sink_info_by_index() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1513"/>
<source>pa_context_get_source_info_by_index() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1526"/>
<location filename="../ukmedia_volume_control.cpp" line="1539"/>
<source>pa_context_get_sink_input_info() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1552"/>
<source>pa_context_get_client_info() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1589"/>
<source>pa_context_get_card_info_by_index() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1629"/>
<source>pa_context_subscribe() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1645"/>
<source>pa_context_client_info_list() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1652"/>
<source>pa_context_get_card_info_list() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1659"/>
<source>pa_context_get_sink_info_list() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1666"/>
<source>pa_context_get_source_info_list() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1673"/>
<source>pa_context_get_sink_input_info_list() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1680"/>
<source>pa_context_get_source_output_info_list() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1696"/>
<source>Connection failed, attempting reconnect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1716"/>
<source>Ukui Media Volume Control</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UkmediaInputWidget</name>
<message>
<location filename="../ukmedia_input_widget.cpp" line="48"/>
<source>Input</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Input</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_input_widget.cpp" line="53"/>
<source>Input Device</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Input Device</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_input_widget.cpp" line="56"/>
<source>Volume</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Volume</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_input_widget.cpp" line="61"/>
<source>Input Level</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Input Level</extra-contents_path>
</message>
</context>
<context>
<name>UkmediaMainWidget</name>
<message>
<location filename="../ukmedia_main_widget.cpp" line="2441"/>
<location filename="../ukmedia_main_widget.cpp" line="2630"/>
<location filename="../ukmedia_main_widget.cpp" line="2716"/>
<location filename="../ukmedia_main_widget.cpp" line="2725"/>
<source>None</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UkmediaOutputWidget</name>
<message>
<location filename="../ukmedia_output_widget.cpp" line="68"/>
<source>Output</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Output</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_output_widget.cpp" line="72"/>
<source>Output Device</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Output Device</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_output_widget.cpp" line="75"/>
<source>Master Volume</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Master Volume</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_output_widget.cpp" line="80"/>
<source>Balance</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Balance</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_output_widget.cpp" line="81"/>
<source>Left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_output_widget.cpp" line="83"/>
<source>Right</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UkmediaSoundEffectsWidget</name>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="52"/>
<source>System Sound</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="55"/>
<source>Sound Theme</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Sound Theme</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="58"/>
<source>Alert Sound</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Alert Sound</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="61"/>
<source>Beep Switch</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Beep Switch</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="63"/>
<source>Poweroff Music</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Poweroff Music</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="65"/>
<source>Startup Music</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Startup Music</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="67"/>
<source>Wakeup Music</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Wakeup Music</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="69"/>
<source>Volume Change</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Volume Change</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="71"/>
<source>Logout Music</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Audio/Logout Music</extra-contents_path>
</message>
</context>
<context>
<name>UkmediaVolumeControl</name>
<message>
<location filename="../ukmedia_volume_control.cpp" line="71"/>
<location filename="../ukmedia_volume_control.cpp" line="96"/>
<location filename="../ukmedia_volume_control.cpp" line="100"/>
<location filename="../ukmedia_volume_control.cpp" line="114"/>
<location filename="../ukmedia_volume_control.cpp" line="140"/>
<location filename="../ukmedia_volume_control.cpp" line="166"/>
<location filename="../ukmedia_volume_control.cpp" line="247"/>
<location filename="../ukmedia_volume_control.cpp" line="251"/>
<location filename="../ukmedia_volume_control.cpp" line="263"/>
<source>pa_context_set_sink_volume_by_index() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="135"/>
<source>pa_context_set_source_mute_by_index() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="280"/>
<location filename="../ukmedia_volume_control.cpp" line="284"/>
<source>pa_context_set_source_output_volume() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="296"/>
<source>pa_context_set_source_output_mute() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="308"/>
<source>pa_context_set_card_profile_by_index() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="322"/>
<source>pa_context_set_default_sink() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="336"/>
<location filename="../ukmedia_volume_control.cpp" line="348"/>
<location filename="../ukmedia_volume_control.cpp" line="905"/>
<source>pa_context_set_default_source() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="340"/>
<source>pa_context_get_source_info_by_name() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="369"/>
<source>pa_context_set_sink_port_by_name() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="383"/>
<source>pa_context_set_source_port_by_name() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="412"/>
<source> (plugged in)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="416"/>
<location filename="../ukmedia_volume_control.cpp" line="551"/>
<source> (unavailable)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="418"/>
<location filename="../ukmedia_volume_control.cpp" line="548"/>
<source> (unplugged)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="679"/>
<source>Failed to read data from stream</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="728"/>
<source>Peak detect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="729"/>
<source>Failed to create monitoring stream</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="744"/>
<source>Failed to connect monitoring stream</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="863"/>
<source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1172"/>
<source>Establishing connection to PulseAudio. Please wait...</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

406
audio/translations/zh_CN.ts Normal file
View File

@ -0,0 +1,406 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="zh_CN">
<context>
<name>Audio</name>
<message>
<location filename="../audio.ui" line="26"/>
<location filename="../audio.cpp" line="38"/>
<source>Audio</source>
<translation></translation>
</message>
<message>
<location filename="../audio.cpp" line="93"/>
<source>UkccPlugin</source>
<translation type="unfinished"></translation>
<extra-contents_path>/UkccPlugin/UkccPlugin</extra-contents_path>
</message>
<message>
<location filename="../audio.cpp" line="95"/>
<source>ukccplugin test</source>
<translation type="unfinished"></translation>
<extra-contents_path>/UkccPlugin/ukccplugin test</extra-contents_path>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../ukmedia_volume_control.cpp" line="217"/>
<location filename="../ukmedia_volume_control.cpp" line="1562"/>
<location filename="../ukmedia_volume_control.cpp" line="1638"/>
<source>pa_context_get_server_info() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1206"/>
<source>Card callback failure</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1224"/>
<location filename="../ukmedia_volume_control.cpp" line="1267"/>
<source>Sink callback failure</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1250"/>
<location filename="../ukmedia_volume_control.cpp" line="1289"/>
<source>Source callback failure</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1310"/>
<location filename="../ukmedia_volume_control.cpp" line="1792"/>
<source>Sink input callback failure</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1329"/>
<source>Source output callback failure</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1377"/>
<source>Client callback failure</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1393"/>
<source>Server info callback failure</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1430"/>
<source>Failed to initialize stream_restore extension: %s</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1447"/>
<source>pa_ext_stream_restore_read() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1464"/>
<source>Failed to initialize device manager extension: %s</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1483"/>
<source>pa_ext_device_manager_read() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1500"/>
<source>pa_context_get_sink_info_by_index() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1513"/>
<source>pa_context_get_source_info_by_index() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1526"/>
<location filename="../ukmedia_volume_control.cpp" line="1539"/>
<source>pa_context_get_sink_input_info() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1552"/>
<source>pa_context_get_client_info() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1589"/>
<source>pa_context_get_card_info_by_index() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1629"/>
<source>pa_context_subscribe() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1645"/>
<source>pa_context_client_info_list() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1652"/>
<source>pa_context_get_card_info_list() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1659"/>
<source>pa_context_get_sink_info_list() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1666"/>
<source>pa_context_get_source_info_list() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1673"/>
<source>pa_context_get_sink_input_info_list() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1680"/>
<source>pa_context_get_source_output_info_list() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1696"/>
<source>Connection failed, attempting reconnect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1716"/>
<source>Ukui Media Volume Control</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UkmediaInputWidget</name>
<message>
<location filename="../ukmedia_input_widget.cpp" line="48"/>
<source>Input</source>
<translation></translation>
<extra-contents_path>/Audio/Input</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_input_widget.cpp" line="53"/>
<source>Input Device</source>
<translation></translation>
<extra-contents_path>/Audio/Input Device</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_input_widget.cpp" line="56"/>
<source>Volume</source>
<translation></translation>
<extra-contents_path>/Audio/Volume</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_input_widget.cpp" line="61"/>
<source>Input Level</source>
<translation></translation>
<extra-contents_path>/Audio/Input Level</extra-contents_path>
</message>
</context>
<context>
<name>UkmediaMainWidget</name>
<message>
<location filename="../ukmedia_main_widget.cpp" line="2441"/>
<location filename="../ukmedia_main_widget.cpp" line="2630"/>
<location filename="../ukmedia_main_widget.cpp" line="2716"/>
<location filename="../ukmedia_main_widget.cpp" line="2725"/>
<source>None</source>
<translation></translation>
</message>
</context>
<context>
<name>UkmediaOutputWidget</name>
<message>
<location filename="../ukmedia_output_widget.cpp" line="68"/>
<source>Output</source>
<translation></translation>
<extra-contents_path>/Audio/Output</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_output_widget.cpp" line="72"/>
<source>Output Device</source>
<translation></translation>
<extra-contents_path>/Audio/Output Device</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_output_widget.cpp" line="75"/>
<source>Master Volume</source>
<translation></translation>
<extra-contents_path>/Audio/Master Volume</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_output_widget.cpp" line="80"/>
<source>Balance</source>
<translation></translation>
<extra-contents_path>/Audio/Balance</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_output_widget.cpp" line="81"/>
<source>Left</source>
<translation></translation>
</message>
<message>
<location filename="../ukmedia_output_widget.cpp" line="83"/>
<source>Right</source>
<translation></translation>
</message>
</context>
<context>
<name>UkmediaSoundEffectsWidget</name>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="52"/>
<source>System Sound</source>
<translation></translation>
</message>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="55"/>
<source>Sound Theme</source>
<translation></translation>
<extra-contents_path>/Audio/Sound Theme</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="58"/>
<source>Alert Sound</source>
<translation></translation>
<extra-contents_path>/Audio/Alert Sound</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="61"/>
<source>Beep Switch</source>
<translation></translation>
<extra-contents_path>/Audio/Beep Switch</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="63"/>
<source>Poweroff Music</source>
<translation></translation>
<extra-contents_path>/Audio/Poweroff Music</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="65"/>
<source>Startup Music</source>
<translation></translation>
<extra-contents_path>/Audio/Startup Music</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="67"/>
<source>Wakeup Music</source>
<translation></translation>
<extra-contents_path>/Audio/Wakeup Music</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="69"/>
<source>Volume Change</source>
<translation></translation>
<extra-contents_path>/Audio/Volume Change</extra-contents_path>
</message>
<message>
<location filename="../ukmedia_sound_effects_widget.cpp" line="71"/>
<source>Logout Music</source>
<translation></translation>
<extra-contents_path>/Audio/Logout Music</extra-contents_path>
</message>
</context>
<context>
<name>UkmediaVolumeControl</name>
<message>
<location filename="../ukmedia_volume_control.cpp" line="71"/>
<location filename="../ukmedia_volume_control.cpp" line="96"/>
<location filename="../ukmedia_volume_control.cpp" line="100"/>
<location filename="../ukmedia_volume_control.cpp" line="114"/>
<location filename="../ukmedia_volume_control.cpp" line="140"/>
<location filename="../ukmedia_volume_control.cpp" line="166"/>
<location filename="../ukmedia_volume_control.cpp" line="247"/>
<location filename="../ukmedia_volume_control.cpp" line="251"/>
<location filename="../ukmedia_volume_control.cpp" line="263"/>
<source>pa_context_set_sink_volume_by_index() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="135"/>
<source>pa_context_set_source_mute_by_index() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="280"/>
<location filename="../ukmedia_volume_control.cpp" line="284"/>
<source>pa_context_set_source_output_volume() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="296"/>
<source>pa_context_set_source_output_mute() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="308"/>
<source>pa_context_set_card_profile_by_index() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="322"/>
<source>pa_context_set_default_sink() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="336"/>
<location filename="../ukmedia_volume_control.cpp" line="348"/>
<location filename="../ukmedia_volume_control.cpp" line="905"/>
<source>pa_context_set_default_source() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="340"/>
<source>pa_context_get_source_info_by_name() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="369"/>
<source>pa_context_set_sink_port_by_name() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="383"/>
<source>pa_context_set_source_port_by_name() failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="412"/>
<source> (plugged in)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="416"/>
<location filename="../ukmedia_volume_control.cpp" line="551"/>
<source> (unavailable)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="418"/>
<location filename="../ukmedia_volume_control.cpp" line="548"/>
<source> (unplugged)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="679"/>
<source>Failed to read data from stream</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="728"/>
<source>Peak detect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="729"/>
<source>Failed to create monitoring stream</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="744"/>
<source>Failed to connect monitoring stream</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="863"/>
<source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ukmedia_volume_control.cpp" line="1172"/>
<source>Establishing connection to PulseAudio. Please wait...</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View File

@ -0,0 +1,155 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
*
* 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 2 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, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#include "ukmedia_input_widget.h"
#include <QDebug>
#include <QFile>
#include <QApplication>
UkmediaInputWidget::UkmediaInputWidget(QWidget *parent) : QWidget(parent)
{
m_pInputWidget = new QFrame(this);
m_pVolumeWidget = new QFrame(m_pInputWidget);
m_pInputLevelWidget = new QFrame(m_pInputWidget);
m_pInputSlectWidget = new QFrame(m_pInputWidget);
m_pInputWidget->setFrameShape(QFrame::Shape::Box);
m_pVolumeWidget->setFrameShape(QFrame::Shape::Box);
m_pInputLevelWidget->setFrameShape(QFrame::Shape::Box);
m_pInputSlectWidget->setFrameShape(QFrame::Shape::Box);
//设置大小
m_pInputWidget->setMinimumSize(550,183);
m_pInputWidget->setMaximumSize(16777215,183);
m_pVolumeWidget->setMinimumSize(550,60);
m_pVolumeWidget->setMaximumSize(16777215,60);
m_pInputLevelWidget->setMinimumSize(550,60);
m_pInputLevelWidget->setMaximumSize(16777215,60);
m_pInputSlectWidget->setMinimumSize(550,60);
m_pInputSlectWidget->setMaximumSize(16777215,60);
m_pInputLabel = new TitleLabel(this);
//~ contents_path /Audio/Input
m_pInputLabel->setText(tr("Input"));
m_pInputLabel->setStyleSheet("color: palette(windowText);}");
//~ contents_path /Audio/Input Device
m_pInputDeviceLabel = new QLabel(tr("Input Device"),m_pInputSlectWidget);
m_pInputDeviceSelectBox = new QComboBox(m_pInputSlectWidget);
//~ contents_path /Audio/Volume
m_pIpVolumeLabel = new QLabel(tr("Volume"),m_pVolumeWidget);
m_pInputIconBtn = new UkuiButtonDrawSvg(m_pVolumeWidget);
m_pIpVolumeSlider = new AudioSlider();
m_pIpVolumePercentLabel = new QLabel(m_pVolumeWidget);
//~ contents_path /Audio/Input Level
m_pInputLevelLabel = new QLabel(tr("Input Level"),m_pInputLevelWidget);
m_pInputLevelProgressBar = new QProgressBar(m_pInputLevelWidget);
m_pInputLevelProgressBar->setStyle(new CustomStyle);
m_pInputLevelProgressBar->setTextVisible(false);
m_pIpVolumeSlider->setOrientation(Qt::Horizontal);
m_pIpVolumeSlider->setRange(0,100);
m_pInputIconBtn->setFocusPolicy(Qt::NoFocus);
//输入设备添加布局
m_pInputDeviceLabel->setFixedSize(120,40);
m_pInputDeviceSelectBox->setFixedHeight(40);
QHBoxLayout *inputdeviceSlectLayout = new QHBoxLayout();
inputdeviceSlectLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
inputdeviceSlectLayout->addWidget(m_pInputDeviceLabel);
inputdeviceSlectLayout->addItem(new QSpacerItem(113,20,QSizePolicy::Fixed));
inputdeviceSlectLayout->addWidget(m_pInputDeviceSelectBox);
inputdeviceSlectLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
inputdeviceSlectLayout->setSpacing(0);
m_pInputSlectWidget->setLayout(inputdeviceSlectLayout);
m_pInputSlectWidget->layout()->setContentsMargins(0,0,0,0);
//主音量添加布局
QHBoxLayout *m_pMasterLayout = new QHBoxLayout(m_pVolumeWidget);
m_pIpVolumeLabel->setFixedSize(110,40);
m_pInputIconBtn->setFixedSize(24,24);
m_pIpVolumeSlider->setFixedHeight(55);
m_pIpVolumePercentLabel->setFixedSize(55,20);
m_pIpVolumePercentLabel->setAlignment(Qt::AlignCenter);
m_pMasterLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
m_pMasterLayout->addWidget(m_pIpVolumeLabel);
m_pMasterLayout->addItem(new QSpacerItem(123,20,QSizePolicy::Fixed));
m_pMasterLayout->addWidget(m_pInputIconBtn);
m_pMasterLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
m_pMasterLayout->addWidget(m_pIpVolumeSlider);
m_pMasterLayout->addItem(new QSpacerItem(13,20,QSizePolicy::Maximum));
m_pMasterLayout->addWidget(m_pIpVolumePercentLabel);
m_pMasterLayout->addItem(new QSpacerItem(10,20,QSizePolicy::Maximum));
m_pMasterLayout->setSpacing(0);
m_pVolumeWidget->setLayout(m_pMasterLayout);
m_pVolumeWidget->layout()->setContentsMargins(0,0,0,0);
//输入反馈添加布局
QHBoxLayout *m_pSoundLayout = new QHBoxLayout(m_pInputLevelWidget);
m_pInputLevelLabel->setFixedSize(110,40);
m_pSoundLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
m_pSoundLayout->addWidget(m_pInputLevelLabel);
m_pSoundLayout->addItem(new QSpacerItem(123,20,QSizePolicy::Fixed));
m_pSoundLayout->addWidget(m_pInputLevelProgressBar);
m_pSoundLayout->addItem(new QSpacerItem(5,20,QSizePolicy::Fixed));
m_pSoundLayout->setSpacing(0);
m_pInputLevelWidget->setLayout(m_pSoundLayout);
m_pInputLevelWidget->layout()->setContentsMargins(0,0,0,0);
QFrame *inputselectAndVolume = myLine();
QFrame *volumeAndInputLevel = myLine();
//进行整体布局
m_pVlayout = new QVBoxLayout(m_pInputWidget);
m_pVlayout->addWidget(m_pInputSlectWidget);
m_pVlayout->addWidget(inputselectAndVolume);
m_pVlayout->addWidget(m_pVolumeWidget);
m_pVlayout->addWidget(volumeAndInputLevel);
m_pVlayout->addWidget(m_pInputLevelWidget);
m_pVlayout->setSpacing(0);
m_pInputWidget->setLayout(m_pVlayout);
m_pInputWidget->layout()->setContentsMargins(0,0,0,0);
QVBoxLayout *m_pVlayout1 = new QVBoxLayout(this);
m_pVlayout1->addWidget(m_pInputLabel);
m_pVlayout1->addItem(new QSpacerItem(16,4,QSizePolicy::Fixed));
m_pVlayout1->addWidget(m_pInputWidget);
this->setLayout(m_pVlayout1);
this->layout()->setContentsMargins(0,0,0,0);
}
QFrame* UkmediaInputWidget::myLine()
{
QFrame *line = new QFrame(this);
line->setMinimumSize(QSize(0, 1));
line->setMaximumSize(QSize(16777215, 1));
line->setLineWidth(0);
line->setFrameShape(QFrame::HLine);
line->setFrameShadow(QFrame::Sunken);
return line;
}
UkmediaInputWidget::~UkmediaInputWidget()
{
}

View File

@ -0,0 +1,67 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
*
* 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 2 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, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#ifndef UKMEDIAINPUTWIDGET_H
#define UKMEDIAINPUTWIDGET_H
#include <QWidget>
#include <QLabel>
#include <QComboBox>
#include <QPushButton>
#include "ukmedia_output_widget.h"
#include <QStyledItemDelegate>
#include <QFrame>
#include <QProgressBar>
#include <QListWidget>
#include "ukui_custom_style.h"
class UkmediaInputWidget : public QWidget
{
Q_OBJECT
public:
explicit UkmediaInputWidget(QWidget *parent = nullptr);
~UkmediaInputWidget();
friend class UkmediaMainWidget;
Q_SIGNALS:
private:
QFrame* myLine();
QFrame *m_pInputWidget;
QFrame *m_pVolumeWidget;
QFrame *m_pInputLevelWidget;
TitleLabel *m_pInputLabel;
QLabel *m_pInputDeviceLabel;
QLabel *m_pIpVolumeLabel;
QLabel *m_pInputLevelLabel;
QLabel *m_pIpVolumePercentLabel;
UkuiButtonDrawSvg *m_pInputIconBtn;
AudioSlider *m_pIpVolumeSlider;
QProgressBar *m_pInputLevelProgressBar;
QString sliderQss;
QVBoxLayout *m_pVlayout;
QComboBox *m_pInputDeviceSelectBox;
QFrame *m_pInputSlectWidget;
};
#endif // UKMEDIAINPUTWIDGET_H

File diff suppressed because it is too large Load Diff

299
audio/ukmedia_main_widget.h Normal file
View File

@ -0,0 +1,299 @@

/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
*
* 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 2 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, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include "ukmedia_volume_control.h"
#include "ukmedia_output_widget.h"
#include "ukmedia_input_widget.h"
#include "ukmedia_sound_effects_widget.h"
#include "ukui_list_widget_item.h"
#include <QMediaPlayer>
#include <gio/gio.h>
#include <libxml/tree.h>
#include <glib-object.h>
#include <glib.h>
#include <glib/gi18n.h>
#include <gobject/gparamspecs.h>
#include <glib/gstdio.h>
extern "C" {
#include <dconf/dconf.h>
#include <canberra.h>
#include <glib/gmain.h>
#include <pulse/ext-stream-restore.h>
#include <pulse/glib-mainloop.h>
#include <pulse/error.h>
#include <pulse/subscribe.h>
#include <pulse/introspect.h>
}
#include <utime.h>
#include <a.out.h>
#include <QScreen>
#include <QApplication>
#include <QDomDocument>
#include <QGSettings>
#include <QAudioInput>
#include <set>
#define UKUI_THEME_SETTING "org.ukui.style"
#define UKUI_THEME_NAME "style-name"
#define UKUI_THEME_WHITE "ukui-white"
#define UKUI_THEME_BLACK "ukui-black"
#define UKUI_INPUT_REAR_MIC "analog-input-rear-mic" //后置麦克风
#define UKUI_INPUT_FRONT_MIC "analog-input-front-mic" //前置麦克风
#define UKUI_OUTPUT_HEADPH "analog-output-headphones" //模拟耳机
#define KEYBINDINGS_CUSTOM_SCHEMA "org.ukui.media.sound"
#define KEYBINDINGS_CUSTOM_DIR "/org/ukui/sound/keybindings/"
#define MAX_CUSTOM_SHORTCUTS 1000
#define FILENAME_KEY "filename"
#define NAME_KEY "name"
#define KEY_SOUNDS_SCHEMA "org.ukui.sound"
#define UKUI_SWITCH_SETTING "org.ukui.session"
#define UKUI_STARTUP_MUSIC_KEY "startup-music"
#define UKUI_POWEROFF_MUSIC_KEY "poweroff-music"
#define UKUI_LOGOUT_MUSIC_KEY "logout-music"
#define UKUI_WAKEUP_MUSIC_KEY "weakup-music"
#define EVENT_SOUNDS_KEY "event-sounds"
#define INPUT_SOUNDS_KEY "input-feedback-sounds"
#define SOUND_THEME_KEY "theme-name"
#define DEFAULT_ALERT_ID "__default"
#define CUSTOM_THEME_NAME "__custom"
#define NO_SOUNDS_THEME_NAME "__no_sounds"
#define PA_VOLUME_NORMAL 65536.0
#define UKMEDIA_VOLUME_NORMAL 100.0
#ifdef __GNUC__
#define CA_CLAMP(x, low, high) \
__extension__ ({ typeof(x) _x = (x); \
typeof(low) _low = (low); \
typeof(high) _high = (high); \
((_x > _high) ? _high : ((_x < _low) ? _low : _x)); \
})
#else
#define CA_CLAMP(x, low, high) (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x)))
#endif
typedef enum
{
GVC_LEVEL_SCALE_LINEAR,
GVC_LEVEL_SCALE_LOG
} LevelScale;
class UkmediaMainWidget : public QWidget
{
Q_OBJECT
public:
UkmediaMainWidget(QWidget *parent = nullptr);
~UkmediaMainWidget();
void initWidget(); //初始化界面
void initGsettings(); //初始化gsetting值
void dealSlot(); //处理槽函数
int valueToPaVolume(int value); //滑动条值转换成音量
int paVolumeToValue(int value); //音量值转换成滑动条值
void themeChangeIcons();
static int connectContext(gpointer userdata);
static int caProplistMergeAp(ca_proplist *p, va_list ap);
static int caPlayForWidget(UkmediaMainWidget *w, uint32_t id, ...);
static int caProplistSetForWidget(ca_proplist *p, UkmediaMainWidget *widget);
QPixmap drawDarkColoredPixmap(const QPixmap &source);
QPixmap drawLightColoredPixmap(const QPixmap &source);
void inputVolumeDarkThemeImage(int value,bool status);
void outputVolumeDarkThemeImage(int value,bool status);
int getInputVolume();
int getOutputVolume();
void comboboxCurrentTextInit();
QList<char *> listExistsPath();
QString findFreePath();
void addValue(QString name,QString filename);
static void onKeyChanged (GSettings *settings,gchar *key,UkmediaMainWidget *w);
static void updateTheme (UkmediaMainWidget *w);
static void setupThemeSelector (UkmediaMainWidget *w);
static void soundThemeInDir (UkmediaMainWidget *w,GHashTable *hash,const char *dir);
static char *loadIndexThemeName (const char *index,char **parent);
static void setComboxForThemeName (UkmediaMainWidget *w,const char *name);
static void updateAlertsFromThemeName (UkmediaMainWidget *w,const gchar *name);
static void updateAlert (UkmediaMainWidget *w,const char *alert_id);
static int getFileType (const char *sound_name,char **linked_name);
static char *customThemeDirPath (const char *child);
static void populateModelFromDir (UkmediaMainWidget *w,const char *dirname);
static void populateModelFromFile (UkmediaMainWidget *w,const char *filename);
static void populateModelFromNode (UkmediaMainWidget *w,xmlNodePtr node);
static xmlChar *xmlGetAndTrimNames (xmlNodePtr node);
static void playAlretSoundFromPath (UkmediaMainWidget *w,QString path);
static gboolean saveAlertSounds (QComboBox *combox,const char *id);
static void deleteOldFiles (const char **sounds);
static void deleteOneFile (const char *sound_name, const char *pattern);
static void deleteDisabledFiles (const char **sounds);
static void addCustomFile (const char **sounds, const char *filename);
static gboolean cappletFileDeleteRecursive (GFile *file, GError **error);
static gboolean directoryDeleteRecursive (GFile *directory, GError **error);
static void createCustomTheme (const char *parent);
static void customThemeUpdateTime (void);
static gboolean customThemeDirIsEmpty (void);
//TEST输出
void initOutputComboboxItem();//初始化输出的Combobox选项框
void initInputComboboxItem();//初始化输入的Combobox选项框
void findOutputComboboxItem(QString cardName,QString portLabel); //初始化Combobox output/input list widget的选项
void addComboboxAvailableOutputPort();
void addComboboxOutputListWidgetItem(QString portName, QString cardName);
void deleteNotAvailableComboboxOutputPort();//删除不可用的端口
int indexOfOutputPortInOutputCombobox(QString portName);
bool comboboxOutputPortIsNeedAdd(int index,QString name);//port是否需要在Combobox list中添加
bool comboboxOutputPortIsNeedDelete(int index,QString name);//port是否需要在Combobox list删除
void findInputComboboxItem(QString cardName,QString portLabel); //初始化Combobox output/input list widget的选项
void addComboboxAvailableInputPort();
void addComboboxInputListWidgetItem(QString portName, QString cardName); //添加input listwidget item
void deleteNotAvailableComboboxInputPort();
int indexOfInputPortInInputCombobox(QString portName);//获取输入combobox当前的选项框的index
bool comboboxInputPortIsNeedAdd(int index,QString name);//port是否需要在Combobox list中添加
bool comboboxInputPortIsNeedDelete(int index,QString name);//port是否需要在Combobox list删除
int findCardIndex(QString cardName, QMap<int,QString> cardMap);//查找声卡指定的索引
QString findCardName(int index,QMap<int,QString> cardMap);
QString findHighPriorityProfile(int index,QString profile);
QString findPortSink(int cardIndex,QString portName);
QString findPortSource(int cardIndex,QString portName);
bool inputComboboxDeviceContainBluetooth();
QString blueCardNameInCombobox();//记录蓝牙声卡名称
void inputStreamMapCardName(QString streamName,QString cardName);
void outputStreamMapCardName(QString streamName,QString cardName);
QString findInputStreamCardName(QString streamName);
QString findOutputStreamCardName(QString streamName);
bool exitBluetoochDevice();
QString findOutputPortName(int index,QString portLabel); //找到outputPortLabel对应的portName
QString findInputPortName(int index,QString portLabel); //找到inputPortLabel对应的portName
QString findOutputPortLabel(int index,QString portName); //查找名为portName对应的portLabel
QString findInputPortLabel(int index,QString portName); //查找名为portName对应的portLabel
void setCardProfile(QString name,QString profile); //设置声卡的配置文件
void setDefaultOutputPortDevice(QString devName,QString portName); //设置默认的输出端口
void setDefaultInputPortDevice(QString devName,QString portName); //设置默认的输入端口
QString findCardActiveProfile(int index); //查找声卡的active profile
private Q_SLOTS:
void initVoulmeSlider(); //初始化音量滑动条的值
void themeComboxIndexChangedSlot(int index); //主题下拉框改变
void comboxIndexChangedSlot(int index);
void outputWidgetSliderChangedSlot(int v); //输出音量改变
void inputWidgetSliderChangedSlot(int v); //输入滑动条更改
void inputMuteButtonSlot(); //输入音量静音控制
void outputMuteButtonSlot(); //输出音量静音控制
void balanceSliderChangedSlot(int v); //平衡值改变
void peakVolumeChangedSlot(double v); //输入等级
void updateCboxDevicePort(); //更新combobox设备端口
void updateComboboxListWidgetItemSlot();
void timeSliderSlot();
void ukuiThemeChangedSlot(const QString &);
void startupButtonSwitchChangedSlot(bool status); //开机音乐开关
void poweroffButtonSwitchChangedSlot(bool status); //关机音乐开关
void logoutMusicButtonSwitchChangedSlot(bool status); //注销音乐开关
void wakeButtonSwitchChangedSlot(bool status); //唤醒音乐开关
void alertSoundButtonSwitchChangedSlot(bool status);
void bootMusicSettingsChanged();
void windowClosedComboboxChangedSlot(int index);
void volumeChangedComboboxChangeSlot(int index);
void settingMenuComboboxChangedSlot(int index);
void cboxoutputListWidgetCurrentRowChangedSlot(int row);//combobox output list widget选项改变
void cboxinputListWidgetCurrentRowChangedSlot(int row);//combobox input list widget选项改变
private:
UkmediaInputWidget *m_pInputWidget;
UkmediaOutputWidget *m_pOutputWidget;
UkmediaSoundEffectsWidget *m_pSoundWidget;
UkmediaVolumeControl *m_pVolumeControl;
QStringList *m_pSoundList;
QStringList *m_pThemeDisplayNameList;
QStringList *m_pThemeNameList;
QStringList *m_pSoundThemeList;
QStringList *m_pSoundThemeDirList;
QStringList *m_pSoundThemeXmlNameList;
QStringList *m_pSoundNameList;
QStringList *eventList;
QStringList *eventIdNameList;
GSettings *m_pSoundSettings;
QGSettings *m_pBootSetting;
QGSettings *m_pThemeSetting;
// QGSettings *m_pWindowClosedSetting;
QString mThemeName;
bool m_hasMusic;
bool firstEnterSystem = true;
const gchar* m_privOutputPortLabel = "";
int callBackCount = 0;
bool firstEntry = true;
bool cboxfirstEntry = true;
QMap<int, QString> currentOutputPortLabelMap;
QMap<int, QString> currentInputPortLabelMap;
QMap<QString,QString> inputCardStreamMap;
QMap<QString,QString> outputCardStreamMap;
QMap<int, QString> currentCboxOutputPortLabelMap;
QMap<int, QString> currentCboxInputPortLabelMap;
bool updatePort = true;
bool setDefaultstream = true;
int reconnectTime;
QTimer *time;
QTimer *timeSlider;
bool mousePress = false;
bool mouseReleaseState = false;
QTimer *timeSliderBlance;
bool mousePressBlance = false;
bool mouseReleaseStateBlance = false;
};
#endif // WIDGET_H

View File

@ -0,0 +1,190 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
*
* 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 2 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, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#include "ukmedia_output_widget.h"
#include "ukui_list_widget_item.h"
#include <QHBoxLayout>
#include <QDebug>
AudioSlider::AudioSlider(QWidget *parent)
{
Q_UNUSED(parent);
}
AudioSlider::~AudioSlider()
{
}
UkmediaOutputWidget::UkmediaOutputWidget(QWidget *parent) : QWidget(parent)
{
//加载qss样式文件
QFile QssFile("://combox.qss");
QssFile.open(QFile::ReadOnly);
if (QssFile.isOpen()){
sliderQss = QLatin1String(QssFile.readAll());
QssFile.close();
} else {
qDebug()<<"combox.qss is not found"<<endl;
}
m_pOutputWidget = new QFrame(this);
m_pMasterVolumeWidget = new QFrame(m_pOutputWidget);
m_pChannelBalanceWidget = new QFrame(m_pOutputWidget);
m_pOutputSlectWidget = new QFrame(m_pOutputWidget);
m_pOutputWidget->setFrameShape(QFrame::Shape::Box);
m_pMasterVolumeWidget->setFrameShape(QFrame::Shape::Box);
m_pChannelBalanceWidget->setFrameShape(QFrame::Shape::Box);
m_pOutputSlectWidget->setFrameShape(QFrame::Shape::Box);
//设置大小
m_pOutputWidget->setMinimumSize(550,0);
m_pOutputWidget->setMaximumSize(16777215,180);
m_pMasterVolumeWidget->setMinimumSize(550,60);
m_pMasterVolumeWidget->setMaximumSize(16777215,60);
m_pChannelBalanceWidget->setMinimumSize(550,60);
m_pChannelBalanceWidget->setMaximumSize(16777215,60);
m_pOutputSlectWidget->setMinimumSize(550,60);
m_pOutputSlectWidget->setMaximumSize(16777215,60);
m_pOutputLabel = new TitleLabel(this);
//~ contents_path /Audio/Output
m_pOutputLabel->setText(tr("Output"));
m_pOutputLabel->setStyleSheet("QLabel{color: palette(windowText);}");
//~ contents_path /Audio/Output Device
m_pOutputDeviceLabel = new QLabel(tr("Output Device"),m_pOutputSlectWidget);
m_pDeviceSelectBox = new QComboBox(m_pOutputSlectWidget);
//~ contents_path /Audio/Master Volume
m_pOpVolumeLabel = new QLabel(tr("Master Volume"),m_pMasterVolumeWidget);
m_pOutputIconBtn = new UkuiButtonDrawSvg(m_pMasterVolumeWidget);
m_pOpVolumeSlider = new AudioSlider(m_pMasterVolumeWidget);
m_pOpVolumePercentLabel = new QLabel(m_pMasterVolumeWidget);
//~ contents_path /Audio/Balance
m_pOpBalanceLabel = new QLabel(tr("Balance"),m_pChannelBalanceWidget);
m_pLeftBalanceLabel = new QLabel(tr("Left"),m_pChannelBalanceWidget);
m_pOpBalanceSlider = new UkmediaVolumeSlider(m_pChannelBalanceWidget,true);
m_pRightBalanceLabel = new QLabel(tr("Right"),m_pChannelBalanceWidget);
m_pOpVolumeSlider->setOrientation(Qt::Horizontal);
m_pOpBalanceSlider->setOrientation(Qt::Horizontal);
m_pOpVolumeSlider->setRange(0,100);
m_pOutputIconBtn->setFocusPolicy(Qt::NoFocus);
//选择输出设备框添加布局
m_pOutputDeviceLabel->setFixedSize(140,20);
m_pDeviceSelectBox->setFixedHeight(40);
QHBoxLayout *deviceSlectLayout = new QHBoxLayout();
deviceSlectLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
deviceSlectLayout->addWidget(m_pOutputDeviceLabel);
deviceSlectLayout->addItem(new QSpacerItem(93,20,QSizePolicy::Fixed));
deviceSlectLayout->addWidget(m_pDeviceSelectBox);
deviceSlectLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
deviceSlectLayout->setSpacing(0);
m_pOutputSlectWidget->setLayout(deviceSlectLayout);
m_pOutputSlectWidget->layout()->setContentsMargins(0,0,0,0);
//主音量添加布局
QHBoxLayout *masterLayout = new QHBoxLayout(m_pMasterVolumeWidget);
m_pOpVolumeLabel->setFixedSize(140,20);
m_pOutputIconBtn->setFixedSize(24,24);
m_pOpVolumeSlider->setFixedHeight(55);
m_pOpVolumePercentLabel->setFixedSize(55,20);
m_pOpVolumePercentLabel->setAlignment(Qt::AlignCenter);
masterLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
masterLayout->addWidget(m_pOpVolumeLabel);
masterLayout->addItem(new QSpacerItem(93,20,QSizePolicy::Fixed));
masterLayout->addWidget(m_pOutputIconBtn);
masterLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
masterLayout->addWidget(m_pOpVolumeSlider);
masterLayout->addItem(new QSpacerItem(14,20,QSizePolicy::Fixed));
masterLayout->addWidget(m_pOpVolumePercentLabel);
masterLayout->addItem(new QSpacerItem(10,20,QSizePolicy::Fixed));
masterLayout->setSpacing(0);
m_pMasterVolumeWidget->setLayout(masterLayout);
m_pMasterVolumeWidget->layout()->setContentsMargins(0,0,0,0);
//声道平衡添加布局
QHBoxLayout *soundLayout = new QHBoxLayout(m_pChannelBalanceWidget);
m_pOpBalanceLabel->setFixedSize(110,20);
m_pLeftBalanceLabel->setFixedSize(40,30);
m_pOpBalanceSlider->setFixedHeight(55);
m_pRightBalanceLabel->setFixedSize(55,30);
m_pRightBalanceLabel->setAlignment(Qt::AlignCenter);
soundLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
soundLayout->addWidget(m_pOpBalanceLabel);
soundLayout->addItem(new QSpacerItem(123,20,QSizePolicy::Fixed));
soundLayout->addWidget(m_pLeftBalanceLabel);
// soundLayout->addItem(new QSpacerItem(26,20,QSizePolicy::Fixed));
soundLayout->addWidget(m_pOpBalanceSlider);
soundLayout->addItem(new QSpacerItem(14,20,QSizePolicy::Fixed));
soundLayout->addWidget(m_pRightBalanceLabel);
soundLayout->addItem(new QSpacerItem(10,20,QSizePolicy::Fixed));
soundLayout->setSpacing(0);
m_pChannelBalanceWidget->setLayout(soundLayout);
m_pChannelBalanceWidget->layout()->setContentsMargins(0,0,0,0);
QFrame *outputselectAndVolume = myLine();
QFrame *volumeAndBalance = myLine();
//进行整体布局
m_pVlayout = new QVBoxLayout(m_pOutputWidget);
m_pVlayout->setContentsMargins(0,0,0,0);
m_pVlayout->addWidget(m_pOutputSlectWidget);
m_pVlayout->addWidget(outputselectAndVolume);
m_pVlayout->addWidget(m_pMasterVolumeWidget);
m_pVlayout->addWidget(volumeAndBalance);
m_pVlayout->addWidget(m_pChannelBalanceWidget);
m_pVlayout->setSpacing(0);
// m_pOutputWidget->setLayout(m_pVlayout);
// m_pOutputWidget->layout()->setContentsMargins(0,0,0,0);
QVBoxLayout *vLayout1 = new QVBoxLayout(this);
vLayout1->addWidget(m_pOutputLabel);
vLayout1->addItem(new QSpacerItem(16,4,QSizePolicy::Fixed));
vLayout1->addWidget(m_pOutputWidget);
this->setLayout(vLayout1);
this->layout()->setContentsMargins(0,0,0,0);
m_pMasterVolumeWidget->setObjectName("masterVolumeWidget");
//设置样式
m_pOutputLabel->setObjectName("m_pOutputLabel");
}
QFrame* UkmediaOutputWidget::myLine()
{
QFrame *line = new QFrame(this);
line->setMinimumSize(QSize(0, 1));
line->setMaximumSize(QSize(16777215, 1));
line->setLineWidth(0);
line->setFrameShape(QFrame::HLine);
line->setFrameShadow(QFrame::Sunken);
return line;
}
UkmediaOutputWidget::~UkmediaOutputWidget()
{
}

View File

@ -0,0 +1,136 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
*
* 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 2 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, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#ifndef UKMEDIAOUTPUTWIDGET_H
#define UKMEDIAOUTPUTWIDGET_H
#include <QWidget>
#include <QLabel>
#include <QComboBox>
#include <QSlider>
#include <QEvent>
#include <QMouseEvent>
#include <QPushButton>
#include <QCoreApplication>
#include <QVBoxLayout>
#include "ukui_custom_style.h"
#include "ukui_list_widget_item.h"
#include "customstyle.h"
#include <QListWidget>
#include <QComboBox>
class AudioSlider : public QSlider
{
Q_OBJECT
public:
AudioSlider(QWidget *parent = nullptr);
~AudioSlider();
friend class UkmediaInputWidget;
Q_SIGNALS:
void silderPressSignal();
void silderReleaseSignal();
protected:
void mousePressEvent(QMouseEvent *ev)
{
//注意应先调用父类的鼠标点击处理事件,这样可以不影响拖动的情况
//获取鼠标的位置这里并不能直接从ev中取值因为如果是拖动的话鼠标开始点击的位置没有意义了
int value = 0;
int currentX = ev->pos().x();
double per = currentX * 1.0 / this->width();
if ((this->maximum() - this->minimum()) >= 50) { //减小鼠标点击像素的影响
value = qRound(per*(this->maximum() - this->minimum())) + this->minimum();
if (value <= (this->maximum() / 2 - this->maximum() / 10 + this->minimum() / 10)) {
value = qRound(per*(this->maximum() - this->minimum() - 1)) + this->minimum();
} else if (value > (this->maximum() / 2 + this->maximum() / 10 + this->minimum() / 10)) {
value = qRound(per*(this->maximum() - this->minimum() + 1)) + this->minimum();
} else {
value = qRound(per*(this->maximum() - this->minimum())) + this->minimum();
}
} else {
value = qRound(per*(this->maximum() - this->minimum())) + this->minimum();
}
this->setValue(value);
QSlider::mousePressEvent(ev);
//向父窗口发送自定义事件event type这样就可以在父窗口中捕获这个事件进行处理
QEvent evEvent(static_cast<QEvent::Type>(QEvent::User + 1));
QCoreApplication::sendEvent(parentWidget(), &evEvent);
}
void mouseReleaseEvent(QMouseEvent *ev)
{
if(mousePress){
Q_EMIT silderReleaseSignal();
}
mousePress = false;
mouseClickFlag = true;
QSlider::mouseReleaseEvent(ev);
}
void wheelEvent(QWheelEvent* ev)
{
if(mouseClickFlag)
QSlider::wheelEvent(ev);
}
void leaveEvent(QEvent *ev)
{
mouseClickFlag = false;
QSlider::leaveEvent(ev);
}
private:
bool mousePress = false;
bool mouseClickFlag = false;
};
class UkmediaOutputWidget : public QWidget
{
Q_OBJECT
public:
explicit UkmediaOutputWidget(QWidget *parent = nullptr);
~UkmediaOutputWidget();
friend class UkmediaMainWidget;
Q_SIGNALS:
public Q_SLOTS:
private:
QFrame* myLine();
QFrame *m_pOutputWidget;
QFrame *m_pMasterVolumeWidget;
QFrame *m_pChannelBalanceWidget;
TitleLabel *m_pOutputLabel;
QLabel *m_pOutputDeviceLabel;
QLabel *m_pOpVolumeLabel;
QLabel *m_pOpVolumePercentLabel;
QLabel *m_pOpBalanceLabel;
QLabel *m_pLeftBalanceLabel;
QLabel *m_pRightBalanceLabel;
QComboBox *m_pDeviceSelectBox;
QFrame *m_pOutputSlectWidget;
UkuiButtonDrawSvg *m_pOutputIconBtn;
AudioSlider *m_pOpVolumeSlider;
UkmediaVolumeSlider *m_pOpBalanceSlider;
QVBoxLayout *m_pVlayout;
QString sliderQss;
};
#endif // UKMEDIAOUTPUTWIDGET_H

View File

@ -0,0 +1,168 @@
/*
* Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
*
* 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, 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/&gt;.
*
*/
#include "ukmedia_slider_tip_label_helper.h"
#include <QWidget>
#include <QMouseEvent>
#include <QApplication>
#include <QStyleOption>
#include <QStyle>
#include <QDebug>
#include <QPainter>
#include <QPainterPath>
#include <QStylePainter>
#include <QMouseEvent>
#include <QCoreApplication>
#include "ukui_custom_style.h"
MediaSliderTipLabel::MediaSliderTipLabel(){
setAttribute(Qt::WA_TranslucentBackground);
}
MediaSliderTipLabel::~MediaSliderTipLabel(){
}
void MediaSliderTipLabel::paintEvent(QPaintEvent *e)
{
QStyleOptionFrame opt;
initStyleOption(&opt);
QStylePainter p(this);
// p.setBrush(QBrush(QColor(0x1A,0x1A,0x1A,0x4C)));
p.setBrush(QBrush(QColor(0xFF,0xFF,0xFF,0x33)));
p.setPen(Qt::NoPen);
p.drawRoundedRect(this->rect(), 1, 1);
QPainterPath path;
path.addRoundedRect(opt.rect,6,6);
p.setRenderHint(QPainter::Antialiasing);
setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon()));
p.drawPrimitive(QStyle::PE_PanelTipLabel, opt);
this->setProperty("blurRegion", QRegion(QRect(0, 0, 1, 1)));
QLabel::paintEvent(e);
}
SliderTipLabelHelper::SliderTipLabelHelper(QObject *parent) :QObject(parent)
{
m_pTiplabel = new MediaSliderTipLabel();
m_pTiplabel->setWindowFlags(Qt::ToolTip);
qApp->installEventFilter(new AppEventFilter(this));
m_pTiplabel->setFixedSize(52,30);
m_pTiplabel->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
}
void SliderTipLabelHelper::registerWidget(QWidget *w)
{
w->removeEventFilter(this);
w->installEventFilter(this);
}
void SliderTipLabelHelper::unregisterWidget(QWidget *w)
{
w->removeEventFilter(this);
}
bool SliderTipLabelHelper::eventFilter(QObject *obj, QEvent *e)
{
auto slider = qobject_cast<UkmediaVolumeSlider *>(obj);
if (obj == slider) {
switch (e->type()) {
case QEvent::MouseMove: {
QMouseEvent *event = static_cast<QMouseEvent*>(e);
mouseMoveEvent(obj, event);
return false;
}
case QEvent::MouseButtonRelease: {
QMouseEvent *event = static_cast<QMouseEvent*>(e);
mouseReleaseEvent(obj, event);
return false;
}
case QEvent::MouseButtonPress:{
QMouseEvent *event = static_cast<QMouseEvent*>(e);
mousePressedEvent(obj,event);
}
default:
return false;
}
}
return QObject::eventFilter(obj,e);
}
void SliderTipLabelHelper::mouseMoveEvent(QObject *obj, QMouseEvent *e)
{
Q_UNUSED(e);
QRect rect;
QStyleOptionSlider m_option;
auto slider = qobject_cast<UkmediaVolumeSlider *>(obj);
slider->initStyleOption(&m_option);
rect = slider->style()->subControlRect(QStyle::CC_Slider, &m_option,QStyle::SC_SliderHandle,slider);
QPoint gPos = slider->mapToGlobal(rect.topLeft());
QString percent;
percent = QString::number(slider->value());
percent.append("%");
m_pTiplabel->setText(percent);
m_pTiplabel->move(gPos.x()-(m_pTiplabel->width()/2)+9,gPos.y()-m_pTiplabel->height()-1);
m_pTiplabel->show();
}
void SliderTipLabelHelper::mouseReleaseEvent(QObject *obj, QMouseEvent *e)
{
Q_UNUSED(obj);
Q_UNUSED(e);
m_pTiplabel->hide();
}
void SliderTipLabelHelper::mousePressedEvent(QObject *obj, QMouseEvent *e)
{
Q_UNUSED(e);
QStyleOptionSlider m_option;
auto slider = qobject_cast<UkmediaVolumeSlider *>(obj);
QRect rect;
//获取鼠标的位置这里并不能直接从ev中取值因为如果是拖动的话鼠标开始点击的位置没有意义了
double pos = e->pos().x() / (double)slider->width();
slider->setValue(pos *(slider->maximum() - slider->minimum()) + slider->minimum());
//向父窗口发送自定义事件event type这样就可以在父窗口中捕获这个事件进行处理
QEvent evEvent(static_cast<QEvent::Type>(QEvent::User + 1));
QCoreApplication::sendEvent(obj, &evEvent);
int value = pos *(slider->maximum() - slider->minimum()) + slider->minimum();
slider->initStyleOption(&m_option);
rect = slider->style()->subControlRect(QStyle::CC_Slider, &m_option,QStyle::SC_SliderHandle,slider);
QPoint gPos = slider->mapToGlobal(rect.topLeft());
QString percent;
percent = QString::number(slider->value());//(m_option.sliderValue);
percent.append("%");
m_pTiplabel->setText(percent);
m_pTiplabel->move(gPos.x()-(m_pTiplabel->width()/2)+9,gPos.y()-m_pTiplabel->height()-1);
m_pTiplabel->show();
}
// AppEventFilter
AppEventFilter::AppEventFilter(SliderTipLabelHelper *parent) : QObject(parent)
{
m_wm = parent;
}
bool AppEventFilter::eventFilter(QObject *obj, QEvent *e)
{
Q_UNUSED(obj);
Q_UNUSED(e);
return false;
}

View File

@ -0,0 +1,65 @@
/*
* Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
*
* 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, 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/&gt;.
*
*/
#ifndef SLIDERTIPLABELHELPER_H
#define SLIDERTIPLABELHELPER_H
#include <QObject>
#include <QLabel>
#include "ukui_custom_style.h"
class MediaSliderTipLabel:public QLabel
{
public:
MediaSliderTipLabel();
~MediaSliderTipLabel();
protected:
void paintEvent(QPaintEvent*);
};
class SliderTipLabelHelper : public QObject
{
Q_OBJECT
friend class AppEventFilter;
public:
SliderTipLabelHelper(QObject *parent = nullptr);
~SliderTipLabelHelper() {}
void registerWidget(QWidget *w);
void unregisterWidget(QWidget *w);
bool eventFilter(QObject *obj, QEvent *e);
void mouseMoveEvent(QObject *obj, QMouseEvent *e);
void mouseReleaseEvent(QObject *obj, QMouseEvent *e);
void mousePressedEvent(QObject *obj,QMouseEvent *e);
private:
MediaSliderTipLabel *m_pTiplabel;
};
class AppEventFilter : public QObject
{
friend class SliderTipLabelHelper;
Q_OBJECT
private:
explicit AppEventFilter(SliderTipLabelHelper *parent);
~AppEventFilter() {}
bool eventFilter(QObject *obj, QEvent *e);
SliderTipLabelHelper *m_wm = nullptr;
};
#endif // SLIDERTIPLABELHELPER_H

View File

@ -0,0 +1,282 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
*
* 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 2 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, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#include "ukmedia_sound_effects_widget.h"
#include <QHBoxLayout>
#include <QFile>
#include <QVBoxLayout>
#include <QDebug>
UkuiMessageBox::UkuiMessageBox()
{
}
UkmediaSoundEffectsWidget::UkmediaSoundEffectsWidget(QWidget *parent) : QWidget(parent)
{
m_pSystemSoundWidget = new QFrame(this);
m_pStartupMusicWidget = new QFrame(m_pSystemSoundWidget);
m_pPoweroffMusicWidget = new QFrame(m_pSystemSoundWidget);
m_pLagoutWidget = new QFrame(m_pSystemSoundWidget);
m_pWakeupMusicWidget = new QFrame(m_pSystemSoundWidget);
m_pAlertSoundFrame = new QFrame(this);
m_pAlertSoundSwitchWidget = new QFrame(m_pAlertSoundFrame);
m_pThemeWidget = new QFrame(m_pAlertSoundSwitchWidget);
m_pAlertSoundWidget = new QFrame(m_pAlertSoundSwitchWidget);
m_pVolumeChangeWidget = new QFrame(m_pAlertSoundSwitchWidget);
m_pSystemSoundWidget->setFrameShape(QFrame::Shape::Box);
m_pStartupMusicWidget->setFrameShape(QFrame::Shape::Box);
m_pPoweroffMusicWidget->setFrameShape(QFrame::Shape::Box);
m_pLagoutWidget->setFrameShape(QFrame::Shape::Box);
m_pWakeupMusicWidget->setFrameShape(QFrame::Shape::Box);
m_pAlertSoundFrame->setFrameShape(QFrame::Shape::Box);
m_pAlertSoundSwitchWidget->setFrameShape(QFrame::Shape::Box);
m_pThemeWidget->setFrameShape(QFrame::Shape::Box);
m_pAlertSoundWidget->setFrameShape(QFrame::Shape::Box);
m_pVolumeChangeWidget->setFrameShape(QFrame::Shape::Box);
//~ contents_path /Audio/System Sound 系统音效文本框
m_pSoundEffectLabel = new TitleLabel(this);
m_pSoundEffectLabel->setText(tr("System Sound"));
m_pSoundEffectLabel->setStyleSheet("QLabel{color: palette(windowText);}");
//~ contents_path /Audio/Sound Theme
m_pSoundThemeLabel = new QLabel(tr("Sound Theme"),m_pThemeWidget);//提示音下的系统音效主题
m_pSoundThemeCombobox = new QComboBox(m_pThemeWidget);
//~ contents_path /Audio/Alert Sound
m_pShutdownlabel = new QLabel(tr("Alert Sound"),m_pAlertSoundWidget);//提示音下的通知提示
m_pAlertSoundCombobox = new QComboBox(m_pAlertSoundWidget);
//~ contents_path /Audio/Beep Switch
m_pAlertSoundSwitchLabel = new QLabel(tr("Beep Switch"),m_pAlertSoundSwitchWidget);//提示音
//~ contents_path /Audio/Poweroff Music
m_pPoweroffMusicLabel = new QLabel(tr("Poweroff Music"),m_pPoweroffMusicWidget);//关机
//~ contents_path /Audio/Startup Music
m_pStartupMusicLabel = new QLabel(tr("Startup Music"),m_pStartupMusicWidget);//开机
//~ contents_path /Audio/Wakeup Music
m_pWakeupMusicLabel = new QLabel(tr("Wakeup Music"),m_pWakeupMusicWidget);//唤醒
//~ contents_path /Audio/Volume Change
m_pVolumeChangeLabel = new QLabel(tr("Volume Change"),m_pVolumeChangeWidget);//音量调节
//~ contents_path /Audio/Logout Music
m_pLagoutLabel = new QLabel(tr("Logout Music"),m_pLagoutWidget);//注销
m_pLagoutCombobox = new QComboBox(m_pLagoutWidget);
m_pStartupButton = new SwitchButton(m_pStartupMusicWidget);
m_pLogoutButton = new SwitchButton(m_pLagoutWidget);
m_pWakeupMusicButton = new SwitchButton(m_pWakeupMusicWidget);
m_pPoweroffButton = new SwitchButton(m_pPoweroffMusicWidget);
m_pVolumeChangeCombobox = new QComboBox(m_pVolumeChangeWidget);
m_pAlertSoundSwitchButton = new SwitchButton(m_pAlertSoundSwitchWidget);
//设置大小
m_pSystemSoundWidget->setMinimumSize(550,0);
m_pSystemSoundWidget->setMaximumSize(16777215,240);
m_pStartupMusicWidget->setMinimumSize(550,60);
m_pStartupMusicWidget->setMaximumSize(16777215,60);
m_pPoweroffMusicWidget->setMinimumSize(550,60);
m_pPoweroffMusicWidget->setMaximumSize(16777215,60);
m_pLagoutWidget->setMinimumSize(550,60);
m_pLagoutWidget->setMaximumSize(16777215,60);
m_pWakeupMusicWidget->setMinimumSize(550,60);
m_pWakeupMusicWidget->setMaximumSize(16777215,60);
m_pAlertSoundWidget->setMinimumSize(550,0);
m_pAlertSoundWidget->setMaximumSize(16777215,240);
m_pAlertSoundSwitchWidget->setMinimumSize(550,60);
m_pAlertSoundSwitchWidget->setMaximumSize(16777215,60);
m_pThemeWidget->setMinimumSize(550,60);
m_pThemeWidget->setMaximumSize(16777215,60);
m_pAlertSoundWidget->setMinimumSize(550,60);
m_pAlertSoundWidget->setMaximumSize(16777215,60);
m_pVolumeChangeWidget->setMinimumSize(550,60);
m_pVolumeChangeWidget->setMaximumSize(16777215,60);
m_pSoundEffectLabel->setFixedSize(150,32);
m_pSoundThemeLabel->setFixedSize(150,40);
m_pShutdownlabel->setFixedSize(120,40);
// m_pLagoutLabel->setFixedSize(150,32);
// m_pWakeupMusicLabel->setFixedSize(150,32);
m_pVolumeChangeLabel->setFixedSize(150,40);
m_pPoweroffMusicLabel->setFixedSize(150,32);
// m_pSoundThemeCombobox->setMinimumSize(50,32);
// m_pSoundThemeCombobox->setMaximumSize(900,32);
// m_pAlertSoundCombobox->setMinimumSize(50,32);
// m_pAlertSoundCombobox->setMaximumSize(900,32);
// m_pLagoutCombobox->setMinimumSize(50,32);
// m_pLagoutCombobox->setMaximumSize(900,32);
// m_pVolumeChangeCombobox->setMinimumSize(50,32);
// m_pVolumeChangeCombobox->setMaximumSize(900,32);
m_pSoundThemeCombobox->setFixedHeight(40);
m_pAlertSoundCombobox->setFixedHeight(40);
m_pVolumeChangeCombobox->setFixedHeight(40);
//添加布局
QHBoxLayout *themeLayout = new QHBoxLayout(m_pThemeWidget);
themeLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
themeLayout->addWidget(m_pSoundThemeLabel);
themeLayout->addItem(new QSpacerItem(83,20,QSizePolicy::Fixed));
themeLayout->addWidget(m_pSoundThemeCombobox);
themeLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
themeLayout->setSpacing(0);
m_pThemeWidget->setLayout(themeLayout);
m_pThemeWidget->layout()->setContentsMargins(0,0,0,0);
QHBoxLayout *AlertLayout = new QHBoxLayout(m_pAlertSoundWidget);
AlertLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
AlertLayout->addWidget(m_pShutdownlabel);
AlertLayout->addItem(new QSpacerItem(113,20,QSizePolicy::Fixed));
AlertLayout->addWidget(m_pAlertSoundCombobox);
AlertLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
AlertLayout->setSpacing(0);
m_pAlertSoundWidget->setLayout(AlertLayout);
m_pAlertSoundWidget->layout()->setContentsMargins(0,0,0,0);
//开机音乐设置开关
QHBoxLayout *startupLayout = new QHBoxLayout(m_pStartupMusicWidget);
startupLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
startupLayout->addWidget(m_pStartupMusicLabel);
startupLayout->addWidget(m_pStartupButton);
startupLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
startupLayout->setSpacing(0);
m_pStartupMusicWidget->setLayout(startupLayout);
m_pStartupMusicWidget->layout()->setContentsMargins(0,0,0,0);
//注销提示音布局
QHBoxLayout *lagoutLayout = new QHBoxLayout(m_pLagoutWidget);
lagoutLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
lagoutLayout->addWidget(m_pLagoutLabel);
// lagoutLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Expanding));
lagoutLayout->addWidget(m_pLogoutButton);
lagoutLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
lagoutLayout->setSpacing(0);
m_pLagoutWidget->setLayout(lagoutLayout);
m_pLagoutWidget->layout()->setContentsMargins(0,0,0,0);
m_pLagoutCombobox->setVisible(false);
//提示音开关布局
QHBoxLayout *alertSoundLayout = new QHBoxLayout(m_pAlertSoundSwitchWidget);
alertSoundLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
alertSoundLayout->addWidget(m_pAlertSoundSwitchLabel);
alertSoundLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Expanding));
alertSoundLayout->addWidget(m_pAlertSoundSwitchButton);
alertSoundLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
alertSoundLayout->setSpacing(0);
m_pAlertSoundSwitchWidget->setLayout(alertSoundLayout);
m_pAlertSoundSwitchWidget->layout()->setContentsMargins(0,0,0,0);
//窗口关闭提示音
QHBoxLayout *wakeupMusicLayout = new QHBoxLayout(m_pWakeupMusicWidget);
wakeupMusicLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
wakeupMusicLayout->addWidget(m_pWakeupMusicLabel);
// wakeupMusicLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
wakeupMusicLayout->addWidget(m_pWakeupMusicButton);
wakeupMusicLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
wakeupMusicLayout->setSpacing(0);
m_pWakeupMusicWidget->setLayout(wakeupMusicLayout);
m_pWakeupMusicWidget->layout()->setContentsMargins(0,0,0,0);
//音量改变提示音
QHBoxLayout *volumeChangedLayout = new QHBoxLayout(m_pVolumeChangeWidget);
volumeChangedLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
volumeChangedLayout->addWidget(m_pVolumeChangeLabel);
volumeChangedLayout->addItem(new QSpacerItem(83,20,QSizePolicy::Fixed));
volumeChangedLayout->addWidget(m_pVolumeChangeCombobox);
volumeChangedLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
volumeChangedLayout->setSpacing(0);
m_pVolumeChangeWidget->setLayout(volumeChangedLayout);
m_pVolumeChangeWidget->layout()->setContentsMargins(0,0,0,0);
//关机提示音
QHBoxLayout *poweroffLayout = new QHBoxLayout(m_pPoweroffMusicWidget);
poweroffLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
poweroffLayout->addWidget(m_pPoweroffMusicLabel);
poweroffLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Expanding));
poweroffLayout->addWidget(m_pPoweroffButton);
poweroffLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed));
poweroffLayout->setSpacing(0);
m_pPoweroffMusicWidget->setLayout(poweroffLayout);
m_pPoweroffMusicWidget->layout()->setContentsMargins(0,0,0,0);
QFrame *startupAndPoweroff = myLine();
QFrame *poweroffAndLagout = myLine();
QFrame *lagoutAndWakeup = myLine();
line1 = myLine();
line2 = myLine();
line3 = myLine();
QVBoxLayout *systemSoundLayout = new QVBoxLayout(m_pSystemSoundWidget);
systemSoundLayout->setContentsMargins(0,0,0,0);
systemSoundLayout->addWidget(m_pStartupMusicWidget);
systemSoundLayout->addWidget(startupAndPoweroff);
systemSoundLayout->addWidget(m_pPoweroffMusicWidget);
systemSoundLayout->addWidget(poweroffAndLagout);
systemSoundLayout->addWidget(m_pLagoutWidget);
systemSoundLayout->addWidget(lagoutAndWakeup);
systemSoundLayout->addWidget(m_pWakeupMusicWidget);
systemSoundLayout->setSpacing(0);
m_pSystemSoundWidget->setLayout(systemSoundLayout);
QVBoxLayout *SoundLayout = new QVBoxLayout(m_pAlertSoundFrame);
SoundLayout->setContentsMargins(0,0,0,0);
SoundLayout->addWidget(m_pAlertSoundSwitchWidget);
SoundLayout->addWidget(line1);
SoundLayout->addWidget(m_pThemeWidget);
SoundLayout->addWidget(line2);
SoundLayout->addWidget(m_pVolumeChangeWidget);
SoundLayout->addWidget(line3);
SoundLayout->addWidget(m_pAlertSoundWidget);
SoundLayout->setSpacing(0);
m_pAlertSoundFrame->setLayout(SoundLayout);
//进行整体布局
m_pSoundLayout = new QVBoxLayout(this);
m_pSoundLayout->addWidget(m_pSoundEffectLabel);
m_pSoundLayout->addItem(new QSpacerItem(16,4,QSizePolicy::Fixed));
m_pSoundLayout->addWidget(m_pSystemSoundWidget);
m_pSoundLayout->addItem(new QSpacerItem(16,8,QSizePolicy::Fixed));
m_pSoundLayout->addWidget(m_pAlertSoundFrame);
// m_pAlertSoundWidget->hide();
// m_pVolumeChangeWidget->hide();
// m_pThemeWidget->hide();
this->setLayout(m_pSoundLayout);
m_pSoundLayout->setSpacing(0);
this->layout()->setContentsMargins(0,0,0,0);
}
QFrame* UkmediaSoundEffectsWidget::myLine()
{
QFrame *line = new QFrame(this);
line->setMinimumSize(QSize(0, 1));
line->setMaximumSize(QSize(16777215, 1));
line->setLineWidth(0);
line->setFrameShape(QFrame::HLine);
line->setFrameShadow(QFrame::Sunken);
return line;
}
UkmediaSoundEffectsWidget::~UkmediaSoundEffectsWidget()
{
}

View File

@ -0,0 +1,95 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
*
* 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 2 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, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#ifndef UKMEDIASOUNDEFFECTSWIDGET_H
#define UKMEDIASOUNDEFFECTSWIDGET_H
#include <QWidget>
#include <QComboBox>
#include <QLabel>
#include <QMessageBox>
#include <QHBoxLayout>
#include <QStyledItemDelegate>
#include "ukui_custom_style.h"
#include "switchbutton.h"
class UkuiMessageBox : public QMessageBox
{
public:
explicit UkuiMessageBox();
};
class UkmediaSoundEffectsWidget : public QWidget
{
Q_OBJECT
public:
explicit UkmediaSoundEffectsWidget(QWidget *parent = nullptr);
~UkmediaSoundEffectsWidget();
friend class UkmediaMainWidget;
Q_SIGNALS:
public Q_SLOTS:
private:
QFrame *myLine();
QFrame *m_pSystemSoundWidget;//存放注销、唤醒、开机、关机提示音的窗口
QFrame *m_pLagoutWidget;//注销提示音窗口
QFrame *m_pWakeupMusicWidget;//唤醒音乐窗口
QFrame *m_pStartupMusicWidget;//设置开机音乐窗口
QFrame *m_pPoweroffMusicWidget;//关机提示音
QFrame *m_pAlertSoundFrame;//存放注销、唤醒、开机、关机提示音的窗口
QFrame *m_pAlertSoundSwitchWidget;//提示音开关窗口
QFrame *m_pThemeWidget;//提示音下的系统音效主题
QFrame *m_pAlertSoundWidget;//提示音下的通知提示
QFrame *m_pVolumeChangeWidget;//提示音下的音量调节
QFrame *line1;
QFrame *line2;
QFrame *line3;
QString qss;
QStyledItemDelegate *itemDelegate;
TitleLabel *m_pSoundEffectLabel;
QLabel *m_pSoundThemeLabel;
QLabel *m_pShutdownlabel;
QLabel *m_pLagoutLabel;
QLabel *m_pAlertSoundSwitchLabel;
// QLabel *m_pAlertSoundLabel;
// QLabel *m_pAlertVolumeLabel;
QLabel *m_pWakeupMusicLabel;
QLabel *m_pVolumeChangeLabel;
QLabel *m_pPoweroffMusicLabel;
QLabel *m_pStartupMusicLabel;
QComboBox *m_pSoundThemeCombobox;
QComboBox *m_pAlertSoundCombobox;
QComboBox *m_pLagoutCombobox;
QComboBox *m_pVolumeChangeCombobox;
QVBoxLayout *m_pSoundLayout;
SwitchButton *m_pStartupButton;
SwitchButton *m_pPoweroffButton;
SwitchButton *m_pLogoutButton;
SwitchButton *m_pAlertSoundSwitchButton;
SwitchButton *m_pWakeupMusicButton;
// UkmediaVolumeSlider *m_pAlertSlider;
// UkuiButtonDrawSvg *m_pAlertIconBtn;
};
#endif // UKMEDIASOUNDEFFECTSWIDGET_H

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,243 @@
#ifndef UKMEDIAVOLUMECONTROL_H
#define UKMEDIAVOLUMECONTROL_H
#include <pulse/ext-stream-restore.h>
#include <signal.h>
#include <string.h>
#include <glib.h>
#include <QObject>
#include <pulse/pulseaudio.h>
#include <pulse/glib-mainloop.h>
#include <pulse/ext-stream-restore.h>
#include <pulse/ext-device-restore.h>
#include <pulse/ext-device-manager.h>
#include <QtDBus/QDBusConnection>
#include <QtDBus/QDBusMessage>
#include <QtDBus/QDBusInterface>
#include <QtDBus/QDBusObjectPath>
#include <QDBusReply>
#include <QLabel>
#include <QDialog>
#include "ukui_custom_style.h"
#define PANGUW_SINK "alsa_output.platform-raoliang-sndcard.analog-stereo"
#define DECAY_STEP .04
static int n_outstanding = 0;
class PortInfo {
public:
QByteArray name;
QByteArray description;
uint32_t priority;
int available;
int direction;
int64_t latency_offset;
std::vector<QByteArray> profiles;
};
class UkmediaVolumeControl : public QObject{
Q_OBJECT
public:
UkmediaVolumeControl();
virtual ~UkmediaVolumeControl();
void updateCard(UkmediaVolumeControl *c,const pa_card_info &info);
bool updateSink(UkmediaVolumeControl *c,const pa_sink_info &info);
void updateSource(const pa_source_info &info);
void updateSinkInput(const pa_sink_input_info &info);
void updateSourceOutput(const pa_source_output_info &info);
void updateClient(const pa_client_info &info);
void updateServer(const pa_server_info &info);
void updateVolumeMeter(uint32_t source_index, uint32_t sink_input_index, double v);
// void updateRole(const pa_ext_stream_restore_info &info);
void updateDeviceInfo(const pa_ext_device_restore_info &info) ;
bool setSinkMute(bool status); //设置输出设备静音状态
bool setSinkVolume(int index,int value); //设置输出设备音量值
bool setSourceMute(bool status); //设置输入设备静音状态
bool setSourceVolume(int index,int value); //设置输入设备音量值
bool setBalanceVolume(int index,int value,float balance); //设置平衡值
bool getSinkMute(); //获取输出设备静音状态
int getSinkVolume(); //获取输出设备音量值
bool getSourceMute(); //获取输入设备静音状态
int getSourceVolume(); //获取输入设备音量值
float getBalanceVolume();//获取平衡音量
int getDefaultSinkIndex();
int getSinkInputVolume(const gchar *name); //根据name获取sink input的音量值
void setSinkInputVolume(int index,int value); //设置sink input 音量值
void setSinkInputMuted(int index,bool status); //设置sink input 静音状态
int getSourceOutputVolume(const gchar *name); //根据name获取source output的音量值
bool setCardProfile(int index,const gchar *name); //设置声卡的配置文件
bool setDefaultSink(const gchar *name); //设置默认的输出设备
bool setDefaultSource(const gchar *name); //设置默认的输入设备
bool setSinkPort(const gchar *sinkName ,const gchar *portName); //设置输出设备的端口
bool setSourcePort(const gchar *sourceName, const gchar *portName); //设置输入设备的端口
void setSourceOutputVolume(int index, int value);
void setSourceOutputMuted(int index, bool status);
void removeCard(uint32_t index);
void removeSink(uint32_t index);
void removeSource(uint32_t index);
void removeSinkInput(uint32_t index);
void removeSourceOutput(uint32_t index);
void removeClient(uint32_t index);
void setConnectingMessage(const char *string = NULL);
void showError(const char *txt);
static void decOutstanding(UkmediaVolumeControl *w);
static void readCallback(pa_stream *s, size_t length, void *userdata);
static void sinkIndexCb(pa_context *c, const pa_sink_info *i, int eol, void *userdata);
static void sourceIndexCb(pa_context *c, const pa_source_info *i, int eol, void *userdata);
static void cardCb(pa_context *, const pa_card_info *i, int eol, void *userdata);
static void sinkCb(pa_context *c, const pa_sink_info *i, int eol, void *userdata);
static void sourceCb(pa_context *, const pa_source_info *i, int eol, void *userdata);
static void sinkInputCb(pa_context *, const pa_sink_input_info *i, int eol, void *userdata);
static void sinkInputCallback(pa_context *c, const pa_sink_input_info *i, int eol, void *userdata); //不更新sink input
static void sourceOutputCb(pa_context *, const pa_source_output_info *i, int eol, void *userdata);
static void clientCb(pa_context *, const pa_client_info *i, int eol, void *userdata);
static void serverInfoCb(pa_context *, const pa_server_info *i, void *userdata);
static void serverInfoIndexCb(pa_context *, const pa_server_info *i, void *userdata);
static void extStreamRestoreReadCb(pa_context *,const pa_ext_stream_restore_info *i,int eol,void *userdata);
static void extStreamRestoreSubscribeCb(pa_context *c, void *userdata);
// void ext_device_restore_read_cb(pa_context *,const pa_ext_device_restore_info *i,int eol,void *userdata);
// static void ext_device_restore_subscribe_cb(pa_context *c, pa_device_type_t type, uint32_t idx, void *userdata);
static void extDeviceManagerReadCb(pa_context *,const pa_ext_device_manager_info *,int eol,void *userdata);
static void extDeviceManagerSubscribeCb(pa_context *c, void *userdata);
static void subscribeCb(pa_context *c, pa_subscription_event_type_t t, uint32_t index, void *userdata);
static void contextStateCallback(pa_context *c, void *userdata);
pa_context* getContext(void);
gboolean connectToPulse(gpointer userdata);
void updateOutputPortMap();
void removeOutputPortMap(int index); //移除指定索引的output port
void removeInputPortMap(int index); //移除指定索引的input port
void removeCardMap(int index); //移除指定索引的 card
void removeCardProfileMap(int index); //移除声卡profile map
void removeSinkPortMap(int index);
void removeSourcePortMap(int index);
void removeProfileMap(int index);
bool isExitOutputPort(QString name);
QString findSinkActivePortName(QString name);
void removeInputProfile(int index);
bool isExitInputPort(QString name);
QString stringRemoveUnrecignizedChar(QString str);
std::vector< std::pair<QByteArray,QByteArray> > profiles;
std::map<QByteArray, PortInfo> ports;
QByteArray activeProfile;
QByteArray noInOutProfile;
QByteArray lastActiveProfile;
QVector <int> sourceOutputVector;//存储source output索引
bool hasSinks;
bool hasSources;
pa_cvolume m_defaultSinkVolume;
const pa_sink_info *m_pDefaultSink;
pa_context* m_pPaContext;
std::map<uint32_t, char*> clientNames;
int sinkVolume; //输出音量
int sourceVolume; //输入音量
bool sinkMuted; //输出静音状态
bool sourceMuted; //输入静音状态
int sinkInputVolume; //sink input 音量
bool sinkInputMuted; //sink input 静音状态
float balance; //平衡音量值
int channel; //通道数
int inputChannel;
int sinkInputChannel;
int sourceOutputChannel;
QString sinkPortName; //输出设备端口名
QString sourcePortName; //输入设备端口名
int defaultOutputCard;
int defaultInputCard;
pa_channel_map defaultChannelMap;
friend class UkmediaMainWidget;
pa_stream *peak;
double lastPeak;
QByteArray name;
QByteArray description;
uint32_t index, card_index;
int peakDetectIndex=0;
pa_source_flags sourceFlags;
bool offsetButtonEnabled;
pa_channel_map channelMap;
pa_cvolume volume;
std::vector< std::pair<QByteArray,QByteArray> > dPorts;
QByteArray activePort;
QMap<int, QString> sinkMap; //输出设备
QMap<QString,QString> sinkActivePortMap; //输出设备活跃端口
QMap<int, QString> sourceMap; //输入设备
QMap<int,QMap<QString,QString>> outputPortMap; //输出端口
QMap<int,QMap<QString,QString>> inputPortMap; //输入端口
QMap<int, QMap<QString,QString>> profileNameMap; //声卡输出配置文件
QMap<int, QMap<QString,QString>> inputPortProfileNameMap; //声卡输入配置文件
QMap<int, QMap<QString,int>> cardProfilePriorityMap; //记录声卡优先级配置文件
QMap<int, QList<QString>> cardProfileMap;
QMap<int, QString> cardMap;
QMap<int,QMap<QString,QString>> sinkPortMap;
QMap<int,QMap<QString,QString>> sourcePortMap;
QMap<int,QString> cardActiveProfileMap;
Q_SIGNALS:
void paContextReady();
void updateVolume(int value,bool state);
void updateSourceVolume(int value,bool state);
void addSinkInputSignal(const gchar* name,const gchar *id,int index);
void removeSinkInputSignal(const gchar* name);
void addSourceOutputSignal(const gchar* name,const gchar *id,int index);
void removeSourceOutputSignal(const gchar* name);
void checkDeviceSelectionSianal(const pa_card_info *info);
void peakChangedSignal(double v);
void updatePortSignal();
void updateCboxPortSignal();
void deviceChangedSignal();
protected Q_SLOTS:
void timeoutSlot();
public:
void setConnectionState(gboolean connected);
void updateDeviceVisibility();
void reallyUpdateDeviceVisibility();
pa_stream* createMonitorStreamForSource(uint32_t source_idx, uint32_t stream_idx, bool suspend);
void setIconFromProplist(QLabel *icon, pa_proplist *l, const char *name);
pa_context *context;
QByteArray defaultSinkName, defaultSourceName;
bool canRenameDevices;
const pa_server_info *m_pServerInfo;
const pa_source_info *m_pDefaultSource;
int sinkIndex;
int sourceIndex;
pa_mainloop_api* api;
QStringList sinkInputList;
QMap<QString, int> sinkInputMap;
QMap<QString, int> sourceOutputMap;
private:
gboolean m_connected;
gchar* m_config_filename;
};
#endif // UKMEDIAVOLUMECONTROL_H

449
audio/ukui_custom_style.cpp Normal file
View File

@ -0,0 +1,449 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
*
* 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 2 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, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#include "ukui_custom_style.h"
#include <QStyleOption>
#include <QPainter>
#include <QPainterPath>
#include <QEvent>
#include <QPaintEvent>
#include <QStylePainter>
#include <QCoreApplication>
#include <QDebug>
UkuiMediaSliderTipLabel::UkuiMediaSliderTipLabel(){
setAttribute(Qt::WA_TranslucentBackground);
}
UkuiMediaSliderTipLabel::~UkuiMediaSliderTipLabel(){
}
void UkuiMediaSliderTipLabel::paintEvent(QPaintEvent *e)
{
QStyleOptionFrame opt;
initStyleOption(&opt);
QStylePainter p(this);
// p.setBrush(QBrush(QColor(0x1A,0x1A,0x1A,0x4C)));
p.setBrush(QBrush(QColor(0xFF,0xFF,0xFF,0x33)));
p.setPen(Qt::NoPen);
p.drawRoundedRect(this->rect(), 1, 1);
QPainterPath path;
path.addRoundedRect(opt.rect,6,6);
p.setRenderHint(QPainter::Antialiasing);
setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon()));
p.drawPrimitive(QStyle::PE_PanelTipLabel, opt);
this->setProperty("blurRegion", QRegion(QRect(0, 0, 1, 1)));
QLabel::paintEvent(e);
}
UkmediaVolumeSlider::UkmediaVolumeSlider(QWidget *parent,bool needTip)
{
Q_UNUSED(parent);
if (needTip) {
state = needTip;
m_pTiplabel = new UkuiMediaSliderTipLabel();
m_pTiplabel->setWindowFlags(Qt::ToolTip);
// qApp->installEventFilter(new AppEventFilter(this));
m_pTiplabel->setFixedSize(70,30);
m_pTiplabel->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
}
}
void UkmediaVolumeSlider::mousePressEvent(QMouseEvent *ev)
{
if (state) {
m_pTiplabel->show();
}
//注意应先调用父类的鼠标点击处理事件,这样可以不影响拖动的情况
QSlider::mousePressEvent(ev);
//获取鼠标的位置这里并不能直接从ev中取值因为如果是拖动的话鼠标开始点击的位置没有意义了
int value = 0;
int currentX = ev->pos().x();
double per = currentX * 1.0 / this->width();
if ((this->maximum() - this->minimum()) >= 50) { //减小鼠标点击像素的影响
value = qRound(per*(this->maximum() - this->minimum())) + this->minimum();
if (value <= (this->maximum() / 2 - this->maximum() / 10 + this->minimum() / 10)) {
value = qRound(per*(this->maximum() - this->minimum() - 1)) + this->minimum();
} else if (value > (this->maximum() / 2 + this->maximum() / 10 + this->minimum() / 10)) {
value = qRound(per*(this->maximum() - this->minimum() + 1)) + this->minimum();
} else {
value = qRound(per*(this->maximum() - this->minimum())) + this->minimum();
}
} else {
value = qRound(per*(this->maximum() - this->minimum())) + this->minimum();
}
this->setValue(value);
//向父窗口发送自定义事件event type这样就可以在父窗口中捕获这个事件进行处理
QEvent evEvent(static_cast<QEvent::Type>(QEvent::User + 1));
QCoreApplication::sendEvent(parentWidget(), &evEvent);
}
void UkmediaVolumeSlider::mouseReleaseEvent(QMouseEvent *ev)
{
mouseClickFlag = true;
QSlider::mouseReleaseEvent(ev);
}
void UkmediaVolumeSlider::wheelEvent(QWheelEvent* ev)
{
if(mouseClickFlag)
QSlider::wheelEvent(ev);
}
void UkmediaVolumeSlider::initStyleOption(QStyleOptionSlider *option)
{
QSlider::initStyleOption(option);
}
void UkmediaVolumeSlider::leaveEvent(QEvent *e)
{
if (state) {
m_pTiplabel->hide();
}
mouseClickFlag = false;
QSlider::leaveEvent(e);
}
void UkmediaVolumeSlider::enterEvent(QEvent *e)
{
if (state) {
m_pTiplabel->show();
}
}
void UkmediaVolumeSlider::paintEvent(QPaintEvent *e)
{
QRect rect;
QStyleOptionSlider m_option;
QSlider::paintEvent(e);
if (state) {
this->initStyleOption(&m_option);
rect = this->style()->subControlRect(QStyle::CC_Slider, &m_option,QStyle::SC_SliderHandle,this);
QPoint gPos = this->mapToGlobal(rect.topLeft());
QString percent;
percent = QString::number(this->value());
percent.append("%");
m_pTiplabel->setText(percent);
m_pTiplabel->move(gPos.x()-(m_pTiplabel->width()/2)+9,gPos.y()-m_pTiplabel->height()-1);
}
}
UkmediaVolumeSlider::~UkmediaVolumeSlider()
{
}
void UkuiButtonDrawSvg::init(QImage img, QColor color)
{
mImage = img;
mColor = color;
}
void UkuiButtonDrawSvg::paintEvent(QPaintEvent *event)
{
QStyleOption opt;
opt.init(this);
QPainter p(this);
p.setBrush(QBrush(QColor(0x13,0x13,0x14,0x00)));
p.setPen(Qt::NoPen);
QPainterPath path;
opt.rect.adjust(0,0,0,0);
path.addRoundedRect(opt.rect,6,6);
p.setRenderHint(QPainter::Antialiasing); // 反锯齿;
p.drawRoundedRect(opt.rect,6,6);
setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon()));
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
QRect UkuiButtonDrawSvg::IconGeometry()
{
QRect res = QRect(QPoint(0,0),QSize(24,24));
res.moveCenter(QRect(0,0,width(),height()).center());
return res;
}
void UkuiButtonDrawSvg::draw(QPaintEvent* e)
{
Q_UNUSED(e);
QPainter painter(this);
QRect iconRect = IconGeometry();
if (mImage.size() != iconRect.size())
{
mImage = mImage.scaled(iconRect.size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
QRect r = mImage.rect();
r.moveCenter(iconRect.center());
iconRect = r;
}
this->setProperty("fillIconSymbolicColor", true);
filledSymbolicColoredPixmap(mImage,mColor);
painter.drawImage(iconRect, mImage);
}
bool UkuiButtonDrawSvg::event(QEvent *event)
{
switch (event->type())
{
case QEvent::Paint:
draw(static_cast<QPaintEvent*>(event));
break;
case QEvent::Move:
case QEvent::Resize:
{
QRect rect = IconGeometry();
}
break;
case QEvent::MouseButtonPress:
case QEvent::MouseButtonRelease:
case QEvent::MouseButtonDblClick:
event->accept();
break;
default:
break;
}
return QPushButton::event(event);
}
UkuiButtonDrawSvg::UkuiButtonDrawSvg(QWidget *parent)
{
Q_UNUSED(parent);
}
UkuiButtonDrawSvg::~UkuiButtonDrawSvg()
{
}
QPixmap UkuiButtonDrawSvg::filledSymbolicColoredPixmap(QImage &img, QColor &baseColor)
{
for (int x = 0; x < img.width(); x++) {
for (int y = 0; y < img.height(); y++) {
auto color = img.pixelColor(x, y);
if (color.alpha() > 0) {
int hue = color.hue();
if (!qAbs(hue - symbolic_color.hue()) < 10) {
color.setRed(baseColor.red());
color.setGreen(baseColor.green());
color.setBlue(baseColor.blue());
img.setPixelColor(x, y, color);
}
}
}
}
return QPixmap::fromImage(img);
}
CustomSound::CustomSound()
{
}
CustomSound::~CustomSound()
{
delete(file);
delete(doc);
file->close();
}
bool CustomSound::createAudioFile()
{
//打开或创建文件
QFile *file;
QString audioPath = QDir::homePath() + "/.config/customAudio.xml";
if(!QFile::exists(audioPath)){
file = new QFile(audioPath);
if(!file->open(QFile::WriteOnly))
return false;
//写入xml头部
QDomDocument doc;
QDomProcessingInstruction instruction; //添加处理命令
instruction = doc.createProcessingInstruction("xml","version=\"1.0\" encoding=\"UTF-8\"");
doc.appendChild(instruction);
//添加根节点
QDomElement root = doc.createElement("root");
doc.appendChild(root);
//添加子节点
QDomElement node = doc.createElement("firstRun");
QDomElement init = doc.createElement("init"); //创建子元素
QDomText text = doc.createTextNode("true");
init.appendChild(text);
node.appendChild(init);
root.appendChild(node);
//输出到文件
QTextStream out_stream(file);
doc.save(out_stream,4); //缩进4格
file->close();
return true;
}
return true;
}
//判断某个节点是否存在
bool CustomSound::isExist(QString nodeName)
{
if (nodeName == "")
return false;
//打开文件
QString errorStr;
int errorLine;
int errorCol;
QString audioPath = QDir::homePath() + "/.config/customAudio.xml";
QFile file(audioPath);
if(!file.exists())
createAudioFile();
if(file.open(QFile::ReadOnly)){
QDomDocument doc;
if(doc.setContent(&file,true,&errorStr,&errorLine,&errorCol)){
file.close();
QDomElement root = doc.documentElement();
QDomElement ele = root.firstChildElement();
nodeName.remove(" ");
nodeName.remove("/");
nodeName.remove("(");
nodeName.remove(")");
nodeName.remove("[");
nodeName.remove("]");
if(nodeName.at(0)>='0' && nodeName.at(0)<='9'){
nodeName = "Audio_"+nodeName;
}
while(!ele.isNull()) {
if(ele.nodeName() == nodeName)
return true;
ele = ele.nextSiblingElement();
}
}
else
{
qDebug() << errorStr << "line: " << errorLine << "col: " << errorCol;
}
file.close();
}
return false;
}
//添加第一个子节点及其子元素
int CustomSound::addXmlNode(QString nodeName, bool initState)
{
//打开文件
QString audioPath = QDir::homePath() + "/.config/customAudio.xml";
QFile file(audioPath);
QDomDocument doc;//增加一个一级子节点以及元素
if(file.open(QFile::ReadOnly)){
if(doc.setContent(&file)){
file.close();
}
else {
file.close();
return -1;
}
}
else
return -1;
//添加新节点
nodeName.remove(" ");
nodeName.remove("/");
nodeName.remove("(");
nodeName.remove(")");
nodeName.remove("[");
nodeName.remove("]");
if(nodeName.at(0)>='0' && nodeName.at(0)<='9'){
nodeName = "Audio_"+nodeName;
}
QDomElement root=doc.documentElement();
QDomElement node=doc.createElement(nodeName);
QDomElement init=doc.createElement("init");
QDomText text;
if(initState)
text = doc.createTextNode("true");
else
text = doc.createTextNode("false");
init.appendChild(text);
node.appendChild(init);
root.appendChild(node);
qDebug() << "addXmlNode" << nodeName ;
//修改first-run状态
QDomElement ele = root.firstChildElement();
while(!ele.isNull()) {
if(ele.nodeName() == "firstRun"){
QString value = ele.firstChildElement().firstChild().nodeValue();
if(value == "true")
ele.firstChildElement().firstChild().setNodeValue("false");
}
ele = ele.nextSiblingElement();
}
if(file.open(QFile::WriteOnly|QFile::Truncate)) {
//输出到文件
QTextStream out_stream(&file);
doc.save(out_stream,4); //缩进4格
file.close();
}
return 0;
}
bool CustomSound::isFirstRun()
{
QString audioPath = QDir::homePath() + "/.config/customAudio.xml";
QFile file(audioPath);
if(!file.exists()){
createAudioFile();
}
if(file.open(QFile::ReadOnly)){
QDomDocument doc;
if(doc.setContent(&file)){
file.close();
QDomElement root = doc.documentElement();
QDomElement ele = root.firstChildElement();
qDebug()<<"===================ele.nodeName() :"<<ele.nodeName() ;
if(ele.nodeName() == "first-run"){
QString value = ele.firstChildElement().firstChild().nodeValue();
if(value == "true") {
file.close();
return true;
}
else {
file.close();
return false;
}
}
}
file.close();
}
return false;
}

118
audio/ukui_custom_style.h Normal file
View File

@ -0,0 +1,118 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
*
* 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 2 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, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#ifndef UKUICUSTOMSTYLE_H
#define UKUICUSTOMSTYLE_H
#include <QObject>
#include <QPushButton>
#include <QImage>
#include <QSlider>
#include <QLabel>
#include <QMouseEvent>
#include "titlelabel.h"
#include <QDomDocument>
#include <QDir>
#include <QFile>
#include <QDebug>
static QColor symbolic_color = Qt::gray;
class UkuiMediaSliderTipLabel:public QLabel
{
public:
UkuiMediaSliderTipLabel();
~UkuiMediaSliderTipLabel();
protected:
void paintEvent(QPaintEvent*);
};
class UkmediaVolumeSlider : public QSlider
{
Q_OBJECT
public:
// UkmediaVolumeSlider(QWidget *parent = nullptr);
UkmediaVolumeSlider(QWidget *parent = nullptr,bool needTip = false);
void initStyleOption(QStyleOptionSlider *option);
~UkmediaVolumeSlider();
private:
UkuiMediaSliderTipLabel *m_pTiplabel;
bool state = false;
bool mouseClickFlag = false;
bool mousePress =false;
Q_SIGNALS:
void silderPressedSignal(int);
protected:
void mousePressEvent(QMouseEvent *ev);
void mouseReleaseEvent(QMouseEvent *ev);
void mouseMoveEvent(QMouseEvent *e)
{
// setCursor(QCursor(Qt::OpenHandCursor));
// m_displayLabel->move((this->width()-m_displayLabel->width())*this->value()/(this->maximum()-this->minimum()),3);
QSlider::mouseMoveEvent(e);
}
void leaveEvent(QEvent *e);
void wheelEvent(QWheelEvent* ev);
void enterEvent(QEvent *e);
void paintEvent(QPaintEvent *e);
};
class UkuiButtonDrawSvg:public QPushButton
{
Q_OBJECT
public:
UkuiButtonDrawSvg(QWidget *parent = nullptr);
~UkuiButtonDrawSvg();
QPixmap filledSymbolicColoredPixmap(QImage &source, QColor &baseColor);
QRect IconGeometry();
void draw(QPaintEvent* e);
void init(QImage image ,QColor color);
friend class UkmediaMainWidget;
protected:
void paintEvent(QPaintEvent *event);
bool event(QEvent *e);
private:
QImage mImage;
QColor mColor;
bool mousePress = false;
};
class CustomSound
{
public:
CustomSound();
~CustomSound();
bool createAudioFile();
bool isExist(QString nodeName);
int addXmlNode(QString nodeNane, bool initState);
bool isFirstRun();
public:
QFile *file;
private:
QDomDocument *doc;
QString audioPath;
};
#endif // UKUICUSTOMSTYLE_H

View File

@ -0,0 +1,115 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
*
* 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 2 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, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#include "ukui_list_widget_item.h"
#include <QPainter>
#include <QStyleOption>
#include <QDebug>
#include <QVBoxLayout>
//#include <QSvgRenderer>
#include <QApplication>
bool isCheckBluetoothInput;
UkuiListWidget::UkuiListWidget(QWidget *parent) :
QListWidget(parent)
{
}
UkuiListWidget::~UkuiListWidget()
{
}
UkuiListWidgetItem::UkuiListWidgetItem(QWidget *parent) :
QWidget(parent)
{
this->setFixedSize(500,64);
QVBoxLayout *vLayout = new QVBoxLayout;
portLabel = new QLabel(this);
deviceLabel = new QLabel(this);
portLabel->setFixedSize(600,24);
deviceLabel->setFixedSize(600,24);
vLayout->addWidget(portLabel);
vLayout->addWidget(deviceLabel);
this->setLayout(vLayout);
this->show();
}
UkuiListWidgetItem::~UkuiListWidgetItem()
{
}
void UkuiListWidgetItem::setSelected(bool selected){
if (selected) {
widget->setStyleSheet("QWidget{background: #3D6BE5; border-radius: 4px;}");
} else {
widget->setStyleSheet("QListWidget::Item:hover{background:#FF3D6BE5;border-radius: 4px;}");
}
}
//设置输出设备的设备名字和名称
void UkuiListWidgetItem::setLabelText(QString portLabel, QString deviceLabel){
this->portLabel->setText(portLabel);
this->deviceLabel->setText(deviceLabel);
}
void UkuiListWidgetItem::mousePressEvent(QMouseEvent *event)
{
QWidget::mousePressEvent(event);
qDebug() << "Mouse Press Event" << this->portLabel->text() << this->deviceLabel->text() << isCheckBluetoothInput;
//蓝牙输入去除勾选
if (this->deviceLabel->text().contains("bluez_card")) {
if (isCheckBluetoothInput == false)
isCheckBluetoothInput = true;
else {
isCheckBluetoothInput = false;
QString cmd = "pactl set-card-profile "+this->deviceLabel->text()+" a2dp_sink";
system(cmd.toLocal8Bit().data());
}
}
}
//void UkuiListWidgetItem::paintEvent(QPaintEvent *event)
//{
// QStyleOption opt;
// opt.init(this);
// QPainter p(this);
//// double transparence = transparency * 255;
// QColor color = palette().color(QPalette::Base);
//// color.setAlpha(transparence);
// QBrush brush = QBrush(color);
// p.setBrush(brush);
// p.setPen(Qt::NoPen);
// QPainterPath path;
// opt.rect.adjust(0,0,0,0);
// path.addRoundedRect(opt.rect,6,6);
// p.setRenderHint(QPainter::Antialiasing); // 反锯齿;
// p.drawRoundedRect(opt.rect,6,6);
// setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon()));
// style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
//// QWidget::paintEvent(event);
//}

View File

@ -0,0 +1,82 @@
#ifndef UKUILISTWIDGETITEM_H
#define UKUILISTWIDGETITEM_H
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
*
* 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 2 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, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#include <QWidget>
#include <QLabel>
#include <QHBoxLayout>
#include <QPixmap>
#include <QString>
#include <QListWidgetItem>
#include <QListWidget>
#include <QPushButton>
class UkuiListWidget : public QListWidget
{
Q_OBJECT
public:
UkuiListWidget(QWidget *parent = nullptr);
~UkuiListWidget();
protected:
void paintEvent(QPaintEvent*event) {
int i;
for (i = 0 ;i < this->count();i++) {
QListWidgetItem *item = this->item(i);
// item->setTextColor(QColor(0,0,0,0));
delete item;
}
QListWidget::paintEvent(event);
}
};
class UkuiListWidgetItem : public QWidget
{
Q_OBJECT
public:
UkuiListWidgetItem(QWidget *parent = 0);
~UkuiListWidgetItem();
public:
void setLabelText(QString portText,QString deviceLabel);
// void setLabelTextIsWhite(bool selected);
void setSelected(bool selected);
// QString text();
QString portName;
QLabel * portLabel;
QLabel * deviceLabel;
protected:
// void paintEvent(QPaintEvent *event);
void mousePressEvent(QMouseEvent *ev);
private:
QWidget * widget;
};
#endif // UKUILISTWIDGETITEM_H

154
build-aux/git-version-gen Executable file
View File

@ -0,0 +1,154 @@
#!/bin/sh
# Print a version string.
scriptversion=2009-05-04.22
# Copyright (C) 2007-2008 Free Software Foundation
#
# 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, 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, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
# This script is derived from GIT-VERSION-GEN from GIT: http://git.or.cz/.
# It may be run two ways:
# - from a git repository in which the "git describe" command below
# produces useful output (thus requiring at least one signed tag)
# - from a non-git-repo directory containing a .tarball-version file, which
# presumes this script is invoked like "./git-version-gen .tarball-version".
# In order to use intra-version strings in your project, you will need two
# separate generated version string files:
#
# .tarball-version - present only in a distribution tarball, and not in
# a checked-out repository. Created with contents that were learned at
# the last time autoconf was run, and used by git-version-gen. Must not
# be present in either $(srcdir) or $(builddir) for git-version-gen to
# give accurate answers during normal development with a checked out tree,
# but must be present in a tarball when there is no version control system.
# Therefore, it cannot be used in any dependencies. GNUmakefile has
# hooks to force a reconfigure at distribution time to get the value
# correct, without penalizing normal development with extra reconfigures.
#
# .version - present in a checked-out repository and in a distribution
# tarball. Usable in dependencies, particularly for files that don't
# want to depend on config.h but do want to track version changes.
# Delete this file prior to any autoconf run where you want to rebuild
# files to pick up a version string change; and leave it stale to
# minimize rebuild time after unrelated changes to configure sources.
#
# It is probably wise to add these two files to .gitignore, so that you
# don't accidentally commit either generated file.
#
# Use the following line in your configure.ac, so that $(VERSION) will
# automatically be up-to-date each time configure is run (and note that
# since configure.ac no longer includes a version string, Makefile rules
# should not depend on configure.ac for version updates).
#
# AC_INIT([GNU project],
# m4_esyscmd([build-aux/git-version-gen .tarball-version]),
# [bug-project@example])
#
# Then use the following lines in your Makefile.am, so that .version
# will be present for dependencies, and so that .tarball-version will
# exist in distribution tarballs.
#
# BUILT_SOURCES = $(top_srcdir)/.version
# $(top_srcdir)/.version:
# echo $(VERSION) > $@-t && mv $@-t $@
# dist-hook:
# echo $(VERSION) > $(distdir)/.tarball-version
case $# in
1) ;;
*) echo 1>&2 "Usage: $0 \$srcdir/.tarball-version"; exit 1;;
esac
tarball_version_file=$1
nl='
'
# First see if there is a tarball-only version file.
# then try "git describe", then default.
if test -f $tarball_version_file
then
v=`cat $tarball_version_file` || exit 1
case $v in
*$nl*) v= ;; # reject multi-line output
[0-9]*) ;;
*) v= ;;
esac
test -z "$v" \
&& echo "$0: WARNING: $tarball_version_file seems to be damaged" 1>&2
fi
if test -n "$v"
then
: # use $v
elif test -d .git \
&& v=`git describe --abbrev=4 --match='${UKUI_TAG_PATTERN}_*' HEAD 2>/dev/null \
|| git describe --abbrev=4 HEAD 2>/dev/null` \
&& case $v in
${UKUI_TAG_PATTERN}_[0-9]*) ;;
*) (exit 1) ;;
esac
then
# Is this a new git that lists number of commits since the last
# tag or the previous older version that did not?
# Newer: v6.10-77-g0f8faeb
# Older: v6.10-g0f8faeb
case $v in
*-*-*) : git describe is okay three part flavor ;;
*-*)
: git describe is older two part flavor
# Recreate the number of commits and rewrite such that the
# result is the same as if we were using the newer version
# of git describe.
vtag=`echo "$v" | sed 's/-.*//'`
numcommits=`git rev-list "$vtag"..HEAD | wc -l`
v=`echo "$v" | sed "s/\(.*\)-\(.*\)/\1-$numcommits-\2/"`;
;;
esac
# Change the first '-' to a '.', so version-comparing tools work properly.
# Remove the "g" in git describe's output string, to save a byte.
v=`echo "$v" | sed 's/-/./;s/\(.*\)-g/\1-/'`;
else
v=UNKNOWN
fi
#v=`echo "$v" |sed 's/^v//'`
v=`echo "$v" | sed "s/${UKUI_TAG_PATTERN}_//" | tr _ .`
# Don't declare a version "dirty" merely because a time stamp has changed.
git status > /dev/null 2>&1
dirty=`sh -c 'git diff-index --name-only HEAD' 2>/dev/null` || dirty=
case "$dirty" in
'') ;;
*) # Append the suffix only if there isn't one already.
case $v in
*-dirty) ;;
*) v="$v-dirty" ;;
esac ;;
esac
# Omit the trailing newline, so that m4_esyscmd can use the result directly.
echo "$v" | tr -d '\012'
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:

40
data/Makefile.am Normal file
View File

@ -0,0 +1,40 @@
NULL =
SUBDIRS = \
icons \
$(NULL)
@INTLTOOL_DESKTOP_RULE@
autostartdir = $(sysconfdir)/xdg/autostart
autostart_in_files = ukui-volume-control-applet.desktop.in
autostart_DATA = $(autostart_in_files:.desktop.in=.desktop)
appsdir = $(datadir)/applications
apps_in_files = ukui-volume-control.desktop.in
apps_DATA = $(apps_in_files:.desktop.in=.desktop)
gsettingsschema_in_files = org.ukui.media.gschema.xml.in
gsettings_SCHEMAS = $(gsettingsschema_in_files:.xml.in=.xml)
@GSETTINGS_RULES@
@INTLTOOL_XML_RULE@
EXTRA_DIST = \
$(autostart_in_files) \
ukui-volume-control.desktop.in.in \
$(gsettingsschema_in_files) \
$(NULL)
CLEANFILES = \
ukui-volume-control.desktop \
$(gsettings_SCHEMAS) \
$(NULL)
DISTCLEANFILES = \
ukui-volume-control-applet.desktop \
$(NULL)
MAINTAINERCLEANFILES = \
Makefile.in \
$(gsettings_SCHEMAS:.xml=.valid)
-include $(top_srcdir)/git.mk

View File

@ -0,0 +1,4 @@
SUBDIRS = status
-include $(top_srcdir)/git.mk

View File

@ -0,0 +1,21 @@
NULL =
themedir = $(pkgdatadir)/icons/hicolor
size = 16x16
context = status
iconsdir = $(themedir)/$(size)/$(context)
icons_DATA = \
audio-input-microphone-high.png \
audio-input-microphone-low.png \
audio-input-microphone-medium.png \
audio-input-microphone-muted.png \
$(NULL)
EXTRA_DIST = \
$(icons_DATA) \
$(NULL)
-include $(top_srcdir)/git.mk

Binary file not shown.

After

Width:  |  Height:  |  Size: 853 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 548 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 687 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 520 B

View File

@ -0,0 +1,4 @@
SUBDIRS = status
-include $(top_srcdir)/git.mk

View File

@ -0,0 +1,21 @@
NULL =
themedir = $(pkgdatadir)/icons/hicolor
size = 22x22
context = status
iconsdir = $(themedir)/$(size)/$(context)
icons_DATA = \
audio-input-microphone-high.png \
audio-input-microphone-low.png \
audio-input-microphone-medium.png \
audio-input-microphone-muted.png \
$(NULL)
EXTRA_DIST = \
$(icons_DATA) \
$(NULL)
-include $(top_srcdir)/git.mk

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 827 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 968 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 817 B

View File

@ -0,0 +1,4 @@
SUBDIRS = status
-include $(top_srcdir)/git.mk

View File

@ -0,0 +1,21 @@
NULL =
themedir = $(pkgdatadir)/icons/hicolor
size = 24x24
context = status
iconsdir = $(themedir)/$(size)/$(context)
icons_DATA = \
audio-input-microphone-high.png \
audio-input-microphone-low.png \
audio-input-microphone-medium.png \
audio-input-microphone-muted.png \
$(NULL)
EXTRA_DIST = \
$(icons_DATA) \
$(NULL)
-include $(top_srcdir)/git.mk

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 849 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1001 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 851 B

View File

@ -0,0 +1,4 @@
SUBDIRS = status
-include $(top_srcdir)/git.mk

View File

@ -0,0 +1,21 @@
NULL =
themedir = $(pkgdatadir)/icons/hicolor
size = 32x32
context = status
iconsdir = $(themedir)/$(size)/$(context)
icons_DATA = \
audio-input-microphone-high.png \
audio-input-microphone-low.png \
audio-input-microphone-medium.png \
audio-input-microphone-muted.png \
$(NULL)
EXTRA_DIST = \
$(icons_DATA) \
$(NULL)
-include $(top_srcdir)/git.mk

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

24
data/icons/Makefile.am Normal file
View File

@ -0,0 +1,24 @@
NULL =
SUBDIRS = \
scalable \
16x16 \
22x22 \
24x24 \
32x32 \
$(NULL)
gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/ukui
install-data-hook: update-icon-cache
uninstall-hook: update-icon-cache
update-icon-cache:
@-if test -z "$(DESTDIR)"; then \
echo "Updating Gtk icon cache."; \
$(gtk_update_icon_cache); \
else \
echo "*** Icon cache not updated. After (un)install, run this:"; \
echo "*** $(gtk_update_icon_cache)"; \
fi
-include $(top_srcdir)/git.mk

View File

@ -0,0 +1,4 @@
SUBDIRS = status devices
-include $(top_srcdir)/git.mk

View File

@ -0,0 +1,35 @@
NULL =
themedir = $(pkgdatadir)/icons/hicolor
size = 48x48
context = devices
iconsdir = $(themedir)/$(size)/$(context)
icons_DATA = \
audio-speaker-center.svg \
audio-speaker-center-testing.svg \
audio-speaker-left-back.svg \
audio-speaker-left-back-testing.svg \
audio-speaker-left.svg \
audio-speaker-left-side.svg \
audio-speaker-left-side-testing.svg \
audio-speaker-left-testing.svg \
audio-speaker-right-back.svg \
audio-speaker-right-back-testing.svg \
audio-speaker-right.svg \
audio-speaker-right-side.svg \
audio-speaker-right-side-testing.svg \
audio-speaker-right-testing.svg \
audio-speaker-center-back-testing.svg \
audio-speaker-center-back.svg \
audio-subwoofer.svg \
audio-subwoofer-testing.svg \
$(NULL)
EXTRA_DIST = \
$(icons_DATA) \
$(NULL)
-include $(top_srcdir)/git.mk

View File

@ -0,0 +1,539 @@
<?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="48"
height="48"
id="svg2643"
sodipodi:version="0.32"
inkscape:version="0.47 r22583"
version="1.0"
sodipodi:docname="audio-speaker-center-back-testing.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/Users/eve/Documents/UKUI/audio-speaker-left-side-testing.png"
inkscape:export-xdpi="67.489998"
inkscape:export-ydpi="67.489998">
<defs
id="defs2645">
<linearGradient
id="linearGradient3529">
<stop
id="stop3531"
offset="0"
style="stop-color:#fefefe;stop-opacity:1;" />
<stop
id="stop3533"
offset="1"
style="stop-color:#e8e7e6;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4389">
<stop
style="stop-color:#555753;stop-opacity:1;"
offset="0"
id="stop4391" />
<stop
id="stop4393"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4325">
<stop
id="stop4327"
offset="0"
style="stop-color:#2e3436;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4329" />
</linearGradient>
<linearGradient
id="linearGradient21608">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop21610" />
<stop
style="stop-color:#2e3436;stop-opacity:1"
offset="1"
id="stop21612" />
</linearGradient>
<linearGradient
id="linearGradient15341">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop15343" />
<stop
style="stop-color:#555753;stop-opacity:1"
offset="1"
id="stop15345" />
</linearGradient>
<linearGradient
id="linearGradient6371">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop6373" />
<stop
style="stop-color:#d3d7cf;stop-opacity:1;"
offset="1"
id="stop6375" />
</linearGradient>
<linearGradient
id="linearGradient10872">
<stop
id="stop10874"
offset="0"
style="stop-color:#888a85;stop-opacity:1" />
<stop
style="stop-color:#9e9e92;stop-opacity:1;"
offset="0.25301206"
id="stop10876" />
<stop
id="stop10878"
offset="1"
style="stop-color:#555753;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5254">
<stop
id="stop5256"
offset="0"
style="stop-color:#707469;stop-opacity:1;" />
<stop
id="stop5258"
offset="1"
style="stop-color:#2e3335;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient10055">
<stop
style="stop-color:#bebebe;stop-opacity:1;"
offset="0"
id="stop10057" />
<stop
id="stop10061"
offset="0.375"
style="stop-color:#e8e8e8;stop-opacity:1;" />
<stop
style="stop-color:#5c5c5c;stop-opacity:1;"
offset="1"
id="stop10059" />
</linearGradient>
<linearGradient
id="linearGradient4841">
<stop
id="stop4843"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#fcaf3e;stop-opacity:0.94117647;"
offset="0"
id="stop4845" />
<stop
id="stop4847"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4849" />
</linearGradient>
<linearGradient
id="linearGradient4809">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop4811" />
<stop
id="stop4813"
offset="0"
style="stop-color:#ad7fa8;stop-opacity:1;" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop4815" />
<stop
id="stop4817"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient3345">
<stop
id="stop3347"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#729fcf;stop-opacity:1;"
offset="0"
id="stop3351" />
<stop
id="stop3355"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop3349" />
</linearGradient>
<linearGradient
id="linearGradient3223">
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="0"
id="stop3225" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop3227" />
</linearGradient>
<linearGradient
id="linearGradient3503">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop3239" />
<stop
id="stop3507"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective2651" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3501"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3500"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3232"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,47.474934,42.420392)"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138"
spreadMethod="reflect" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5689"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0469084,0,0,0.4796469,270.37856,38.427671)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<inkscape:perspective
id="perspective3474"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient4359"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,-52.447261,-106.14795)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5015"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,42.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5062"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient5064"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient5110"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,142.72007,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3863"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3865"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3906"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3345"
id="radialGradient5554"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,97.725459,40.419065)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient8512"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,97.72545,40.294064)"
spreadMethod="reflect"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="126.80533"
inkscape:cy="41.532441"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:snap-global="false"
inkscape:window-width="1680"
inkscape:window-height="977"
inkscape:window-x="0"
inkscape:window-y="27"
showguides="false"
inkscape:guide-bbox="true"
inkscape:window-maximized="1">
<inkscape:grid
type="xygrid"
id="grid2653"
visible="true"
enabled="true"
color="#ff00ff"
opacity="0.1254902"
empcolor="#0000f2"
empopacity="0.25098039" />
<sodipodi:guide
orientation="1,0"
position="23.969062,28.50558"
id="guide3488" />
<sodipodi:guide
orientation="0,1"
position="-14.142136,73.185552"
id="guide3490" />
<sodipodi:guide
orientation="1,0"
position="-21,-23.25"
id="guide5857" />
<sodipodi:guide
orientation="1,0"
position="-49.5,-22.625"
id="guide5859" />
</sodipodi:namedview>
<metadata
id="metadata2648">
<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="" />
<dc:subject>
<rdf:Bag>
<rdf:li>audio</rdf:li>
<rdf:li>device</rdf:li>
<rdf:li>speaker</rdf:li>
<rdf:li>output</rdf:li>
<rdf:li>center</rdf:li>
<rdf:li>testing</rdf:li>
<rdf:li>highlighted</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:title>audio-speaker-center-testing</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Evangeline McGlynn</dc:title>
</cc:Agent>
</dc:creator>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g8490"
transform="matrix(1,0,0,-1,-50.334601,47.958369)">
<path
sodipodi:nodetypes="ccccc"
id="path8492"
d="m 64.325669,10.506413 c 6.07143,-3.4821397 13.14286,-3.3928497 19.39286,0 l 2,4.39286 -23.39286,0 2,-4.39286 z"
style="fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
sodipodi:nodetypes="csssccsssc"
d="m 95.897099,27.934983 c 0,0 -4.54743,-8.68677 -9.8613,-12.93926 -0.21063,-0.16856 -0.42247,-0.33016 -0.63527,-0.48397 -0.50204,-0.36286 -1.00946,-0.68239 -1.51919,-0.94787 -0.56896,-0.29634 -1.14078,-0.52533 -1.71117,-0.67205 -3.88321,-1.01934 -11.71652,-1.06249 -15.58966,-0.04613 -0.83989,0.21914 -1.6816,0.61173 -2.51203,1.13191 -0.62524,0.39166 -1.24409,0.85564 -1.85095,1.37236 -1.87112,1.5932 -3.628309,3.68784 -5.107769,5.71001 -2.59659,3.54911 -4.33766,6.875 -4.33766,6.875"
style="fill:none;stroke:none"
id="path8494" />
<path
style="fill:none;stroke:#bfd8f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 62.827469,15.979023 2.18704,-4.766 c 5.261057,-2.7432797 11.220313,-3.3671697 17.939063,-0.0056 l 1.96851,4.2035"
id="path8496"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cccc"
d="m 95.001579,28.523883 c 0,0 -6.30803,-12.92857 -13.07068,-14.66816 -3.88321,-1.01933 -11.18527,-1.06248 -15.05841,-0.04613 -6.84412,1.78572 -11.839659,12.46429 -11.839659,12.46429"
style="fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:#bfd8f3;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path8498" />
<path
transform="matrix(1.0469083,0,0,2.027027,51.01285,-35.409607)"
d="m 43.214285,32.24107 c 0,2.736768 -9.374038,4.955357 -20.9375,4.955357 -11.563462,0 -20.9375001,-2.218589 -20.9375001,-4.955357 0,-2.736768 9.3740381,-4.955357 20.9375001,-4.955357 11.563462,0 20.9375,2.218589 20.9375,4.955357 z"
sodipodi:ry="4.9553571"
sodipodi:rx="20.9375"
sodipodi:cy="32.24107"
sodipodi:cx="22.276785"
id="path8500"
style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:0.68646109;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
sodipodi:nodetypes="ccccc"
id="path8502"
d="m 95.16001,29.859216 c 0.1894,4.408221 -8.80985,9.066057 -20.909493,9.066057 -12.099643,0 -21.130461,-4.594701 -20.90949,-9.066057 -0.189403,-4.566056 8.809847,-9.034489 20.90949,-9.034489 12.099643,0 20.941063,4.37373 20.909493,9.034489 z"
style="fill:url(#radialGradient8512);fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
style="fill:none;stroke:#555753;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 82.142459,27.943913 c -0.67407,2.18776 -3.2897,3.38538 -7.80786,3.38538 -4.51815,0 -7.3487,-1.37717 -7.80786,-3.38538 -0.07073,-1.70502 3.28971,-3.37359 7.80786,-3.37359 4.51816,0 7.81965,1.63321 7.80786,3.37359 z"
id="path8504"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:0.96596354;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 67.476989,27.764793 c 0.9704,3.07926 3.66898,5.29604 6.84343,5.29605 3.19412,0 5.90648,-2.24438 6.86128,-5.35345 -0.90064,-1.50063 -4.28117,-2.23685 -6.89061,-2.19358 -3.30434,-0.08574 -5.85648,0.85968 -6.8141,2.25098 z"
id="path8506"
sodipodi:nodetypes="csccc"
inkscape:export-filename="/Users/eve/Documents/UKUI/SpeakerIcon_Test.png"
inkscape:export-xdpi="67.489998"
inkscape:export-ydpi="67.489998" />
<path
id="path8508"
style="fill:none;stroke:#2e3436;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 62.722179,14.847493 c -0.12704,0.1026 -0.3786,0.39515 -0.50465,0.50248 -1.87112,1.5932 -3.628309,3.68784 -5.107769,5.71001 -2.59659,3.54911 -4.33766,6.875 -4.33766,6.875 m 43.124999,0 c 0,0 -4.54743,-8.68677 -9.8613,-12.93926 -0.21063,-0.16856 -0.42247,-0.33016 -0.63527,-0.48397 -0.10052,-0.07265 -0.648157,-0.29253 -0.749077,-0.36162"
sodipodi:nodetypes="cssccsss" />
<path
id="path8510"
style="fill:none;stroke:#bfd8f3;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 81.930899,13.855723 c -3.88321,-1.01933 -11.18527,-1.06248 -15.05841,-0.04613"
sodipodi:nodetypes="cc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -0,0 +1,506 @@
<?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="48"
height="48"
id="svg2643"
sodipodi:version="0.32"
inkscape:version="0.47 r22583"
version="1.0"
sodipodi:docname="audio-speaker-center-back.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/Users/eve/Documents/UKUI/audio-speaker.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs2645">
<linearGradient
id="linearGradient4389">
<stop
style="stop-color:#555753;stop-opacity:1;"
offset="0"
id="stop4391" />
<stop
id="stop4393"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4325">
<stop
id="stop4327"
offset="0"
style="stop-color:#2e3436;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4329" />
</linearGradient>
<linearGradient
id="linearGradient21608">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop21610" />
<stop
style="stop-color:#2e3436;stop-opacity:1"
offset="1"
id="stop21612" />
</linearGradient>
<linearGradient
id="linearGradient15341">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop15343" />
<stop
style="stop-color:#555753;stop-opacity:1"
offset="1"
id="stop15345" />
</linearGradient>
<linearGradient
id="linearGradient6371">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop6373" />
<stop
style="stop-color:#d3d7cf;stop-opacity:1;"
offset="1"
id="stop6375" />
</linearGradient>
<linearGradient
id="linearGradient10872">
<stop
id="stop10874"
offset="0"
style="stop-color:#888a85;stop-opacity:1" />
<stop
style="stop-color:#9e9e92;stop-opacity:1;"
offset="0.25301206"
id="stop10876" />
<stop
id="stop10878"
offset="1"
style="stop-color:#555753;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5254">
<stop
id="stop5256"
offset="0"
style="stop-color:#707469;stop-opacity:1;" />
<stop
id="stop5258"
offset="1"
style="stop-color:#2e3335;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient10055">
<stop
style="stop-color:#bebebe;stop-opacity:1;"
offset="0"
id="stop10057" />
<stop
id="stop10061"
offset="0.375"
style="stop-color:#e8e8e8;stop-opacity:1;" />
<stop
style="stop-color:#5c5c5c;stop-opacity:1;"
offset="1"
id="stop10059" />
</linearGradient>
<linearGradient
id="linearGradient4841">
<stop
id="stop4843"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#fcaf3e;stop-opacity:0.94117647;"
offset="0"
id="stop4845" />
<stop
id="stop4847"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4849" />
</linearGradient>
<linearGradient
id="linearGradient4809">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop4811" />
<stop
id="stop4813"
offset="0"
style="stop-color:#ad7fa8;stop-opacity:1;" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop4815" />
<stop
id="stop4817"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient3345">
<stop
id="stop3347"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#729fcf;stop-opacity:1;"
offset="0"
id="stop3351" />
<stop
id="stop3355"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop3349" />
</linearGradient>
<linearGradient
id="linearGradient3223">
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="0"
id="stop3225" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop3227" />
</linearGradient>
<linearGradient
id="linearGradient3503">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop3239" />
<stop
id="stop3507"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective2651" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3501"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3500"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3232"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,47.474934,42.420392)"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138"
spreadMethod="reflect" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5689"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0469084,0,0,0.4796469,270.37856,38.427671)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<inkscape:perspective
id="perspective3474"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient4359"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,-52.447261,-106.14795)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5015"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,42.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5062"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient5064"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient5110"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,142.72007,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3863"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3865"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3906"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient7260"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,47.516569,40.378763)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6568542"
inkscape:cx="-53.025818"
inkscape:cy="20.556657"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:snap-global="false"
inkscape:window-width="1680"
inkscape:window-height="977"
inkscape:window-x="0"
inkscape:window-y="27"
showguides="false"
inkscape:guide-bbox="true"
inkscape:window-maximized="1">
<inkscape:grid
type="xygrid"
id="grid2653"
visible="true"
enabled="true"
color="#ff00ff"
opacity="0.1254902"
empcolor="#0000f2"
empopacity="0.25098039" />
<sodipodi:guide
orientation="1,0"
position="23.969062,28.50558"
id="guide3488" />
<sodipodi:guide
orientation="0,1"
position="17.401268,34.125445"
id="guide3490" />
</sodipodi:namedview>
<metadata
id="metadata2648">
<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="" />
<dc:subject>
<rdf:Bag>
<rdf:li>audio</rdf:li>
<rdf:li>device</rdf:li>
<rdf:li>speaker</rdf:li>
<rdf:li>output</rdf:li>
<rdf:li>center</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:title>audio-speaker-center</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Evangeline McGlynn</dc:title>
</cc:Agent>
</dc:creator>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g7248"
transform="matrix(1,0,0,-1,-0.04163061,47.958369)">
<path
sodipodi:nodetypes="ccccc"
id="path5365"
d="m 14.032699,10.506413 c 6.07143,-3.4821397 13.14286,-3.3928497 19.39286,0 l 2,4.39286 -23.39286,0 2,-4.39286 z"
style="fill:#babdb6;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
sodipodi:nodetypes="csssccsssc"
d="m 45.604129,27.934983 c 0,0 -4.54743,-8.68677 -9.8613,-12.93926 -0.21063,-0.16856 -0.42247,-0.33016 -0.63527,-0.48397 -0.50204,-0.36286 -1.00946,-0.68239 -1.51919,-0.94787 -0.56896,-0.29634 -1.14078,-0.52533 -1.71117,-0.67205 -3.88321,-1.01934 -11.71652,-1.06249 -15.58966,-0.04613 -0.83989,0.21914 -1.6816,0.61173 -2.51203,1.13191 -0.62524,0.39166 -1.24409,0.85564 -1.85095,1.37236 -1.87112,1.5932 -3.6283094,3.68784 -5.1077694,5.71001 -2.59659,3.54911 -4.33766,6.875 -4.33766,6.875"
style="fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none"
id="path5367" />
<path
style="fill:none;stroke:#888a83;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 12.534499,15.979023 2.18704,-4.766 c 5.261057,-2.7432797 11.220313,-3.3671697 17.939063,-0.0056 l 1.96851,4.2035"
id="path5369"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cccc"
d="m 44.708609,28.523883 c 0,0 -6.30803,-12.92857 -13.07068,-14.66816 -3.88321,-1.01933 -11.18527,-1.06248 -15.05841,-0.04613 -6.8441198,1.78572 -11.8396594,12.46429 -11.8396594,12.46429"
style="fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path5371" />
<path
transform="matrix(1.0469083,0,0,2.027027,0.7198796,-35.409607)"
d="m 43.214285,32.24107 c 0,2.736768 -9.374038,4.955357 -20.9375,4.955357 -11.563462,0 -20.9375001,-2.218589 -20.9375001,-4.955357 0,-2.736768 9.3740381,-4.955357 20.9375001,-4.955357 11.563462,0 20.9375,2.218589 20.9375,4.955357 z"
sodipodi:ry="4.9553571"
sodipodi:rx="20.9375"
sodipodi:cy="32.24107"
sodipodi:cx="22.276785"
id="path5373"
style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:0.68646109;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
style="fill:url(#radialGradient7260);fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 44.951119,29.943913 c 0.18941,4.40822 -8.80985,9.06606 -20.90949,9.06606 -12.09964,0 -21.1304594,-4.5947 -20.9094894,-9.06606 -0.1894,-4.56606 8.8098494,-9.03449 20.9094894,-9.03449 12.09964,0 20.94106,4.37373 20.90949,9.03449 z"
id="path5375"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;stroke:#555753;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 31.849489,27.943913 c -0.67407,2.18776 -3.2897,3.38538 -7.80786,3.38538 -4.51815,0 -7.3487,-1.37717 -7.80786,-3.38538 -0.07073,-1.70502 3.28971,-3.37359 7.80786,-3.37359 4.51816,0 7.81965,1.63321 7.80786,3.37359 z"
id="path5377"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:0.96596354;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 17.184019,27.764793 c 0.9704,3.07926 3.66898,5.29604 6.84343,5.29605 3.19412,0 5.90648,-2.24438 6.86128,-5.35345 -0.90064,-1.50063 -4.28117,-2.23685 -6.89061,-2.19358 -3.30434,-0.08574 -5.85648,0.85968 -6.8141,2.25098 z"
id="path5379"
sodipodi:nodetypes="csccc"
inkscape:export-filename="/Users/eve/Documents/UKUI/SpeakerIcon_Test.png"
inkscape:export-xdpi="67.489998"
inkscape:export-ydpi="67.489998" />
<path
id="path5381"
style="fill:none;stroke:#2e3436;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 12.429209,14.847493 c -0.12704,0.1026 -0.3786,0.39515 -0.50465,0.50248 -1.87112,1.5932 -3.6283094,3.68784 -5.1077694,5.71001 -2.59659,3.54911 -4.33766,6.875 -4.33766,6.875 m 43.1249994,0 c 0,0 -4.54743,-8.68677 -9.8613,-12.93926 -0.21063,-0.16856 -0.42247,-0.33016 -0.63527,-0.48397 -0.10052,-0.07265 -0.648157,-0.29253 -0.749077,-0.36162"
sodipodi:nodetypes="cssccsss" />
<path
id="path5383"
style="fill:none;stroke:#888a85;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 31.637929,13.855723 c -3.88321,-1.01933 -11.18527,-1.06248 -15.05841,-0.04613"
sodipodi:nodetypes="cc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -0,0 +1,537 @@
<?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="48"
height="48"
id="svg2643"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docname="audio-speaker-center-testing.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/Users/eve/Documents/UKUI/audio-speaker-left-side-testing.png"
inkscape:export-xdpi="67.489998"
inkscape:export-ydpi="67.489998">
<defs
id="defs2645">
<linearGradient
id="linearGradient3529">
<stop
id="stop3531"
offset="0"
style="stop-color:#fefefe;stop-opacity:1;" />
<stop
id="stop3533"
offset="1"
style="stop-color:#e8e7e6;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4389">
<stop
style="stop-color:#555753;stop-opacity:1;"
offset="0"
id="stop4391" />
<stop
id="stop4393"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4325">
<stop
id="stop4327"
offset="0"
style="stop-color:#2e3436;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4329" />
</linearGradient>
<linearGradient
id="linearGradient21608">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop21610" />
<stop
style="stop-color:#2e3436;stop-opacity:1"
offset="1"
id="stop21612" />
</linearGradient>
<linearGradient
id="linearGradient15341">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop15343" />
<stop
style="stop-color:#555753;stop-opacity:1"
offset="1"
id="stop15345" />
</linearGradient>
<linearGradient
id="linearGradient6371">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop6373" />
<stop
style="stop-color:#d3d7cf;stop-opacity:1;"
offset="1"
id="stop6375" />
</linearGradient>
<linearGradient
id="linearGradient10872">
<stop
id="stop10874"
offset="0"
style="stop-color:#888a85;stop-opacity:1" />
<stop
style="stop-color:#9e9e92;stop-opacity:1;"
offset="0.25301206"
id="stop10876" />
<stop
id="stop10878"
offset="1"
style="stop-color:#555753;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5254">
<stop
id="stop5256"
offset="0"
style="stop-color:#707469;stop-opacity:1;" />
<stop
id="stop5258"
offset="1"
style="stop-color:#2e3335;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient10055">
<stop
style="stop-color:#bebebe;stop-opacity:1;"
offset="0"
id="stop10057" />
<stop
id="stop10061"
offset="0.375"
style="stop-color:#e8e8e8;stop-opacity:1;" />
<stop
style="stop-color:#5c5c5c;stop-opacity:1;"
offset="1"
id="stop10059" />
</linearGradient>
<linearGradient
id="linearGradient4841">
<stop
id="stop4843"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#fcaf3e;stop-opacity:0.94117647;"
offset="0"
id="stop4845" />
<stop
id="stop4847"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4849" />
</linearGradient>
<linearGradient
id="linearGradient4809">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop4811" />
<stop
id="stop4813"
offset="0"
style="stop-color:#ad7fa8;stop-opacity:1;" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop4815" />
<stop
id="stop4817"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient3345">
<stop
id="stop3347"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#729fcf;stop-opacity:1;"
offset="0"
id="stop3351" />
<stop
id="stop3355"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop3349" />
</linearGradient>
<linearGradient
id="linearGradient3223">
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="0"
id="stop3225" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop3227" />
</linearGradient>
<linearGradient
id="linearGradient3503">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop3239" />
<stop
id="stop3507"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective2651" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3501"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3500"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3232"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,47.474934,42.420392)"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138"
spreadMethod="reflect" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5689"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0469084,0,0,0.4796469,270.37856,38.427671)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<inkscape:perspective
id="perspective3474"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient4359"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,-52.447261,-106.14795)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5015"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,42.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5062"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient5064"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient5110"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,142.72007,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3863"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3865"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3906"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3345"
id="radialGradient5554"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,97.725459,40.419065)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient8512"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,97.72545,40.294064)"
spreadMethod="reflect"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="126.80533"
inkscape:cy="41.532441"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:snap-global="false"
inkscape:window-width="1680"
inkscape:window-height="1028"
inkscape:window-x="-12"
inkscape:window-y="0"
showguides="false"
inkscape:guide-bbox="true">
<inkscape:grid
type="xygrid"
id="grid2653"
visible="true"
enabled="true"
color="#ff00ff"
opacity="0.1254902"
empcolor="#0000f2"
empopacity="0.25098039" />
<sodipodi:guide
orientation="1,0"
position="23.969062,28.50558"
id="guide3488" />
<sodipodi:guide
orientation="0,1"
position="-14.142136,73.185552"
id="guide3490" />
<sodipodi:guide
orientation="1,0"
position="-21,-23.25"
id="guide5857" />
<sodipodi:guide
orientation="1,0"
position="-49.5,-22.625"
id="guide5859" />
</sodipodi:namedview>
<metadata
id="metadata2648">
<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="" />
<dc:subject>
<rdf:Bag>
<rdf:li>audio</rdf:li>
<rdf:li>device</rdf:li>
<rdf:li>speaker</rdf:li>
<rdf:li>output</rdf:li>
<rdf:li>center</rdf:li>
<rdf:li>testing</rdf:li>
<rdf:li>highlighted</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:title>audio-speaker-center-testing</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Evangeline McGlynn</dc:title>
</cc:Agent>
</dc:creator>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g8490"
transform="translate(-50.334601,4.1631076e-2)">
<path
sodipodi:nodetypes="ccccc"
id="path8492"
d="M 64.325669,10.506413 C 70.397099,7.0242733 77.468529,7.1135633 83.718529,10.506413 L 85.718529,14.899273 L 62.325669,14.899273 L 64.325669,10.506413 z"
style="fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
sodipodi:nodetypes="csssccsssc"
d="M 95.897099,27.934983 C 95.897099,27.934983 91.349669,19.248213 86.035799,14.995723 C 85.825169,14.827163 85.613329,14.665563 85.400529,14.511753 C 84.898489,14.148893 84.391069,13.829363 83.881339,13.563883 C 83.312379,13.267543 82.740559,13.038553 82.170169,12.891833 C 78.286959,11.872493 70.453649,11.829343 66.580509,12.845703 C 65.740619,13.064843 64.898909,13.457433 64.068479,13.977613 C 63.443239,14.369273 62.824389,14.833253 62.217529,15.349973 C 60.346409,16.943173 58.58922,19.037813 57.10976,21.059983 C 54.51317,24.609093 52.7721,27.934983 52.7721,27.934983"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path8494" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#bfd8f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 62.827469,15.979023 L 65.014509,11.213023 C 70.275566,8.4697433 76.234822,7.8458533 82.953572,11.207463 L 84.922082,15.410963"
id="path8496"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cccc"
d="M 95.001579,28.523883 C 95.001579,28.523883 88.693549,15.595313 81.930899,13.855723 C 78.047689,12.836393 70.745629,12.793243 66.872489,13.809593 C 60.028369,15.595313 55.03283,26.273883 55.03283,26.273883"
style="fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:#bfd8f3;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path8498" />
<path
transform="matrix(1.0469083,0,0,2.027027,51.01285,-35.409607)"
d="M 43.214285,32.24107 A 20.9375,4.9553571 0 1 1 1.3392849,32.24107 A 20.9375,4.9553571 0 1 1 43.214285,32.24107 z"
sodipodi:ry="4.9553571"
sodipodi:rx="20.9375"
sodipodi:cy="32.24107"
sodipodi:cx="22.276785"
id="path8500"
style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:0.68646109;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
sodipodi:nodetypes="ccccc"
id="path8502"
d="M 95.16001,29.859216 C 95.34941,34.267437 86.35016,38.925273 74.250517,38.925273 C 62.150874,38.925273 53.120056,34.330572 53.341027,29.859216 C 53.151624,25.29316 62.150874,20.824727 74.250517,20.824727 C 86.35016,20.824727 95.19158,25.198457 95.16001,29.859216 z"
style="fill:url(#radialGradient8512);fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#555753;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 82.142459,27.943913 C 81.468389,30.131673 78.852759,31.329293 74.334599,31.329293 C 69.816449,31.329293 66.985899,29.952123 66.526739,27.943913 C 66.456009,26.238893 69.816449,24.570323 74.334599,24.570323 C 78.852759,24.570323 82.154249,26.203533 82.142459,27.943913 z"
id="path8504"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:0.96596354;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 67.476989,27.764793 C 68.447389,30.844053 71.145969,33.060833 74.320419,33.060843 C 77.514539,33.060843 80.226899,30.816463 81.181699,27.707393 C 80.281059,26.206763 76.900529,25.470543 74.291089,25.513813 C 70.986749,25.428073 68.434609,26.373493 67.476989,27.764793 z"
id="path8506"
sodipodi:nodetypes="csccc"
inkscape:export-filename="/Users/eve/Documents/UKUI/SpeakerIcon_Test.png"
inkscape:export-xdpi="67.489998"
inkscape:export-ydpi="67.489998" />
<path
id="path8508"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 62.722179,14.847493 C 62.595139,14.950093 62.343579,15.242643 62.217529,15.349973 C 60.346409,16.943173 58.58922,19.037813 57.10976,21.059983 C 54.51317,24.609093 52.7721,27.934983 52.7721,27.934983 M 95.897099,27.934983 C 95.897099,27.934983 91.349669,19.248213 86.035799,14.995723 C 85.825169,14.827163 85.613329,14.665563 85.400529,14.511753 C 85.300009,14.439103 84.752372,14.219223 84.651452,14.150133"
sodipodi:nodetypes="cssccsss" />
<path
id="path8510"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#bfd8f3;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 81.930899,13.855723 C 78.047689,12.836393 70.745629,12.793243 66.872489,13.809593"
sodipodi:nodetypes="cc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -0,0 +1,504 @@
<?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="48"
height="48"
id="svg2643"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docname="audio-speaker-center.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/Users/eve/Documents/UKUI/audio-speaker.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs2645">
<linearGradient
id="linearGradient4389">
<stop
style="stop-color:#555753;stop-opacity:1;"
offset="0"
id="stop4391" />
<stop
id="stop4393"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4325">
<stop
id="stop4327"
offset="0"
style="stop-color:#2e3436;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4329" />
</linearGradient>
<linearGradient
id="linearGradient21608">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop21610" />
<stop
style="stop-color:#2e3436;stop-opacity:1"
offset="1"
id="stop21612" />
</linearGradient>
<linearGradient
id="linearGradient15341">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop15343" />
<stop
style="stop-color:#555753;stop-opacity:1"
offset="1"
id="stop15345" />
</linearGradient>
<linearGradient
id="linearGradient6371">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop6373" />
<stop
style="stop-color:#d3d7cf;stop-opacity:1;"
offset="1"
id="stop6375" />
</linearGradient>
<linearGradient
id="linearGradient10872">
<stop
id="stop10874"
offset="0"
style="stop-color:#888a85;stop-opacity:1" />
<stop
style="stop-color:#9e9e92;stop-opacity:1;"
offset="0.25301206"
id="stop10876" />
<stop
id="stop10878"
offset="1"
style="stop-color:#555753;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5254">
<stop
id="stop5256"
offset="0"
style="stop-color:#707469;stop-opacity:1;" />
<stop
id="stop5258"
offset="1"
style="stop-color:#2e3335;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient10055">
<stop
style="stop-color:#bebebe;stop-opacity:1;"
offset="0"
id="stop10057" />
<stop
id="stop10061"
offset="0.375"
style="stop-color:#e8e8e8;stop-opacity:1;" />
<stop
style="stop-color:#5c5c5c;stop-opacity:1;"
offset="1"
id="stop10059" />
</linearGradient>
<linearGradient
id="linearGradient4841">
<stop
id="stop4843"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#fcaf3e;stop-opacity:0.94117647;"
offset="0"
id="stop4845" />
<stop
id="stop4847"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4849" />
</linearGradient>
<linearGradient
id="linearGradient4809">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop4811" />
<stop
id="stop4813"
offset="0"
style="stop-color:#ad7fa8;stop-opacity:1;" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop4815" />
<stop
id="stop4817"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient3345">
<stop
id="stop3347"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#729fcf;stop-opacity:1;"
offset="0"
id="stop3351" />
<stop
id="stop3355"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop3349" />
</linearGradient>
<linearGradient
id="linearGradient3223">
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="0"
id="stop3225" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop3227" />
</linearGradient>
<linearGradient
id="linearGradient3503">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop3239" />
<stop
id="stop3507"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective2651" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3501"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3500"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3232"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,47.474934,42.420392)"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138"
spreadMethod="reflect" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5689"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0469084,0,0,0.4796469,270.37856,38.427671)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<inkscape:perspective
id="perspective3474"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient4359"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,-52.447261,-106.14795)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5015"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,42.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5062"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient5064"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient5110"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,142.72007,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3863"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3865"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3906"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient7260"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,47.516569,40.378763)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6568542"
inkscape:cx="-53.025818"
inkscape:cy="20.556657"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:snap-global="false"
inkscape:window-width="1680"
inkscape:window-height="1028"
inkscape:window-x="25"
inkscape:window-y="21"
showguides="false"
inkscape:guide-bbox="true">
<inkscape:grid
type="xygrid"
id="grid2653"
visible="true"
enabled="true"
color="#ff00ff"
opacity="0.1254902"
empcolor="#0000f2"
empopacity="0.25098039" />
<sodipodi:guide
orientation="1,0"
position="23.969062,28.50558"
id="guide3488" />
<sodipodi:guide
orientation="0,1"
position="17.401268,34.125445"
id="guide3490" />
</sodipodi:namedview>
<metadata
id="metadata2648">
<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="" />
<dc:subject>
<rdf:Bag>
<rdf:li>audio</rdf:li>
<rdf:li>device</rdf:li>
<rdf:li>speaker</rdf:li>
<rdf:li>output</rdf:li>
<rdf:li>center</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:title>audio-speaker-center</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Evangeline McGlynn</dc:title>
</cc:Agent>
</dc:creator>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g7248"
transform="translate(-4.1630606e-2,4.1631076e-2)">
<path
sodipodi:nodetypes="ccccc"
id="path5365"
d="M 14.032699,10.506413 C 20.104129,7.0242733 27.175559,7.1135633 33.425559,10.506413 L 35.425559,14.899273 L 12.032699,14.899273 L 14.032699,10.506413 z"
style="fill:#babdb6;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
sodipodi:nodetypes="csssccsssc"
d="M 45.604129,27.934983 C 45.604129,27.934983 41.056699,19.248213 35.742829,14.995723 C 35.532199,14.827163 35.320359,14.665563 35.107559,14.511753 C 34.605519,14.148893 34.098099,13.829363 33.588369,13.563883 C 33.019409,13.267543 32.447589,13.038553 31.877199,12.891833 C 27.993989,11.872493 20.160679,11.829343 16.287539,12.845703 C 15.447649,13.064843 14.605939,13.457433 13.775509,13.977613 C 13.150269,14.369273 12.531419,14.833253 11.924559,15.349973 C 10.053439,16.943173 8.2962496,19.037813 6.8167896,21.059983 C 4.2201996,24.609093 2.4791296,27.934983 2.4791296,27.934983"
style="fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path5367" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#888a83;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 12.534499,15.979023 L 14.721539,11.213023 C 19.982596,8.4697433 25.941852,7.8458533 32.660602,11.207463 L 34.629112,15.410963"
id="path5369"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cccc"
d="M 44.708609,28.523883 C 44.708609,28.523883 38.400579,15.595313 31.637929,13.855723 C 27.754719,12.836393 20.452659,12.793243 16.579519,13.809593 C 9.7353992,15.595313 4.7398596,26.273883 4.7398596,26.273883"
style="fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path5371" />
<path
transform="matrix(1.0469083,0,0,2.027027,0.7198796,-35.409607)"
d="M 43.214285,32.24107 A 20.9375,4.9553571 0 1 1 1.3392849,32.24107 A 20.9375,4.9553571 0 1 1 43.214285,32.24107 z"
sodipodi:ry="4.9553571"
sodipodi:rx="20.9375"
sodipodi:cy="32.24107"
sodipodi:cx="22.276785"
id="path5373"
style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:0.68646109;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
style="fill:url(#radialGradient7260);fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 44.951119,29.943913 C 45.140529,34.352133 36.141269,39.009973 24.041629,39.009973 C 11.941989,39.009973 2.9111696,34.415273 3.1321396,29.943913 C 2.9427396,25.377853 11.941989,20.909423 24.041629,20.909423 C 36.141269,20.909423 44.982689,25.283153 44.951119,29.943913 z"
id="path5375"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#555753;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 31.849489,27.943913 C 31.175419,30.131673 28.559789,31.329293 24.041629,31.329293 C 19.523479,31.329293 16.692929,29.952123 16.233769,27.943913 C 16.163039,26.238893 19.523479,24.570323 24.041629,24.570323 C 28.559789,24.570323 31.861279,26.203533 31.849489,27.943913 z"
id="path5377"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:0.96596354;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 17.184019,27.764793 C 18.154419,30.844053 20.852999,33.060833 24.027449,33.060843 C 27.221569,33.060843 29.933929,30.816463 30.888729,27.707393 C 29.988089,26.206763 26.607559,25.470543 23.998119,25.513813 C 20.693779,25.428073 18.141639,26.373493 17.184019,27.764793 z"
id="path5379"
sodipodi:nodetypes="csccc"
inkscape:export-filename="/Users/eve/Documents/UKUI/SpeakerIcon_Test.png"
inkscape:export-xdpi="67.489998"
inkscape:export-ydpi="67.489998" />
<path
id="path5381"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 12.429209,14.847493 C 12.302169,14.950093 12.050609,15.242643 11.924559,15.349973 C 10.053439,16.943173 8.2962496,19.037813 6.8167896,21.059983 C 4.2201996,24.609093 2.4791296,27.934983 2.4791296,27.934983 M 45.604129,27.934983 C 45.604129,27.934983 41.056699,19.248213 35.742829,14.995723 C 35.532199,14.827163 35.320359,14.665563 35.107559,14.511753 C 35.007039,14.439103 34.459402,14.219223 34.358482,14.150133"
sodipodi:nodetypes="cssccsss" />
<path
id="path5383"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 31.637929,13.855723 C 27.754719,12.836393 20.452659,12.793243 16.579519,13.809593"
sodipodi:nodetypes="cc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -0,0 +1,537 @@
<?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="48"
height="48"
id="svg2643"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docname="audio-speaker-left-back-testing.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/Users/eve/Documents/UKUI/audio-speaker-left-testing.png"
inkscape:export-xdpi="67.489998"
inkscape:export-ydpi="67.489998">
<defs
id="defs2645">
<linearGradient
id="linearGradient3529">
<stop
id="stop3531"
offset="0"
style="stop-color:#fefefe;stop-opacity:1;" />
<stop
id="stop3533"
offset="1"
style="stop-color:#e8e7e6;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4389">
<stop
style="stop-color:#555753;stop-opacity:1;"
offset="0"
id="stop4391" />
<stop
id="stop4393"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4325">
<stop
id="stop4327"
offset="0"
style="stop-color:#2e3436;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4329" />
</linearGradient>
<linearGradient
id="linearGradient21608">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop21610" />
<stop
style="stop-color:#2e3436;stop-opacity:1"
offset="1"
id="stop21612" />
</linearGradient>
<linearGradient
id="linearGradient15341">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop15343" />
<stop
style="stop-color:#555753;stop-opacity:1"
offset="1"
id="stop15345" />
</linearGradient>
<linearGradient
id="linearGradient6371">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop6373" />
<stop
style="stop-color:#d3d7cf;stop-opacity:1;"
offset="1"
id="stop6375" />
</linearGradient>
<linearGradient
id="linearGradient10872">
<stop
id="stop10874"
offset="0"
style="stop-color:#888a85;stop-opacity:1" />
<stop
style="stop-color:#9e9e92;stop-opacity:1;"
offset="0.25301206"
id="stop10876" />
<stop
id="stop10878"
offset="1"
style="stop-color:#555753;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5254">
<stop
id="stop5256"
offset="0"
style="stop-color:#707469;stop-opacity:1;" />
<stop
id="stop5258"
offset="1"
style="stop-color:#2e3335;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient10055">
<stop
style="stop-color:#bebebe;stop-opacity:1;"
offset="0"
id="stop10057" />
<stop
id="stop10061"
offset="0.375"
style="stop-color:#e8e8e8;stop-opacity:1;" />
<stop
style="stop-color:#5c5c5c;stop-opacity:1;"
offset="1"
id="stop10059" />
</linearGradient>
<linearGradient
id="linearGradient4841">
<stop
id="stop4843"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#fcaf3e;stop-opacity:0.94117647;"
offset="0"
id="stop4845" />
<stop
id="stop4847"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4849" />
</linearGradient>
<linearGradient
id="linearGradient4809">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop4811" />
<stop
id="stop4813"
offset="0"
style="stop-color:#ad7fa8;stop-opacity:1;" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop4815" />
<stop
id="stop4817"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient3345">
<stop
id="stop3347"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#729fcf;stop-opacity:1;"
offset="0"
id="stop3351" />
<stop
id="stop3355"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop3349" />
</linearGradient>
<linearGradient
id="linearGradient3223">
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="0"
id="stop3225" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop3227" />
</linearGradient>
<linearGradient
id="linearGradient3503">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop3239" />
<stop
id="stop3507"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective2651" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3501"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3500"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3232"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,47.474934,42.420392)"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138"
spreadMethod="reflect" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5689"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0469084,0,0,0.4796469,270.37856,38.427671)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<inkscape:perspective
id="perspective3474"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient4359"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,-52.447261,-106.14795)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5015"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,42.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5062"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient5064"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient5110"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,142.72007,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3863"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3865"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3906"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3345"
id="radialGradient5554"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,97.725459,40.419065)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient8512"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,97.72545,40.294064)"
spreadMethod="reflect"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="126.80533"
inkscape:cy="41.532441"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:snap-global="false"
inkscape:window-width="1680"
inkscape:window-height="1028"
inkscape:window-x="-12"
inkscape:window-y="0"
showguides="false"
inkscape:guide-bbox="true">
<inkscape:grid
type="xygrid"
id="grid2653"
visible="true"
enabled="true"
color="#ff00ff"
opacity="0.1254902"
empcolor="#0000f2"
empopacity="0.25098039" />
<sodipodi:guide
orientation="1,0"
position="23.969062,28.50558"
id="guide3488" />
<sodipodi:guide
orientation="0,1"
position="-14.142136,73.185552"
id="guide3490" />
<sodipodi:guide
orientation="1,0"
position="-21,-23.25"
id="guide5857" />
<sodipodi:guide
orientation="1,0"
position="-49.5,-22.625"
id="guide5859" />
</sodipodi:namedview>
<metadata
id="metadata2648">
<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="" />
<dc:subject>
<rdf:Bag>
<rdf:li>audio</rdf:li>
<rdf:li>device</rdf:li>
<rdf:li>speaker</rdf:li>
<rdf:li>output</rdf:li>
<rdf:li>left-back</rdf:li>
<rdf:li>testing</rdf:li>
<rdf:li>highlighted</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:title>audio-speaker-left-b-testing</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Evangeline McGlynn</dc:title>
</cc:Agent>
</dc:creator>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g8490"
transform="matrix(-0.7071068,-0.7071068,0.7071068,-0.7071068,57.052876,95.851156)">
<path
sodipodi:nodetypes="ccccc"
id="path8492"
d="M 64.325669,10.506413 C 70.397099,7.0242733 77.468529,7.1135633 83.718529,10.506413 L 85.718529,14.899273 L 62.325669,14.899273 L 64.325669,10.506413 z"
style="fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
sodipodi:nodetypes="csssccsssc"
d="M 95.897099,27.934983 C 95.897099,27.934983 91.349669,19.248213 86.035799,14.995723 C 85.825169,14.827163 85.613329,14.665563 85.400529,14.511753 C 84.898489,14.148893 84.391069,13.829363 83.881339,13.563883 C 83.312379,13.267543 82.740559,13.038553 82.170169,12.891833 C 78.286959,11.872493 70.453649,11.829343 66.580509,12.845703 C 65.740619,13.064843 64.898909,13.457433 64.068479,13.977613 C 63.443239,14.369273 62.824389,14.833253 62.217529,15.349973 C 60.346409,16.943173 58.58922,19.037813 57.10976,21.059983 C 54.51317,24.609093 52.7721,27.934983 52.7721,27.934983"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path8494" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#bfd8f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 62.827469,15.979023 L 65.014509,11.213023 C 70.275566,8.4697433 76.234822,7.8458533 82.953572,11.207463 L 84.922082,15.410963"
id="path8496"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cccc"
d="M 95.001579,28.523883 C 95.001579,28.523883 88.693549,15.595313 81.930899,13.855723 C 78.047689,12.836393 70.745629,12.793243 66.872489,13.809593 C 60.028369,15.595313 55.03283,26.273883 55.03283,26.273883"
style="fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:#bfd8f3;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path8498" />
<path
transform="matrix(1.0469083,0,0,2.027027,51.01285,-35.409607)"
d="M 43.214285,32.24107 A 20.9375,4.9553571 0 1 1 1.3392849,32.24107 A 20.9375,4.9553571 0 1 1 43.214285,32.24107 z"
sodipodi:ry="4.9553571"
sodipodi:rx="20.9375"
sodipodi:cy="32.24107"
sodipodi:cx="22.276785"
id="path8500"
style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:0.68646109;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
sodipodi:nodetypes="ccccc"
id="path8502"
d="M 95.16001,29.859216 C 95.34941,34.267437 86.35016,38.925273 74.250517,38.925273 C 62.150874,38.925273 53.120056,34.330572 53.341027,29.859216 C 53.151624,25.29316 62.150874,20.824727 74.250517,20.824727 C 86.35016,20.824727 95.19158,25.198457 95.16001,29.859216 z"
style="fill:url(#radialGradient8512);fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#555753;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 82.142459,27.943913 C 81.468389,30.131673 78.852759,31.329293 74.334599,31.329293 C 69.816449,31.329293 66.985899,29.952123 66.526739,27.943913 C 66.456009,26.238893 69.816449,24.570323 74.334599,24.570323 C 78.852759,24.570323 82.154249,26.203533 82.142459,27.943913 z"
id="path8504"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:0.96596354;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 67.476989,27.764793 C 68.447389,30.844053 71.145969,33.060833 74.320419,33.060843 C 77.514539,33.060843 80.226899,30.816463 81.181699,27.707393 C 80.281059,26.206763 76.900529,25.470543 74.291089,25.513813 C 70.986749,25.428073 68.434609,26.373493 67.476989,27.764793 z"
id="path8506"
sodipodi:nodetypes="csccc"
inkscape:export-filename="/Users/eve/Documents/UKUI/SpeakerIcon_Test.png"
inkscape:export-xdpi="67.489998"
inkscape:export-ydpi="67.489998" />
<path
id="path8508"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 62.722179,14.847493 C 62.595139,14.950093 62.343579,15.242643 62.217529,15.349973 C 60.346409,16.943173 58.58922,19.037813 57.10976,21.059983 C 54.51317,24.609093 52.7721,27.934983 52.7721,27.934983 M 95.897099,27.934983 C 95.897099,27.934983 91.349669,19.248213 86.035799,14.995723 C 85.825169,14.827163 85.613329,14.665563 85.400529,14.511753 C 85.300009,14.439103 84.752372,14.219223 84.651452,14.150133"
sodipodi:nodetypes="cssccsss" />
<path
id="path8510"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#bfd8f3;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 81.930899,13.855723 C 78.047689,12.836393 70.745629,12.793243 66.872489,13.809593"
sodipodi:nodetypes="cc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -0,0 +1,504 @@
<?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="48"
height="48"
id="svg2643"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docname="audio-speaker-left-back.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/Users/eve/Documents/UKUI/audio-speaker-left.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs2645">
<linearGradient
id="linearGradient4389">
<stop
style="stop-color:#555753;stop-opacity:1;"
offset="0"
id="stop4391" />
<stop
id="stop4393"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4325">
<stop
id="stop4327"
offset="0"
style="stop-color:#2e3436;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4329" />
</linearGradient>
<linearGradient
id="linearGradient21608">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop21610" />
<stop
style="stop-color:#2e3436;stop-opacity:1"
offset="1"
id="stop21612" />
</linearGradient>
<linearGradient
id="linearGradient15341">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop15343" />
<stop
style="stop-color:#555753;stop-opacity:1"
offset="1"
id="stop15345" />
</linearGradient>
<linearGradient
id="linearGradient6371">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop6373" />
<stop
style="stop-color:#d3d7cf;stop-opacity:1;"
offset="1"
id="stop6375" />
</linearGradient>
<linearGradient
id="linearGradient10872">
<stop
id="stop10874"
offset="0"
style="stop-color:#888a85;stop-opacity:1" />
<stop
style="stop-color:#9e9e92;stop-opacity:1;"
offset="0.25301206"
id="stop10876" />
<stop
id="stop10878"
offset="1"
style="stop-color:#555753;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5254">
<stop
id="stop5256"
offset="0"
style="stop-color:#707469;stop-opacity:1;" />
<stop
id="stop5258"
offset="1"
style="stop-color:#2e3335;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient10055">
<stop
style="stop-color:#bebebe;stop-opacity:1;"
offset="0"
id="stop10057" />
<stop
id="stop10061"
offset="0.375"
style="stop-color:#e8e8e8;stop-opacity:1;" />
<stop
style="stop-color:#5c5c5c;stop-opacity:1;"
offset="1"
id="stop10059" />
</linearGradient>
<linearGradient
id="linearGradient4841">
<stop
id="stop4843"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#fcaf3e;stop-opacity:0.94117647;"
offset="0"
id="stop4845" />
<stop
id="stop4847"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4849" />
</linearGradient>
<linearGradient
id="linearGradient4809">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop4811" />
<stop
id="stop4813"
offset="0"
style="stop-color:#ad7fa8;stop-opacity:1;" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop4815" />
<stop
id="stop4817"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient3345">
<stop
id="stop3347"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#729fcf;stop-opacity:1;"
offset="0"
id="stop3351" />
<stop
id="stop3355"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop3349" />
</linearGradient>
<linearGradient
id="linearGradient3223">
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="0"
id="stop3225" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop3227" />
</linearGradient>
<linearGradient
id="linearGradient3503">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop3239" />
<stop
id="stop3507"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective2651" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3501"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3500"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3232"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,47.474934,42.420392)"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138"
spreadMethod="reflect" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5689"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0469084,0,0,0.4796469,270.37856,38.427671)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<inkscape:perspective
id="perspective3474"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient4359"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,-52.447261,-106.14795)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5015"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,42.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5062"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient5064"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient5110"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,142.72007,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3863"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3865"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3906"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient7260"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,47.516569,40.378763)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6568542"
inkscape:cx="-53.376308"
inkscape:cy="20.556657"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:snap-global="false"
inkscape:window-width="1601"
inkscape:window-height="942"
inkscape:window-x="5"
inkscape:window-y="1"
showguides="false"
inkscape:guide-bbox="true">
<inkscape:grid
type="xygrid"
id="grid2653"
visible="true"
enabled="true"
color="#ff00ff"
opacity="0.1254902"
empcolor="#0000f2"
empopacity="0.25098039" />
<sodipodi:guide
orientation="1,0"
position="23.969062,28.50558"
id="guide3488" />
<sodipodi:guide
orientation="0,1"
position="17.401268,34.125445"
id="guide3490" />
</sodipodi:namedview>
<metadata
id="metadata2648">
<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="" />
<dc:subject>
<rdf:Bag>
<rdf:li>audio</rdf:li>
<rdf:li>device</rdf:li>
<rdf:li>speaker</rdf:li>
<rdf:li>output</rdf:li>
<rdf:li>left-back</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:title>audio-speaker-left-back</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Evangeline McGlynn</dc:title>
</cc:Agent>
</dc:creator>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g7248"
transform="matrix(-0.7071068,-0.7071068,0.7071068,-0.7071068,21.490375,60.288654)">
<path
sodipodi:nodetypes="ccccc"
id="path5365"
d="M 14.032699,10.506413 C 20.104129,7.0242733 27.175559,7.1135633 33.425559,10.506413 L 35.425559,14.899273 L 12.032699,14.899273 L 14.032699,10.506413 z"
style="fill:#babdb6;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
sodipodi:nodetypes="csssccsssc"
d="M 45.604129,27.934983 C 45.604129,27.934983 41.056699,19.248213 35.742829,14.995723 C 35.532199,14.827163 35.320359,14.665563 35.107559,14.511753 C 34.605519,14.148893 34.098099,13.829363 33.588369,13.563883 C 33.019409,13.267543 32.447589,13.038553 31.877199,12.891833 C 27.993989,11.872493 20.160679,11.829343 16.287539,12.845703 C 15.447649,13.064843 14.605939,13.457433 13.775509,13.977613 C 13.150269,14.369273 12.531419,14.833253 11.924559,15.349973 C 10.053439,16.943173 8.2962496,19.037813 6.8167896,21.059983 C 4.2201996,24.609093 2.4791296,27.934983 2.4791296,27.934983"
style="fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path5367" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#888a83;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 12.534499,15.979023 L 14.721539,11.213023 C 19.982596,8.4697433 25.941852,7.8458533 32.660602,11.207463 L 34.629112,15.410963"
id="path5369"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cccc"
d="M 44.708609,28.523883 C 44.708609,28.523883 38.400579,15.595313 31.637929,13.855723 C 27.754719,12.836393 20.452659,12.793243 16.579519,13.809593 C 9.7353992,15.595313 4.7398596,26.273883 4.7398596,26.273883"
style="fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path5371" />
<path
transform="matrix(1.0469083,0,0,2.027027,0.7198796,-35.409607)"
d="M 43.214285,32.24107 A 20.9375,4.9553571 0 1 1 1.3392849,32.24107 A 20.9375,4.9553571 0 1 1 43.214285,32.24107 z"
sodipodi:ry="4.9553571"
sodipodi:rx="20.9375"
sodipodi:cy="32.24107"
sodipodi:cx="22.276785"
id="path5373"
style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:0.68646109;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
style="fill:url(#radialGradient7260);fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 44.951119,29.943913 C 45.140529,34.352133 36.141269,39.009973 24.041629,39.009973 C 11.941989,39.009973 2.9111696,34.415273 3.1321396,29.943913 C 2.9427396,25.377853 11.941989,20.909423 24.041629,20.909423 C 36.141269,20.909423 44.982689,25.283153 44.951119,29.943913 z"
id="path5375"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#555753;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 31.849489,27.943913 C 31.175419,30.131673 28.559789,31.329293 24.041629,31.329293 C 19.523479,31.329293 16.692929,29.952123 16.233769,27.943913 C 16.163039,26.238893 19.523479,24.570323 24.041629,24.570323 C 28.559789,24.570323 31.861279,26.203533 31.849489,27.943913 z"
id="path5377"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:0.96596354;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 17.184019,27.764793 C 18.154419,30.844053 20.852999,33.060833 24.027449,33.060843 C 27.221569,33.060843 29.933929,30.816463 30.888729,27.707393 C 29.988089,26.206763 26.607559,25.470543 23.998119,25.513813 C 20.693779,25.428073 18.141639,26.373493 17.184019,27.764793 z"
id="path5379"
sodipodi:nodetypes="csccc"
inkscape:export-filename="/Users/eve/Documents/UKUI/SpeakerIcon_Test.png"
inkscape:export-xdpi="67.489998"
inkscape:export-ydpi="67.489998" />
<path
id="path5381"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 12.429209,14.847493 C 12.302169,14.950093 12.050609,15.242643 11.924559,15.349973 C 10.053439,16.943173 8.2962496,19.037813 6.8167896,21.059983 C 4.2201996,24.609093 2.4791296,27.934983 2.4791296,27.934983 M 45.604129,27.934983 C 45.604129,27.934983 41.056699,19.248213 35.742829,14.995723 C 35.532199,14.827163 35.320359,14.665563 35.107559,14.511753 C 35.007039,14.439103 34.459402,14.219223 34.358482,14.150133"
sodipodi:nodetypes="cssccsss" />
<path
id="path5383"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 31.637929,13.855723 C 27.754719,12.836393 20.452659,12.793243 16.579519,13.809593"
sodipodi:nodetypes="cc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -0,0 +1,537 @@
<?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="48"
height="48"
id="svg2643"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docname="audio-speaker-left-side-testing.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/Users/eve/Documents/UKUI/audio-speaker-right-side-testing.png"
inkscape:export-xdpi="67.489998"
inkscape:export-ydpi="67.489998">
<defs
id="defs2645">
<linearGradient
id="linearGradient3529">
<stop
id="stop3531"
offset="0"
style="stop-color:#fefefe;stop-opacity:1;" />
<stop
id="stop3533"
offset="1"
style="stop-color:#e8e7e6;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4389">
<stop
style="stop-color:#555753;stop-opacity:1;"
offset="0"
id="stop4391" />
<stop
id="stop4393"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4325">
<stop
id="stop4327"
offset="0"
style="stop-color:#2e3436;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4329" />
</linearGradient>
<linearGradient
id="linearGradient21608">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop21610" />
<stop
style="stop-color:#2e3436;stop-opacity:1"
offset="1"
id="stop21612" />
</linearGradient>
<linearGradient
id="linearGradient15341">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop15343" />
<stop
style="stop-color:#555753;stop-opacity:1"
offset="1"
id="stop15345" />
</linearGradient>
<linearGradient
id="linearGradient6371">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop6373" />
<stop
style="stop-color:#d3d7cf;stop-opacity:1;"
offset="1"
id="stop6375" />
</linearGradient>
<linearGradient
id="linearGradient10872">
<stop
id="stop10874"
offset="0"
style="stop-color:#888a85;stop-opacity:1" />
<stop
style="stop-color:#9e9e92;stop-opacity:1;"
offset="0.25301206"
id="stop10876" />
<stop
id="stop10878"
offset="1"
style="stop-color:#555753;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5254">
<stop
id="stop5256"
offset="0"
style="stop-color:#707469;stop-opacity:1;" />
<stop
id="stop5258"
offset="1"
style="stop-color:#2e3335;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient10055">
<stop
style="stop-color:#bebebe;stop-opacity:1;"
offset="0"
id="stop10057" />
<stop
id="stop10061"
offset="0.375"
style="stop-color:#e8e8e8;stop-opacity:1;" />
<stop
style="stop-color:#5c5c5c;stop-opacity:1;"
offset="1"
id="stop10059" />
</linearGradient>
<linearGradient
id="linearGradient4841">
<stop
id="stop4843"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#fcaf3e;stop-opacity:0.94117647;"
offset="0"
id="stop4845" />
<stop
id="stop4847"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4849" />
</linearGradient>
<linearGradient
id="linearGradient4809">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop4811" />
<stop
id="stop4813"
offset="0"
style="stop-color:#ad7fa8;stop-opacity:1;" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop4815" />
<stop
id="stop4817"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient3345">
<stop
id="stop3347"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#729fcf;stop-opacity:1;"
offset="0"
id="stop3351" />
<stop
id="stop3355"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop3349" />
</linearGradient>
<linearGradient
id="linearGradient3223">
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="0"
id="stop3225" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop3227" />
</linearGradient>
<linearGradient
id="linearGradient3503">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop3239" />
<stop
id="stop3507"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective2651" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3501"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3500"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3232"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,47.474934,42.420392)"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138"
spreadMethod="reflect" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5689"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0469084,0,0,0.4796469,270.37856,38.427671)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<inkscape:perspective
id="perspective3474"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient4359"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,-52.447261,-106.14795)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5015"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,42.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5062"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient5064"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient5110"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,142.72007,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3863"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3865"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3906"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3345"
id="radialGradient5554"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,97.725459,40.419065)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient8512"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,97.72545,40.294064)"
spreadMethod="reflect"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="126.80533"
inkscape:cy="41.532441"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:snap-global="false"
inkscape:window-width="1680"
inkscape:window-height="1028"
inkscape:window-x="-12"
inkscape:window-y="0"
showguides="false"
inkscape:guide-bbox="true">
<inkscape:grid
type="xygrid"
id="grid2653"
visible="true"
enabled="true"
color="#ff00ff"
opacity="0.1254902"
empcolor="#0000f2"
empopacity="0.25098039" />
<sodipodi:guide
orientation="1,0"
position="23.969062,28.50558"
id="guide3488" />
<sodipodi:guide
orientation="0,1"
position="-14.142136,73.185552"
id="guide3490" />
<sodipodi:guide
orientation="1,0"
position="-21,-23.25"
id="guide5857" />
<sodipodi:guide
orientation="1,0"
position="-49.5,-22.625"
id="guide5859" />
</sodipodi:namedview>
<metadata
id="metadata2648">
<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="" />
<dc:subject>
<rdf:Bag>
<rdf:li>audio</rdf:li>
<rdf:li>device</rdf:li>
<rdf:li>speaker</rdf:li>
<rdf:li>output</rdf:li>
<rdf:li>left-side</rdf:li>
<rdf:li>testing</rdf:li>
<rdf:li>highlighted</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:title>audio-speaker-left-side-testing</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Evangeline McGlynn</dc:title>
</cc:Agent>
</dc:creator>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g8490"
transform="matrix(0,-1,1,0,4.1631076e-2,98.334601)">
<path
sodipodi:nodetypes="ccccc"
id="path8492"
d="M 64.325669,10.506413 C 70.397099,7.0242733 77.468529,7.1135633 83.718529,10.506413 L 85.718529,14.899273 L 62.325669,14.899273 L 64.325669,10.506413 z"
style="fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
sodipodi:nodetypes="csssccsssc"
d="M 95.897099,27.934983 C 95.897099,27.934983 91.349669,19.248213 86.035799,14.995723 C 85.825169,14.827163 85.613329,14.665563 85.400529,14.511753 C 84.898489,14.148893 84.391069,13.829363 83.881339,13.563883 C 83.312379,13.267543 82.740559,13.038553 82.170169,12.891833 C 78.286959,11.872493 70.453649,11.829343 66.580509,12.845703 C 65.740619,13.064843 64.898909,13.457433 64.068479,13.977613 C 63.443239,14.369273 62.824389,14.833253 62.217529,15.349973 C 60.346409,16.943173 58.58922,19.037813 57.10976,21.059983 C 54.51317,24.609093 52.7721,27.934983 52.7721,27.934983"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path8494" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#bfd8f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 62.827469,15.979023 L 65.014509,11.213023 C 70.275566,8.4697433 76.234822,7.8458533 82.953572,11.207463 L 84.922082,15.410963"
id="path8496"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cccc"
d="M 95.001579,28.523883 C 95.001579,28.523883 88.693549,15.595313 81.930899,13.855723 C 78.047689,12.836393 70.745629,12.793243 66.872489,13.809593 C 60.028369,15.595313 55.03283,26.273883 55.03283,26.273883"
style="fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:#bfd8f3;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path8498" />
<path
transform="matrix(1.0469083,0,0,2.027027,51.01285,-35.409607)"
d="M 43.214285,32.24107 A 20.9375,4.9553571 0 1 1 1.3392849,32.24107 A 20.9375,4.9553571 0 1 1 43.214285,32.24107 z"
sodipodi:ry="4.9553571"
sodipodi:rx="20.9375"
sodipodi:cy="32.24107"
sodipodi:cx="22.276785"
id="path8500"
style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:0.68646109;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
sodipodi:nodetypes="ccccc"
id="path8502"
d="M 95.16001,29.859216 C 95.34941,34.267437 86.35016,38.925273 74.250517,38.925273 C 62.150874,38.925273 53.120056,34.330572 53.341027,29.859216 C 53.151624,25.29316 62.150874,20.824727 74.250517,20.824727 C 86.35016,20.824727 95.19158,25.198457 95.16001,29.859216 z"
style="fill:url(#radialGradient8512);fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#555753;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 82.142459,27.943913 C 81.468389,30.131673 78.852759,31.329293 74.334599,31.329293 C 69.816449,31.329293 66.985899,29.952123 66.526739,27.943913 C 66.456009,26.238893 69.816449,24.570323 74.334599,24.570323 C 78.852759,24.570323 82.154249,26.203533 82.142459,27.943913 z"
id="path8504"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:0.96596354;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 67.476989,27.764793 C 68.447389,30.844053 71.145969,33.060833 74.320419,33.060843 C 77.514539,33.060843 80.226899,30.816463 81.181699,27.707393 C 80.281059,26.206763 76.900529,25.470543 74.291089,25.513813 C 70.986749,25.428073 68.434609,26.373493 67.476989,27.764793 z"
id="path8506"
sodipodi:nodetypes="csccc"
inkscape:export-filename="/Users/eve/Documents/UKUI/SpeakerIcon_Test.png"
inkscape:export-xdpi="67.489998"
inkscape:export-ydpi="67.489998" />
<path
id="path8508"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 62.722179,14.847493 C 62.595139,14.950093 62.343579,15.242643 62.217529,15.349973 C 60.346409,16.943173 58.58922,19.037813 57.10976,21.059983 C 54.51317,24.609093 52.7721,27.934983 52.7721,27.934983 M 95.897099,27.934983 C 95.897099,27.934983 91.349669,19.248213 86.035799,14.995723 C 85.825169,14.827163 85.613329,14.665563 85.400529,14.511753 C 85.300009,14.439103 84.752372,14.219223 84.651452,14.150133"
sodipodi:nodetypes="cssccsss" />
<path
id="path8510"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#bfd8f3;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 81.930899,13.855723 C 78.047689,12.836393 70.745629,12.793243 66.872489,13.809593"
sodipodi:nodetypes="cc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -0,0 +1,504 @@
<?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="48"
height="48"
id="svg2643"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docname="audio-speaker-left-side.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/Users/eve/Documents/UKUI/audio-speaker-left-side.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs2645">
<linearGradient
id="linearGradient4389">
<stop
style="stop-color:#555753;stop-opacity:1;"
offset="0"
id="stop4391" />
<stop
id="stop4393"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4325">
<stop
id="stop4327"
offset="0"
style="stop-color:#2e3436;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4329" />
</linearGradient>
<linearGradient
id="linearGradient21608">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop21610" />
<stop
style="stop-color:#2e3436;stop-opacity:1"
offset="1"
id="stop21612" />
</linearGradient>
<linearGradient
id="linearGradient15341">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop15343" />
<stop
style="stop-color:#555753;stop-opacity:1"
offset="1"
id="stop15345" />
</linearGradient>
<linearGradient
id="linearGradient6371">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop6373" />
<stop
style="stop-color:#d3d7cf;stop-opacity:1;"
offset="1"
id="stop6375" />
</linearGradient>
<linearGradient
id="linearGradient10872">
<stop
id="stop10874"
offset="0"
style="stop-color:#888a85;stop-opacity:1" />
<stop
style="stop-color:#9e9e92;stop-opacity:1;"
offset="0.25301206"
id="stop10876" />
<stop
id="stop10878"
offset="1"
style="stop-color:#555753;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5254">
<stop
id="stop5256"
offset="0"
style="stop-color:#707469;stop-opacity:1;" />
<stop
id="stop5258"
offset="1"
style="stop-color:#2e3335;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient10055">
<stop
style="stop-color:#bebebe;stop-opacity:1;"
offset="0"
id="stop10057" />
<stop
id="stop10061"
offset="0.375"
style="stop-color:#e8e8e8;stop-opacity:1;" />
<stop
style="stop-color:#5c5c5c;stop-opacity:1;"
offset="1"
id="stop10059" />
</linearGradient>
<linearGradient
id="linearGradient4841">
<stop
id="stop4843"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#fcaf3e;stop-opacity:0.94117647;"
offset="0"
id="stop4845" />
<stop
id="stop4847"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4849" />
</linearGradient>
<linearGradient
id="linearGradient4809">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop4811" />
<stop
id="stop4813"
offset="0"
style="stop-color:#ad7fa8;stop-opacity:1;" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop4815" />
<stop
id="stop4817"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient3345">
<stop
id="stop3347"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#729fcf;stop-opacity:1;"
offset="0"
id="stop3351" />
<stop
id="stop3355"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop3349" />
</linearGradient>
<linearGradient
id="linearGradient3223">
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="0"
id="stop3225" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop3227" />
</linearGradient>
<linearGradient
id="linearGradient3503">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop3239" />
<stop
id="stop3507"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective2651" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3501"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3500"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3232"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,47.474934,42.420392)"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138"
spreadMethod="reflect" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5689"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0469084,0,0,0.4796469,270.37856,38.427671)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<inkscape:perspective
id="perspective3474"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient4359"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,-52.447261,-106.14795)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5015"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,42.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5062"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient5064"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient5110"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,142.72007,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3863"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3865"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3906"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient7260"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,47.516569,40.378763)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6568542"
inkscape:cx="-15.988037"
inkscape:cy="20.556657"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:snap-global="false"
inkscape:window-width="1601"
inkscape:window-height="942"
inkscape:window-x="5"
inkscape:window-y="1"
showguides="false"
inkscape:guide-bbox="true">
<inkscape:grid
type="xygrid"
id="grid2653"
visible="true"
enabled="true"
color="#ff00ff"
opacity="0.1254902"
empcolor="#0000f2"
empopacity="0.25098039" />
<sodipodi:guide
orientation="1,0"
position="23.969062,28.50558"
id="guide3488" />
<sodipodi:guide
orientation="0,1"
position="17.401268,34.125445"
id="guide3490" />
</sodipodi:namedview>
<metadata
id="metadata2648">
<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="" />
<dc:subject>
<rdf:Bag>
<rdf:li>audio</rdf:li>
<rdf:li>device</rdf:li>
<rdf:li>speaker</rdf:li>
<rdf:li>output</rdf:li>
<rdf:li>left-side</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:title>audio-speaker-left-side</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Evangeline McGlynn</dc:title>
</cc:Agent>
</dc:creator>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g7248"
transform="matrix(0,-1,1,0,4.1631076e-2,48.041631)">
<path
sodipodi:nodetypes="ccccc"
id="path5365"
d="M 14.032699,10.506413 C 20.104129,7.0242733 27.175559,7.1135633 33.425559,10.506413 L 35.425559,14.899273 L 12.032699,14.899273 L 14.032699,10.506413 z"
style="fill:#babdb6;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
sodipodi:nodetypes="csssccsssc"
d="M 45.604129,27.934983 C 45.604129,27.934983 41.056699,19.248213 35.742829,14.995723 C 35.532199,14.827163 35.320359,14.665563 35.107559,14.511753 C 34.605519,14.148893 34.098099,13.829363 33.588369,13.563883 C 33.019409,13.267543 32.447589,13.038553 31.877199,12.891833 C 27.993989,11.872493 20.160679,11.829343 16.287539,12.845703 C 15.447649,13.064843 14.605939,13.457433 13.775509,13.977613 C 13.150269,14.369273 12.531419,14.833253 11.924559,15.349973 C 10.053439,16.943173 8.2962496,19.037813 6.8167896,21.059983 C 4.2201996,24.609093 2.4791296,27.934983 2.4791296,27.934983"
style="fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path5367" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#888a83;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 12.534499,15.979023 L 14.721539,11.213023 C 19.982596,8.4697433 25.941852,7.8458533 32.660602,11.207463 L 34.629112,15.410963"
id="path5369"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cccc"
d="M 44.708609,28.523883 C 44.708609,28.523883 38.400579,15.595313 31.637929,13.855723 C 27.754719,12.836393 20.452659,12.793243 16.579519,13.809593 C 9.7353992,15.595313 4.7398596,26.273883 4.7398596,26.273883"
style="fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path5371" />
<path
transform="matrix(1.0469083,0,0,2.027027,0.7198796,-35.409607)"
d="M 43.214285,32.24107 A 20.9375,4.9553571 0 1 1 1.3392849,32.24107 A 20.9375,4.9553571 0 1 1 43.214285,32.24107 z"
sodipodi:ry="4.9553571"
sodipodi:rx="20.9375"
sodipodi:cy="32.24107"
sodipodi:cx="22.276785"
id="path5373"
style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:0.68646109;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
style="fill:url(#radialGradient7260);fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 44.951119,29.943913 C 45.140529,34.352133 36.141269,39.009973 24.041629,39.009973 C 11.941989,39.009973 2.9111696,34.415273 3.1321396,29.943913 C 2.9427396,25.377853 11.941989,20.909423 24.041629,20.909423 C 36.141269,20.909423 44.982689,25.283153 44.951119,29.943913 z"
id="path5375"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#555753;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 31.849489,27.943913 C 31.175419,30.131673 28.559789,31.329293 24.041629,31.329293 C 19.523479,31.329293 16.692929,29.952123 16.233769,27.943913 C 16.163039,26.238893 19.523479,24.570323 24.041629,24.570323 C 28.559789,24.570323 31.861279,26.203533 31.849489,27.943913 z"
id="path5377"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:0.96596354;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 17.184019,27.764793 C 18.154419,30.844053 20.852999,33.060833 24.027449,33.060843 C 27.221569,33.060843 29.933929,30.816463 30.888729,27.707393 C 29.988089,26.206763 26.607559,25.470543 23.998119,25.513813 C 20.693779,25.428073 18.141639,26.373493 17.184019,27.764793 z"
id="path5379"
sodipodi:nodetypes="csccc"
inkscape:export-filename="/Users/eve/Documents/UKUI/SpeakerIcon_Test.png"
inkscape:export-xdpi="67.489998"
inkscape:export-ydpi="67.489998" />
<path
id="path5381"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 12.429209,14.847493 C 12.302169,14.950093 12.050609,15.242643 11.924559,15.349973 C 10.053439,16.943173 8.2962496,19.037813 6.8167896,21.059983 C 4.2201996,24.609093 2.4791296,27.934983 2.4791296,27.934983 M 45.604129,27.934983 C 45.604129,27.934983 41.056699,19.248213 35.742829,14.995723 C 35.532199,14.827163 35.320359,14.665563 35.107559,14.511753 C 35.007039,14.439103 34.459402,14.219223 34.358482,14.150133"
sodipodi:nodetypes="cssccsss" />
<path
id="path5383"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 31.637929,13.855723 C 27.754719,12.836393 20.452659,12.793243 16.579519,13.809593"
sodipodi:nodetypes="cc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -0,0 +1,537 @@
<?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="48"
height="48"
id="svg2643"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docname="audio-speaker-left-testing.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/Users/eve/Documents/UKUI/audio-speaker-left-back-testing.png"
inkscape:export-xdpi="67.489998"
inkscape:export-ydpi="67.489998">
<defs
id="defs2645">
<linearGradient
id="linearGradient3529">
<stop
id="stop3531"
offset="0"
style="stop-color:#fefefe;stop-opacity:1;" />
<stop
id="stop3533"
offset="1"
style="stop-color:#e8e7e6;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4389">
<stop
style="stop-color:#555753;stop-opacity:1;"
offset="0"
id="stop4391" />
<stop
id="stop4393"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4325">
<stop
id="stop4327"
offset="0"
style="stop-color:#2e3436;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4329" />
</linearGradient>
<linearGradient
id="linearGradient21608">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop21610" />
<stop
style="stop-color:#2e3436;stop-opacity:1"
offset="1"
id="stop21612" />
</linearGradient>
<linearGradient
id="linearGradient15341">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop15343" />
<stop
style="stop-color:#555753;stop-opacity:1"
offset="1"
id="stop15345" />
</linearGradient>
<linearGradient
id="linearGradient6371">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop6373" />
<stop
style="stop-color:#d3d7cf;stop-opacity:1;"
offset="1"
id="stop6375" />
</linearGradient>
<linearGradient
id="linearGradient10872">
<stop
id="stop10874"
offset="0"
style="stop-color:#888a85;stop-opacity:1" />
<stop
style="stop-color:#9e9e92;stop-opacity:1;"
offset="0.25301206"
id="stop10876" />
<stop
id="stop10878"
offset="1"
style="stop-color:#555753;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5254">
<stop
id="stop5256"
offset="0"
style="stop-color:#707469;stop-opacity:1;" />
<stop
id="stop5258"
offset="1"
style="stop-color:#2e3335;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient10055">
<stop
style="stop-color:#bebebe;stop-opacity:1;"
offset="0"
id="stop10057" />
<stop
id="stop10061"
offset="0.375"
style="stop-color:#e8e8e8;stop-opacity:1;" />
<stop
style="stop-color:#5c5c5c;stop-opacity:1;"
offset="1"
id="stop10059" />
</linearGradient>
<linearGradient
id="linearGradient4841">
<stop
id="stop4843"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#fcaf3e;stop-opacity:0.94117647;"
offset="0"
id="stop4845" />
<stop
id="stop4847"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4849" />
</linearGradient>
<linearGradient
id="linearGradient4809">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop4811" />
<stop
id="stop4813"
offset="0"
style="stop-color:#ad7fa8;stop-opacity:1;" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop4815" />
<stop
id="stop4817"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient3345">
<stop
id="stop3347"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#729fcf;stop-opacity:1;"
offset="0"
id="stop3351" />
<stop
id="stop3355"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop3349" />
</linearGradient>
<linearGradient
id="linearGradient3223">
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="0"
id="stop3225" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop3227" />
</linearGradient>
<linearGradient
id="linearGradient3503">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop3239" />
<stop
id="stop3507"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective2651" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3501"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3500"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3232"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,47.474934,42.420392)"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138"
spreadMethod="reflect" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5689"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0469084,0,0,0.4796469,270.37856,38.427671)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<inkscape:perspective
id="perspective3474"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient4359"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,-52.447261,-106.14795)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5015"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,42.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5062"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient5064"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient5110"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,142.72007,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3863"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3865"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3906"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3345"
id="radialGradient5554"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,97.725459,40.419065)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient8512"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,97.72545,40.294064)"
spreadMethod="reflect"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="126.80533"
inkscape:cy="41.532441"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:snap-global="false"
inkscape:window-width="1680"
inkscape:window-height="1028"
inkscape:window-x="-12"
inkscape:window-y="0"
showguides="false"
inkscape:guide-bbox="true">
<inkscape:grid
type="xygrid"
id="grid2653"
visible="true"
enabled="true"
color="#ff00ff"
opacity="0.1254902"
empcolor="#0000f2"
empopacity="0.25098039" />
<sodipodi:guide
orientation="1,0"
position="23.969062,28.50558"
id="guide3488" />
<sodipodi:guide
orientation="0,1"
position="-14.142136,73.185552"
id="guide3490" />
<sodipodi:guide
orientation="1,0"
position="-21,-23.25"
id="guide5857" />
<sodipodi:guide
orientation="1,0"
position="-49.5,-22.625"
id="guide5859" />
</sodipodi:namedview>
<metadata
id="metadata2648">
<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="" />
<dc:subject>
<rdf:Bag>
<rdf:li>audio</rdf:li>
<rdf:li>device</rdf:li>
<rdf:li>speaker</rdf:li>
<rdf:li>output</rdf:li>
<rdf:li>left</rdf:li>
<rdf:li>testing</rdf:li>
<rdf:li>highlighted</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:title>audio-speaker-left-testing</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Evangeline McGlynn</dc:title>
</cc:Agent>
</dc:creator>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g8490"
transform="matrix(-0.7071068,0.7071068,0.7071068,0.7071068,57.052876,-47.851155)">
<path
sodipodi:nodetypes="ccccc"
id="path8492"
d="M 64.325669,10.506413 C 70.397099,7.0242733 77.468529,7.1135633 83.718529,10.506413 L 85.718529,14.899273 L 62.325669,14.899273 L 64.325669,10.506413 z"
style="fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
sodipodi:nodetypes="csssccsssc"
d="M 95.897099,27.934983 C 95.897099,27.934983 91.349669,19.248213 86.035799,14.995723 C 85.825169,14.827163 85.613329,14.665563 85.400529,14.511753 C 84.898489,14.148893 84.391069,13.829363 83.881339,13.563883 C 83.312379,13.267543 82.740559,13.038553 82.170169,12.891833 C 78.286959,11.872493 70.453649,11.829343 66.580509,12.845703 C 65.740619,13.064843 64.898909,13.457433 64.068479,13.977613 C 63.443239,14.369273 62.824389,14.833253 62.217529,15.349973 C 60.346409,16.943173 58.58922,19.037813 57.10976,21.059983 C 54.51317,24.609093 52.7721,27.934983 52.7721,27.934983"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path8494" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#bfd8f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 62.827469,15.979023 L 65.014509,11.213023 C 70.275566,8.4697433 76.234822,7.8458533 82.953572,11.207463 L 84.922082,15.410963"
id="path8496"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cccc"
d="M 95.001579,28.523883 C 95.001579,28.523883 88.693549,15.595313 81.930899,13.855723 C 78.047689,12.836393 70.745629,12.793243 66.872489,13.809593 C 60.028369,15.595313 55.03283,26.273883 55.03283,26.273883"
style="fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:#bfd8f3;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path8498" />
<path
transform="matrix(1.0469083,0,0,2.027027,51.01285,-35.409607)"
d="M 43.214285,32.24107 A 20.9375,4.9553571 0 1 1 1.3392849,32.24107 A 20.9375,4.9553571 0 1 1 43.214285,32.24107 z"
sodipodi:ry="4.9553571"
sodipodi:rx="20.9375"
sodipodi:cy="32.24107"
sodipodi:cx="22.276785"
id="path8500"
style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:0.68646109;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
sodipodi:nodetypes="ccccc"
id="path8502"
d="M 95.16001,29.859216 C 95.34941,34.267437 86.35016,38.925273 74.250517,38.925273 C 62.150874,38.925273 53.120056,34.330572 53.341027,29.859216 C 53.151624,25.29316 62.150874,20.824727 74.250517,20.824727 C 86.35016,20.824727 95.19158,25.198457 95.16001,29.859216 z"
style="fill:url(#radialGradient8512);fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#555753;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 82.142459,27.943913 C 81.468389,30.131673 78.852759,31.329293 74.334599,31.329293 C 69.816449,31.329293 66.985899,29.952123 66.526739,27.943913 C 66.456009,26.238893 69.816449,24.570323 74.334599,24.570323 C 78.852759,24.570323 82.154249,26.203533 82.142459,27.943913 z"
id="path8504"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:0.96596354;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 67.476989,27.764793 C 68.447389,30.844053 71.145969,33.060833 74.320419,33.060843 C 77.514539,33.060843 80.226899,30.816463 81.181699,27.707393 C 80.281059,26.206763 76.900529,25.470543 74.291089,25.513813 C 70.986749,25.428073 68.434609,26.373493 67.476989,27.764793 z"
id="path8506"
sodipodi:nodetypes="csccc"
inkscape:export-filename="/Users/eve/Documents/UKUI/SpeakerIcon_Test.png"
inkscape:export-xdpi="67.489998"
inkscape:export-ydpi="67.489998" />
<path
id="path8508"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 62.722179,14.847493 C 62.595139,14.950093 62.343579,15.242643 62.217529,15.349973 C 60.346409,16.943173 58.58922,19.037813 57.10976,21.059983 C 54.51317,24.609093 52.7721,27.934983 52.7721,27.934983 M 95.897099,27.934983 C 95.897099,27.934983 91.349669,19.248213 86.035799,14.995723 C 85.825169,14.827163 85.613329,14.665563 85.400529,14.511753 C 85.300009,14.439103 84.752372,14.219223 84.651452,14.150133"
sodipodi:nodetypes="cssccsss" />
<path
id="path8510"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#bfd8f3;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 81.930899,13.855723 C 78.047689,12.836393 70.745629,12.793243 66.872489,13.809593"
sodipodi:nodetypes="cc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -0,0 +1,504 @@
<?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="48"
height="48"
id="svg2643"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docname="audio-speaker-left.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/Users/eve/Documents/UKUI/audio-speaker-right.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs2645">
<linearGradient
id="linearGradient4389">
<stop
style="stop-color:#555753;stop-opacity:1;"
offset="0"
id="stop4391" />
<stop
id="stop4393"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4325">
<stop
id="stop4327"
offset="0"
style="stop-color:#2e3436;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4329" />
</linearGradient>
<linearGradient
id="linearGradient21608">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop21610" />
<stop
style="stop-color:#2e3436;stop-opacity:1"
offset="1"
id="stop21612" />
</linearGradient>
<linearGradient
id="linearGradient15341">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop15343" />
<stop
style="stop-color:#555753;stop-opacity:1"
offset="1"
id="stop15345" />
</linearGradient>
<linearGradient
id="linearGradient6371">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop6373" />
<stop
style="stop-color:#d3d7cf;stop-opacity:1;"
offset="1"
id="stop6375" />
</linearGradient>
<linearGradient
id="linearGradient10872">
<stop
id="stop10874"
offset="0"
style="stop-color:#888a85;stop-opacity:1" />
<stop
style="stop-color:#9e9e92;stop-opacity:1;"
offset="0.25301206"
id="stop10876" />
<stop
id="stop10878"
offset="1"
style="stop-color:#555753;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5254">
<stop
id="stop5256"
offset="0"
style="stop-color:#707469;stop-opacity:1;" />
<stop
id="stop5258"
offset="1"
style="stop-color:#2e3335;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient10055">
<stop
style="stop-color:#bebebe;stop-opacity:1;"
offset="0"
id="stop10057" />
<stop
id="stop10061"
offset="0.375"
style="stop-color:#e8e8e8;stop-opacity:1;" />
<stop
style="stop-color:#5c5c5c;stop-opacity:1;"
offset="1"
id="stop10059" />
</linearGradient>
<linearGradient
id="linearGradient4841">
<stop
id="stop4843"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#fcaf3e;stop-opacity:0.94117647;"
offset="0"
id="stop4845" />
<stop
id="stop4847"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4849" />
</linearGradient>
<linearGradient
id="linearGradient4809">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop4811" />
<stop
id="stop4813"
offset="0"
style="stop-color:#ad7fa8;stop-opacity:1;" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop4815" />
<stop
id="stop4817"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient3345">
<stop
id="stop3347"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#729fcf;stop-opacity:1;"
offset="0"
id="stop3351" />
<stop
id="stop3355"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop3349" />
</linearGradient>
<linearGradient
id="linearGradient3223">
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="0"
id="stop3225" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop3227" />
</linearGradient>
<linearGradient
id="linearGradient3503">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop3239" />
<stop
id="stop3507"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective2651" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3501"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3500"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3232"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,47.474934,42.420392)"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138"
spreadMethod="reflect" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5689"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0469084,0,0,0.4796469,270.37856,38.427671)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<inkscape:perspective
id="perspective3474"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient4359"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,-52.447261,-106.14795)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5015"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,42.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5062"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient5064"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient5110"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,142.72007,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3863"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3865"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3906"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient7260"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,47.516569,40.378763)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6568542"
inkscape:cx="-53.376308"
inkscape:cy="20.556657"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:snap-global="false"
inkscape:window-width="1601"
inkscape:window-height="942"
inkscape:window-x="5"
inkscape:window-y="1"
showguides="false"
inkscape:guide-bbox="true">
<inkscape:grid
type="xygrid"
id="grid2653"
visible="true"
enabled="true"
color="#ff00ff"
opacity="0.1254902"
empcolor="#0000f2"
empopacity="0.25098039" />
<sodipodi:guide
orientation="1,0"
position="23.969062,28.50558"
id="guide3488" />
<sodipodi:guide
orientation="0,1"
position="17.401268,34.125445"
id="guide3490" />
</sodipodi:namedview>
<metadata
id="metadata2648">
<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="" />
<dc:subject>
<rdf:Bag>
<rdf:li>audio</rdf:li>
<rdf:li>device</rdf:li>
<rdf:li>speaker</rdf:li>
<rdf:li>output</rdf:li>
<rdf:li>left</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:title>audio-speaker-left</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Evangeline McGlynn</dc:title>
</cc:Agent>
</dc:creator>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g7248"
transform="matrix(-0.7071068,0.7071068,0.7071068,0.7071068,21.490375,-12.288654)">
<path
sodipodi:nodetypes="ccccc"
id="path5365"
d="M 14.032699,10.506413 C 20.104129,7.0242733 27.175559,7.1135633 33.425559,10.506413 L 35.425559,14.899273 L 12.032699,14.899273 L 14.032699,10.506413 z"
style="fill:#babdb6;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
sodipodi:nodetypes="csssccsssc"
d="M 45.604129,27.934983 C 45.604129,27.934983 41.056699,19.248213 35.742829,14.995723 C 35.532199,14.827163 35.320359,14.665563 35.107559,14.511753 C 34.605519,14.148893 34.098099,13.829363 33.588369,13.563883 C 33.019409,13.267543 32.447589,13.038553 31.877199,12.891833 C 27.993989,11.872493 20.160679,11.829343 16.287539,12.845703 C 15.447649,13.064843 14.605939,13.457433 13.775509,13.977613 C 13.150269,14.369273 12.531419,14.833253 11.924559,15.349973 C 10.053439,16.943173 8.2962496,19.037813 6.8167896,21.059983 C 4.2201996,24.609093 2.4791296,27.934983 2.4791296,27.934983"
style="fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path5367" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#888a83;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 12.534499,15.979023 L 14.721539,11.213023 C 19.982596,8.4697433 25.941852,7.8458533 32.660602,11.207463 L 34.629112,15.410963"
id="path5369"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cccc"
d="M 44.708609,28.523883 C 44.708609,28.523883 38.400579,15.595313 31.637929,13.855723 C 27.754719,12.836393 20.452659,12.793243 16.579519,13.809593 C 9.7353992,15.595313 4.7398596,26.273883 4.7398596,26.273883"
style="fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path5371" />
<path
transform="matrix(1.0469083,0,0,2.027027,0.7198796,-35.409607)"
d="M 43.214285,32.24107 A 20.9375,4.9553571 0 1 1 1.3392849,32.24107 A 20.9375,4.9553571 0 1 1 43.214285,32.24107 z"
sodipodi:ry="4.9553571"
sodipodi:rx="20.9375"
sodipodi:cy="32.24107"
sodipodi:cx="22.276785"
id="path5373"
style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:0.68646109;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
style="fill:url(#radialGradient7260);fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 44.951119,29.943913 C 45.140529,34.352133 36.141269,39.009973 24.041629,39.009973 C 11.941989,39.009973 2.9111696,34.415273 3.1321396,29.943913 C 2.9427396,25.377853 11.941989,20.909423 24.041629,20.909423 C 36.141269,20.909423 44.982689,25.283153 44.951119,29.943913 z"
id="path5375"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#555753;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 31.849489,27.943913 C 31.175419,30.131673 28.559789,31.329293 24.041629,31.329293 C 19.523479,31.329293 16.692929,29.952123 16.233769,27.943913 C 16.163039,26.238893 19.523479,24.570323 24.041629,24.570323 C 28.559789,24.570323 31.861279,26.203533 31.849489,27.943913 z"
id="path5377"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:0.96596354;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 17.184019,27.764793 C 18.154419,30.844053 20.852999,33.060833 24.027449,33.060843 C 27.221569,33.060843 29.933929,30.816463 30.888729,27.707393 C 29.988089,26.206763 26.607559,25.470543 23.998119,25.513813 C 20.693779,25.428073 18.141639,26.373493 17.184019,27.764793 z"
id="path5379"
sodipodi:nodetypes="csccc"
inkscape:export-filename="/Users/eve/Documents/UKUI/SpeakerIcon_Test.png"
inkscape:export-xdpi="67.489998"
inkscape:export-ydpi="67.489998" />
<path
id="path5381"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 12.429209,14.847493 C 12.302169,14.950093 12.050609,15.242643 11.924559,15.349973 C 10.053439,16.943173 8.2962496,19.037813 6.8167896,21.059983 C 4.2201996,24.609093 2.4791296,27.934983 2.4791296,27.934983 M 45.604129,27.934983 C 45.604129,27.934983 41.056699,19.248213 35.742829,14.995723 C 35.532199,14.827163 35.320359,14.665563 35.107559,14.511753 C 35.007039,14.439103 34.459402,14.219223 34.358482,14.150133"
sodipodi:nodetypes="cssccsss" />
<path
id="path5383"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 31.637929,13.855723 C 27.754719,12.836393 20.452659,12.793243 16.579519,13.809593"
sodipodi:nodetypes="cc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -0,0 +1,537 @@
<?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="48"
height="48"
id="svg2643"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docname="audio-speaker-right-back-testing.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/Users/eve/Documents/UKUI/audio-speaker-left-back-testing.png"
inkscape:export-xdpi="67.489998"
inkscape:export-ydpi="67.489998">
<defs
id="defs2645">
<linearGradient
id="linearGradient3529">
<stop
id="stop3531"
offset="0"
style="stop-color:#fefefe;stop-opacity:1;" />
<stop
id="stop3533"
offset="1"
style="stop-color:#e8e7e6;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4389">
<stop
style="stop-color:#555753;stop-opacity:1;"
offset="0"
id="stop4391" />
<stop
id="stop4393"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4325">
<stop
id="stop4327"
offset="0"
style="stop-color:#2e3436;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4329" />
</linearGradient>
<linearGradient
id="linearGradient21608">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop21610" />
<stop
style="stop-color:#2e3436;stop-opacity:1"
offset="1"
id="stop21612" />
</linearGradient>
<linearGradient
id="linearGradient15341">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop15343" />
<stop
style="stop-color:#555753;stop-opacity:1"
offset="1"
id="stop15345" />
</linearGradient>
<linearGradient
id="linearGradient6371">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop6373" />
<stop
style="stop-color:#d3d7cf;stop-opacity:1;"
offset="1"
id="stop6375" />
</linearGradient>
<linearGradient
id="linearGradient10872">
<stop
id="stop10874"
offset="0"
style="stop-color:#888a85;stop-opacity:1" />
<stop
style="stop-color:#9e9e92;stop-opacity:1;"
offset="0.25301206"
id="stop10876" />
<stop
id="stop10878"
offset="1"
style="stop-color:#555753;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5254">
<stop
id="stop5256"
offset="0"
style="stop-color:#707469;stop-opacity:1;" />
<stop
id="stop5258"
offset="1"
style="stop-color:#2e3335;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient10055">
<stop
style="stop-color:#bebebe;stop-opacity:1;"
offset="0"
id="stop10057" />
<stop
id="stop10061"
offset="0.375"
style="stop-color:#e8e8e8;stop-opacity:1;" />
<stop
style="stop-color:#5c5c5c;stop-opacity:1;"
offset="1"
id="stop10059" />
</linearGradient>
<linearGradient
id="linearGradient4841">
<stop
id="stop4843"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#fcaf3e;stop-opacity:0.94117647;"
offset="0"
id="stop4845" />
<stop
id="stop4847"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4849" />
</linearGradient>
<linearGradient
id="linearGradient4809">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop4811" />
<stop
id="stop4813"
offset="0"
style="stop-color:#ad7fa8;stop-opacity:1;" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop4815" />
<stop
id="stop4817"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient3345">
<stop
id="stop3347"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#729fcf;stop-opacity:1;"
offset="0"
id="stop3351" />
<stop
id="stop3355"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop3349" />
</linearGradient>
<linearGradient
id="linearGradient3223">
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="0"
id="stop3225" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop3227" />
</linearGradient>
<linearGradient
id="linearGradient3503">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop3239" />
<stop
id="stop3507"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective2651" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3501"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3500"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3232"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,47.474934,42.420392)"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138"
spreadMethod="reflect" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5689"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0469084,0,0,0.4796469,270.37856,38.427671)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<inkscape:perspective
id="perspective3474"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient4359"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,-52.447261,-106.14795)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5015"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,42.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5062"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient5064"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient5110"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,142.72007,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3863"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3865"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3906"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3345"
id="radialGradient5554"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,97.725459,40.419065)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient8512"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,97.72545,40.294064)"
spreadMethod="reflect"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="126.80533"
inkscape:cy="41.532441"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:snap-global="false"
inkscape:window-width="1680"
inkscape:window-height="1028"
inkscape:window-x="-12"
inkscape:window-y="0"
showguides="false"
inkscape:guide-bbox="true">
<inkscape:grid
type="xygrid"
id="grid2653"
visible="true"
enabled="true"
color="#ff00ff"
opacity="0.1254902"
empcolor="#0000f2"
empopacity="0.25098039" />
<sodipodi:guide
orientation="1,0"
position="23.969062,28.50558"
id="guide3488" />
<sodipodi:guide
orientation="0,1"
position="-14.142136,73.185552"
id="guide3490" />
<sodipodi:guide
orientation="1,0"
position="-21,-23.25"
id="guide5857" />
<sodipodi:guide
orientation="1,0"
position="-49.5,-22.625"
id="guide5859" />
</sodipodi:namedview>
<metadata
id="metadata2648">
<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="" />
<dc:subject>
<rdf:Bag>
<rdf:li>audio</rdf:li>
<rdf:li>device</rdf:li>
<rdf:li>speaker</rdf:li>
<rdf:li>output</rdf:li>
<rdf:li>right-back</rdf:li>
<rdf:li>testing</rdf:li>
<rdf:li>highlighted</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:title>audio-speaker-right-back-testing</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Evangeline McGlynn</dc:title>
</cc:Agent>
</dc:creator>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g8490"
transform="matrix(0.7071068,-0.7071068,-0.7071068,-0.7071068,-9.0528759,95.851156)">
<path
sodipodi:nodetypes="ccccc"
id="path8492"
d="M 64.325669,10.506413 C 70.397099,7.0242733 77.468529,7.1135633 83.718529,10.506413 L 85.718529,14.899273 L 62.325669,14.899273 L 64.325669,10.506413 z"
style="fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
sodipodi:nodetypes="csssccsssc"
d="M 95.897099,27.934983 C 95.897099,27.934983 91.349669,19.248213 86.035799,14.995723 C 85.825169,14.827163 85.613329,14.665563 85.400529,14.511753 C 84.898489,14.148893 84.391069,13.829363 83.881339,13.563883 C 83.312379,13.267543 82.740559,13.038553 82.170169,12.891833 C 78.286959,11.872493 70.453649,11.829343 66.580509,12.845703 C 65.740619,13.064843 64.898909,13.457433 64.068479,13.977613 C 63.443239,14.369273 62.824389,14.833253 62.217529,15.349973 C 60.346409,16.943173 58.58922,19.037813 57.10976,21.059983 C 54.51317,24.609093 52.7721,27.934983 52.7721,27.934983"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path8494" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#bfd8f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 62.827469,15.979023 L 65.014509,11.213023 C 70.275566,8.4697433 76.234822,7.8458533 82.953572,11.207463 L 84.922082,15.410963"
id="path8496"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cccc"
d="M 95.001579,28.523883 C 95.001579,28.523883 88.693549,15.595313 81.930899,13.855723 C 78.047689,12.836393 70.745629,12.793243 66.872489,13.809593 C 60.028369,15.595313 55.03283,26.273883 55.03283,26.273883"
style="fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:#bfd8f3;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path8498" />
<path
transform="matrix(1.0469083,0,0,2.027027,51.01285,-35.409607)"
d="M 43.214285,32.24107 A 20.9375,4.9553571 0 1 1 1.3392849,32.24107 A 20.9375,4.9553571 0 1 1 43.214285,32.24107 z"
sodipodi:ry="4.9553571"
sodipodi:rx="20.9375"
sodipodi:cy="32.24107"
sodipodi:cx="22.276785"
id="path8500"
style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:0.68646109;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
sodipodi:nodetypes="ccccc"
id="path8502"
d="M 95.16001,29.859216 C 95.34941,34.267437 86.35016,38.925273 74.250517,38.925273 C 62.150874,38.925273 53.120056,34.330572 53.341027,29.859216 C 53.151624,25.29316 62.150874,20.824727 74.250517,20.824727 C 86.35016,20.824727 95.19158,25.198457 95.16001,29.859216 z"
style="fill:url(#radialGradient8512);fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#555753;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 82.142459,27.943913 C 81.468389,30.131673 78.852759,31.329293 74.334599,31.329293 C 69.816449,31.329293 66.985899,29.952123 66.526739,27.943913 C 66.456009,26.238893 69.816449,24.570323 74.334599,24.570323 C 78.852759,24.570323 82.154249,26.203533 82.142459,27.943913 z"
id="path8504"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:0.96596354;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 67.476989,27.764793 C 68.447389,30.844053 71.145969,33.060833 74.320419,33.060843 C 77.514539,33.060843 80.226899,30.816463 81.181699,27.707393 C 80.281059,26.206763 76.900529,25.470543 74.291089,25.513813 C 70.986749,25.428073 68.434609,26.373493 67.476989,27.764793 z"
id="path8506"
sodipodi:nodetypes="csccc"
inkscape:export-filename="/Users/eve/Documents/UKUI/SpeakerIcon_Test.png"
inkscape:export-xdpi="67.489998"
inkscape:export-ydpi="67.489998" />
<path
id="path8508"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 62.722179,14.847493 C 62.595139,14.950093 62.343579,15.242643 62.217529,15.349973 C 60.346409,16.943173 58.58922,19.037813 57.10976,21.059983 C 54.51317,24.609093 52.7721,27.934983 52.7721,27.934983 M 95.897099,27.934983 C 95.897099,27.934983 91.349669,19.248213 86.035799,14.995723 C 85.825169,14.827163 85.613329,14.665563 85.400529,14.511753 C 85.300009,14.439103 84.752372,14.219223 84.651452,14.150133"
sodipodi:nodetypes="cssccsss" />
<path
id="path8510"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#bfd8f3;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 81.930899,13.855723 C 78.047689,12.836393 70.745629,12.793243 66.872489,13.809593"
sodipodi:nodetypes="cc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -0,0 +1,504 @@
<?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="48"
height="48"
id="svg2643"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docname="audio-speaker-right-back.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/Users/eve/Documents/UKUI/audio-speaker-left-back.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs2645">
<linearGradient
id="linearGradient4389">
<stop
style="stop-color:#555753;stop-opacity:1;"
offset="0"
id="stop4391" />
<stop
id="stop4393"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4325">
<stop
id="stop4327"
offset="0"
style="stop-color:#2e3436;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4329" />
</linearGradient>
<linearGradient
id="linearGradient21608">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop21610" />
<stop
style="stop-color:#2e3436;stop-opacity:1"
offset="1"
id="stop21612" />
</linearGradient>
<linearGradient
id="linearGradient15341">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop15343" />
<stop
style="stop-color:#555753;stop-opacity:1"
offset="1"
id="stop15345" />
</linearGradient>
<linearGradient
id="linearGradient6371">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop6373" />
<stop
style="stop-color:#d3d7cf;stop-opacity:1;"
offset="1"
id="stop6375" />
</linearGradient>
<linearGradient
id="linearGradient10872">
<stop
id="stop10874"
offset="0"
style="stop-color:#888a85;stop-opacity:1" />
<stop
style="stop-color:#9e9e92;stop-opacity:1;"
offset="0.25301206"
id="stop10876" />
<stop
id="stop10878"
offset="1"
style="stop-color:#555753;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5254">
<stop
id="stop5256"
offset="0"
style="stop-color:#707469;stop-opacity:1;" />
<stop
id="stop5258"
offset="1"
style="stop-color:#2e3335;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient10055">
<stop
style="stop-color:#bebebe;stop-opacity:1;"
offset="0"
id="stop10057" />
<stop
id="stop10061"
offset="0.375"
style="stop-color:#e8e8e8;stop-opacity:1;" />
<stop
style="stop-color:#5c5c5c;stop-opacity:1;"
offset="1"
id="stop10059" />
</linearGradient>
<linearGradient
id="linearGradient4841">
<stop
id="stop4843"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#fcaf3e;stop-opacity:0.94117647;"
offset="0"
id="stop4845" />
<stop
id="stop4847"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4849" />
</linearGradient>
<linearGradient
id="linearGradient4809">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop4811" />
<stop
id="stop4813"
offset="0"
style="stop-color:#ad7fa8;stop-opacity:1;" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop4815" />
<stop
id="stop4817"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient3345">
<stop
id="stop3347"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#729fcf;stop-opacity:1;"
offset="0"
id="stop3351" />
<stop
id="stop3355"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop3349" />
</linearGradient>
<linearGradient
id="linearGradient3223">
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="0"
id="stop3225" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop3227" />
</linearGradient>
<linearGradient
id="linearGradient3503">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop3239" />
<stop
id="stop3507"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective2651" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3501"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3500"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3232"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,47.474934,42.420392)"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138"
spreadMethod="reflect" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5689"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0469084,0,0,0.4796469,270.37856,38.427671)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<inkscape:perspective
id="perspective3474"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient4359"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,-52.447261,-106.14795)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5015"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,42.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5062"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient5064"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient5110"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,142.72007,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3863"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3865"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3906"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient7260"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,47.516569,40.378763)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6568542"
inkscape:cx="-53.376308"
inkscape:cy="20.556657"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:snap-global="false"
inkscape:window-width="1601"
inkscape:window-height="942"
inkscape:window-x="5"
inkscape:window-y="1"
showguides="false"
inkscape:guide-bbox="true">
<inkscape:grid
type="xygrid"
id="grid2653"
visible="true"
enabled="true"
color="#ff00ff"
opacity="0.1254902"
empcolor="#0000f2"
empopacity="0.25098039" />
<sodipodi:guide
orientation="1,0"
position="23.969062,28.50558"
id="guide3488" />
<sodipodi:guide
orientation="0,1"
position="17.401268,34.125445"
id="guide3490" />
</sodipodi:namedview>
<metadata
id="metadata2648">
<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="" />
<dc:subject>
<rdf:Bag>
<rdf:li>audio</rdf:li>
<rdf:li>device</rdf:li>
<rdf:li>speaker</rdf:li>
<rdf:li>output</rdf:li>
<rdf:li>right-back</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:title>audio-speaker-right-back</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Evangeline McGlynn</dc:title>
</cc:Agent>
</dc:creator>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g7248"
transform="matrix(0.7071068,-0.7071068,-0.7071068,-0.7071068,26.509625,60.288654)">
<path
sodipodi:nodetypes="ccccc"
id="path5365"
d="M 14.032699,10.506413 C 20.104129,7.0242733 27.175559,7.1135633 33.425559,10.506413 L 35.425559,14.899273 L 12.032699,14.899273 L 14.032699,10.506413 z"
style="fill:#babdb6;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
sodipodi:nodetypes="csssccsssc"
d="M 45.604129,27.934983 C 45.604129,27.934983 41.056699,19.248213 35.742829,14.995723 C 35.532199,14.827163 35.320359,14.665563 35.107559,14.511753 C 34.605519,14.148893 34.098099,13.829363 33.588369,13.563883 C 33.019409,13.267543 32.447589,13.038553 31.877199,12.891833 C 27.993989,11.872493 20.160679,11.829343 16.287539,12.845703 C 15.447649,13.064843 14.605939,13.457433 13.775509,13.977613 C 13.150269,14.369273 12.531419,14.833253 11.924559,15.349973 C 10.053439,16.943173 8.2962496,19.037813 6.8167896,21.059983 C 4.2201996,24.609093 2.4791296,27.934983 2.4791296,27.934983"
style="fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path5367" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#888a83;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 12.534499,15.979023 L 14.721539,11.213023 C 19.982596,8.4697433 25.941852,7.8458533 32.660602,11.207463 L 34.629112,15.410963"
id="path5369"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cccc"
d="M 44.708609,28.523883 C 44.708609,28.523883 38.400579,15.595313 31.637929,13.855723 C 27.754719,12.836393 20.452659,12.793243 16.579519,13.809593 C 9.7353992,15.595313 4.7398596,26.273883 4.7398596,26.273883"
style="fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path5371" />
<path
transform="matrix(1.0469083,0,0,2.027027,0.7198796,-35.409607)"
d="M 43.214285,32.24107 A 20.9375,4.9553571 0 1 1 1.3392849,32.24107 A 20.9375,4.9553571 0 1 1 43.214285,32.24107 z"
sodipodi:ry="4.9553571"
sodipodi:rx="20.9375"
sodipodi:cy="32.24107"
sodipodi:cx="22.276785"
id="path5373"
style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:0.68646109;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
style="fill:url(#radialGradient7260);fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 44.951119,29.943913 C 45.140529,34.352133 36.141269,39.009973 24.041629,39.009973 C 11.941989,39.009973 2.9111696,34.415273 3.1321396,29.943913 C 2.9427396,25.377853 11.941989,20.909423 24.041629,20.909423 C 36.141269,20.909423 44.982689,25.283153 44.951119,29.943913 z"
id="path5375"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#555753;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 31.849489,27.943913 C 31.175419,30.131673 28.559789,31.329293 24.041629,31.329293 C 19.523479,31.329293 16.692929,29.952123 16.233769,27.943913 C 16.163039,26.238893 19.523479,24.570323 24.041629,24.570323 C 28.559789,24.570323 31.861279,26.203533 31.849489,27.943913 z"
id="path5377"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:0.96596354;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 17.184019,27.764793 C 18.154419,30.844053 20.852999,33.060833 24.027449,33.060843 C 27.221569,33.060843 29.933929,30.816463 30.888729,27.707393 C 29.988089,26.206763 26.607559,25.470543 23.998119,25.513813 C 20.693779,25.428073 18.141639,26.373493 17.184019,27.764793 z"
id="path5379"
sodipodi:nodetypes="csccc"
inkscape:export-filename="/Users/eve/Documents/UKUI/SpeakerIcon_Test.png"
inkscape:export-xdpi="67.489998"
inkscape:export-ydpi="67.489998" />
<path
id="path5381"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 12.429209,14.847493 C 12.302169,14.950093 12.050609,15.242643 11.924559,15.349973 C 10.053439,16.943173 8.2962496,19.037813 6.8167896,21.059983 C 4.2201996,24.609093 2.4791296,27.934983 2.4791296,27.934983 M 45.604129,27.934983 C 45.604129,27.934983 41.056699,19.248213 35.742829,14.995723 C 35.532199,14.827163 35.320359,14.665563 35.107559,14.511753 C 35.007039,14.439103 34.459402,14.219223 34.358482,14.150133"
sodipodi:nodetypes="cssccsss" />
<path
id="path5383"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 31.637929,13.855723 C 27.754719,12.836393 20.452659,12.793243 16.579519,13.809593"
sodipodi:nodetypes="cc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -0,0 +1,537 @@
<?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="48"
height="48"
id="svg2643"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docname="audio-speaker-right-side-testing.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/Users/eve/Documents/UKUI/audio-speaker-right-back-testing.png"
inkscape:export-xdpi="67.489998"
inkscape:export-ydpi="67.489998">
<defs
id="defs2645">
<linearGradient
id="linearGradient3529">
<stop
id="stop3531"
offset="0"
style="stop-color:#fefefe;stop-opacity:1;" />
<stop
id="stop3533"
offset="1"
style="stop-color:#e8e7e6;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4389">
<stop
style="stop-color:#555753;stop-opacity:1;"
offset="0"
id="stop4391" />
<stop
id="stop4393"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4325">
<stop
id="stop4327"
offset="0"
style="stop-color:#2e3436;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4329" />
</linearGradient>
<linearGradient
id="linearGradient21608">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop21610" />
<stop
style="stop-color:#2e3436;stop-opacity:1"
offset="1"
id="stop21612" />
</linearGradient>
<linearGradient
id="linearGradient15341">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop15343" />
<stop
style="stop-color:#555753;stop-opacity:1"
offset="1"
id="stop15345" />
</linearGradient>
<linearGradient
id="linearGradient6371">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop6373" />
<stop
style="stop-color:#d3d7cf;stop-opacity:1;"
offset="1"
id="stop6375" />
</linearGradient>
<linearGradient
id="linearGradient10872">
<stop
id="stop10874"
offset="0"
style="stop-color:#888a85;stop-opacity:1" />
<stop
style="stop-color:#9e9e92;stop-opacity:1;"
offset="0.25301206"
id="stop10876" />
<stop
id="stop10878"
offset="1"
style="stop-color:#555753;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5254">
<stop
id="stop5256"
offset="0"
style="stop-color:#707469;stop-opacity:1;" />
<stop
id="stop5258"
offset="1"
style="stop-color:#2e3335;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient10055">
<stop
style="stop-color:#bebebe;stop-opacity:1;"
offset="0"
id="stop10057" />
<stop
id="stop10061"
offset="0.375"
style="stop-color:#e8e8e8;stop-opacity:1;" />
<stop
style="stop-color:#5c5c5c;stop-opacity:1;"
offset="1"
id="stop10059" />
</linearGradient>
<linearGradient
id="linearGradient4841">
<stop
id="stop4843"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#fcaf3e;stop-opacity:0.94117647;"
offset="0"
id="stop4845" />
<stop
id="stop4847"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4849" />
</linearGradient>
<linearGradient
id="linearGradient4809">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop4811" />
<stop
id="stop4813"
offset="0"
style="stop-color:#ad7fa8;stop-opacity:1;" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop4815" />
<stop
id="stop4817"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient3345">
<stop
id="stop3347"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#729fcf;stop-opacity:1;"
offset="0"
id="stop3351" />
<stop
id="stop3355"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop3349" />
</linearGradient>
<linearGradient
id="linearGradient3223">
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="0"
id="stop3225" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop3227" />
</linearGradient>
<linearGradient
id="linearGradient3503">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop3239" />
<stop
id="stop3507"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective2651" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3501"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3500"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3232"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,47.474934,42.420392)"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138"
spreadMethod="reflect" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5689"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0469084,0,0,0.4796469,270.37856,38.427671)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<inkscape:perspective
id="perspective3474"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient4359"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,-52.447261,-106.14795)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5015"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,42.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5062"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient5064"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient5110"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,142.72007,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3863"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3865"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3906"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3345"
id="radialGradient5554"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,97.725459,40.419065)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient8512"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,97.72545,40.294064)"
spreadMethod="reflect"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="126.80533"
inkscape:cy="41.532441"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:snap-global="false"
inkscape:window-width="1680"
inkscape:window-height="1028"
inkscape:window-x="-12"
inkscape:window-y="0"
showguides="false"
inkscape:guide-bbox="true">
<inkscape:grid
type="xygrid"
id="grid2653"
visible="true"
enabled="true"
color="#ff00ff"
opacity="0.1254902"
empcolor="#0000f2"
empopacity="0.25098039" />
<sodipodi:guide
orientation="1,0"
position="23.969062,28.50558"
id="guide3488" />
<sodipodi:guide
orientation="0,1"
position="-14.142136,73.185552"
id="guide3490" />
<sodipodi:guide
orientation="1,0"
position="-21,-23.25"
id="guide5857" />
<sodipodi:guide
orientation="1,0"
position="-49.5,-22.625"
id="guide5859" />
</sodipodi:namedview>
<metadata
id="metadata2648">
<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="" />
<dc:subject>
<rdf:Bag>
<rdf:li>audio</rdf:li>
<rdf:li>device</rdf:li>
<rdf:li>speaker</rdf:li>
<rdf:li>output</rdf:li>
<rdf:li>right-side</rdf:li>
<rdf:li>testing</rdf:li>
<rdf:li>highlighted</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:title>audio-speaker-right-side-testing</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Evangeline McGlynn</dc:title>
</cc:Agent>
</dc:creator>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g8490"
transform="matrix(0,-1,-1,0,47.958369,98.334601)">
<path
sodipodi:nodetypes="ccccc"
id="path8492"
d="M 64.325669,10.506413 C 70.397099,7.0242733 77.468529,7.1135633 83.718529,10.506413 L 85.718529,14.899273 L 62.325669,14.899273 L 64.325669,10.506413 z"
style="fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
sodipodi:nodetypes="csssccsssc"
d="M 95.897099,27.934983 C 95.897099,27.934983 91.349669,19.248213 86.035799,14.995723 C 85.825169,14.827163 85.613329,14.665563 85.400529,14.511753 C 84.898489,14.148893 84.391069,13.829363 83.881339,13.563883 C 83.312379,13.267543 82.740559,13.038553 82.170169,12.891833 C 78.286959,11.872493 70.453649,11.829343 66.580509,12.845703 C 65.740619,13.064843 64.898909,13.457433 64.068479,13.977613 C 63.443239,14.369273 62.824389,14.833253 62.217529,15.349973 C 60.346409,16.943173 58.58922,19.037813 57.10976,21.059983 C 54.51317,24.609093 52.7721,27.934983 52.7721,27.934983"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path8494" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#bfd8f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 62.827469,15.979023 L 65.014509,11.213023 C 70.275566,8.4697433 76.234822,7.8458533 82.953572,11.207463 L 84.922082,15.410963"
id="path8496"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cccc"
d="M 95.001579,28.523883 C 95.001579,28.523883 88.693549,15.595313 81.930899,13.855723 C 78.047689,12.836393 70.745629,12.793243 66.872489,13.809593 C 60.028369,15.595313 55.03283,26.273883 55.03283,26.273883"
style="fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:#bfd8f3;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path8498" />
<path
transform="matrix(1.0469083,0,0,2.027027,51.01285,-35.409607)"
d="M 43.214285,32.24107 A 20.9375,4.9553571 0 1 1 1.3392849,32.24107 A 20.9375,4.9553571 0 1 1 43.214285,32.24107 z"
sodipodi:ry="4.9553571"
sodipodi:rx="20.9375"
sodipodi:cy="32.24107"
sodipodi:cx="22.276785"
id="path8500"
style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:0.68646109;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
sodipodi:nodetypes="ccccc"
id="path8502"
d="M 95.16001,29.859216 C 95.34941,34.267437 86.35016,38.925273 74.250517,38.925273 C 62.150874,38.925273 53.120056,34.330572 53.341027,29.859216 C 53.151624,25.29316 62.150874,20.824727 74.250517,20.824727 C 86.35016,20.824727 95.19158,25.198457 95.16001,29.859216 z"
style="fill:url(#radialGradient8512);fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#555753;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 82.142459,27.943913 C 81.468389,30.131673 78.852759,31.329293 74.334599,31.329293 C 69.816449,31.329293 66.985899,29.952123 66.526739,27.943913 C 66.456009,26.238893 69.816449,24.570323 74.334599,24.570323 C 78.852759,24.570323 82.154249,26.203533 82.142459,27.943913 z"
id="path8504"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:0.96596354;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 67.476989,27.764793 C 68.447389,30.844053 71.145969,33.060833 74.320419,33.060843 C 77.514539,33.060843 80.226899,30.816463 81.181699,27.707393 C 80.281059,26.206763 76.900529,25.470543 74.291089,25.513813 C 70.986749,25.428073 68.434609,26.373493 67.476989,27.764793 z"
id="path8506"
sodipodi:nodetypes="csccc"
inkscape:export-filename="/Users/eve/Documents/UKUI/SpeakerIcon_Test.png"
inkscape:export-xdpi="67.489998"
inkscape:export-ydpi="67.489998" />
<path
id="path8508"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 62.722179,14.847493 C 62.595139,14.950093 62.343579,15.242643 62.217529,15.349973 C 60.346409,16.943173 58.58922,19.037813 57.10976,21.059983 C 54.51317,24.609093 52.7721,27.934983 52.7721,27.934983 M 95.897099,27.934983 C 95.897099,27.934983 91.349669,19.248213 86.035799,14.995723 C 85.825169,14.827163 85.613329,14.665563 85.400529,14.511753 C 85.300009,14.439103 84.752372,14.219223 84.651452,14.150133"
sodipodi:nodetypes="cssccsss" />
<path
id="path8510"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#bfd8f3;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 81.930899,13.855723 C 78.047689,12.836393 70.745629,12.793243 66.872489,13.809593"
sodipodi:nodetypes="cc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -0,0 +1,504 @@
<?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="48"
height="48"
id="svg2643"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docname="audio-speaker-right-side.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/Users/eve/Documents/UKUI/audio-speaker-right-back.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs2645">
<linearGradient
id="linearGradient4389">
<stop
style="stop-color:#555753;stop-opacity:1;"
offset="0"
id="stop4391" />
<stop
id="stop4393"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4325">
<stop
id="stop4327"
offset="0"
style="stop-color:#2e3436;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4329" />
</linearGradient>
<linearGradient
id="linearGradient21608">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop21610" />
<stop
style="stop-color:#2e3436;stop-opacity:1"
offset="1"
id="stop21612" />
</linearGradient>
<linearGradient
id="linearGradient15341">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop15343" />
<stop
style="stop-color:#555753;stop-opacity:1"
offset="1"
id="stop15345" />
</linearGradient>
<linearGradient
id="linearGradient6371">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop6373" />
<stop
style="stop-color:#d3d7cf;stop-opacity:1;"
offset="1"
id="stop6375" />
</linearGradient>
<linearGradient
id="linearGradient10872">
<stop
id="stop10874"
offset="0"
style="stop-color:#888a85;stop-opacity:1" />
<stop
style="stop-color:#9e9e92;stop-opacity:1;"
offset="0.25301206"
id="stop10876" />
<stop
id="stop10878"
offset="1"
style="stop-color:#555753;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5254">
<stop
id="stop5256"
offset="0"
style="stop-color:#707469;stop-opacity:1;" />
<stop
id="stop5258"
offset="1"
style="stop-color:#2e3335;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient10055">
<stop
style="stop-color:#bebebe;stop-opacity:1;"
offset="0"
id="stop10057" />
<stop
id="stop10061"
offset="0.375"
style="stop-color:#e8e8e8;stop-opacity:1;" />
<stop
style="stop-color:#5c5c5c;stop-opacity:1;"
offset="1"
id="stop10059" />
</linearGradient>
<linearGradient
id="linearGradient4841">
<stop
id="stop4843"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#fcaf3e;stop-opacity:0.94117647;"
offset="0"
id="stop4845" />
<stop
id="stop4847"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4849" />
</linearGradient>
<linearGradient
id="linearGradient4809">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop4811" />
<stop
id="stop4813"
offset="0"
style="stop-color:#ad7fa8;stop-opacity:1;" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop4815" />
<stop
id="stop4817"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient3345">
<stop
id="stop3347"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#729fcf;stop-opacity:1;"
offset="0"
id="stop3351" />
<stop
id="stop3355"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop3349" />
</linearGradient>
<linearGradient
id="linearGradient3223">
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="0"
id="stop3225" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop3227" />
</linearGradient>
<linearGradient
id="linearGradient3503">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop3239" />
<stop
id="stop3507"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective2651" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3501"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3500"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3232"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,47.474934,42.420392)"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138"
spreadMethod="reflect" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5689"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0469084,0,0,0.4796469,270.37856,38.427671)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<inkscape:perspective
id="perspective3474"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient4359"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,-52.447261,-106.14795)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5015"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,42.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5062"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient5064"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient5110"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,142.72007,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3863"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3865"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3906"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient7260"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,47.516569,40.378763)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6568542"
inkscape:cx="-15.988037"
inkscape:cy="20.556657"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:snap-global="false"
inkscape:window-width="1601"
inkscape:window-height="942"
inkscape:window-x="5"
inkscape:window-y="1"
showguides="false"
inkscape:guide-bbox="true">
<inkscape:grid
type="xygrid"
id="grid2653"
visible="true"
enabled="true"
color="#ff00ff"
opacity="0.1254902"
empcolor="#0000f2"
empopacity="0.25098039" />
<sodipodi:guide
orientation="1,0"
position="23.969062,28.50558"
id="guide3488" />
<sodipodi:guide
orientation="0,1"
position="17.401268,34.125445"
id="guide3490" />
</sodipodi:namedview>
<metadata
id="metadata2648">
<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="" />
<dc:subject>
<rdf:Bag>
<rdf:li>audio</rdf:li>
<rdf:li>device</rdf:li>
<rdf:li>speaker</rdf:li>
<rdf:li>output</rdf:li>
<rdf:li>right-side</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:title>audio-speaker-right-side</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Evangeline McGlynn</dc:title>
</cc:Agent>
</dc:creator>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g7248"
transform="matrix(0,-1,-1,0,47.958369,48.041631)">
<path
sodipodi:nodetypes="ccccc"
id="path5365"
d="M 14.032699,10.506413 C 20.104129,7.0242733 27.175559,7.1135633 33.425559,10.506413 L 35.425559,14.899273 L 12.032699,14.899273 L 14.032699,10.506413 z"
style="fill:#babdb6;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
sodipodi:nodetypes="csssccsssc"
d="M 45.604129,27.934983 C 45.604129,27.934983 41.056699,19.248213 35.742829,14.995723 C 35.532199,14.827163 35.320359,14.665563 35.107559,14.511753 C 34.605519,14.148893 34.098099,13.829363 33.588369,13.563883 C 33.019409,13.267543 32.447589,13.038553 31.877199,12.891833 C 27.993989,11.872493 20.160679,11.829343 16.287539,12.845703 C 15.447649,13.064843 14.605939,13.457433 13.775509,13.977613 C 13.150269,14.369273 12.531419,14.833253 11.924559,15.349973 C 10.053439,16.943173 8.2962496,19.037813 6.8167896,21.059983 C 4.2201996,24.609093 2.4791296,27.934983 2.4791296,27.934983"
style="fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path5367" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#888a83;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 12.534499,15.979023 L 14.721539,11.213023 C 19.982596,8.4697433 25.941852,7.8458533 32.660602,11.207463 L 34.629112,15.410963"
id="path5369"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cccc"
d="M 44.708609,28.523883 C 44.708609,28.523883 38.400579,15.595313 31.637929,13.855723 C 27.754719,12.836393 20.452659,12.793243 16.579519,13.809593 C 9.7353992,15.595313 4.7398596,26.273883 4.7398596,26.273883"
style="fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path5371" />
<path
transform="matrix(1.0469083,0,0,2.027027,0.7198796,-35.409607)"
d="M 43.214285,32.24107 A 20.9375,4.9553571 0 1 1 1.3392849,32.24107 A 20.9375,4.9553571 0 1 1 43.214285,32.24107 z"
sodipodi:ry="4.9553571"
sodipodi:rx="20.9375"
sodipodi:cy="32.24107"
sodipodi:cx="22.276785"
id="path5373"
style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:0.68646109;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
style="fill:url(#radialGradient7260);fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 44.951119,29.943913 C 45.140529,34.352133 36.141269,39.009973 24.041629,39.009973 C 11.941989,39.009973 2.9111696,34.415273 3.1321396,29.943913 C 2.9427396,25.377853 11.941989,20.909423 24.041629,20.909423 C 36.141269,20.909423 44.982689,25.283153 44.951119,29.943913 z"
id="path5375"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#555753;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 31.849489,27.943913 C 31.175419,30.131673 28.559789,31.329293 24.041629,31.329293 C 19.523479,31.329293 16.692929,29.952123 16.233769,27.943913 C 16.163039,26.238893 19.523479,24.570323 24.041629,24.570323 C 28.559789,24.570323 31.861279,26.203533 31.849489,27.943913 z"
id="path5377"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:0.96596354;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 17.184019,27.764793 C 18.154419,30.844053 20.852999,33.060833 24.027449,33.060843 C 27.221569,33.060843 29.933929,30.816463 30.888729,27.707393 C 29.988089,26.206763 26.607559,25.470543 23.998119,25.513813 C 20.693779,25.428073 18.141639,26.373493 17.184019,27.764793 z"
id="path5379"
sodipodi:nodetypes="csccc"
inkscape:export-filename="/Users/eve/Documents/UKUI/SpeakerIcon_Test.png"
inkscape:export-xdpi="67.489998"
inkscape:export-ydpi="67.489998" />
<path
id="path5381"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 12.429209,14.847493 C 12.302169,14.950093 12.050609,15.242643 11.924559,15.349973 C 10.053439,16.943173 8.2962496,19.037813 6.8167896,21.059983 C 4.2201996,24.609093 2.4791296,27.934983 2.4791296,27.934983 M 45.604129,27.934983 C 45.604129,27.934983 41.056699,19.248213 35.742829,14.995723 C 35.532199,14.827163 35.320359,14.665563 35.107559,14.511753 C 35.007039,14.439103 34.459402,14.219223 34.358482,14.150133"
sodipodi:nodetypes="cssccsss" />
<path
id="path5383"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 31.637929,13.855723 C 27.754719,12.836393 20.452659,12.793243 16.579519,13.809593"
sodipodi:nodetypes="cc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -0,0 +1,913 @@
<?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="48"
height="48"
id="svg2643"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docname="audio-speaker-right-testing.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/Users/eve/Documents/UKUI/audio-speaker-right-testing.png"
inkscape:export-xdpi="67.489998"
inkscape:export-ydpi="67.489998">
<defs
id="defs2645">
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient6377"
id="radialGradient5941"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(11.322482,0,0,3.7410569,-790.12434,122.56351)"
cx="14.790665"
cy="29.860626"
fx="14.790665"
fy="29.860626"
r="1.1399525" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient6377"
id="radialGradient5939"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(10.171038,0,0,5.2502725,-797.43964,77.21735)"
cx="17.797972"
cy="29.948833"
fx="17.797972"
fy="29.948833"
r="1.945146" />
<linearGradient
inkscape:collect="always"
id="linearGradient6377">
<stop
style="stop-color:#729fcf;stop-opacity:1"
offset="0"
id="stop6379" />
<stop
style="stop-color:#204a87;stop-opacity:1"
offset="1"
id="stop6381" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient6377"
id="radialGradient5937"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(15.4058,0,0,6.5714191,-930.81786,37.58535)"
cx="20.818829"
cy="29.948536"
fx="20.818829"
fy="29.948536"
r="2.5451017" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5254"
id="linearGradient5935"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.0714931,0,0,1.2212999,-677.47231,206.91558)"
x1="21.875"
y1="9.6335878"
x2="20.5"
y2="41.744865" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient10055"
id="linearGradient5933"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.0714931,0,0,1.2212999,-677.47231,206.91558)"
x1="20.087172"
y1="6.6629219"
x2="20.91938"
y2="38.337017" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5254"
id="linearGradient5931"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.6831088,0,0,1.0329054,-652.67404,212.26374)"
x1="4.5961943"
y1="14.456622"
x2="4.5961943"
y2="30.313524" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient10055"
id="linearGradient5929"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.7679166,0,0,1.687933,-652.72155,185.35433)"
x1="2.6850162"
y1="24.367676"
x2="2.9248238"
y2="35.053852" />
<linearGradient
inkscape:collect="always"
id="linearGradient21582">
<stop
style="stop-color:black;stop-opacity:1;"
offset="0"
id="stop21584" />
<stop
style="stop-color:black;stop-opacity:0;"
offset="1"
id="stop21586" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient21582"
id="linearGradient5927"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0102994,0,0,1.2565202,-654.12827,206.16954)"
x1="21.875"
y1="26.625"
x2="18.187626"
y2="26" />
<linearGradient
inkscape:collect="always"
id="linearGradient21598">
<stop
style="stop-color:white;stop-opacity:1;"
offset="0"
id="stop21600" />
<stop
style="stop-color:white;stop-opacity:0;"
offset="1"
id="stop21602" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient21598"
id="linearGradient5925"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7830101,0,0,0.9810567,-652.01527,212.32101)"
x1="12.25"
y1="19.75"
x2="10.875"
y2="33.125" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient10055"
id="radialGradient5923"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.433087,-0.596698,0.798238,1.917124,-20.96864,-16.43019)"
cx="7.001297"
cy="22.470087"
fx="7.001297"
fy="22.470087"
r="6.4940691" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient10872"
id="linearGradient5921"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0102994,0,0,1.0172401,-654.21562,212.46274)"
x1="3.8890872"
y1="18.937069"
x2="3.8890872"
y2="25.947107" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5254"
id="linearGradient5919"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.99664,0,0,1.1932745,-655.42965,207.54612)"
x1="11.875"
y1="20.375"
x2="13.125"
y2="34.13559" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6371"
id="linearGradient5917"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.99664,0,0,1.1932745,-655.42965,207.54612)"
x1="14.241117"
y1="26.996773"
x2="15.125"
y2="20.976084" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient21608"
id="linearGradient5915"
gradientUnits="userSpaceOnUse"
x1="23.272787"
y1="18.525478"
x2="23.272787"
y2="22.811184" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient15341"
id="radialGradient5913"
gradientUnits="userSpaceOnUse"
cx="22.624176"
cy="20.880224"
fx="22.624176"
fy="20.880224"
r="3.3177083" />
<linearGradient
id="linearGradient3529">
<stop
id="stop3531"
offset="0"
style="stop-color:#fefefe;stop-opacity:1;" />
<stop
id="stop3533"
offset="1"
style="stop-color:#e8e7e6;stop-opacity:1;" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3529"
id="radialGradient5911"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.2876712,0,13.845354)"
cx="7.9549513"
cy="19.436747"
fx="7.9549513"
fy="19.436747"
r="6.4523492" />
<linearGradient
id="linearGradient4389">
<stop
style="stop-color:#555753;stop-opacity:1;"
offset="0"
id="stop4391" />
<stop
id="stop4393"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4325">
<stop
id="stop4327"
offset="0"
style="stop-color:#2e3436;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4329" />
</linearGradient>
<linearGradient
id="linearGradient21608">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop21610" />
<stop
style="stop-color:#2e3436;stop-opacity:1"
offset="1"
id="stop21612" />
</linearGradient>
<linearGradient
id="linearGradient15341">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop15343" />
<stop
style="stop-color:#555753;stop-opacity:1"
offset="1"
id="stop15345" />
</linearGradient>
<linearGradient
id="linearGradient6371">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop6373" />
<stop
style="stop-color:#d3d7cf;stop-opacity:1;"
offset="1"
id="stop6375" />
</linearGradient>
<linearGradient
id="linearGradient10872">
<stop
id="stop10874"
offset="0"
style="stop-color:#888a85;stop-opacity:1" />
<stop
style="stop-color:#9e9e92;stop-opacity:1;"
offset="0.25301206"
id="stop10876" />
<stop
id="stop10878"
offset="1"
style="stop-color:#555753;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5254">
<stop
id="stop5256"
offset="0"
style="stop-color:#707469;stop-opacity:1;" />
<stop
id="stop5258"
offset="1"
style="stop-color:#2e3335;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient10055">
<stop
style="stop-color:#bebebe;stop-opacity:1;"
offset="0"
id="stop10057" />
<stop
id="stop10061"
offset="0.375"
style="stop-color:#e8e8e8;stop-opacity:1;" />
<stop
style="stop-color:#5c5c5c;stop-opacity:1;"
offset="1"
id="stop10059" />
</linearGradient>
<linearGradient
id="linearGradient4841">
<stop
id="stop4843"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#fcaf3e;stop-opacity:0.94117647;"
offset="0"
id="stop4845" />
<stop
id="stop4847"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4849" />
</linearGradient>
<linearGradient
id="linearGradient4809">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop4811" />
<stop
id="stop4813"
offset="0"
style="stop-color:#ad7fa8;stop-opacity:1;" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop4815" />
<stop
id="stop4817"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient3345">
<stop
id="stop3347"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#729fcf;stop-opacity:1;"
offset="0"
id="stop3351" />
<stop
id="stop3355"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop3349" />
</linearGradient>
<linearGradient
id="linearGradient3223">
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="0"
id="stop3225" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop3227" />
</linearGradient>
<linearGradient
id="linearGradient3503">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop3239" />
<stop
id="stop3507"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective2651" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3501"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3500"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3232"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,47.474934,42.420392)"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138"
spreadMethod="reflect" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5689"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0469084,0,0,0.4796469,270.37856,38.427671)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<inkscape:perspective
id="perspective3474"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient4359"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,-52.447261,-106.14795)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5015"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,42.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5062"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient5064"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient5110"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,142.72007,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3863"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3865"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3906"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3345"
id="radialGradient5554"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,97.725459,40.419065)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient8512"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,97.72545,40.294064)"
spreadMethod="reflect"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3529"
id="radialGradient5708"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.2876712,0,13.845354)"
cx="7.9549513"
cy="19.436747"
fx="7.9549513"
fy="19.436747"
r="6.4523492" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient15341"
id="radialGradient5710"
gradientUnits="userSpaceOnUse"
cx="22.624176"
cy="20.880224"
fx="22.624176"
fy="20.880224"
r="3.3177083" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient21608"
id="linearGradient5712"
gradientUnits="userSpaceOnUse"
x1="23.272787"
y1="18.525478"
x2="23.272787"
y2="22.811184" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient10055"
id="radialGradient5720"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.433087,-0.596698,0.798238,1.917124,-20.96864,-16.43019)"
cx="7.001297"
cy="22.470087"
fx="7.001297"
fy="22.470087"
r="6.4940691" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient6377"
id="radialGradient5744"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-8.0062038,8.0062038,-2.6453267,-2.6453267,292.61535,-42.156174)"
cx="14.790665"
cy="29.860626"
fx="14.790665"
fy="29.860626"
r="1.1399525" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient6377"
id="radialGradient5747"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-7.1920099,7.1920099,-3.7125033,-3.7125033,329.85262,-15.264295)"
cx="17.797972"
cy="29.948833"
fx="17.797972"
fy="29.948833"
r="1.945146" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient6377"
id="radialGradient5750"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-10.893546,10.893546,-4.646695,-4.646695,452.18932,-81.552883)"
cx="20.818829"
cy="29.948536"
fx="20.818829"
fy="29.948536"
r="2.5451017" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient10055"
id="linearGradient5753"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.0714931,0,0,1.2212999,31.77769,-26.9466)"
x1="20.087172"
y1="6.6629219"
x2="20.91938"
y2="38.337017" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5254"
id="linearGradient5755"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.0714931,0,0,1.2212999,31.77769,-26.9466)"
x1="21.875"
y1="9.6335878"
x2="20.5"
y2="41.744865" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient10055"
id="linearGradient5758"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.7679166,0,0,1.687933,56.52845,-48.50785)"
x1="2.6850162"
y1="24.367676"
x2="2.9248238"
y2="35.053852" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5254"
id="linearGradient5760"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.6831088,0,0,1.0329054,56.57596,-21.59844)"
x1="4.5961943"
y1="14.456622"
x2="4.5961943"
y2="30.313524" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient21582"
id="linearGradient5763"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0102994,0,0,1.2565202,55.12173,-27.69264)"
x1="21.875"
y1="26.625"
x2="18.187626"
y2="26" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient21598"
id="linearGradient5766"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7830101,0,0,0.9810567,57.23473,-21.54117)"
x1="12.25"
y1="19.75"
x2="10.875"
y2="33.125" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient10872"
id="linearGradient5770"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0102994,0,0,1.0172401,55.03438,-21.39944)"
x1="3.8890872"
y1="18.937069"
x2="3.8890872"
y2="25.947107" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6371"
id="linearGradient5773"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.99664,0,0,1.1932745,53.82035,-26.31606)"
x1="14.241117"
y1="26.996773"
x2="15.125"
y2="20.976084" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5254"
id="linearGradient5775"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.99664,0,0,1.1932745,53.82035,-26.31606)"
x1="11.875"
y1="20.375"
x2="13.125"
y2="34.13559" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5928"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,97.72545,40.294064)"
spreadMethod="reflect"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="126.80533"
inkscape:cy="41.532441"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:snap-global="false"
inkscape:window-width="1680"
inkscape:window-height="1028"
inkscape:window-x="-12"
inkscape:window-y="0"
showguides="false"
inkscape:guide-bbox="true">
<inkscape:grid
type="xygrid"
id="grid2653"
visible="true"
enabled="true"
color="#ff00ff"
opacity="0.1254902"
empcolor="#0000f2"
empopacity="0.25098039" />
<sodipodi:guide
orientation="1,0"
position="23.969062,28.50558"
id="guide3488" />
<sodipodi:guide
orientation="0,1"
position="-14.142136,73.185552"
id="guide3490" />
<sodipodi:guide
orientation="1,0"
position="-21,-23.25"
id="guide5857" />
<sodipodi:guide
orientation="1,0"
position="-49.5,-22.625"
id="guide5859" />
</sodipodi:namedview>
<metadata
id="metadata2648">
<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="" />
<dc:subject>
<rdf:Bag>
<rdf:li>audio</rdf:li>
<rdf:li>device</rdf:li>
<rdf:li>speaker</rdf:li>
<rdf:li>output</rdf:li>
<rdf:li>right</rdf:li>
<rdf:li>testing</rdf:li>
<rdf:li>highlighted</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:title>audio-speaker-right-testing</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Evangeline McGlynn</dc:title>
</cc:Agent>
</dc:creator>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g8490"
transform="matrix(0.7071068,0.7071068,-0.7071068,0.7071068,-9.0528759,-47.851156)">
<path
sodipodi:nodetypes="ccccc"
id="path8492"
d="M 64.325669,10.506413 C 70.397099,7.0242733 77.468529,7.1135633 83.718529,10.506413 L 85.718529,14.899273 L 62.325669,14.899273 L 64.325669,10.506413 z"
style="fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
sodipodi:nodetypes="csssccsssc"
d="M 95.897099,27.934983 C 95.897099,27.934983 91.349669,19.248213 86.035799,14.995723 C 85.825169,14.827163 85.613329,14.665563 85.400529,14.511753 C 84.898489,14.148893 84.391069,13.829363 83.881339,13.563883 C 83.312379,13.267543 82.740559,13.038553 82.170169,12.891833 C 78.286959,11.872493 70.453649,11.829343 66.580509,12.845703 C 65.740619,13.064843 64.898909,13.457433 64.068479,13.977613 C 63.443239,14.369273 62.824389,14.833253 62.217529,15.349973 C 60.346409,16.943173 58.58922,19.037813 57.10976,21.059983 C 54.51317,24.609093 52.7721,27.934983 52.7721,27.934983"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path8494" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#bfd8f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 62.827469,15.979023 L 65.014509,11.213023 C 70.275566,8.4697433 76.234822,7.8458533 82.953572,11.207463 L 84.922082,15.410963"
id="path8496"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cccc"
d="M 95.001579,28.523883 C 95.001579,28.523883 88.693549,15.595313 81.930899,13.855723 C 78.047689,12.836393 70.745629,12.793243 66.872489,13.809593 C 60.028369,15.595313 55.03283,26.273883 55.03283,26.273883"
style="fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:#bfd8f3;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path8498" />
<path
transform="matrix(1.0469083,0,0,2.027027,51.01285,-35.409607)"
d="M 43.214285,32.24107 A 20.9375,4.9553571 0 1 1 1.3392849,32.24107 A 20.9375,4.9553571 0 1 1 43.214285,32.24107 z"
sodipodi:ry="4.9553571"
sodipodi:rx="20.9375"
sodipodi:cy="32.24107"
sodipodi:cx="22.276785"
id="path8500"
style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:0.68646109;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
sodipodi:nodetypes="ccccc"
id="path8502"
d="M 95.16001,29.859216 C 95.34941,34.267437 86.35016,38.925273 74.250517,38.925273 C 62.150874,38.925273 53.120056,34.330572 53.341027,29.859216 C 53.151624,25.29316 62.150874,20.824727 74.250517,20.824727 C 86.35016,20.824727 95.19158,25.198457 95.16001,29.859216 z"
style="fill:url(#radialGradient8512);fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#555753;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 82.142459,27.943913 C 81.468389,30.131673 78.852759,31.329293 74.334599,31.329293 C 69.816449,31.329293 66.985899,29.952123 66.526739,27.943913 C 66.456009,26.238893 69.816449,24.570323 74.334599,24.570323 C 78.852759,24.570323 82.154249,26.203533 82.142459,27.943913 z"
id="path8504"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:0.96596354;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 67.476989,27.764793 C 68.447389,30.844053 71.145969,33.060833 74.320419,33.060843 C 77.514539,33.060843 80.226899,30.816463 81.181699,27.707393 C 80.281059,26.206763 76.900529,25.470543 74.291089,25.513813 C 70.986749,25.428073 68.434609,26.373493 67.476989,27.764793 z"
id="path8506"
sodipodi:nodetypes="csccc"
inkscape:export-filename="/Users/eve/Documents/UKUI/SpeakerIcon_Test.png"
inkscape:export-xdpi="67.489998"
inkscape:export-ydpi="67.489998" />
<path
id="path8508"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 62.722179,14.847493 C 62.595139,14.950093 62.343579,15.242643 62.217529,15.349973 C 60.346409,16.943173 58.58922,19.037813 57.10976,21.059983 C 54.51317,24.609093 52.7721,27.934983 52.7721,27.934983 M 95.897099,27.934983 C 95.897099,27.934983 91.349669,19.248213 86.035799,14.995723 C 85.825169,14.827163 85.613329,14.665563 85.400529,14.511753 C 85.300009,14.439103 84.752372,14.219223 84.651452,14.150133"
sodipodi:nodetypes="cssccsss" />
<path
id="path8510"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#bfd8f3;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 81.930899,13.855723 C 78.047689,12.836393 70.745629,12.793243 66.872489,13.809593"
sodipodi:nodetypes="cc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 32 KiB

View File

@ -0,0 +1,504 @@
<?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="48"
height="48"
id="svg2643"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docname="audio-speaker-right.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/Users/eve/Documents/UKUI/audio-speaker.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs2645">
<linearGradient
id="linearGradient4389">
<stop
style="stop-color:#555753;stop-opacity:1;"
offset="0"
id="stop4391" />
<stop
id="stop4393"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4325">
<stop
id="stop4327"
offset="0"
style="stop-color:#2e3436;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4329" />
</linearGradient>
<linearGradient
id="linearGradient21608">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop21610" />
<stop
style="stop-color:#2e3436;stop-opacity:1"
offset="1"
id="stop21612" />
</linearGradient>
<linearGradient
id="linearGradient15341">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop15343" />
<stop
style="stop-color:#555753;stop-opacity:1"
offset="1"
id="stop15345" />
</linearGradient>
<linearGradient
id="linearGradient6371">
<stop
style="stop-color:#888a85;stop-opacity:1"
offset="0"
id="stop6373" />
<stop
style="stop-color:#d3d7cf;stop-opacity:1;"
offset="1"
id="stop6375" />
</linearGradient>
<linearGradient
id="linearGradient10872">
<stop
id="stop10874"
offset="0"
style="stop-color:#888a85;stop-opacity:1" />
<stop
style="stop-color:#9e9e92;stop-opacity:1;"
offset="0.25301206"
id="stop10876" />
<stop
id="stop10878"
offset="1"
style="stop-color:#555753;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5254">
<stop
id="stop5256"
offset="0"
style="stop-color:#707469;stop-opacity:1;" />
<stop
id="stop5258"
offset="1"
style="stop-color:#2e3335;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient10055">
<stop
style="stop-color:#bebebe;stop-opacity:1;"
offset="0"
id="stop10057" />
<stop
id="stop10061"
offset="0.375"
style="stop-color:#e8e8e8;stop-opacity:1;" />
<stop
style="stop-color:#5c5c5c;stop-opacity:1;"
offset="1"
id="stop10059" />
</linearGradient>
<linearGradient
id="linearGradient4841">
<stop
id="stop4843"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#fcaf3e;stop-opacity:0.94117647;"
offset="0"
id="stop4845" />
<stop
id="stop4847"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop4849" />
</linearGradient>
<linearGradient
id="linearGradient4809">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop4811" />
<stop
id="stop4813"
offset="0"
style="stop-color:#ad7fa8;stop-opacity:1;" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop4815" />
<stop
id="stop4817"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient3345">
<stop
id="stop3347"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#729fcf;stop-opacity:1;"
offset="0"
id="stop3351" />
<stop
id="stop3355"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop3349" />
</linearGradient>
<linearGradient
id="linearGradient3223">
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="0"
id="stop3225" />
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="1"
id="stop3227" />
</linearGradient>
<linearGradient
id="linearGradient3503">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop3239" />
<stop
id="stop3507"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective2651" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3501"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3500"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.2366258,0,24.617945)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient3232"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,47.474934,42.420392)"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138"
spreadMethod="reflect" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5689"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0469084,0,0,0.4796469,270.37856,38.427671)"
cx="22.276291"
cy="32.248856"
fx="22.276291"
fy="32.248856"
r="20.319138" />
<inkscape:perspective
id="perspective3474"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient4359"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,-52.447261,-106.14795)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5015"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,42.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient5062"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4325"
id="radialGradient5064"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,98.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient5110"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,142.72007,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3863"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3865"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient3906"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,92.720075,-107.89847)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient7260"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,47.516569,40.378763)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6568542"
inkscape:cx="-90.590866"
inkscape:cy="20.556657"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:snap-global="false"
inkscape:window-width="1601"
inkscape:window-height="942"
inkscape:window-x="5"
inkscape:window-y="1"
showguides="false"
inkscape:guide-bbox="true">
<inkscape:grid
type="xygrid"
id="grid2653"
visible="true"
enabled="true"
color="#ff00ff"
opacity="0.1254902"
empcolor="#0000f2"
empopacity="0.25098039" />
<sodipodi:guide
orientation="1,0"
position="23.969062,28.50558"
id="guide3488" />
<sodipodi:guide
orientation="0,1"
position="17.401268,34.125445"
id="guide3490" />
</sodipodi:namedview>
<metadata
id="metadata2648">
<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="" />
<dc:subject>
<rdf:Bag>
<rdf:li>audio</rdf:li>
<rdf:li>device</rdf:li>
<rdf:li>speaker</rdf:li>
<rdf:li>output</rdf:li>
<rdf:li>right</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:title>audio-speaker-right</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Evangeline McGlynn</dc:title>
</cc:Agent>
</dc:creator>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g7248"
transform="matrix(0.7071068,0.7071068,-0.7071068,0.7071068,26.509625,-12.288654)">
<path
sodipodi:nodetypes="ccccc"
id="path5365"
d="M 14.032699,10.506413 C 20.104129,7.0242733 27.175559,7.1135633 33.425559,10.506413 L 35.425559,14.899273 L 12.032699,14.899273 L 14.032699,10.506413 z"
style="fill:#babdb6;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
sodipodi:nodetypes="csssccsssc"
d="M 45.604129,27.934983 C 45.604129,27.934983 41.056699,19.248213 35.742829,14.995723 C 35.532199,14.827163 35.320359,14.665563 35.107559,14.511753 C 34.605519,14.148893 34.098099,13.829363 33.588369,13.563883 C 33.019409,13.267543 32.447589,13.038553 31.877199,12.891833 C 27.993989,11.872493 20.160679,11.829343 16.287539,12.845703 C 15.447649,13.064843 14.605939,13.457433 13.775509,13.977613 C 13.150269,14.369273 12.531419,14.833253 11.924559,15.349973 C 10.053439,16.943173 8.2962496,19.037813 6.8167896,21.059983 C 4.2201996,24.609093 2.4791296,27.934983 2.4791296,27.934983"
style="fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path5367" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#888a83;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 12.534499,15.979023 L 14.721539,11.213023 C 19.982596,8.4697433 25.941852,7.8458533 32.660602,11.207463 L 34.629112,15.410963"
id="path5369"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cccc"
d="M 44.708609,28.523883 C 44.708609,28.523883 38.400579,15.595313 31.637929,13.855723 C 27.754719,12.836393 20.452659,12.793243 16.579519,13.809593 C 9.7353992,15.595313 4.7398596,26.273883 4.7398596,26.273883"
style="fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path5371" />
<path
transform="matrix(1.0469083,0,0,2.027027,0.7198796,-35.409607)"
d="M 43.214285,32.24107 A 20.9375,4.9553571 0 1 1 1.3392849,32.24107 A 20.9375,4.9553571 0 1 1 43.214285,32.24107 z"
sodipodi:ry="4.9553571"
sodipodi:rx="20.9375"
sodipodi:cy="32.24107"
sodipodi:cx="22.276785"
id="path5373"
style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:0.68646109;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
style="fill:url(#radialGradient7260);fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 44.951119,29.943913 C 45.140529,34.352133 36.141269,39.009973 24.041629,39.009973 C 11.941989,39.009973 2.9111696,34.415273 3.1321396,29.943913 C 2.9427396,25.377853 11.941989,20.909423 24.041629,20.909423 C 36.141269,20.909423 44.982689,25.283153 44.951119,29.943913 z"
id="path5375"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#555753;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 31.849489,27.943913 C 31.175419,30.131673 28.559789,31.329293 24.041629,31.329293 C 19.523479,31.329293 16.692929,29.952123 16.233769,27.943913 C 16.163039,26.238893 19.523479,24.570323 24.041629,24.570323 C 28.559789,24.570323 31.861279,26.203533 31.849489,27.943913 z"
id="path5377"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:0.96596354;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 17.184019,27.764793 C 18.154419,30.844053 20.852999,33.060833 24.027449,33.060843 C 27.221569,33.060843 29.933929,30.816463 30.888729,27.707393 C 29.988089,26.206763 26.607559,25.470543 23.998119,25.513813 C 20.693779,25.428073 18.141639,26.373493 17.184019,27.764793 z"
id="path5379"
sodipodi:nodetypes="csccc"
inkscape:export-filename="/Users/eve/Documents/UKUI/SpeakerIcon_Test.png"
inkscape:export-xdpi="67.489998"
inkscape:export-ydpi="67.489998" />
<path
id="path5381"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 12.429209,14.847493 C 12.302169,14.950093 12.050609,15.242643 11.924559,15.349973 C 10.053439,16.943173 8.2962496,19.037813 6.8167896,21.059983 C 4.2201996,24.609093 2.4791296,27.934983 2.4791296,27.934983 M 45.604129,27.934983 C 45.604129,27.934983 41.056699,19.248213 35.742829,14.995723 C 35.532199,14.827163 35.320359,14.665563 35.107559,14.511753 C 35.007039,14.439103 34.459402,14.219223 34.358482,14.150133"
sodipodi:nodetypes="cssccsss" />
<path
id="path5383"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 31.637929,13.855723 C 27.754719,12.836393 20.452659,12.793243 16.579519,13.809593"
sodipodi:nodetypes="cc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -0,0 +1,240 @@
<?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="48"
height="48"
id="svg2643"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docname="audio-subwoofer-testing.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/Users/eve/Documents/UKUI/audio-subwoofer-testing.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs2645">
<linearGradient
id="linearGradient6718">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop6720" />
<stop
id="stop6724"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient3345">
<stop
id="stop3347"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#729fcf;stop-opacity:1;"
offset="0"
id="stop3351" />
<stop
id="stop3355"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop3349" />
</linearGradient>
<linearGradient
id="linearGradient4389">
<stop
style="stop-color:#555753;stop-opacity:1;"
offset="0"
id="stop4391" />
<stop
id="stop4393"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient3503">
<stop
id="stop3505"
offset="0"
style="stop-color:#eeeeec;stop-opacity:1;" />
<stop
id="stop3507"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective2651" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient6984"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7191227,0,0,0.7191227,23.696408,18.236608)"
cx="84.365685"
cy="64.927307"
fx="84.365685"
fy="64.927307"
r="22.334578" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8284271"
inkscape:cx="-48.821714"
inkscape:cy="66.867859"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:snap-global="false"
inkscape:window-width="1680"
inkscape:window-height="1028"
inkscape:window-x="0"
inkscape:window-y="0"
showguides="false"
inkscape:guide-bbox="true">
<inkscape:grid
type="xygrid"
id="grid2653"
visible="true"
enabled="true"
color="#ff00ff"
opacity="0.1254902"
empcolor="#0000f2"
empopacity="0.25098039" />
<sodipodi:guide
orientation="1,0"
position="23.969062,28.50558"
id="guide3488" />
<sodipodi:guide
orientation="0,1"
position="17.401268,34.125445"
id="guide3490" />
</sodipodi:namedview>
<metadata
id="metadata2648">
<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="" />
<dc:subject>
<rdf:Bag>
<rdf:li>audio</rdf:li>
<rdf:li>device</rdf:li>
<rdf:li>subwoofer</rdf:li>
<rdf:li>output</rdf:li>
<rdf:li>testing</rdf:li>
<rdf:li>highlighted</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:title>audio-subwoofer-testing</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Evangeline McGlynn</dc:title>
</cc:Agent>
</dc:creator>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g6973"
transform="translate(-51.375,9.0155254e-8)">
<path
style="fill:#204a87;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 94.217316,39.045143 C 93.839661,41.471941 92.789441,43.219015 91.55403,43.219015 C 90.310955,43.219015 89.255378,41.450202 88.883794,38.999908 C 89.234301,37.817247 90.549918,37.23702 91.565441,37.271125 C 92.851403,37.203551 93.844629,37.948644 94.217316,39.045143 z"
id="path6730"
sodipodi:nodetypes="csccc" />
<path
sodipodi:nodetypes="csccc"
id="path6732"
d="M 62.393985,39.045143 C 62.016329,41.471941 60.96611,43.219015 59.730698,43.219015 C 58.487624,43.219015 57.432046,41.450202 57.060462,38.999908 C 57.410969,37.817247 58.726586,37.23702 59.742109,37.271125 C 61.028072,37.203551 62.021297,37.948644 62.393985,39.045143 z"
style="fill:#204a87;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
style="fill:#204a87;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1.28661346;stroke-linecap:butt;stroke-linejoin:bevel;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 62.953967,6.9788731 C 73.409478,4.1293728 77.293929,4.3517447 87.917557,6.9788731 L 95.317117,13.152471 L 55.554408,13.152471 L 62.953967,6.9788731 z"
id="path6734"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 55.289577,13.137135 C 67.861736,9.7856746 82.504598,9.8716096 95.446529,13.137135 L 95.389975,39.76734 C 82.177445,42.114593 68.287824,42.159732 55.346132,39.902758 L 55.289577,13.137135 z"
id="path6736"
sodipodi:nodetypes="ccccc" />
<path
sodipodi:type="arc"
style="fill:url(#radialGradient6984);fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:2.05839419;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="path6738"
sodipodi:cx="84.365685"
sodipodi:cy="64.927307"
sodipodi:rx="21.396112"
sodipodi:ry="21.396112"
d="M 105.7618,64.927307 A 21.396112,21.396112 0 1 1 62.969572,64.927307 A 21.396112,21.396112 0 1 1 105.7618,64.927307 z"
transform="matrix(0,0.4858156,-0.4858156,0,100.43255,-14.78506)" />
<path
transform="matrix(0,0.2827849,-0.2827849,0,105.0933,2.3437637)"
d="M 105.7618,64.927307 A 21.396112,21.396112 0 1 1 62.969572,64.927307 A 21.396112,21.396112 0 1 1 105.7618,64.927307 z"
sodipodi:ry="21.396112"
sodipodi:rx="21.396112"
sodipodi:cy="64.927307"
sodipodi:cx="84.365685"
id="path6740"
style="fill:#bfd8f3;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.53625679;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
sodipodi:type="arc"
style="fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:5.06734753;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="path6742"
sodipodi:cx="84.365685"
sodipodi:cy="64.927307"
sodipodi:rx="21.396112"
sodipodi:ry="21.396112"
d="M 105.7618,64.927307 A 21.396112,21.396112 0 1 1 62.969572,64.927307 A 21.396112,21.396112 0 1 1 105.7618,64.927307 z"
transform="matrix(0,0.1973419,-0.1973419,0,99.523923,9.5522206)" />
<path
sodipodi:nodetypes="ccccc"
id="path6744"
d="M 56.321159,13.950789 C 67.82398,10.961669 81.161179,10.935259 94.415609,13.950789 L 94.359059,38.893489 C 81.01047,40.978079 68.381909,41.160879 56.377709,39.028909 L 56.321159,13.950789 z"
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#bfd8f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
transform="matrix(0,0.1973419,-0.1973419,0,81.702733,9.5522212)"
d="M 105.7618,64.927307 A 21.396112,21.396112 0 1 1 62.969572,64.927307 A 21.396112,21.396112 0 1 1 105.7618,64.927307 z"
sodipodi:ry="21.396112"
sodipodi:rx="21.396112"
sodipodi:cy="64.927307"
sodipodi:cx="84.365685"
id="path6746"
style="fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:5.06734753;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,325 @@
<?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="48"
height="48"
id="svg2643"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docname="audio-subwoofer.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/Users/eve/Documents/UKUI/SpeakerIcon_subwoofer.png"
inkscape:export-xdpi="67.489998"
inkscape:export-ydpi="67.489998">
<defs
id="defs2645">
<linearGradient
id="linearGradient6718">
<stop
style="stop-color:#babdb6;stop-opacity:1;"
offset="0"
id="stop6720" />
<stop
id="stop6724"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient3345">
<stop
id="stop3347"
offset="0"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#729fcf;stop-opacity:1;"
offset="0"
id="stop3351" />
<stop
id="stop3355"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
<stop
style="stop-color:#eeeeec;stop-opacity:1;"
offset="1"
id="stop3349" />
</linearGradient>
<linearGradient
id="linearGradient4389">
<stop
style="stop-color:#555753;stop-opacity:1;"
offset="0"
id="stop4391" />
<stop
id="stop4393"
offset="1"
style="stop-color:#eeeeec;stop-opacity:1;" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient5385"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.0538312,-6.3027391e-8,1.2877417e-8,-0.7232676,-9.0519739,70.961132)"
spreadMethod="pad"
cx="22.276297"
cy="21.099283"
fx="22.276297"
fy="21.099283"
r="20.319138" />
<linearGradient
id="linearGradient3503">
<stop
id="stop3505"
offset="0"
style="stop-color:#eeeeec;stop-opacity:1;" />
<stop
id="stop3507"
offset="1"
style="stop-color:#babdb6;stop-opacity:1;" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective2651" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient6516"
cx="84.365685"
cy="64.927307"
fx="84.365685"
fy="64.927307"
r="22.334578"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7191227,0,0,0.7191227,23.696408,18.236608)" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient6612"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7191227,0,0,0.7191227,23.696408,18.236608)"
cx="84.365685"
cy="64.927307"
fx="84.365685"
fy="64.927307"
r="22.334578" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient6645"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7191227,0,0,0.7191227,23.696408,18.236608)"
cx="84.365685"
cy="64.927307"
fx="84.365685"
fy="64.927307"
r="22.334578" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3503"
id="radialGradient6705"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7451713,-0.7451712,0.5114274,0.5114274,10.506623,78.557248)"
spreadMethod="reflect"
cx="22.276291"
cy="21.520338"
fx="22.276291"
fy="21.520338"
r="20.319138" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient6718"
id="radialGradient6716"
gradientUnits="userSpaceOnUse"
cx="84.365685"
cy="64.927307"
fx="84.365685"
fy="64.927307"
r="22.334578"
gradientTransform="matrix(0.8545182,0,0,0.753115,12.273671,16.029579)" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient6728"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7191227,0,0,0.7191227,23.696408,18.236608)"
cx="84.365685"
cy="64.927307"
fx="84.365685"
fy="64.927307"
r="22.334578" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient6748"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7191227,0,0,0.7191227,23.696408,18.236608)"
cx="84.365685"
cy="64.927307"
fx="84.365685"
fy="64.927307"
r="22.334578" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4389"
id="radialGradient6781"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7191227,0,0,0.7191227,23.696408,18.236608)"
cx="84.365685"
cy="64.927307"
fx="84.365685"
fy="64.927307"
r="22.334578" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="-397.88007"
inkscape:cy="205.69941"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:snap-global="false"
inkscape:window-width="1680"
inkscape:window-height="1028"
inkscape:window-x="20"
inkscape:window-y="20"
showguides="false"
inkscape:guide-bbox="true">
<inkscape:grid
type="xygrid"
id="grid2653"
visible="true"
enabled="true"
color="#ff00ff"
opacity="0.1254902"
empcolor="#0000f2"
empopacity="0.25098039" />
<sodipodi:guide
orientation="1,0"
position="23.969062,28.50558"
id="guide3488" />
<sodipodi:guide
orientation="0,1"
position="17.401268,34.125445"
id="guide3490" />
</sodipodi:namedview>
<metadata
id="metadata2648">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:subject>
<rdf:Bag>
<rdf:li>audio</rdf:li>
<rdf:li>device</rdf:li>
<rdf:li>subwoofer</rdf:li>
<rdf:li>output</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:title>audio-subwoofer</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Evangeline McGlynn</dc:title>
</cc:Agent>
</dc:creator>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g6770">
<path
sodipodi:nodetypes="csccc"
id="path3286"
d="M 42.842316,39.045143 C 42.464661,41.471941 41.414441,43.219015 40.17903,43.219015 C 38.935955,43.219015 37.880378,41.450202 37.508794,38.999908 C 37.859301,37.817247 39.174918,37.23702 40.190441,37.271125 C 41.476403,37.203551 42.469629,37.948644 42.842316,39.045143 z"
style="fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
style="fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 11.018985,39.045143 C 10.641329,41.471941 9.5911095,43.219015 8.3556983,43.219015 C 7.1126243,43.219015 6.0570463,41.450202 5.6854623,38.999908 C 6.0359693,37.817247 7.3515863,37.23702 8.3671093,37.271125 C 9.6530715,37.203551 10.646297,37.948644 11.018985,39.045143 z"
id="path3288"
sodipodi:nodetypes="csccc" />
<path
sodipodi:nodetypes="ccccc"
id="path3264"
d="M 11.578967,6.9788731 C 22.034478,4.1293728 25.918929,4.3517447 36.542557,6.9788731 L 43.942117,13.152471 L 4.1794077,13.152471 L 11.578967,6.9788731 z"
style="fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1.28661346;stroke-linecap:butt;stroke-linejoin:bevel;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
sodipodi:nodetypes="ccccc"
id="path3266"
d="M 3.9145768,13.137135 C 16.486736,9.7856746 31.129598,9.8716096 44.071529,13.137135 L 44.014975,39.76734 C 30.802445,42.114593 16.912824,42.159732 3.9711319,39.902758 L 3.9145768,13.137135 z"
style="fill:#888a85;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
transform="matrix(0,0.4858156,-0.4858156,0,49.057554,-14.78506)"
d="M 105.7618,64.927307 A 21.396112,21.396112 0 1 1 62.969572,64.927307 A 21.396112,21.396112 0 1 1 105.7618,64.927307 z"
sodipodi:ry="21.396112"
sodipodi:rx="21.396112"
sodipodi:cy="64.927307"
sodipodi:cx="84.365685"
id="path3238"
style="fill:url(#radialGradient6781);fill-opacity:1;fill-rule:nonzero;stroke:#555753;stroke-width:2.05839419;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
sodipodi:type="arc"
style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.53625679;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="path3260"
sodipodi:cx="84.365685"
sodipodi:cy="64.927307"
sodipodi:rx="21.396112"
sodipodi:ry="21.396112"
d="M 105.7618,64.927307 A 21.396112,21.396112 0 1 1 62.969572,64.927307 A 21.396112,21.396112 0 1 1 105.7618,64.927307 z"
transform="matrix(0,0.2827849,-0.2827849,0,53.7183,2.3437637)" />
<path
transform="matrix(0,0.1973419,-0.1973419,0,48.148923,9.5522206)"
d="M 105.7618,64.927307 A 21.396112,21.396112 0 1 1 62.969572,64.927307 A 21.396112,21.396112 0 1 1 105.7618,64.927307 z"
sodipodi:ry="21.396112"
sodipodi:rx="21.396112"
sodipodi:cy="64.927307"
sodipodi:cx="84.365685"
id="path6518"
style="fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:5.06734753;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#babdb6;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 4.9461591,13.950789 C 16.44898,10.961669 29.786179,10.935259 43.040609,13.950789 L 42.984059,38.893489 C 29.63547,40.978079 17.006909,41.160879 5.0027091,39.028909 L 4.9461591,13.950789 z"
id="path6561"
sodipodi:nodetypes="ccccc" />
<path
sodipodi:type="arc"
style="fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:5.06734753;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="path6581"
sodipodi:cx="84.365685"
sodipodi:cy="64.927307"
sodipodi:rx="21.396112"
sodipodi:ry="21.396112"
d="M 105.7618,64.927307 A 21.396112,21.396112 0 1 1 62.969572,64.927307 A 21.396112,21.396112 0 1 1 105.7618,64.927307 z"
transform="matrix(0,0.1973419,-0.1973419,0,30.327733,9.5522212)" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1,21 @@
NULL =
themedir = $(pkgdatadir)/icons/hicolor
size = scalable
context = status
iconsdir = $(themedir)/$(size)/$(context)
icons_DATA = \
audio-input-microphone-high.svg \
audio-input-microphone-low.svg \
audio-input-microphone-medium.svg \
audio-input-microphone-muted.svg \
$(NULL)
EXTRA_DIST = \
$(icons_DATA) \
$(NULL)
-include $(top_srcdir)/git.mk

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 57 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 55 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 56 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 392 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 853 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 548 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 687 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 520 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 B

BIN
data/images/blank.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 B

15
data/images/images.qrc Normal file
View File

@ -0,0 +1,15 @@
<RCC>
<qresource prefix="/images">
<file>blank.png</file>
<file>emblem-unreadable.png</file>
<file>audio-volume-muted.png</file>
<file>audio-volume-medium.png</file>
<file>audio-volume-low.png</file>
<file>audio-volume-high.png</file>
<file>application-audio.png</file>
<file>audio-input-microphone-muted.png</file>
<file>audio-input-microphone-medium.png</file>
<file>audio-input-microphone-low.png</file>
<file>audio-input-microphone-high.png</file>
</qresource>
</RCC>

Some files were not shown because too many files have changed in this diff Show More