From 3f266e3460eeea05a7a80aa4d2a29d2f418c13da Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sun, 15 Aug 2004 13:15:18 +0000 Subject: Rename ServerInfo.{cc,hh} to ServerInfoManager.{cc,hh} git-svn-id: file:///home/lennart/svn/public/paman/trunk@10 cdefa82f-4ce1-0310-97f5-ab6066f37c3c --- src/ServerInfoManager.hh | 130 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 src/ServerInfoManager.hh (limited to 'src/ServerInfoManager.hh') diff --git a/src/ServerInfoManager.hh b/src/ServerInfoManager.hh new file mode 100644 index 0000000..5c22f64 --- /dev/null +++ b/src/ServerInfoManager.hh @@ -0,0 +1,130 @@ +#ifndef fooserverinfohhfoo +#define fooserverinfohhfoo + +#include +#include + +#include + +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 { +public: + + SinkInfo(const struct pa_sink_info &i); + ~SinkInfo(); + + void update(const struct pa_sink_info &i); + void showWindow(); + + Glib::ustring name, description; + uint32_t index; + struct pa_sample_spec sample_spec; + uint32_t monitor_source; + uint32_t owner_module; + uint32_t volume; + uint32_t latency; + + Gtk::TreeRowReference treeRef; + + SinkWindow *window; +}; + +class SourceInfo { +public: + SourceInfo(const struct pa_source_info &i); + ~SourceInfo(); + + void update(const struct pa_source_info &i); + void showWindow(); + + Glib::ustring name, description; + uint32_t index; + struct pa_sample_spec sample_spec; + uint32_t owner_module; + uint32_t monitor_of_sink; + + 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(); + + uint32_t index; + Glib::ustring name, protocol_name; + uint32_t owner_module; + + Gtk::TreeRowReference treeRef; + ClientWindow *window; +}; + +class ServerInfoManager { +public: + 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); + + void setSinkVolume(uint32_t index, uint32_t volume); + +protected: + std::map sinks; + std::map sources; + std::map clients; + std::map modules; + + struct pa_context &context; +}; + +#endif -- cgit