summaryrefslogtreecommitdiffstats
path: root/src/ServerInfoManager.hh
diff options
context:
space:
mode:
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;
};