From 4927458e91e708213b0713dd4d3898dda6ec35c1 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 10 Aug 2004 13:04:04 +0000 Subject: Initial commit git-svn-id: file:///home/lennart/svn/public/paman/trunk@3 cdefa82f-4ce1-0310-97f5-ab6066f37c3c --- SinkWindow.cc | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 SinkWindow.cc (limited to 'SinkWindow.cc') diff --git a/SinkWindow.cc b/SinkWindow.cc new file mode 100644 index 0000000..83e0955 --- /dev/null +++ b/SinkWindow.cc @@ -0,0 +1,68 @@ +#include "paman.hh" +#include "SinkWindow.hh" + +#define GLADE_NAME "sinkWindow" + +SinkWindow::SinkWindow(BaseObjectType* cobject, const Glib::RefPtr& refGlade) : + Gtk::Window(cobject), + nameLabel(NULL), + descriptionLabel(NULL), + indexLabel(NULL), + sampleTypeLabel(NULL), + latencyLabel(NULL), + ownerModuleLabel(NULL), + monitorSourceLabel(NULL), + closeButton(NULL), + toMonitorSourceButton(NULL) { + + refGlade->get_widget("nameLabel", nameLabel); + refGlade->get_widget("descriptionLabel", descriptionLabel); + refGlade->get_widget("indexLabel", indexLabel); + refGlade->get_widget("sampleTypeLabel", sampleTypeLabel); + refGlade->get_widget("latencyLabel", latencyLabel); + refGlade->get_widget("ownerModuleLabel", ownerModuleLabel); + refGlade->get_widget("monitorSourceLabel", monitorSourceLabel); + refGlade->get_widget("closeButton", closeButton); + refGlade->get_widget("toMonitorSourceButton", toMonitorSourceButton); + + closeButton->signal_clicked().connect(sigc::mem_fun(*this, &SinkWindow::onCloseButton)); + toMonitorSourceButton->signal_clicked().connect(sigc::mem_fun(*this, &SinkWindow::onToMonitorSourceButton)); +} + +SinkWindow* SinkWindow::create() { + SinkWindow *w = NULL; + Glib::RefPtr refXml = Gnome::Glade::Xml::create(GLADE_FILE, GLADE_NAME); + refXml->get_widget_derived(GLADE_NAME, w); + return w; +} + +void SinkWindow::updateInfo(const SinkInfo &i) { + char t[20], ss[PA_SAMPLE_SNPRINT_MAX_LENGTH]; + + nameLabel->set_text(i.name); + descriptionLabel->set_text(i.description); + snprintf(t, sizeof(t), "#%u", i.index); + indexLabel->set_text(t); + pa_sample_snprint(ss, sizeof(ss), &i.sample_spec); + sampleTypeLabel->set_text(ss); + snprintf(t, sizeof(t), "#%u", i.owner_module); + ownerModuleLabel->set_text(t); + + snprintf(t, sizeof(t), "%u usec", i.latency); + latencyLabel->set_text(t); + + SourceInfo *source = serverInfo->getSourceInfo(i.monitor_source); + monitorSourceLabel->set_text(source->name); + + set_title("Sink: "+i.name); + + monitor_source = i.monitor_source; +} + +void SinkWindow::onCloseButton() { + hide(); +} + +void SinkWindow::onToMonitorSourceButton() { + serverInfo->showSourceWindow(monitor_source); +} -- cgit