#ifndef fooserverinfohhfoo #define fooserverinfohhfoo #include #include #include class SinkInfo; class SourceInfo; class ServerInfo; #include "SinkWindow.hh" #include "SourceWindow.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::TreePath treePath; bool treePathValid; SinkWindow *sinkWindow; }; 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::TreePath treePath; bool treePathValid; SourceWindow *sourceWindow; }; class ServerInfo { public: ServerInfo(struct pa_context &c); ~ServerInfo(); void updateInfo(const struct pa_sink_info &i); void updateInfo(const struct pa_source_info &i); void showSinkWindow(uint32_t index); void showSourceWindow(uint32_t index); SourceInfo* getSourceInfo(uint32_t index); SinkInfo* getSinkInfo(uint32_t index); void removeSinkInfo(uint32_t index); void removeSourceInfo(uint32_t index); protected: std::map sinks; std::map sources; struct pa_context &context; }; #endif