From 0a84f669d3d4c72c498b01b999dd89af7f917480 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 16 Sep 2004 00:02:32 +0000 Subject: update to new API show source and source_output latencies ad kill buttons to client/sink_input/source_output (incomplete) add vumeter buttons to sink/source git-svn-id: file:///home/lennart/svn/public/paman/trunk@33 cdefa82f-4ce1-0310-97f5-ab6066f37c3c --- src/ServerInfoManager.cc | 41 ++++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 11 deletions(-) (limited to 'src/ServerInfoManager.cc') diff --git a/src/ServerInfoManager.cc b/src/ServerInfoManager.cc index 02268ec..13c751a 100644 --- a/src/ServerInfoManager.cc +++ b/src/ServerInfoManager.cc @@ -13,6 +13,7 @@ SinkInfo::SinkInfo(const struct pa_sink_info &i) : owner_module(i.owner_module), volume(i.volume), latency(i.latency), + monitor_source_name(i.monitor_source_name), window(NULL) { } @@ -30,6 +31,7 @@ void SinkInfo::update(const struct pa_sink_info &i) { owner_module = i.owner_module; volume = i.volume; latency = i.latency; + monitor_source_name = i.monitor_source_name; if (window) window->updateInfo(*this); @@ -54,6 +56,7 @@ SourceInfo::SourceInfo(const struct pa_source_info &i) : sample_spec(i.sample_spec), owner_module(i.owner_module), monitor_of_sink(i.monitor_of_sink), + latency(i.latency), window(NULL) { } @@ -69,6 +72,7 @@ void SourceInfo::update(const struct pa_source_info &i) { sample_spec = i.sample_spec; owner_module = i.owner_module; monitor_of_sink = i.monitor_of_sink; + latency = i.latency; if (window) window->updateInfo(*this); @@ -211,6 +215,8 @@ SourceOutputInfo::SourceOutputInfo(const struct pa_source_output_info &i) : source(i.source), client(i.client), owner_module(i.owner_module), + buffer_usec(i.buffer_usec), + source_usec(i.source_usec), window(NULL) { } @@ -226,6 +232,8 @@ void SourceOutputInfo::update(const struct pa_source_output_info &i) { source = i.source; client = i.client; owner_module = i.owner_module; + buffer_usec = i.buffer_usec; + source_usec = i.source_usec; if (window) window->updateInfo(*this); @@ -250,6 +258,8 @@ SampleInfo::SampleInfo(const struct pa_sample_info &i) : volume(i.volume), duration(i.duration), bytes(i.bytes), + lazy(!!i.lazy), + filename(i.filename), window(NULL) { } @@ -265,6 +275,8 @@ void SampleInfo::update(const struct pa_sample_info &i) { volume = i.volume; duration = i.duration; bytes = i.bytes; + lazy = !!i.lazy; + filename = i.filename; if (window) window->updateInfo(*this); @@ -294,9 +306,7 @@ extern "C" { static void subscribe_callback(struct pa_context *c, enum pa_subscription_event_type t, uint32_t index, void *userdata); }; -static void server_info_callback(struct pa_context *c, const struct pa_server_info *i, void *userdata) { - ServerInfoManager *si = (ServerInfoManager*) userdata; - +static void server_info_callback(struct pa_context *c, const struct pa_server_info *i, void *) { if (!i) { mainWindow->showFailure(pa_strerror(pa_context_errno(c))); return; @@ -305,37 +315,37 @@ static void server_info_callback(struct pa_context *c, const struct pa_server_in mainWindow->updateInfo(*i); } -static void sink_info_callback(struct pa_context *c, const struct pa_sink_info *i, int is_last, void *userdata) { +static void sink_info_callback(struct pa_context *, const struct pa_sink_info *i, int, void *userdata) { ServerInfoManager *si = (ServerInfoManager*) userdata; if (i) si->updateInfo(*i); } -static void source_info_callback(struct pa_context *c, const struct pa_source_info *i, int is_last, void *userdata) { +static void source_info_callback(struct pa_context *, const struct pa_source_info *i, int, void *userdata) { ServerInfoManager *si = (ServerInfoManager*) userdata; if (i) si->updateInfo(*i); } -static void client_info_callback(struct pa_context *c, const struct pa_client_info *i, int is_last, void *userdata) { +static void client_info_callback(struct pa_context *, const struct pa_client_info *i, int, void *userdata) { ServerInfoManager *si = (ServerInfoManager*) userdata; if (i) si->updateInfo(*i); } -static void module_info_callback(struct pa_context *c, const struct pa_module_info *i, int is_last, void *userdata) { +static void module_info_callback(struct pa_context *, const struct pa_module_info *i, int, void *userdata) { ServerInfoManager *si = (ServerInfoManager*) userdata; if (i) si->updateInfo(*i); } -static void sink_input_info_callback(struct pa_context *c, const struct pa_sink_input_info *i, int is_last, void *userdata) { +static void sink_input_info_callback(struct pa_context *, const struct pa_sink_input_info *i, int, void *userdata) { ServerInfoManager *si = (ServerInfoManager*) userdata; if (i) si->updateInfo(*i); } -static void source_output_info_callback(struct pa_context *c, const struct pa_source_output_info *i, int is_last, void *userdata) { +static void source_output_info_callback(struct pa_context *, const struct pa_source_output_info *i, int, void *userdata) { ServerInfoManager *si = (ServerInfoManager*) userdata; if (i) si->updateInfo(*i); } -static void sample_info_callback(struct pa_context *c, const struct pa_sample_info *i, int is_last, void *userdata) { +static void sample_info_callback(struct pa_context *, const struct pa_sample_info *i, int, void *userdata) { ServerInfoManager *si = (ServerInfoManager*) userdata; if (i) si->updateInfo(*i); } @@ -679,7 +689,6 @@ void ServerInfoManager::showStatWindow() { statWindow = StatWindow::create(); statWindow->show(); } - } void ServerInfoManager::playSample(uint32_t sample, uint32_t sink) { @@ -691,3 +700,13 @@ void ServerInfoManager::playSample(uint32_t sample, uint32_t sink) { pa_operation_unref(pa_context_play_sample(&context, samplei->name.c_str(), sinki->name.c_str(), PA_VOLUME_NORM, NULL, NULL)); } + +#ifndef PAVUMETER_PATH +#define PAVUMETER_PATH "pavumeter" +#endif + +void ServerInfoManager::runVolumeMeter(const Glib::ustring &source) { + char t[256]; + snprintf(t, sizeof(t), "%s %s", PAVUMETER_PATH, source.c_str()); + Glib::spawn_command_line_async(t); +} -- cgit