summaryrefslogtreecommitdiffstats
path: root/MainWindow.cc
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2004-08-15 11:27:34 +0000
committerLennart Poettering <lennart@poettering.net>2004-08-15 11:27:34 +0000
commit4b682a9eba6590d8fe090f68dda6afe59ae64f85 (patch)
tree75345c90f9174dd45c9b5196645a5054c889b698 /MainWindow.cc
parentf8b436993e3ea7059984538cd65d50bd50671fe6 (diff)
Move everything to src/ directory
git-svn-id: file:///home/lennart/svn/public/paman/trunk@8 cdefa82f-4ce1-0310-97f5-ab6066f37c3c
Diffstat (limited to 'MainWindow.cc')
-rw-r--r--MainWindow.cc290
1 files changed, 0 insertions, 290 deletions
diff --git a/MainWindow.cc b/MainWindow.cc
deleted file mode 100644
index fdb817a..0000000
--- a/MainWindow.cc
+++ /dev/null
@@ -1,290 +0,0 @@
-#include <iostream>
-#include <string>
-#include <sstream>
-
-#include "paman.hh"
-#include "MainWindow.hh"
-
-#define GLADE_NAME "mainWindow"
-
-enum {
- ROW_TYPE_SINK_CATEGORY,
- ROW_TYPE_SOURCE_CATEGORY,
- ROW_TYPE_SINK,
- ROW_TYPE_SOURCE,
-};
-
-MainWindow::MainWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& refGlade) :
- Gtk::Window(cobject),
- statusLabel(NULL),
- serverNameLabel(NULL),
- serverVersionLabel(NULL),
- defaultSampleTypeLabel(NULL),
- userNameLabel(NULL),
- hostNameLabel(NULL),
- deviceOpenButton(NULL),
- clientOpenButton(NULL),
- moduleOpenButton(NULL),
- connectButton(NULL),
- deviceTreeView(NULL),
- clientTreeView(NULL),
- moduleTreeView(NULL) {
-
- refGlade->get_widget("statusLabel", statusLabel);
- refGlade->get_widget("serverNameLabel", serverNameLabel);
- refGlade->get_widget("serverVersionLabel", serverVersionLabel);
- refGlade->get_widget("defaultSampleTypeLabel", defaultSampleTypeLabel);
- refGlade->get_widget("hostNameLabel", hostNameLabel);
- refGlade->get_widget("userNameLabel", userNameLabel);
- refGlade->get_widget("deviceTreeView", deviceTreeView);
- refGlade->get_widget("clientTreeView", clientTreeView);
- refGlade->get_widget("moduleTreeView", moduleTreeView);
- refGlade->get_widget("deviceOpenButton", deviceOpenButton);
- refGlade->get_widget("clientOpenButton", clientOpenButton);
- refGlade->get_widget("moduleOpenButton", moduleOpenButton);
- refGlade->get_widget("connectButton", connectButton);
-
- deviceTreeStore = Gtk::TreeStore::create(deviceTreeModelColumns);
- deviceTreeView->set_model(deviceTreeStore);
- deviceTreeView->append_column("Name", deviceTreeModelColumns.name);
- deviceTreeView->append_column("Description", deviceTreeModelColumns.description);
- deviceTreeView->signal_row_activated().connect(sigc::mem_fun(*this, &MainWindow::onDeviceTreeViewRowActivated));
- deviceTreeView->signal_cursor_changed().connect(sigc::mem_fun(*this, &MainWindow::onDeviceTreeViewCursorChanged));
-
- clientTreeStore = Gtk::TreeStore::create(clientTreeModelColumns);
- clientTreeView->set_model(clientTreeStore);
- clientTreeView->append_column("Name", clientTreeModelColumns.name);
- clientTreeView->signal_row_activated().connect(sigc::mem_fun(*this, &MainWindow::onClientTreeViewRowActivated));
-
- moduleTreeStore = Gtk::TreeStore::create(moduleTreeModelColumns);
- moduleTreeView->set_model(moduleTreeStore);
- moduleTreeView->append_column("Name", moduleTreeModelColumns.name);
- moduleTreeView->append_column("Argument", moduleTreeModelColumns.argument);
- moduleTreeView->signal_row_activated().connect(sigc::mem_fun(*this, &MainWindow::onModuleTreeViewRowActivated));
-
- connectButton->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::onConnectButton));
- deviceOpenButton->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::onDeviceOpenButton));
- clientOpenButton->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::onClientOpenButton));
- moduleOpenButton->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::onModuleOpenButton));
-
- statusLabel->set_text("Connecting ...");
-
- clearAllData();
-}
-
-MainWindow::~MainWindow() {
-}
-
-MainWindow* MainWindow::create() {
- MainWindow *w;
- Glib::RefPtr<Gnome::Glade::Xml> refXml = Gnome::Glade::Xml::create(GLADE_FILE, GLADE_NAME);
- refXml->get_widget_derived(GLADE_NAME, w);
- return w;
-}
-
-void MainWindow::updateInfo(SinkInfo &i) {
- if (!i.treeRef) {
- Gtk::TreeIter iter = deviceTreeStore->get_iter(sinkRef.get_path());
- i.treeRef = Gtk::TreeRowReference(deviceTreeStore, Gtk::TreePath(deviceTreeStore->append(iter->children())));
- }
-
- Gtk::TreeRow row = *(deviceTreeStore->get_iter(i.treeRef.get_path()));
- row[deviceTreeModelColumns.name] = i.name;
- row[deviceTreeModelColumns.description] = i.description;
- row[deviceTreeModelColumns.index] = i.index;
- row[deviceTreeModelColumns.type] = ROW_TYPE_SINK;
-
- deviceTreeView->expand_row(sinkRef.get_path(), false);
- onDeviceTreeViewCursorChanged();
-}
-
-void MainWindow::updateInfo(SourceInfo &i) {
- if (!i.treeRef) {
- Gtk::TreeIter iter = deviceTreeStore->get_iter(sourceRef.get_path());
- i.treeRef = Gtk::TreeRowReference(deviceTreeStore, Gtk::TreePath(deviceTreeStore->append(iter->children())));
- }
-
- Gtk::TreeRow row = *(deviceTreeStore->get_iter(i.treeRef.get_path()));
- row[deviceTreeModelColumns.name] = i.name;
- row[deviceTreeModelColumns.description] = i.description;
- row[deviceTreeModelColumns.index] = i.index;
- row[deviceTreeModelColumns.type] = ROW_TYPE_SOURCE;
-
- deviceTreeView->expand_row(sourceRef.get_path(), false);
- onDeviceTreeViewCursorChanged();
-}
-
-void MainWindow::updateInfo(ClientInfo &i) {
-
- if (!i.treeRef)
- i.treeRef = Gtk::TreeRowReference(clientTreeStore, Gtk::TreePath(clientTreeStore->append()));
-
- Gtk::TreeRow row = *(clientTreeStore->get_iter(i.treeRef.get_path()));
- row[clientTreeModelColumns.name] = i.name;
- row[clientTreeModelColumns.index] = i.index;
- clientOpenButton->set_sensitive(true);
-}
-
-void MainWindow::updateInfo(ModuleInfo &i) {
- if (!i.treeRef)
- i.treeRef = Gtk::TreeRowReference(moduleTreeStore, Gtk::TreePath(moduleTreeStore->append()));
-
- Gtk::TreeRow row = *(moduleTreeStore->get_iter(i.treeRef.get_path()));
- row[moduleTreeModelColumns.name] = i.name;
- row[moduleTreeModelColumns.argument] = i.argument;
- row[moduleTreeModelColumns.index] = i.index;
- moduleOpenButton->set_sensitive(true);
-}
-
-void MainWindow::removeInfo(SinkInfo &i) {
- if (i.treeRef)
- deviceTreeStore->erase(deviceTreeStore->get_iter(i.treeRef.get_path()));
-
- onDeviceTreeViewCursorChanged();
-}
-
-void MainWindow::removeInfo(SourceInfo &i) {
- if (!i.treeRef)
- deviceTreeStore->erase(deviceTreeStore->get_iter(i.treeRef.get_path()));
-
- onDeviceTreeViewCursorChanged();
-}
-
-void MainWindow::removeInfo(ClientInfo &i) {
- if (i.treeRef)
- clientTreeStore->erase(clientTreeStore->get_iter(i.treeRef.get_path()));
-
- clientOpenButton->set_sensitive(!moduleTreeStore->children().empty());
-}
-
-void MainWindow::removeInfo(ModuleInfo &i) {
- if (i.treeRef)
- moduleTreeStore->erase(moduleTreeStore->get_iter(i.treeRef.get_path()));
-
- moduleOpenButton->set_sensitive(!moduleTreeStore->children().empty());
-}
-
-void MainWindow::onDeviceTreeViewCursorChanged() {
- Gtk::TreeModel::Path p;
- Gtk::TreeViewColumn *c;
- deviceTreeView->get_cursor(p, c);
-
- if (!p.gobj())
- return;
-
- deviceOpenButton->set_sensitive((sourceRef.get_path() != p) && (sinkRef.get_path() != p));
-}
-
-void MainWindow::onDeviceTreeViewRowActivated(const Gtk::TreeModel::Path& path, Gtk::TreeViewColumn* /* column */) {
- showDeviceWindow(path);
-}
-
-void MainWindow::onClientTreeViewRowActivated(const Gtk::TreeModel::Path& path, Gtk::TreeViewColumn* /* column */) {
- showClientWindow(path);
-}
-
-void MainWindow::onModuleTreeViewRowActivated(const Gtk::TreeModel::Path& path, Gtk::TreeViewColumn* /* column */) {
- showModuleWindow(path);
-}
-
-void MainWindow::updateInfo(const struct pa_server_info &i) {
- char t[PA_SAMPLE_SNPRINT_MAX_LENGTH];
- serverNameLabel->set_text(i.server_name);
- serverVersionLabel->set_text(i.server_version);
- pa_sample_snprint(t, sizeof(t), &i.sample_spec);
- defaultSampleTypeLabel->set_text(t);
- hostNameLabel->set_text(i.host_name);
- userNameLabel->set_text(i.user_name);
-}
-
-void MainWindow::showSuccess(const char *t) {
- statusLabel->set_text(t);
-}
-
-void MainWindow::showFailure(const char *t) {
- char s[256];
- snprintf(s, sizeof(s), "<b>Failure:</b> %s", t);
- statusLabel->set_markup(s);
-}
-
-void MainWindow::clearAllData() {
- deviceTreeStore->clear();
-
- Gtk::TreeIter i = deviceTreeStore->append();
- sinkRef = Gtk::TreeRowReference(deviceTreeStore, Gtk::TreePath(i));
- (*i)[deviceTreeModelColumns.name] = "Sinks";
- (*i)[deviceTreeModelColumns.index] = (uint32_t) -1;
- (*i)[deviceTreeModelColumns.type] = ROW_TYPE_SINK_CATEGORY;
-
- i = deviceTreeStore->append();
- sourceRef = Gtk::TreeRowReference(deviceTreeStore, Gtk::TreePath(i));
- (*i)[deviceTreeModelColumns.name] = "Sources";
- (*i)[deviceTreeModelColumns.index] = (uint32_t) -1;
- (*i)[deviceTreeModelColumns.type] = ROW_TYPE_SOURCE_CATEGORY;
-
- clientTreeStore->clear();
- moduleTreeStore->clear();
-
- deviceOpenButton->set_sensitive(false);
- clientOpenButton->set_sensitive(false);
- moduleOpenButton->set_sensitive(false);
-
- serverNameLabel->set_markup("<i>n/a</i>");
- serverVersionLabel->set_markup("<i>n/a</i>");
- defaultSampleTypeLabel->set_markup("<i>n/a</i>");
- hostNameLabel->set_markup("<i>n/a</i>");
- userNameLabel->set_markup("<i>n/a</i>");
-}
-
-void MainWindow::onDeviceOpenButton() {
- Gtk::TreeModel::Path p;
- Gtk::TreeViewColumn *c;
- deviceTreeView->get_cursor(p, c);
- showDeviceWindow(p);
-}
-
-void MainWindow::onClientOpenButton() {
- Gtk::TreeModel::Path p;
- Gtk::TreeViewColumn *c;
- clientTreeView->get_cursor(p, c);
- showClientWindow(p);
-}
-
-void MainWindow::onModuleOpenButton() {
- Gtk::TreeModel::Path p;
- Gtk::TreeViewColumn *c;
- moduleTreeView->get_cursor(p, c);
- showModuleWindow(p);
-}
-
-void MainWindow::onConnectButton() {
- create_connection();
-}
-
-void MainWindow::showDeviceWindow(const Gtk::TreePath &p) {
- if (!serverInfoManager)
- return;
-
- Gtk::TreeModel::Row row = *(deviceTreeStore->get_iter(p));
-
- if (row[deviceTreeModelColumns.type] == ROW_TYPE_SINK)
- serverInfoManager->showSinkWindow(row[deviceTreeModelColumns.index]);
- else if (row[deviceTreeModelColumns.type] == ROW_TYPE_SOURCE)
- serverInfoManager->showSourceWindow(row[deviceTreeModelColumns.index]);
-}
-
-void MainWindow::showClientWindow(const Gtk::TreePath &p) {
- if (!serverInfoManager)
- return;
-
- Gtk::TreeModel::Row row = *(clientTreeStore->get_iter(p));
- serverInfoManager->showClientWindow(row[clientTreeModelColumns.index]);
-}
-
-void MainWindow::showModuleWindow(const Gtk::TreePath &p) {
- if (!serverInfoManager)
- return;
-
- Gtk::TreeModel::Row row = *(moduleTreeStore->get_iter(p));
- serverInfoManager->showModuleWindow(row[moduleTreeModelColumns.index]);
-}