#include #include "paman.hh" #include "SampleWindow.hh" #define GLADE_NAME "sampleWindow" SampleWindow::SampleWindow(BaseObjectType* cobject, const Glib::RefPtr& refGlade) : Gtk::Window(cobject), nameLabel(NULL), indexLabel(NULL), volumeLabel(NULL), sampleTypeLabel(NULL), sizeLabel(NULL), durationLabel(NULL), closeButton(NULL) { refGlade->get_widget("nameLabel", nameLabel); refGlade->get_widget("indexLabel", indexLabel); refGlade->get_widget("volumeLabel", volumeLabel); refGlade->get_widget("sampleTypeLabel", sampleTypeLabel); refGlade->get_widget("durationLabel", durationLabel); refGlade->get_widget("sizeLabel", sizeLabel); refGlade->get_widget("closeButton", closeButton); closeButton->signal_clicked().connect(sigc::mem_fun(*this, &SampleWindow::onCloseButton)); } SampleWindow* SampleWindow::create() { SampleWindow *w = NULL; Glib::RefPtr refXml = Gnome::Glade::Xml::create(GLADE_FILE, GLADE_NAME); refXml->get_widget_derived(GLADE_NAME, w); return w; } void SampleWindow::updateInfo(const SampleInfo &i) { char t[60], ss[PA_SAMPLE_SNPRINT_MAX_LENGTH]; nameLabel->set_text(i.name); snprintf(t, sizeof(t), "#%u", i.index); indexLabel->set_text(t); snprintf(t, sizeof(t), "%0.0f%%", (double) i.volume / 0x100 * 100); volumeLabel->set_text(t); pa_sample_spec_snprint(ss, sizeof(ss), &i.sample_spec); sampleTypeLabel->set_text(ss); snprintf(t, sizeof(t), "%0.1fs", (double) i.duration/1000000); durationLabel->set_text(t); pa_bytes_snprint(t, sizeof(t), i.bytes); sizeLabel->set_text(t); set_title("Sample: "+i.name); } void SampleWindow::onCloseButton() { hide(); } bool SampleWindow::on_delete_event(GdkEventAny* e) { hide(); return false; }