diff options
author | Lennart Poettering <lennart@poettering.net> | 2004-08-15 11:26:05 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2004-08-15 11:26:05 +0000 |
commit | f8b436993e3ea7059984538cd65d50bd50671fe6 (patch) | |
tree | 671775ab2c37fd06c5590a54e2220d5d1a2cf01b /SinkWindow.cc | |
parent | e34209e5df13b4f3dd228af857cf0d303b21db48 (diff) |
Implement volume changing
git-svn-id: file:///home/lennart/svn/public/paman/trunk@7 cdefa82f-4ce1-0310-97f5-ab6066f37c3c
Diffstat (limited to 'SinkWindow.cc')
-rw-r--r-- | SinkWindow.cc | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/SinkWindow.cc b/SinkWindow.cc index 5ecd27d..68d3ec4 100644 --- a/SinkWindow.cc +++ b/SinkWindow.cc @@ -18,6 +18,8 @@ SinkWindow::SinkWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade: closeButton(NULL), toMonitorSourceButton(NULL), toOwnerModuleButton(NULL), + volumeResetButton(NULL), + volumeMuteButton(NULL), volumeScale(NULL) { refGlade->get_widget("nameLabel", nameLabel); @@ -32,10 +34,15 @@ SinkWindow::SinkWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade: 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); closeButton->signal_clicked().connect(sigc::mem_fun(*this, &SinkWindow::onCloseButton)); toMonitorSourceButton->signal_clicked().connect(sigc::mem_fun(*this, &SinkWindow::onToMonitorSourceButton)); toOwnerModuleButton->signal_clicked().connect(sigc::mem_fun(*this, &SinkWindow::onToOwnerModuleButton)); + volumeScale->signal_value_changed().connect(sigc::mem_fun(*this, &SinkWindow::onVolumeScaleValueChanged)); + volumeResetButton->signal_clicked().connect(sigc::mem_fun(*this, &SinkWindow::onVolumeResetButton)); + volumeMuteButton->signal_clicked().connect(sigc::mem_fun(*this, &SinkWindow::onVolumeMuteButton)); } SinkWindow* SinkWindow::create() { @@ -71,6 +78,7 @@ void SinkWindow::updateInfo(const SinkInfo &i) { monitor_source = i.monitor_source; owner_module = i.owner_module; + index = i.index; toOwnerModuleButton->set_sensitive(owner_module != (uint32_t) -1); } @@ -87,3 +95,17 @@ void SinkWindow::onToOwnerModuleButton() { if (owner_module != (uint32_t) -1) serverInfoManager->showModuleWindow(owner_module); } + +void SinkWindow::onVolumeScaleValueChanged() { + serverInfoManager->setSinkVolume(index, (uint32_t) ((volumeScale->get_value()*0x100)/100)); +} + +void SinkWindow::onVolumeResetButton() { + serverInfoManager->setSinkVolume(index, PA_VOLUME_NORM); +} + +void SinkWindow::onVolumeMuteButton() { + serverInfoManager->setSinkVolume(index, PA_VOLUME_MUTE); +} + + |