summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ServerInfoManager.cc27
-rw-r--r--src/ServerInfoManager.hh8
-rw-r--r--src/SinkInputWindow.cc10
-rw-r--r--src/SinkInputWindow.hh1
-rw-r--r--src/SinkWindow.cc35
-rw-r--r--src/SinkWindow.hh4
-rw-r--r--src/SourceOutputWindow.cc9
-rw-r--r--src/SourceOutputWindow.hh1
-rw-r--r--src/SourceWindow.cc62
-rw-r--r--src/SourceWindow.hh17
-rw-r--r--src/paman.glade1025
11 files changed, 832 insertions, 367 deletions
diff --git a/src/ServerInfoManager.cc b/src/ServerInfoManager.cc
index a809de6..e1c978b 100644
--- a/src/ServerInfoManager.cc
+++ b/src/ServerInfoManager.cc
@@ -26,14 +26,16 @@
#include "ServerInfoManager.hh"
#include "paman.hh"
-SinkInfo::SinkInfo(const struct pa_sink_info &i) :
+SinkInfo::SinkInfo(const pa_sink_info &i) :
driver(i.driver),
name(i.name),
index(i.index),
sample_spec(i.sample_spec),
+ channel_map(i.channel_map),
monitor_source(i.monitor_source),
owner_module(i.owner_module),
volume(i.volume),
+ hw_volume_supported(!!(i.flags & PA_SINK_HW_VOLUME_CTRL)),
latency(i.latency),
monitor_source_name(i.monitor_source_name),
window(NULL) {
@@ -47,14 +49,16 @@ SinkInfo::~SinkInfo() {
delete window;
}
-void SinkInfo::update(const struct pa_sink_info &i) {
+void SinkInfo::update(const pa_sink_info &i) {
driver = Glib::ustring(i.driver);
name = Glib::ustring(i.name);
index = i.index;
sample_spec = i.sample_spec;
+ channel_map = i.channel_map;
monitor_source = i.monitor_source;
owner_module = i.owner_module;
volume = i.volume;
+ hw_volume_supported = !!(i.flags & PA_SINK_HW_VOLUME_CTRL),
latency = i.latency;
monitor_source_name = i.monitor_source_name;
@@ -76,13 +80,16 @@ void SinkInfo::showWindow() {
}
}
-SourceInfo::SourceInfo(const struct pa_source_info &i) :
+SourceInfo::SourceInfo(const pa_source_info &i) :
driver(i.driver),
name(i.name),
index(i.index),
sample_spec(i.sample_spec),
+ channel_map(i.channel_map),
owner_module(i.owner_module),
monitor_of_sink(i.monitor_of_sink),
+ volume(i.volume),
+ hw_volume_supported(!!(i.flags & PA_SINK_HW_VOLUME_CTRL)),
latency(i.latency),
window(NULL) {
@@ -100,8 +107,11 @@ void SourceInfo::update(const struct pa_source_info &i) {
name = i.name;
index = i.index;
sample_spec = i.sample_spec;
+ channel_map = i.channel_map;
owner_module = i.owner_module;
monitor_of_sink = i.monitor_of_sink;
+ volume = i.volume;
+ hw_volume_supported = !!(i.flags & PA_SOURCE_HW_VOLUME_CTRL),
latency = i.latency;
description = i.description ? i.description : "";
@@ -203,6 +213,7 @@ SinkInputInfo::SinkInputInfo(const struct pa_sink_input_info &i) :
name(i.name),
index(i.index),
sample_spec(i.sample_spec),
+ channel_map(i.channel_map),
sink(i.sink),
client(i.client),
owner_module(i.owner_module),
@@ -223,6 +234,7 @@ void SinkInputInfo::update(const struct pa_sink_input_info &i) {
name = i.name;
index = i.index;
sample_spec = i.sample_spec;
+ channel_map = i.channel_map;
sink = i.sink;
client = i.client;
owner_module = i.owner_module;
@@ -252,6 +264,7 @@ SourceOutputInfo::SourceOutputInfo(const struct pa_source_output_info &i) :
name(i.name),
index(i.index),
sample_spec(i.sample_spec),
+ channel_map(i.channel_map),
source(i.source),
client(i.client),
owner_module(i.owner_module),
@@ -271,6 +284,7 @@ void SourceOutputInfo::update(const struct pa_source_output_info &i) {
name = i.name;
index = i.index;
sample_spec = i.sample_spec;
+ channel_map = i.channel_map;
source = i.source;
client = i.client;
owner_module = i.owner_module;
@@ -734,6 +748,13 @@ void ServerInfoManager::setSinkVolume(uint32_t index, pa_volume_t volume) {
}
/* FIXME: Handle all channels separately. */
+void ServerInfoManager::setSourceVolume(uint32_t index, pa_volume_t volume) {
+ pa_cvolume cvol;
+ pa_cvolume_set(&cvol, sinks[index]->volume.channels, volume);
+ pa_operation_unref(pa_context_set_source_volume_by_index(&context, index, &cvol, NULL, NULL));
+}
+
+/* FIXME: Handle all channels separately. */
void ServerInfoManager::setSinkInputVolume(uint32_t index, pa_volume_t volume) {
pa_cvolume cvol;
pa_cvolume_set(&cvol, sinkInputs[index]->volume.channels, volume);
diff --git a/src/ServerInfoManager.hh b/src/ServerInfoManager.hh
index 1b37e66..6467c05 100644
--- a/src/ServerInfoManager.hh
+++ b/src/ServerInfoManager.hh
@@ -58,9 +58,11 @@ public:
Glib::ustring driver, name, description;
uint32_t index;
struct pa_sample_spec sample_spec;
+ struct pa_channel_map channel_map;
uint32_t monitor_source;
uint32_t owner_module;
pa_cvolume volume;
+ int hw_volume_supported;
pa_usec_t latency;
Glib::ustring monitor_source_name;
@@ -80,8 +82,11 @@ public:
Glib::ustring driver, name, description;
uint32_t index;
struct pa_sample_spec sample_spec;
+ struct pa_channel_map channel_map;
uint32_t owner_module;
uint32_t monitor_of_sink;
+ pa_cvolume volume;
+ int hw_volume_supported;
pa_usec_t latency;
Gtk::TreeRowReference treeRef;
@@ -133,6 +138,7 @@ public:
Glib::ustring driver, name;
uint32_t index;
struct pa_sample_spec sample_spec;
+ struct pa_channel_map channel_map;
uint32_t sink;
uint32_t client;
uint32_t owner_module;
@@ -157,6 +163,7 @@ public:
Glib::ustring driver, name;
uint32_t index;
struct pa_sample_spec sample_spec;
+ struct pa_channel_map channel_map;
uint32_t source;
uint32_t client;
uint32_t owner_module;
@@ -228,6 +235,7 @@ public:
void removeSampleInfo(uint32_t index);
void setSinkVolume(uint32_t index, pa_volume_t volume);
+ void setSourceVolume(uint32_t index, pa_volume_t volume);
void setSinkInputVolume(uint32_t index, pa_volume_t volume);
void showStatWindow();
diff --git a/src/SinkInputWindow.cc b/src/SinkInputWindow.cc
index 0b8cc67..320189b 100644
--- a/src/SinkInputWindow.cc
+++ b/src/SinkInputWindow.cc
@@ -31,6 +31,7 @@ SinkInputWindow::SinkInputWindow(BaseObjectType* cobject, const Glib::RefPtr<Gno
nameLabel(NULL),
indexLabel(NULL),
sampleTypeLabel(NULL),
+ channelMapLabel(NULL),
latencyLabel(NULL),
sinkLabel(NULL),
clientLabel(NULL),
@@ -50,6 +51,7 @@ SinkInputWindow::SinkInputWindow(BaseObjectType* cobject, const Glib::RefPtr<Gno
refGlade->get_widget("nameLabel", nameLabel);
refGlade->get_widget("indexLabel", indexLabel);
refGlade->get_widget("sampleTypeLabel", sampleTypeLabel);
+ refGlade->get_widget("channelMapLabel", channelMapLabel);
refGlade->get_widget("latencyLabel", latencyLabel);
refGlade->get_widget("sinkLabel", sinkLabel);
refGlade->get_widget("clientLabel", clientLabel);
@@ -83,14 +85,15 @@ SinkInputWindow* SinkInputWindow::create() {
}
void SinkInputWindow::updateInfo(const SinkInputInfo &i) {
- char t[80], ss[PA_SAMPLE_SPEC_SNPRINT_MAX];
+ char t[80], ss[PA_SAMPLE_SPEC_SNPRINT_MAX], cm[PA_CHANNEL_MAP_SNPRINT_MAX];
double percent, db;
nameLabel->set_text(i.name);
snprintf(t, sizeof(t), "#%u", i.index);
indexLabel->set_text(t);
- pa_sample_spec_snprint(ss, sizeof(ss), &i.sample_spec);
- sampleTypeLabel->set_text(ss);
+
+ sampleTypeLabel->set_text(pa_sample_spec_snprint(ss, sizeof(ss), &i.sample_spec));
+ channelMapLabel->set_text(pa_channel_map_snprint(cm, sizeof(cm), &i.channel_map));
if (i.owner_module == PA_INVALID_INDEX)
ownerModuleLabel->set_markup("<i>n/a</i>");
@@ -113,6 +116,7 @@ void SinkInputWindow::updateInfo(const SinkInputInfo &i) {
}
percent = pa_sw_volume_to_linear(pa_cvolume_avg(&i.volume)) * 100;
+
/* FIXME: Hardware volume doesn't translate well to dB. */
db = pa_sw_volume_to_dB(pa_cvolume_avg(&i.volume));
scaleEnabled = false;
diff --git a/src/SinkInputWindow.hh b/src/SinkInputWindow.hh
index 29b4599..84a3ae4 100644
--- a/src/SinkInputWindow.hh
+++ b/src/SinkInputWindow.hh
@@ -37,6 +37,7 @@ public:
Gtk::Label *nameLabel,
*indexLabel,
*sampleTypeLabel,
+ *channelMapLabel,
*latencyLabel,
*sinkLabel,
*clientLabel,
diff --git a/src/SinkWindow.cc b/src/SinkWindow.cc
index 1999693..d6971dd 100644
--- a/src/SinkWindow.cc
+++ b/src/SinkWindow.cc
@@ -32,6 +32,7 @@ SinkWindow::SinkWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade:
descriptionLabel(NULL),
indexLabel(NULL),
sampleTypeLabel(NULL),
+ channelMapLabel(NULL),
latencyLabel(NULL),
ownerModuleLabel(NULL),
monitorSourceLabel(NULL),
@@ -49,6 +50,7 @@ SinkWindow::SinkWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade:
refGlade->get_widget("descriptionLabel", descriptionLabel);
refGlade->get_widget("indexLabel", indexLabel);
refGlade->get_widget("sampleTypeLabel", sampleTypeLabel);
+ refGlade->get_widget("channelMapLabel", channelMapLabel);
refGlade->get_widget("latencyLabel", latencyLabel);
refGlade->get_widget("ownerModuleLabel", ownerModuleLabel);
refGlade->get_widget("monitorSourceLabel", monitorSourceLabel);
@@ -78,15 +80,15 @@ SinkWindow* SinkWindow::create() {
}
void SinkWindow::updateInfo(const SinkInfo &i) {
- char t[64], ss[PA_SAMPLE_SPEC_SNPRINT_MAX];
- double percent, db;
+ char t[64], ss[PA_SAMPLE_SPEC_SNPRINT_MAX], cm[PA_CHANNEL_MAP_SNPRINT_MAX];
+ double percent;
nameLabel->set_text(i.name);
descriptionLabel->set_text(i.description);
snprintf(t, sizeof(t), "#%u", i.index);
indexLabel->set_text(t);
- pa_sample_spec_snprint(ss, sizeof(ss), &i.sample_spec);
- sampleTypeLabel->set_text(ss);
+ sampleTypeLabel->set_text(pa_sample_spec_snprint(ss, sizeof(ss), &i.sample_spec));
+ channelMapLabel->set_text(pa_channel_map_snprint(cm, sizeof(cm), &i.channel_map));
snprintf(t, sizeof(t), "#%u", i.owner_module);
ownerModuleLabel->set_text(t);
@@ -96,16 +98,23 @@ void SinkWindow::updateInfo(const SinkInfo &i) {
SourceInfo *source = serverInfoManager->getSourceInfo(i.monitor_source);
monitorSourceLabel->set_text(source->name);
- percent = pa_sw_volume_to_linear(pa_cvolume_avg(&i.volume)) * 100;
- /* FIXME: Hardware volume doesn't translate well to dB. */
- db = pa_sw_volume_to_dB(pa_cvolume_avg(&i.volume));
+ percent = ((double) pa_cvolume_avg(&i.volume) * 100) / PA_VOLUME_NORM;
scaleEnabled = false;
volumeScale->set_value(percent);
scaleEnabled = true;
- if (db != PA_DECIBEL_MININFTY)
- snprintf(t, sizeof(t), "%0.0f%% (%0.2fdB)", percent, db);
- else
- snprintf(t, sizeof(t), "%0.0f%% (-&#8734;dB)", percent);
+
+ if (i.hw_volume_supported)
+ snprintf(t, sizeof(t), "%0.0f%%", percent);
+ else {
+ double db;
+
+ db = pa_sw_volume_to_dB(pa_cvolume_avg(&i.volume));
+
+ if (db != PA_DECIBEL_MININFTY)
+ snprintf(t, sizeof(t), "%0.0f%% (%0.2fdB)", percent, db);
+ else
+ snprintf(t, sizeof(t), "%0.0f%% (-&#8734;dB)", percent);
+ }
volumeLabel->set_markup(t);
set_title("Sink: "+i.name);
@@ -115,7 +124,7 @@ void SinkWindow::updateInfo(const SinkInfo &i) {
index = i.index;
monitor_source_name = i.monitor_source_name;
- toOwnerModuleButton->set_sensitive(owner_module != (uint32_t) -1);
+ toOwnerModuleButton->set_sensitive(owner_module != PA_INVALID_INDEX);
}
void SinkWindow::onCloseButton() {
@@ -133,7 +142,7 @@ void SinkWindow::onToOwnerModuleButton() {
void SinkWindow::onVolumeScaleValueChanged() {
if (scaleEnabled)
- serverInfoManager->setSinkVolume(index, pa_sw_volume_from_linear(volumeScale->get_value()/100));
+ serverInfoManager->setSinkVolume(index, (pa_volume_t) (((double) volumeScale->get_value()/100) * PA_VOLUME_NORM));
}
void SinkWindow::onVolumeResetButton() {
diff --git a/src/SinkWindow.hh b/src/SinkWindow.hh
index b3c26a8..dcabb3b 100644
--- a/src/SinkWindow.hh
+++ b/src/SinkWindow.hh
@@ -38,6 +38,7 @@ public:
*descriptionLabel,
*indexLabel,
*sampleTypeLabel,
+ *channelMapLabel,
*latencyLabel,
*ownerModuleLabel,
*monitorSourceLabel,
@@ -64,8 +65,9 @@ public:
virtual void onVolumeScaleValueChanged();
virtual void onVolumeResetButton();
virtual void onVolumeMuteButton();
- virtual bool on_delete_event(GdkEventAny* e);
virtual void onVolumeMeterButton();
+
+ virtual bool on_delete_event(GdkEventAny* e);
};
#endif
diff --git a/src/SourceOutputWindow.cc b/src/SourceOutputWindow.cc
index 0ba686f..836dade 100644
--- a/src/SourceOutputWindow.cc
+++ b/src/SourceOutputWindow.cc
@@ -31,6 +31,7 @@ SourceOutputWindow::SourceOutputWindow(BaseObjectType* cobject, const Glib::RefP
nameLabel(NULL),
indexLabel(NULL),
sampleTypeLabel(NULL),
+ channelMapLabel(NULL),
sourceLabel(NULL),
clientLabel(NULL),
ownerModuleLabel(NULL),
@@ -45,6 +46,7 @@ SourceOutputWindow::SourceOutputWindow(BaseObjectType* cobject, const Glib::RefP
refGlade->get_widget("nameLabel", nameLabel);
refGlade->get_widget("indexLabel", indexLabel);
refGlade->get_widget("sampleTypeLabel", sampleTypeLabel);
+ refGlade->get_widget("channelMapLabel", channelMapLabel);
refGlade->get_widget("sourceLabel", sourceLabel);
refGlade->get_widget("clientLabel", clientLabel);
refGlade->get_widget("ownerModuleLabel", ownerModuleLabel);
@@ -71,13 +73,14 @@ SourceOutputWindow* SourceOutputWindow::create() {
}
void SourceOutputWindow::updateInfo(const SourceOutputInfo &i) {
- char t[100], ss[PA_SAMPLE_SPEC_SNPRINT_MAX];
+ char t[100], ss[PA_SAMPLE_SPEC_SNPRINT_MAX], cm[PA_CHANNEL_MAP_SNPRINT_MAX];
nameLabel->set_text(i.name);
snprintf(t, sizeof(t), "#%u", i.index);
indexLabel->set_text(t);
- pa_sample_spec_snprint(ss, sizeof(ss), &i.sample_spec);
- sampleTypeLabel->set_text(ss);
+
+ sampleTypeLabel->set_text(pa_sample_spec_snprint(ss, sizeof(ss), &i.sample_spec));
+ channelMapLabel->set_text(pa_channel_map_snprint(cm, sizeof(cm), &i.channel_map));
if (i.owner_module == PA_INVALID_INDEX)
ownerModuleLabel->set_markup("<i>n/a</i>");
diff --git a/src/SourceOutputWindow.hh b/src/SourceOutputWindow.hh
index 71abe48..7ced848 100644
--- a/src/SourceOutputWindow.hh
+++ b/src/SourceOutputWindow.hh
@@ -37,6 +37,7 @@ public:
Gtk::Label *nameLabel,
*indexLabel,
*sampleTypeLabel,
+ *channelMapLabel,
*sourceLabel,
*clientLabel,
*ownerModuleLabel,
diff --git a/src/SourceWindow.cc b/src/SourceWindow.cc
index b79c9e5..d12802d 100644
--- a/src/SourceWindow.cc
+++ b/src/SourceWindow.cc
@@ -33,26 +33,38 @@ SourceWindow::SourceWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Gl
ownerModuleLabel(NULL),
monitorOfSinkLabel(NULL),
latencyLabel(NULL),
+ volumeLabel(NULL),
closeButton(NULL),
toParentSinkButton(NULL),
toOwnerModuleButton(NULL),
- volumeMeterButton(NULL) {
+ volumeResetButton(NULL),
+ volumeMuteButton(NULL),
+ volumeMeterButton(NULL),
+ volumeScale(NULL) {
refGlade->get_widget("nameLabel", nameLabel);
refGlade->get_widget("descriptionLabel", descriptionLabel);
refGlade->get_widget("indexLabel", indexLabel);
refGlade->get_widget("sampleTypeLabel", sampleTypeLabel);
+ refGlade->get_widget("channelMapLabel", channelMapLabel);
refGlade->get_widget("ownerModuleLabel", ownerModuleLabel);
refGlade->get_widget("monitorOfSinkLabel", monitorOfSinkLabel);
refGlade->get_widget("latencyLabel", latencyLabel);
refGlade->get_widget("closeButton", closeButton);
refGlade->get_widget("toParentSinkButton", toParentSinkButton);
refGlade->get_widget("toOwnerModuleButton", toOwnerModuleButton);
+ refGlade->get_widget("volumeLabel", volumeLabel);
+ refGlade->get_widget("volumeScale", volumeScale);
+ refGlade->get_widget("volumeResetButton", volumeResetButton);
+ refGlade->get_widget("volumeMuteButton", volumeMuteButton);
refGlade->get_widget("volumeMeterButton", volumeMeterButton);
closeButton->signal_clicked().connect(sigc::mem_fun(*this, &SourceWindow::onCloseButton));
toParentSinkButton->signal_clicked().connect(sigc::mem_fun(*this, &SourceWindow::onParentSinkButton));
toOwnerModuleButton->signal_clicked().connect(sigc::mem_fun(*this, &SourceWindow::onToOwnerModuleButton));
+ volumeScale->signal_value_changed().connect(sigc::mem_fun(*this, &SourceWindow::onVolumeScaleValueChanged));
+ volumeResetButton->signal_clicked().connect(sigc::mem_fun(*this, &SourceWindow::onVolumeResetButton));
+ volumeMuteButton->signal_clicked().connect(sigc::mem_fun(*this, &SourceWindow::onVolumeMuteButton));
volumeMeterButton->signal_clicked().connect(sigc::mem_fun(*this, &SourceWindow::onVolumeMeterButton));
}
@@ -64,14 +76,17 @@ SourceWindow* SourceWindow::create() {
}
void SourceWindow::updateInfo(const SourceInfo &i) {
- char t[20], ss[PA_SAMPLE_SPEC_SNPRINT_MAX];
+ char t[20], ss[PA_SAMPLE_SPEC_SNPRINT_MAX], cm[PA_CHANNEL_MAP_SNPRINT_MAX];
+ double percent;
nameLabel->set_text(i.name);
descriptionLabel->set_text(i.description);
snprintf(t, sizeof(t), "#%u", i.index);
indexLabel->set_text(t);
- pa_sample_spec_snprint(ss, sizeof(ss), &i.sample_spec);
- sampleTypeLabel->set_text(ss);
+
+ sampleTypeLabel->set_text(pa_sample_spec_snprint(ss, sizeof(ss), &i.sample_spec));
+ channelMapLabel->set_text(pa_channel_map_snprint(cm, sizeof(cm), &i.channel_map));
+
snprintf(t, sizeof(t), "#%u", i.owner_module);
ownerModuleLabel->set_text(t);
@@ -88,12 +103,32 @@ void SourceWindow::updateInfo(const SourceInfo &i) {
}
}
- monitor_of_sink = i.monitor_of_sink;
- source_name = i.name;
-
+ percent = ((double) pa_cvolume_avg(&i.volume) * 100) / PA_VOLUME_NORM;
+ scaleEnabled = false;
+ volumeScale->set_value(percent);
+ scaleEnabled = true;
+
+ if (i.hw_volume_supported)
+ snprintf(t, sizeof(t), "%0.0f%%", percent);
+ else {
+ double db;
+
+ db = pa_sw_volume_to_dB(pa_cvolume_avg(&i.volume));
+
+ if (db != PA_DECIBEL_MININFTY)
+ snprintf(t, sizeof(t), "%0.0f%% (%0.2fdB)", percent, db);
+ else
+ snprintf(t, sizeof(t), "%0.0f%% (-&#8734;dB)", percent);
+ }
+ volumeLabel->set_markup(t);
+
set_title("Source: "+i.name);
+ monitor_of_sink = i.monitor_of_sink;
owner_module = i.owner_module;
+ index = i.index;
+ source_name = i.name;
+
toOwnerModuleButton->set_sensitive(owner_module != (uint32_t) -1);
}
@@ -111,6 +146,19 @@ void SourceWindow::onToOwnerModuleButton() {
serverInfoManager->showModuleWindow(owner_module);
}
+void SourceWindow::onVolumeScaleValueChanged() {
+ if (scaleEnabled)
+ serverInfoManager->setSourceVolume(index, (pa_volume_t) (((double) volumeScale->get_value()/100) * PA_VOLUME_NORM));
+}
+
+void SourceWindow::onVolumeResetButton() {
+ serverInfoManager->setSourceVolume(index, PA_VOLUME_NORM);
+}
+
+void SourceWindow::onVolumeMuteButton() {
+ serverInfoManager->setSourceVolume(index, PA_VOLUME_MUTED);
+}
+
bool SourceWindow::on_delete_event(GdkEventAny*) {
hide();
return false;
diff --git a/src/SourceWindow.hh b/src/SourceWindow.hh
index 7cddff3..05e5167 100644
--- a/src/SourceWindow.hh
+++ b/src/SourceWindow.hh
@@ -34,25 +34,36 @@ public:
*descriptionLabel,
*indexLabel,
*sampleTypeLabel,
+ *channelMapLabel,
*ownerModuleLabel,
*monitorOfSinkLabel,
- *latencyLabel;
+ *latencyLabel,
+ *volumeLabel;
Gtk::Button *closeButton,
*toParentSinkButton,
*toOwnerModuleButton,
+ *volumeResetButton,
+ *volumeMuteButton,
*volumeMeterButton;
- uint32_t monitor_of_sink, owner_module;
+ Gtk::HScale *volumeScale;
+
+ uint32_t index, monitor_of_sink, owner_module;
Glib::ustring source_name;
+ bool scaleEnabled;
void updateInfo(const SourceInfo &i);
virtual void onCloseButton();
virtual void onParentSinkButton();
virtual void onToOwnerModuleButton();
- virtual bool on_delete_event(GdkEventAny* e);
+ virtual void onVolumeScaleValueChanged();
+ virtual void onVolumeResetButton();
+ virtual void onVolumeMuteButton();
virtual void onVolumeMeterButton();
+
+ virtual bool on_delete_event(GdkEventAny* e);
};
#endif
diff --git a/src/paman.glade b/src/paman.glade
index 71913e9..288a23f 100644
--- a/src/paman.glade
+++ b/src/paman.glade
@@ -1909,7 +1909,7 @@
<child>
<widget class="GtkTable" id="table1">
<property name="visible">True</property>
- <property name="n_rows">8</property>
+ <property name="n_rows">9</property>
<property name="n_columns">2</property>
<property name="homogeneous">False</property>
<property name="row_spacing">6</property>
@@ -1972,90 +1972,6 @@
</child>
<child>
- <widget class="GtkLabel" id="label7">
- <property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Monitor Source:&lt;/b&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">6</property>
- <property name="bottom_attach">7</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label6">
- <property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Owner Module:&lt;/b&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label5">
- <property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Latency:&lt;/b&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
<widget class="GtkLabel" id="label4">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;b&gt;Sample Type:&lt;/b&gt;</property>
@@ -2112,34 +2028,6 @@
</child>
<child>
- <widget class="GtkLabel" id="latencyLabel">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">foo</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">True</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
<widget class="GtkLabel" id="sampleTypeLabel">
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -2272,8 +2160,8 @@
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
- <property name="top_attach">7</property>
- <property name="bottom_attach">8</property>
+ <property name="top_attach">8</property>
+ <property name="bottom_attach">9</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
@@ -2368,9 +2256,38 @@
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
+ <property name="top_attach">8</property>
+ <property name="bottom_attach">9</property>
+ <property name="x_options">fill</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label7">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;b&gt;Monitor Source:&lt;/b&gt;</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">1</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
<property name="top_attach">7</property>
<property name="bottom_attach">8</property>
- <property name="y_options">fill</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
</packing>
</child>
@@ -2396,8 +2313,37 @@
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
+ <property name="top_attach">7</property>
+ <property name="bottom_attach">8</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label6">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;b&gt;Owner Module:&lt;/b&gt;</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">1</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
<property name="top_attach">6</property>
<property name="bottom_attach">7</property>
+ <property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
@@ -2424,8 +2370,123 @@
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
+ <property name="top_attach">6</property>
+ <property name="bottom_attach">7</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label5">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;b&gt;Latency:&lt;/b&gt;</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">1</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">5</property>
+ <property name="bottom_attach">6</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="latencyLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">foo</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">True</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
<property name="top_attach">5</property>
<property name="bottom_attach">6</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label7676">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;b&gt;Channel Map:&lt;/b&gt;</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">1</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">4</property>
+ <property name="bottom_attach">5</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="channelMapLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">foo</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">True</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">4</property>
+ <property name="bottom_attach">5</property>
+ <property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
@@ -2608,7 +2669,7 @@
<widget class="GtkTable" id="table2">
<property name="border_width">5</property>
<property name="visible">True</property>
- <property name="n_rows">7</property>
+ <property name="n_rows">9</property>
<property name="n_columns">2</property>
<property name="homogeneous">False</property>
<property name="row_spacing">6</property>
@@ -2727,7 +2788,7 @@
</child>
<child>
- <widget class="GtkLabel" id="sampleTypeLabel">
+ <widget class="GtkLabel" id="indexLabel">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">foo</property>
@@ -2748,14 +2809,14 @@
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="indexLabel">
+ <widget class="GtkLabel" id="descriptionLabel">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">foo</property>
@@ -2776,14 +2837,14 @@
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="descriptionLabel">
+ <widget class="GtkLabel" id="nameLabel">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">foo</property>
@@ -2804,23 +2865,117 @@
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="nameLabel">
+ <widget class="GtkHBox" id="hbox28">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">foo</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">5</property>
+
+ <child>
+ <widget class="GtkLabel" id="volumeLabel">
+ <property name="width_request">80</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">100%</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">True</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHScale" id="volumeScale">
+ <property name="width_request">100</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="draw_value">False</property>
+ <property name="value_pos">GTK_POS_LEFT</property>
+ <property name="digits">0</property>
+ <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property>
+ <property name="inverted">False</property>
+ <property name="adjustment">147.692001343 0 500 10 100 20</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="volumeResetButton">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Reset to 100%, i.e. normal volume</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Reset</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NONE</property>
+ <property name="focus_on_click">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="volumeMuteButton">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Mute to 0%, i.e. turn this sink off</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Mute</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NONE</property>
+ <property name="focus_on_click">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">8</property>
+ <property name="bottom_attach">9</property>
+ <property name="x_options">fill</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label4836">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;b&gt;Volume:&lt;/b&gt;</property>
<property name="use_underline">False</property>
- <property name="use_markup">False</property>
+ <property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
- <property name="selectable">True</property>
- <property name="xalign">0</property>
+ <property name="selectable">False</property>
+ <property name="xalign">1</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
@@ -2830,10 +2985,11 @@
<property name="angle">0</property>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">8</property>
+ <property name="bottom_attach">9</property>
+ <property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
@@ -2859,8 +3015,37 @@
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
- <property name="top_attach">6</property>
- <property name="bottom_attach">7</property>
+ <property name="top_attach">7</property>
+ <property name="bottom_attach">8</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="monitorOfSinkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">foo</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">True</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">7</property>
+ <property name="bottom_attach">8</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
@@ -2887,8 +3072,37 @@
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
- <property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
+ <property name="top_attach">6</property>
+ <property name="bottom_attach">7</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="ownerModuleLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">foo</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">True</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">6</property>
+ <property name="bottom_attach">7</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
@@ -2915,15 +3129,15 @@
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
+ <property name="top_attach">5</property>
+ <property name="bottom_attach">6</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="monitorOfSinkLabel">
+ <widget class="GtkLabel" id="latencyLabel">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">foo</property>
@@ -2944,15 +3158,43 @@
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">6</property>
- <property name="bottom_attach">7</property>
+ <property name="top_attach">5</property>
+ <property name="bottom_attach">6</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="ownerModuleLabel">
+ <widget class="GtkLabel" id="label4838">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;b&gt;Channel Map:&lt;/b&gt;</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">1</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">4</property>
+ <property name="bottom_attach">5</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="sampleTypeLabel">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">foo</property>
@@ -2973,14 +3215,15 @@
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+ <property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="latencyLabel">
+ <widget class="GtkLabel" id="channelMapLabel">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">foo</property>
@@ -3026,7 +3269,7 @@
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">To Owner Module</property>
+ <property name="label" translatable="yes">Go To Owner Module</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
@@ -3043,7 +3286,7 @@
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">To Parent Sink</property>
+ <property name="label" translatable="yes">Go To Parent Sink</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
@@ -3820,7 +4063,7 @@
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">To Owner Module</property>
+ <property name="label" translatable="yes">Go To Owner Module</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
@@ -3962,7 +4205,7 @@
<child>
<widget class="GtkTable" id="table6">
<property name="visible">True</property>
- <property name="n_rows">9</property>
+ <property name="n_rows">10</property>
<property name="n_columns">2</property>
<property name="homogeneous">False</property>
<property name="row_spacing">6</property>
@@ -4109,15 +4352,16 @@
</child>
<child>
- <widget class="GtkLabel" id="label4750">
+ <widget class="GtkLabel" id="sampleTypeLabel">
<property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Latency:&lt;/b&gt;</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">label4755</property>
<property name="use_underline">False</property>
- <property name="use_markup">True</property>
+ <property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
+ <property name="selectable">True</property>
+ <property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
@@ -4127,19 +4371,19 @@
<property name="angle">0</property>
</widget>
<packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label4751">
+ <widget class="GtkLabel" id="label4754">
<property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Owner Module:&lt;/b&gt;</property>
+ <property name="label" translatable="yes">&lt;b&gt;Volume:&lt;/b&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4157,17 +4401,113 @@
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
- <property name="top_attach">6</property>
- <property name="bottom_attach">7</property>
+ <property name="top_attach">9</property>
+ <property name="bottom_attach">10</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label4752">
+ <widget class="GtkHBox" id="hbox10">
<property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Connected to Sink:&lt;/b&gt;</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">5</property>
+
+ <child>
+ <widget class="GtkLabel" id="volumeLabel">
+ <property name="width_request">80</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">100%</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">True</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHScale" id="volumeScale">
+ <property name="width_request">100</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="draw_value">False</property>
+ <property name="value_pos">GTK_POS_LEFT</property>
+ <property name="digits">0</property>
+ <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property>
+ <property name="inverted">False</property>
+ <property name="adjustment">147.692 0 500 10 100 20</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="volumeResetButton">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Reset to 100%, i.e. normal volume</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Reset</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NONE</property>
+ <property name="focus_on_click">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="volumeMuteButton">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Mute to 0%, i.e. turn this sink off</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Mute</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NONE</property>
+ <property name="focus_on_click">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">9</property>
+ <property name="bottom_attach">10</property>
+ <property name="x_options">fill</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label4833">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;b&gt;Resample Method:&lt;/b&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4185,17 +4525,17 @@
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
+ <property name="top_attach">8</property>
+ <property name="bottom_attach">9</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label4753">
+ <widget class="GtkLabel" id="label4751">
<property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Client:&lt;/b&gt;</property>
+ <property name="label" translatable="yes">&lt;b&gt;Owner Module:&lt;/b&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4213,18 +4553,18 @@
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
- <property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
+ <property name="top_attach">7</property>
+ <property name="bottom_attach">8</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="sampleTypeLabel">
+ <widget class="GtkLabel" id="resampleMethodLabel">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">label4755</property>
+ <property name="label" translatable="yes">label4834</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4242,18 +4582,18 @@
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
+ <property name="top_attach">8</property>
+ <property name="bottom_attach">9</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="latencyLabel">
+ <widget class="GtkLabel" id="ownerModuleLabel">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">label4756</property>
+ <property name="label" translatable="yes">label4759</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4271,18 +4611,18 @@
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
+ <property name="top_attach">7</property>
+ <property name="bottom_attach">8</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="sinkLabel">
+ <widget class="GtkLabel" id="clientLabel">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">label4757</property>
+ <property name="label" translatable="yes">label4758</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4300,18 +4640,18 @@
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
+ <property name="top_attach">6</property>
+ <property name="bottom_attach">7</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="clientLabel">
+ <widget class="GtkLabel" id="sinkLabel">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">label4758</property>
+ <property name="label" translatable="yes">label4757</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4337,16 +4677,15 @@
</child>
<child>
- <widget class="GtkLabel" id="ownerModuleLabel">
+ <widget class="GtkLabel" id="label4753">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">label4759</property>
+ <property name="label" translatable="yes">&lt;b&gt;Client:&lt;/b&gt;</property>
<property name="use_underline">False</property>
- <property name="use_markup">False</property>
+ <property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
- <property name="selectable">True</property>
- <property name="xalign">0</property>
+ <property name="selectable">False</property>
+ <property name="xalign">1</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
@@ -4356,8 +4695,8 @@
<property name="angle">0</property>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
<property name="top_attach">6</property>
<property name="bottom_attach">7</property>
<property name="x_options">fill</property>
@@ -4366,9 +4705,9 @@
</child>
<child>
- <widget class="GtkLabel" id="label4754">
+ <widget class="GtkLabel" id="label4752">
<property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Volume:&lt;/b&gt;</property>
+ <property name="label" translatable="yes">&lt;b&gt;Connected to Sink:&lt;/b&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4386,113 +4725,74 @@
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
- <property name="top_attach">8</property>
- <property name="bottom_attach">9</property>
+ <property name="top_attach">5</property>
+ <property name="bottom_attach">6</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox10">
+ <widget class="GtkLabel" id="label4750">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">5</property>
-
- <child>
- <widget class="GtkLabel" id="volumeLabel">
- <property name="width_request">80</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">100%</property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">True</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHScale" id="volumeScale">
- <property name="width_request">100</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="draw_value">False</property>
- <property name="value_pos">GTK_POS_LEFT</property>
- <property name="digits">0</property>
- <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property>
- <property name="inverted">False</property>
- <property name="adjustment">147.692 0 500 10 100 20</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkButton" id="volumeResetButton">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Reset to 100%, i.e. normal volume</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Reset</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NONE</property>
- <property name="focus_on_click">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
+ <property name="label" translatable="yes">&lt;b&gt;Latency:&lt;/b&gt;</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">1</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">4</property>
+ <property name="bottom_attach">5</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
- <child>
- <widget class="GtkButton" id="volumeMuteButton">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Mute to 0%, i.e. turn this sink off</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Mute</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NONE</property>
- <property name="focus_on_click">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
+ <child>
+ <widget class="GtkLabel" id="latencyLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">label4756</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">True</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">8</property>
- <property name="bottom_attach">9</property>
+ <property name="top_attach">4</property>
+ <property name="bottom_attach">5</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label4833">
+ <widget class="GtkLabel" id="label4844">
<property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Resample Method:&lt;/b&gt;</property>
+ <property name="label" translatable="yes">&lt;b&gt;Channel Map:&lt;/b&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4510,18 +4810,18 @@
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
- <property name="top_attach">7</property>
- <property name="bottom_attach">8</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="resampleMethodLabel">
+ <widget class="GtkLabel" id="channelMapLabel">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">label4834</property>
+ <property name="label" translatable="yes">label4755</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4539,8 +4839,8 @@
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">7</property>
- <property name="bottom_attach">8</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
@@ -4741,7 +5041,7 @@
<child>
<widget class="GtkTable" id="table7">
<property name="visible">True</property>
- <property name="n_rows">8</property>
+ <property name="n_rows">9</property>
<property name="n_columns">2</property>
<property name="homogeneous">False</property>
<property name="row_spacing">6</property>
@@ -4917,9 +5217,9 @@
</child>
<child>
- <widget class="GtkLabel" id="label4766">
+ <widget class="GtkLabel" id="label4835">
<property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Owner Module:&lt;/b&gt;</property>
+ <property name="label" translatable="yes">&lt;b&gt;Resample Method:&lt;/b&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4937,23 +5237,24 @@
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
- <property name="top_attach">6</property>
- <property name="bottom_attach">7</property>
+ <property name="top_attach">8</property>
+ <property name="bottom_attach">9</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label4768">
+ <widget class="GtkLabel" id="resampleMethodLabel">
<property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Client:&lt;/b&gt;</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">label4836</property>
<property name="use_underline">False</property>
- <property name="use_markup">True</property>
+ <property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
+ <property name="selectable">True</property>
+ <property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
@@ -4963,19 +5264,19 @@
<property name="angle">0</property>
</widget>
<packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">8</property>
+ <property name="bottom_attach">9</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label4767">
+ <widget class="GtkLabel" id="label4766">
<property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Connected to Source:&lt;/b&gt;</property>
+ <property name="label" translatable="yes">&lt;b&gt;Owner Module:&lt;/b&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4993,17 +5294,46 @@
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
+ <property name="top_attach">7</property>
+ <property name="bottom_attach">8</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label4832">
+ <widget class="GtkLabel" id="ownerModuleLabel">
<property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Latency:&lt;/b&gt;</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">label4759</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">True</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">7</property>
+ <property name="bottom_attach">8</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label4768">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;b&gt;Client:&lt;/b&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -5021,18 +5351,18 @@
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
+ <property name="top_attach">6</property>
+ <property name="bottom_attach">7</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="ownerModuleLabel">
+ <widget class="GtkLabel" id="clientLabel">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">label4759</property>
+ <property name="label" translatable="yes">label4758</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -5058,16 +5388,15 @@
</child>
<child>
- <widget class="GtkLabel" id="clientLabel">
+ <widget class="GtkLabel" id="label4767">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">label4758</property>
+ <property name="label" translatable="yes">&lt;b&gt;Connected to Source:&lt;/b&gt;</property>
<property name="use_underline">False</property>
- <property name="use_markup">False</property>
+ <property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
- <property name="selectable">True</property>
- <property name="xalign">0</property>
+ <property name="selectable">False</property>
+ <property name="xalign">1</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
@@ -5077,8 +5406,8 @@
<property name="angle">0</property>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
<property name="top_attach">5</property>
<property name="bottom_attach">6</property>
<property name="x_options">fill</property>
@@ -5108,6 +5437,34 @@
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
+ <property name="top_attach">5</property>
+ <property name="bottom_attach">6</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label4832">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;b&gt;Latency:&lt;/b&gt;</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">1</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
<property name="top_attach">4</property>
<property name="bottom_attach">5</property>
<property name="x_options">fill</property>
@@ -5137,17 +5494,17 @@
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
+ <property name="top_attach">4</property>
+ <property name="bottom_attach">5</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label4835">
+ <widget class="GtkLabel" id="label4842">
<property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Resample Method:&lt;/b&gt;</property>
+ <property name="label" translatable="yes">&lt;b&gt;Channel Map:&lt;/b&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -5165,18 +5522,18 @@
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
- <property name="top_attach">7</property>
- <property name="bottom_attach">8</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="resampleMethodLabel">
+ <widget class="GtkLabel" id="channelMapLabel">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">label4836</property>
+ <property name="label" translatable="yes">label4755</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -5194,8 +5551,8 @@
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">7</property>
- <property name="bottom_attach">8</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>