The current code does not differenciate between input and
output, and thus it shows the same icon for muting outputs
and inputs. As per design suggesion [1], the input row
should use the "microphone-sensitivity-muted-symbolic" icon.
In order to achieve that, move the CcLevelBarStreamType enum
to a separate header, and rename it to CcStreamType. And also
pass the stream type to the volume slider.
In CcVolumeSlider, update the code to switch to the correct
mute icon depending on the stream type.
[1] https://gitlab.gnome.org/GNOME/gnome-control-center/issues/539
Fixes https://gitlab.gnome.org/GNOME/gnome-control-center/issues/539
Some streams may give us an icon name that doesn't exist in the
icon theme (e.g. Spotify giving "audio"). While it's fundamentally
an application problem, we can deal with this case a bit better
than showing the ugly "image-missing" icon.
Detect when an icon doesn't exist by performing an icon theme
lookup and, if the icon really doesn't exist, use a proper fallback
icon.
It also avoids a small GIcon leak.
Fixes https://gitlab.gnome.org/GNOME/gnome-control-center/issues/548
Sound devices may not have an origin, in that case we ended up with a
trailing " - " in the label which should not be there. Add a check that
the origin is non-null and not an empty string and only show the devices
description otherwise.
Recent versions of Gettext are able to translate several formats
that are used in GNOME applications. This patch migrates from
Intltool to Gettext by using meson's i18n features.
https://bugzilla.gnome.org/show_bug.cgi?id=787588
Meson is a build system focused on speed an ease of use, which
helps speeding up the software development. This patch adds meson
support along autotools.
https://bugzilla.gnome.org/show_bug.cgi?id=785414
In order to share the libgd and gvc modules between autotools and
meson, this patch moves their directories to subprojects
directory and updates autotools.
https://bugzilla.gnome.org/show_bug.cgi?id=785414
The "Applications" tab might expand vertically indefinitely depending
on the amount of applications playing sounds simultaneously. This
causes the whole Control Center window to grow vertically.
To reproduce the issue you'd need to launch multiple sound sources.
1. Launch "gst-play-1.0 <music file>"
2. Press space to pause the playback
3. Press Ctrl+Z to send it into the background
4. Goto 1.
These changes pack the content of the "Applications" tab in a
GtkScrolledWindow.
To avoid having the scrollbar overlapping the switchers, we set a
10px margin-end to the inner container.
https://bugzilla.gnome.org/show_bug.cgi?id=786684
The tree view in the input and the output tab uses the "selection-changed"
signal. This implies that when a row is removed (e.g. when unplugging heaphones) g-c-c
will receive the signal and try to change the active port. G-c-c should not be the one
deciding deciding which port should be active, the user or PA are smart enough. We
should descard selection-changed events that are not triggered by an user interaction.
https://bugzilla.gnome.org/show_bug.cgi?id=789551
This reverts commit 31a8a99440.
This was meant for bgo#695885 which has stalled for a while, so this
feature has no in-tree user. This commit removes it for now, this can be
readded when users for it materialize.
https://bugzilla.gnome.org/show_bug.cgi?id=751597
When looking up a bar for a particular stream, special-case the input
and output bars/streams, as they will not be added to the "bars"
hashtable (which is, as per comment, only for applications and the sound
events bar).
https://bugzilla.gnome.org/show_bug.cgi?id=738869
This results in crashes when switching inputs or outputs, as other parts
of the code expect only application bars being added to that hashtable.
The bar was destroyed when switching outputs (as the stream is removed before
a new one being added) but with the bar pointing to freed memory.
This reverts commit 22fa7f1292.
https://bugzilla.gnome.org/show_bug.cgi?id=746227
This will fix the bar not showing up when we switch the default
orientation. When we changed the orientation, we went through
update_layout() which shows the frame at the end. _init() didn't do
that.
We currently install two signal handlers for button-press-event and
selection-changed. As the former also calls the latter, the two interact
in non-obvious ways that can lead to two alerts being played at the same
time under certain circumstances.
Avoid this problem by setting activate-on-single-click on the tree view
and listening to the row-activated signal to drive previews and model
changes.
https://bugzilla.gnome.org/show_bug.cgi?id=671446
The active input and output streams aren't added through add_stream()
so they weren't being mapped to their respective volume bars,
resulting in updates to the volume through other means not being
reflected in our UI.
Moving the mapping to bar_set_stream() which is called for every
stream fixes the problem. Also, there's no value in having a
helper function to do a g_hash_table_insert() and not doing the same
for the respective g_hash_table_remove()s so remove it.
https://bugzilla.gnome.org/show_bug.cgi?id=738869