Go to file
Jonas Dreßler 82fed08587 mixer-control: Update card, ui-device, and port profiles on changes
Turns out that (contrary to what gvc has assumed so far) the profiles on a card
can actually change even after the card was created (especially with Bluetooth
devices, where BlueZ can always change the advertised profiles). This is causing
various problems right now, including a few crashes because we assume that
card->priv->profile (so the currently active profile) always has an entry in the
card->profiles list.

Fix the issue by allowing to update the profile list even after the card has been
created.

To do that we also need to introduce the necessary infrastructure to update the
profile lists on GvcMixerCardPort and GvcMixerUIDevice.

Note that we are still assuming that ports on the cards can not change. Turns
out these can also change, so we'll handle that with the next commit.

Closes:	https://gitlab.gnome.org/GNOME/libgnome-volume-control/-/issues/23
Closes: https://gitlab.gnome.org/GNOME/libgnome-volume-control/-/issues/9
2024-03-12 14:38:03 +01:00
.gitlab-ci ci: Use meson for CI build 2019-11-22 19:37:31 +01:00
.gitignore build: ignore .dirstamp file 2020-04-09 13:53:36 +00:00
.gitlab-ci.yml ci: Build with clang as well 2023-07-18 16:34:32 +02:00
gvc-channel-map-private.h Initial import 2012-10-19 20:00:25 +02:00
gvc-channel-map.c channel-map: Don't specify default c_marshaller 2023-07-18 15:52:10 +00:00
gvc-channel-map.h Initial import 2012-10-19 20:00:25 +02:00
gvc-mixer-card-private.h Initial import 2012-10-19 20:00:25 +02:00
gvc-mixer-card.c mixer-card: Allow setting profiles on card more than once 2024-03-07 12:25:19 +01:00
gvc-mixer-card.h Add a GIcon accessor for GvcMixerUIDevices 2013-02-18 14:39:54 +01:00
gvc-mixer-control-private.h Initial import 2012-10-19 20:00:25 +02:00
gvc-mixer-control.c mixer-control: Update card, ui-device, and port profiles on changes 2024-03-12 14:38:03 +01:00
gvc-mixer-control.h gvc: Add "what did you plug in" support API 2016-01-17 18:34:07 -02:00
gvc-mixer-event-role.c event-role: Improve GObject properties gunk a bit 2023-07-18 15:52:10 +00:00
gvc-mixer-event-role.h Initial import 2012-10-19 20:00:25 +02:00
gvc-mixer-sink-input.c avoid deprecated g_type_class_add_private 2018-09-09 00:02:41 +03:00
gvc-mixer-sink-input.h Fix introspection support 2012-10-19 20:00:47 +02:00
gvc-mixer-sink.c avoid deprecated g_type_class_add_private 2018-09-09 00:02:41 +03:00
gvc-mixer-sink.h Fix introspection support 2012-10-19 20:00:47 +02:00
gvc-mixer-source-output.c avoid deprecated g_type_class_add_private 2018-09-09 00:02:41 +03:00
gvc-mixer-source-output.h Fix introspection support 2012-10-19 20:00:47 +02:00
gvc-mixer-source.c avoid deprecated g_type_class_add_private 2018-09-09 00:02:41 +03:00
gvc-mixer-source.h Fix introspection support 2012-10-19 20:00:47 +02:00
gvc-mixer-stream-private.h Initial import 2012-10-19 20:00:25 +02:00
gvc-mixer-stream.c mixer-stream: Improve GObject properties gunk a bit 2023-07-18 15:52:10 +00:00
gvc-mixer-stream.h mixer-control: Expose stream state 2019-11-23 02:42:51 +01:00
gvc-mixer-ui-device.c mixer-control: Update card, ui-device, and port profiles on changes 2024-03-12 14:38:03 +01:00
gvc-mixer-ui-device.h gvc-mixer-ui-device: make stream-id unsigned int 2015-09-09 14:14:15 +03:00
gvc-pulseaudio-fake.h build: Don't limit pulseaudio-fake header to introspection 2019-11-23 02:42:51 +01:00
libgnome-volume-control.doap Comment invalid <category> in DOAP file to pass git pre-receive hook 2018-12-16 01:22:53 +01:00
meson_options.txt build: Rename build options 2018-01-30 13:15:36 +01:00
meson.build build: Bump pulseaudio dependency 2020-04-09 12:14:25 +02:00
README.md README: Add README 2018-09-07 15:31:39 +02:00
test-audio-device-selection.c test-audio-device-selection: fix -Wdiscarded-qualifiers warnings 2020-04-09 13:53:36 +00:00

libgnome-volume-control

libgnome-volume-control is a copy library that's supposed to be used as a git sub-module. If your project uses some of libgnome-volume-control's strings in a user-facing manner, don't forget to add those files to your POTFILES.in for translation.

Projects using libgnome-volume-control