You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/app-admin/conky/files/conky-1.10.8-virtual-sinks....

50 lines
2.0 KiB

From 8221ba62045012abf8a4443de20f17a0a8fc1288 Mon Sep 17 00:00:00 2001
From: Jan Seeger <jan.seeger@thenybble.de>
Date: Wed, 5 Aug 2020 15:39:20 +0200
Subject: Fixed crash on virtual sinks.
Taken from upstream commits
https://github.com/brndnmtthws/conky/commit/ddf8a0f58f3110e31ec4c44ecff838d2b231f6f3 and
https://github.com/brndnmtthws/conky/commit/2a7226d89331f7d5d0abf0b9aff6d75435dd3a2d.
Signed-off-by: Jan Seeger <jan.seeger@thenybble.de>
---
src/pulseaudio.cc | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/pulseaudio.cc b/src/pulseaudio.cc
index 93226c1b..af814bd6 100644
--- a/src/pulseaudio.cc
+++ b/src/pulseaudio.cc
@@ -53,8 +53,13 @@ void pa_sink_info_callback(pa_context *c, const pa_sink_info *i, int eol, void *
pdr->sink_mute = i->mute;
pdr->sink_card = i->card;
pdr->sink_index = i->index;
- pdr->sink_active_port_name.assign(i->active_port->name);
- pdr->sink_active_port_description.assign(i->active_port->description);
+ if (i->active_port != nullptr) {
+ pdr->sink_active_port_name.assign(i->active_port->name);
+ pdr->sink_active_port_description.assign(i->active_port->description);
+ } else {
+ pdr->sink_active_port_name.erase();
+ pdr->sink_active_port_name.erase();
+ }
pdr->sink_volume = round_to_int(100.0f * (float)pa_cvolume_avg(&(i->volume)) / (float)PA_VOLUME_NORM);
pa_threaded_mainloop_signal(pulseaudio->mainloop, 0);
}
@@ -224,9 +229,10 @@ void init_pulseaudio(struct text_object *obj) {
return;
}
- if(pulseaudio->result.sink_card!=(uint32_t)-1)
+ if(pulseaudio->result.sink_card!=(uint32_t)-1) {
PULSEAUDIO_WAIT(pa_context_get_card_info_by_index(pulseaudio->context, pulseaudio->result.sink_card,
pa_card_info_callback, &pulseaudio->result));
+ }
// get notification when something changes in PA
pa_context_set_subscribe_callback(pulseaudio->context, subscribe_cb, &pulseaudio->result);
--
2.26.2