summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorColin Guthrie <cguthrie@mandriva.org>2009-03-16 12:41:02 +0000
committerColin Guthrie <cguthrie@mandriva.org>2009-03-16 12:41:02 +0000
commit38e7792eec00e139c2166d452ba1b96da41f4a2c (patch)
tree79b20d549a46c280089a03544fa1e8e33b26b6c8 /src
parentd3a66f65b57b74dff41815620f8e45fd926ec50f (diff)
Split sinkwidget into it's own files.
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am1
-rw-r--r--src/pavucontrol.cc103
-rw-r--r--src/pavucontrol.h26
-rw-r--r--src/sinkwidget.cc81
-rw-r--r--src/sinkwidget.h46
5 files changed, 155 insertions, 102 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 966e391..1b7c02e 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -29,6 +29,7 @@ pavucontrol_SOURCES= \
channelwidget.h channelwidget.cc \
streamwidget.h streamwidget.cc \
cardwidget.h cardwidget.cc \
+ sinkwidget.h sinkwidget.cc \
pavucontrol.h pavucontrol.cc \
i18n.h
diff --git a/src/pavucontrol.cc b/src/pavucontrol.cc
index ca6366c..a8bc2ad 100644
--- a/src/pavucontrol.cc
+++ b/src/pavucontrol.cc
@@ -35,56 +35,13 @@
#include "channelwidget.h"
#include "streamwidget.h"
#include "cardwidget.h"
+#include "sinkwidget.h"
static pa_context *context = NULL;
static int n_outstanding = 0;
-enum SinkInputType {
- SINK_INPUT_ALL,
- SINK_INPUT_CLIENT,
- SINK_INPUT_VIRTUAL
-};
-
-enum SinkType {
- SINK_ALL,
- SINK_HARDWARE,
- SINK_VIRTUAL,
-};
-
-enum SourceOutputType {
- SOURCE_OUTPUT_ALL,
- SOURCE_OUTPUT_CLIENT,
- SOURCE_OUTPUT_VIRTUAL
-};
-
-enum SourceType{
- SOURCE_ALL,
- SOURCE_NO_MONITOR,
- SOURCE_HARDWARE,
- SOURCE_VIRTUAL,
- SOURCE_MONITOR,
-};
-
class MainWindow;
-class SinkWidget : public StreamWidget {
-public:
- SinkWidget(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& x);
- static SinkWidget* create();
-
- SinkType type;
- Glib::ustring description;
- Glib::ustring name;
- uint32_t index, monitor_index, card_index;
- bool can_decibel;
-
- Gtk::CheckMenuItem defaultMenuItem;
-
- virtual void onMuteToggleButton();
- virtual void executeVolumeUpdate();
- virtual void onDefaultToggle();
-};
-
class SourceWidget : public StreamWidget {
public:
SourceWidget(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& x);
@@ -268,64 +225,6 @@ void show_error(const char *txt) {
}
-SinkWidget::SinkWidget(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& x) :
- StreamWidget(cobject, x),
- defaultMenuItem("_Default", true){
-
- add_events(Gdk::BUTTON_PRESS_MASK);
-
- defaultMenuItem.set_active(false);
- defaultMenuItem.signal_toggled().connect(sigc::mem_fun(*this, &SinkWidget::onDefaultToggle));
- menu.append(defaultMenuItem);
- menu.show_all();
-}
-
-SinkWidget* SinkWidget::create() {
- SinkWidget* w;
- Glib::RefPtr<Gnome::Glade::Xml> x = Gnome::Glade::Xml::create(GLADE_FILE, "streamWidget");
- x->get_widget_derived("streamWidget", w);
- return w;
-}
-
-void SinkWidget::executeVolumeUpdate() {
- pa_operation* o;
-
- if (!(o = pa_context_set_sink_volume_by_index(context, index, &volume, NULL, NULL))) {
- show_error(_("pa_context_set_sink_volume_by_index() failed"));
- return;
- }
-
- pa_operation_unref(o);
-}
-
-void SinkWidget::onMuteToggleButton() {
- StreamWidget::onMuteToggleButton();
-
- if (updating)
- return;
-
- pa_operation* o;
- if (!(o = pa_context_set_sink_mute_by_index(context, index, muteToggleButton->get_active(), NULL, NULL))) {
- show_error(_("pa_context_set_sink_mute_by_index() failed"));
- return;
- }
-
- pa_operation_unref(o);
-}
-
-void SinkWidget::onDefaultToggle() {
- pa_operation* o;
-
- if (updating)
- return;
-
- if (!(o = pa_context_set_default_sink(context, name.c_str(), NULL, NULL))) {
- show_error(_("pa_context_set_default_sink() failed"));
- return;
- }
- pa_operation_unref(o);
-}
-
SourceWidget::SourceWidget(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& x) :
StreamWidget(cobject, x),
defaultMenuItem(_("_Default"), true){
diff --git a/src/pavucontrol.h b/src/pavucontrol.h
index 2dec8cd..12fe986 100644
--- a/src/pavucontrol.h
+++ b/src/pavucontrol.h
@@ -34,6 +34,32 @@
#define GLADE_FILE "pavucontrol.glade"
#endif
+enum SinkInputType {
+ SINK_INPUT_ALL,
+ SINK_INPUT_CLIENT,
+ SINK_INPUT_VIRTUAL
+};
+
+enum SinkType {
+ SINK_ALL,
+ SINK_HARDWARE,
+ SINK_VIRTUAL,
+};
+
+enum SourceOutputType {
+ SOURCE_OUTPUT_ALL,
+ SOURCE_OUTPUT_CLIENT,
+ SOURCE_OUTPUT_VIRTUAL
+};
+
+enum SourceType {
+ SOURCE_ALL,
+ SOURCE_NO_MONITOR,
+ SOURCE_HARDWARE,
+ SOURCE_VIRTUAL,
+ SOURCE_MONITOR,
+};
+
pa_context* get_context(void);
void show_error(const char *txt);
diff --git a/src/sinkwidget.cc b/src/sinkwidget.cc
new file mode 100644
index 0000000..1eb50bc
--- /dev/null
+++ b/src/sinkwidget.cc
@@ -0,0 +1,81 @@
+/***
+ This file is part of pavucontrol.
+
+ Copyright 2006-2008 Lennart Poettering
+ Copyright 2009 Colin Guthrie
+
+ pavucontrol 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.
+
+ pavucontrol 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 pavucontrol. If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include "sinkwidget.h"
+
+#include "i18n.h"
+
+SinkWidget::SinkWidget(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& x) :
+ StreamWidget(cobject, x),
+ defaultMenuItem("_Default", true){
+
+ add_events(Gdk::BUTTON_PRESS_MASK);
+
+ defaultMenuItem.set_active(false);
+ defaultMenuItem.signal_toggled().connect(sigc::mem_fun(*this, &SinkWidget::onDefaultToggle));
+ menu.append(defaultMenuItem);
+ menu.show_all();
+}
+
+SinkWidget* SinkWidget::create() {
+ SinkWidget* w;
+ Glib::RefPtr<Gnome::Glade::Xml> x = Gnome::Glade::Xml::create(GLADE_FILE, "streamWidget");
+ x->get_widget_derived("streamWidget", w);
+ return w;
+}
+
+void SinkWidget::executeVolumeUpdate() {
+ pa_operation* o;
+
+ if (!(o = pa_context_set_sink_volume_by_index(get_context(), index, &volume, NULL, NULL))) {
+ show_error(_("pa_context_set_sink_volume_by_index() failed"));
+ return;
+ }
+
+ pa_operation_unref(o);
+}
+
+void SinkWidget::onMuteToggleButton() {
+ StreamWidget::onMuteToggleButton();
+
+ if (updating)
+ return;
+
+ pa_operation* o;
+ if (!(o = pa_context_set_sink_mute_by_index(get_context(), index, muteToggleButton->get_active(), NULL, NULL))) {
+ show_error(_("pa_context_set_sink_mute_by_index() failed"));
+ return;
+ }
+
+ pa_operation_unref(o);
+}
+
+void SinkWidget::onDefaultToggle() {
+ pa_operation* o;
+
+ if (updating)
+ return;
+
+ if (!(o = pa_context_set_default_sink(get_context(), name.c_str(), NULL, NULL))) {
+ show_error(_("pa_context_set_default_sink() failed"));
+ return;
+ }
+ pa_operation_unref(o);
+}
diff --git a/src/sinkwidget.h b/src/sinkwidget.h
new file mode 100644
index 0000000..d5ce315
--- /dev/null
+++ b/src/sinkwidget.h
@@ -0,0 +1,46 @@
+/***
+ This file is part of pavucontrol.
+
+ Copyright 2006-2008 Lennart Poettering
+ Copyright 2009 Colin Guthrie
+
+ pavucontrol 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.
+
+ pavucontrol 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 pavucontrol. If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#ifndef sinkwidget_h
+#define sinkwidget_h
+
+#include "pavucontrol.h"
+
+#include "streamwidget.h"
+
+class SinkWidget : public StreamWidget {
+public:
+ SinkWidget(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& x);
+ static SinkWidget* create();
+
+ SinkType type;
+ Glib::ustring description;
+ Glib::ustring name;
+ uint32_t index, monitor_index, card_index;
+ bool can_decibel;
+
+ Gtk::CheckMenuItem defaultMenuItem;
+
+ virtual void onMuteToggleButton();
+ virtual void executeVolumeUpdate();
+ virtual void onDefaultToggle();
+};
+
+#endif