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
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
Add a class method to CcPanel to get a GOptionGroup which will be added
to the main commandline parser. This gives panels the chance to have
commandline "--flags" in addition to the already available parameters.
This changes changes the way parameters are passed to panels: the first
entry in the GVariant array is always the a{sv} dictionary of
commandline flags, followed by the remaining free-form arguments.
https://bugzilla.gnome.org/show_bug.cgi?id=696054
By using a GVariant of type "av" we can potentially pass more structured
data to panels, which will become relevant with the ability to invoke
them by GAction-based DBus-activation introduced in the following patch.
https://bugzilla.gnome.org/show_bug.cgi?id=696054
Very few of the panel comments provide information that is very
useful. Update them to supplement the panel descriptions - this
will make the search results more helpful.
https://bugzilla.gnome.org/show_bug.cgi?id=694110
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
This makes loading faster, with less I/O, avoids unnecessary
code duplication (around 1k lines shaved), and ensures that
all the panels link and work appropriately.
By the same token, it will stop external panels from being
created, and loaded.
https://bugzilla.gnome.org/show_bug.cgi?id=690036
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.