diff options
author | Lennart Poettering <lennart@poettering.net> | 2004-08-15 11:27:34 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2004-08-15 11:27:34 +0000 |
commit | 4b682a9eba6590d8fe090f68dda6afe59ae64f85 (patch) | |
tree | 75345c90f9174dd45c9b5196645a5054c889b698 /src/ServerInfo.hh | |
parent | f8b436993e3ea7059984538cd65d50bd50671fe6 (diff) |
Move everything to src/ directory
git-svn-id: file:///home/lennart/svn/public/paman/trunk@8 cdefa82f-4ce1-0310-97f5-ab6066f37c3c
Diffstat (limited to 'src/ServerInfo.hh')
-rw-r--r-- | src/ServerInfo.hh | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/src/ServerInfo.hh b/src/ServerInfo.hh new file mode 100644 index 0000000..5c22f64 --- /dev/null +++ b/src/ServerInfo.hh @@ -0,0 +1,130 @@ +#ifndef fooserverinfohhfoo +#define fooserverinfohhfoo + +#include <gtkmm.h> +#include <map> + +#include <polyp/polyplib.h> + +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<int, SinkInfo*> sinks; + std::map<int, SourceInfo*> sources; + std::map<int, ClientInfo*> clients; + std::map<int, ModuleInfo*> modules; + + struct pa_context &context; +}; + +#endif |