[pulseaudio-commits] src/mainwindow.cc src/mainwindow.h
Arun Raghavan
arun at kemper.freedesktop.org
Thu Sep 22 19:53:18 PDT 2011
src/mainwindow.cc | 10 +++++++---
src/mainwindow.h | 2 +-
2 files changed, 8 insertions(+), 4 deletions(-)
New commits:
commit 8e359a8f710f4f80d2317ea191d429b252c199e7
Author: Arun Raghavan <arun.raghavan at collabora.co.uk>
Date: Fri Sep 23 08:21:07 2011 +0530
source: Only autosuspend network sources
This makes sure we inhibit autosuspend only for network sources (which
was the main purpose of adding autosuspend, since constantly monitoring
those is network heavy).
diff --git a/src/mainwindow.cc b/src/mainwindow.cc
index 71b4d20..dc84682 100644
--- a/src/mainwindow.cc
+++ b/src/mainwindow.cc
@@ -394,11 +394,12 @@ static void read_callback(pa_stream *s, size_t length, void *userdata) {
w->updateVolumeMeter(pa_stream_get_device_index(s), pa_stream_get_monitor_stream(s), v);
}
-pa_stream* MainWindow::createMonitorStreamForSource(uint32_t source_idx, uint32_t stream_idx = -1) {
+pa_stream* MainWindow::createMonitorStreamForSource(uint32_t source_idx, uint32_t stream_idx = -1, bool suspend = false) {
pa_stream *s;
char t[16];
pa_buffer_attr attr;
pa_sample_spec ss;
+ pa_stream_flags_t flags;
ss.channels = 1;
ss.format = PA_SAMPLE_FLOAT32;
@@ -421,7 +422,10 @@ pa_stream* MainWindow::createMonitorStreamForSource(uint32_t source_idx, uint32_
pa_stream_set_read_callback(s, read_callback, this);
pa_stream_set_suspended_callback(s, suspended_callback, this);
- if (pa_stream_connect_record(s, t, &attr, (pa_stream_flags_t) (PA_STREAM_DONT_INHIBIT_AUTO_SUSPEND|PA_STREAM_DONT_MOVE|PA_STREAM_PEAK_DETECT|PA_STREAM_ADJUST_LATENCY)) < 0) {
+ flags = (pa_stream_flags_t) (PA_STREAM_DONT_MOVE | PA_STREAM_PEAK_DETECT | PA_STREAM_ADJUST_LATENCY |
+ (suspend ? PA_STREAM_DONT_INHIBIT_AUTO_SUSPEND : PA_STREAM_NOFLAGS));
+
+ if (pa_stream_connect_record(s, t, &attr, flags) < 0) {
show_error(_("Failed to connect monitoring stream"));
pa_stream_unref(s);
return NULL;
@@ -459,7 +463,7 @@ void MainWindow::updateSource(const pa_source_info &info) {
w->setBaseVolume(info.base_volume);
if (pa_context_get_server_protocol_version(get_context()) >= 13)
- createMonitorStreamForSource(info.index);
+ createMonitorStreamForSource(info.index, -1, !!(info.flags & PA_SOURCE_NETWORK));
}
w->updating = true;
diff --git a/src/mainwindow.h b/src/mainwindow.h
index dd8df6c..8f779b3 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -89,7 +89,7 @@ public:
void setConnectionState(gboolean connected);
void updateDeviceVisibility();
void reallyUpdateDeviceVisibility();
- pa_stream* createMonitorStreamForSource(uint32_t source_idx, uint32_t stream_idx);
+ pa_stream* createMonitorStreamForSource(uint32_t source_idx, uint32_t stream_idx, bool suspend);
void createMonitorStreamForSinkInput(SinkInputWidget* w, uint32_t sink_idx);
void setIconFromProplist(Gtk::Image *icon, pa_proplist *l, const char *name);
More information about the pulseaudio-commits
mailing list