diff options
Diffstat (limited to 'ServerInfo.hh')
-rw-r--r-- | ServerInfo.hh | 62 |
1 files changed, 53 insertions, 9 deletions
diff --git a/ServerInfo.hh b/ServerInfo.hh index f6db437..bba87b3 100644 --- a/ServerInfo.hh +++ b/ServerInfo.hh @@ -9,9 +9,13 @@ class SinkInfo; class SourceInfo; class ServerInfo; +class ClientInfo; +class ModuleInfo; #include "SinkWindow.hh" #include "SourceWindow.hh" +#include "ClientWindow.hh" +#include "ModuleWindow.hh" #include "MainWindow.hh" class SinkInfo { @@ -31,10 +35,9 @@ public: uint32_t volume; uint32_t latency; - Gtk::TreePath treePath; - bool treePathValid; + Gtk::TreeRowReference treeRef; - SinkWindow *sinkWindow; + SinkWindow *window; }; class SourceInfo { @@ -51,32 +54,73 @@ public: uint32_t owner_module; uint32_t monitor_of_sink; - Gtk::TreePath treePath; - bool treePathValid; + Gtk::TreeRowReference treeRef; + SourceWindow *window; +}; + +class ModuleInfo { +public: + ModuleInfo(const struct pa_module_info &i); + ~ModuleInfo(); + + void update(const struct pa_module_info &i); + void showWindow(); + + uint32_t index; + Glib::ustring name, argument; + bool autoloaded; + uint32_t used; + + Gtk::TreeRowReference treeRef; + ModuleWindow *window; +}; + +class ClientInfo { +public: + ClientInfo(const struct pa_client_info &i); + ~ClientInfo(); + + void update(const struct pa_client_info &i); + void showWindow(); - SourceWindow *sourceWindow; + uint32_t index; + Glib::ustring name, protocol_name; + uint32_t owner_module; + + Gtk::TreeRowReference treeRef; + ClientWindow *window; }; -class ServerInfo { +class ServerInfoManager { public: - ServerInfo(struct pa_context &c); - ~ServerInfo(); + ServerInfoManager(struct pa_context &c); + ~ServerInfoManager(); void updateInfo(const struct pa_sink_info &i); 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 showSinkWindow(uint32_t index); void showSourceWindow(uint32_t index); + void showClientWindow(uint32_t index); + void showModuleWindow(uint32_t index); SourceInfo* getSourceInfo(uint32_t index); SinkInfo* getSinkInfo(uint32_t index); + ClientInfo* getClientInfo(uint32_t index); + ModuleInfo* getModuleInfo(uint32_t index); void removeSinkInfo(uint32_t index); void removeSourceInfo(uint32_t index); + void removeClientInfo(uint32_t index); + void removeModuleInfo(uint32_t index); protected: std::map<int, SinkInfo*> sinks; std::map<int, SourceInfo*> sources; + std::map<int, ClientInfo*> clients; + std::map<int, ModuleInfo*> modules; struct pa_context &context; }; |