summaryrefslogtreecommitdiffstats
path: root/src/ServerInfoManager.hh
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2004-08-16 19:55:43 +0000
committerLennart Poettering <lennart@poettering.net>2004-08-16 19:55:43 +0000
commit7b738b897f6e523024faadef9c1efb6a9aa32f59 (patch)
treebf003526bb2e10732f8c8eea26981714e35fe872 /src/ServerInfoManager.hh
parentb3f41bd9945792ac7869db78fd75983546222622 (diff)
add sink input/source output support (currently broken)
git-svn-id: file:///home/lennart/svn/public/paman/trunk@12 cdefa82f-4ce1-0310-97f5-ab6066f37c3c
Diffstat (limited to 'src/ServerInfoManager.hh')
-rw-r--r--src/ServerInfoManager.hh57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/ServerInfoManager.hh b/src/ServerInfoManager.hh
index 5c22f64..ba07800 100644
--- a/src/ServerInfoManager.hh
+++ b/src/ServerInfoManager.hh
@@ -11,12 +11,16 @@ class SourceInfo;
class ServerInfo;
class ClientInfo;
class ModuleInfo;
+class SinkInputInfo;
+class SourceOutputInfo;
#include "SinkWindow.hh"
#include "SourceWindow.hh"
#include "ClientWindow.hh"
#include "ModuleWindow.hh"
#include "MainWindow.hh"
+#include "SinkInputWindow.hh"
+#include "SourceOutputWindow.hh"
class SinkInfo {
public:
@@ -91,6 +95,50 @@ public:
ClientWindow *window;
};
+class SinkInputInfo {
+public:
+
+ SinkInputInfo(const struct pa_sink_input_info &i);
+ ~SinkInputInfo();
+
+ void update(const struct pa_sink_input_info &i);
+ void showWindow();
+
+ Glib::ustring name;
+ uint32_t index;
+ struct pa_sample_spec sample_spec;
+ uint32_t sink;
+ uint32_t client;
+ uint32_t owner_module;
+ uint32_t volume;
+ uint32_t latency;
+
+ Gtk::TreeRowReference treeRef;
+
+ SinkInputWindow *window;
+};
+
+class SourceOutputInfo {
+public:
+
+ SourceOutputInfo(const struct pa_source_output_info &i);
+ ~SourceOutputInfo();
+
+ void update(const struct pa_source_output_info &i);
+ void showWindow();
+
+ Glib::ustring name;
+ uint32_t index;
+ struct pa_sample_spec sample_spec;
+ uint32_t source;
+ uint32_t client;
+ uint32_t owner_module;
+
+ Gtk::TreeRowReference treeRef;
+
+ SourceOutputWindow *window;
+};
+
class ServerInfoManager {
public:
ServerInfoManager(struct pa_context &c);
@@ -100,11 +148,15 @@ public:
void updateInfo(const struct pa_source_info &i);
void updateInfo(const struct pa_client_info &i);
void updateInfo(const struct pa_module_info &i);
+ void updateInfo(const struct pa_sink_input_info &i);
+ void updateInfo(const struct pa_source_output_info &i);
void showSinkWindow(uint32_t index);
void showSourceWindow(uint32_t index);
void showClientWindow(uint32_t index);
void showModuleWindow(uint32_t index);
+ void showSinkInputWindow(uint32_t index);
+ void showSourceOutputWindow(uint32_t index);
SourceInfo* getSourceInfo(uint32_t index);
SinkInfo* getSinkInfo(uint32_t index);
@@ -115,14 +167,19 @@ public:
void removeSourceInfo(uint32_t index);
void removeClientInfo(uint32_t index);
void removeModuleInfo(uint32_t index);
+ void removeSinkInputInfo(uint32_t index);
+ void removeSourceOutputInfo(uint32_t index);
void setSinkVolume(uint32_t index, uint32_t volume);
+ void setSinkInputVolume(uint32_t index, uint32_t volume);
protected:
std::map<int, SinkInfo*> sinks;
std::map<int, SourceInfo*> sources;
std::map<int, ClientInfo*> clients;
std::map<int, ModuleInfo*> modules;
+ std::map<int, SinkInputInfo*> sinkInputs;
+ std::map<int, SourceOutputInfo*> sourceOutputs;
struct pa_context &context;
};