diff options
Diffstat (limited to 'src/ServerInfoManager.hh')
-rw-r--r-- | src/ServerInfoManager.hh | 57 |
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; }; |