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
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
When the g-c-c panel is changed from Sound to another panel whilst the Test
Speakers dialog is still open (i.e. user activates a panel via one of the
Shell indicators) the dialog remains shown and modal for the g-c-c window.
This change ensures that the "Test Speakers" dialog is closed when the panel
changes.
https://bugzilla.gnome.org/show_bug.cgi?id=700856
Use the new API in libgnome-volume-control to create the icon shown
next to the port name in the selector. This avoids ugly audio-card icons,
and shows a speaker, microphone or headphones as appropriate.
https://bugzilla.gnome.org/show_bug.cgi?id=689931
Make it possible for panels to go all the way to the edge of the
shell. This is particularly important for panels that scroll, such
as the new power panel. All other panels are changed to compensate
for the loss of external padding.
https://bugzilla.gnome.org/show_bug.cgi?id=691229
pa_stream_peek can return NULL, even though it's unusual. In the upcoming
version of PulseAudio this has been clarified in the documentation.
In that case, don't crash, just call pa_stream_drop so that the
pointer moves forward.
https://bugzilla.gnome.org/show_bug.cgi?id=689079
When switching between 2 outputs that share the same device with
different connector types, the old stream is destroyed, and a new one
with the new connector type created.
We were generating warnings because the old stream was destroyed, and
we were trying to access it. Instead we should remove the reference
to that old stream from the GvcLevelBars used for output and input
levels.
Combined with the changes to the output list to only
use a single line instead of multi-line status, this should
make it easier to see multiple devices listed.
https://bugzilla.gnome.org/show_bug.cgi?id=660582
When the output of input bar changes from a non-decibel capable
output, to one that is (such as on startup), don't clip the
volume displayed at 100%, by setting the level of the bar again.
https://bugzilla.gnome.org/show_bug.cgi?id=646254