<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="12" style="border: 1px #c9c399 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
<tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="https://git.reviewboard.kde.org/r/127485/">https://git.reviewboard.kde.org/r/127485/</a>
</td>
</tr>
</table>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On March 24th, 2016, 9:37 p.m. UTC, <b>Kai Uwe Broulik</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I like the RadioButton but it should say "Default" or "Default Device" (if we could depend on Qt 5.7 we could also add a tooltip explaining what that means... :/ )</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Can you perhaps also have a look at the OSD/volume keys to affect the default device? At the moment it's kinda random what device it actually shows and manipulates all of them simultaneously etc</p></pre>
</blockquote>
<p>On March 24th, 2016, 9:42 p.m. UTC, <b>David Rosca</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><blockquote style="text-rendering: inherit;padding: 0 0 0 1em;border-left: 1px solid #bbb;white-space: normal;margin: 0 0 0 0.5em;line-height: inherit;">
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I like the RadioButton but it should say "Default" or "Default Device" (if we could depend on Qt 5.7 we could also add a tooltip explaining what that means... :/ )</p>
</blockquote>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">What about:
<code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">text: checked ? "Default" : ""</code></p>
<blockquote style="text-rendering: inherit;padding: 0 0 0 1em;border-left: 1px solid #bbb;white-space: normal;margin: 0 0 0 0.5em;line-height: inherit;">
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Can you perhaps also have a look at the OSD/volume keys to affect the default device? At the moment it's kinda random what device it actually shows and manipulates all of them simultaneously etc</p>
</blockquote>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Yes, in next patch.</p></pre>
</blockquote>
<p>On March 24th, 2016, 9:50 p.m. UTC, <b>Kai Uwe Broulik</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Yeah, that'll work. This won't clutter the UI but still make it obvious what the radio is, granted that there's always a default device.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Oh, and, the "mute" button doesn't have a tooltip. Sorry for abusing your RB as bugtracker :)</p></pre>
</blockquote>
<p>On March 31st, 2016, 8:53 p.m. UTC, <b>Xuetian Weng</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Just to throw some random idea, maybe also make the "Default" or device name text bold?</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Also hope this change doesn't do anything werid if current default device becomes unplugged.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">And how does this cooperate with current phonon kcm? It has a priority list to decide which device to use first.</p></pre>
</blockquote>
<p>On March 31st, 2016, 9:06 p.m. UTC, <b>Kai Uwe Broulik</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><blockquote style="text-rendering: inherit;padding: 0 0 0 1em;border-left: 1px solid #bbb;white-space: normal;margin: 0 0 0 0.5em;line-height: inherit;">
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">And how does this cooperate with current phonon kcm?</p>
</blockquote>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I always thought this thing was basically dead and useless but apparently it actually determins the priority of devices and causes my headset to become the new default when I plug it in. Of course only if I manually configured that for every newly discovered device, not really smart. I wonder if Pulse can just entirely take its job? I'm not an expert in that area, though. Or perhaps it's already configuring Pulseaudio which makes it even more redundant and inconsistent to have - the "hardware" tab at least also changes the settings I see in Plasma PA.</p></pre>
</blockquote>
<p>On March 31st, 2016, 9:40 p.m. UTC, <b>Xuetian Weng</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">It works for all application (non-Qt/non-phonon) and it talks to Pulseaudio directly. And I love the idea that it can remember the unplugged device. FYI phonon itself wraps around libpulse and the final call to libpulse is pa_ext_device_manager_reorder_devices_for_role and that's why start-pulseaudio-kde exists (now it's merged to start-pulseaudio-x11 by checking env var).</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I don't have new devices comes in regularly, so for now I think the current configuration burden is fine to me. Though I did hope it would hope it can be cleverer if a new headset comes in, it automatically put it on the top of the list by default.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">And as you can see, it is NOT UNCOMMON for people to have more than 3 devices (HDMI, built-in, and a bluetooth headset, maybe even a bluetooth speaker). It's not possible to deterministically decide which device is default if there's only a single default device in the config when multiple devices are available. Priority list is not perfect, but it's a possible and easy for user to understand solution to problem.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">We need to have a UI to replace kcm-phonon's feature here. It does not need to employ same implementation, but IMHO need to solve the problem (choose default device correctly).</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I don't think people commonly want have sound on more than one devices at the same time though.</p></pre>
</blockquote>
<p>On March 31st, 2016, 9:50 p.m. UTC, <b>Kai Uwe Broulik</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">You're right, a priority list is needed. However, following the simple by default powerful as needed it should assume when a new device appears the user probably wants to playback on that device now, unless he has configured some insanity setup earlier.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Having to go through a complicated KCM when plugging in (for the first time but still) a headset or HDMI cable, which being listed even when nothing connected is beyond me, is a big no-go.</p></pre>
</blockquote>
<p>On March 31st, 2016, 10:04 p.m. UTC, <b>Thomas Pfeiffer</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Exactly. There is not much use in plugging in an audio output device if one doesn't want to play audio through it.</p></pre>
</blockquote>
</blockquote>
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">It doesn't affect kcm phonon as this just sets default sink/source in PulseAudio which is used as fallback device (I plan to also make global volume control shortcuts only to affect the default device).</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I don't think we should really mess with the streams when user plugs in new device, because there are various issues with it and user might not even want it. One issue is that PulseAudio (by default?) remembers the device on which a stream is. So let's say that user plugs headphones, we switch all streams and set the default device to the headphones. User then starts video player and PulseAudio picks the internal sound card (it restores the device for stream).</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">We can try to do the same as kcm phonon (pa_ext_device_manager_reorder_devices_for_role), but probably only moving the new device up on plugging should be enough. For me, kcm phonon never really worked reliably though (I assume the stream restore was to blame).</p></pre>
<br />
<p>- David</p>
<br />
<p>On March 24th, 2016, 9:52 p.m. UTC, David Rosca wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: 1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
<tr>
<td>
<div>Review request for Plasma and KDE Usability.</div>
<div>By David Rosca.</div>
<p style="color: grey;"><i>Updated March 24, 2016, 9:52 p.m.</i></p>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt;">Repository: </b>
plasma-pa
</div>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">It is now possible to set default input and output devices.
UI is exactly the same as pavucontrol - checkable button next to mute button.</p></pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Works same as pavucontrol. pavucontrol uses "emblem-default" as icon, but this icon is not in Breeze so I used "checkmark". Unfortunately it isn't entirely clear what the button is doing from the icon ...</p></pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>src/CMakeLists.txt <span style="color: grey">(b3e1855)</span></li>
<li>src/context.h <span style="color: grey">(8a3a821)</span></li>
<li>src/context.cpp <span style="color: grey">(115c8a7)</span></li>
<li>src/device.h <span style="color: grey">(5867fb2)</span></li>
<li>src/kcm/package/contents/ui/DefaultDeviceButton.qml <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/kcm/package/contents/ui/DeviceListItem.qml <span style="color: grey">(979c693)</span></li>
<li>src/kcm/package/contents/ui/MuteButton.qml <span style="color: grey">(693ab2d)</span></li>
<li>src/server.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/server.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/sink.h <span style="color: grey">(7db716b)</span></li>
<li>src/sink.cpp <span style="color: grey">(d412b7b)</span></li>
<li>src/source.h <span style="color: grey">(325cde9)</span></li>
<li>src/source.cpp <span style="color: grey">(fa9f0a0)</span></li>
</ul>
<p><a href="https://git.reviewboard.kde.org/r/127485/diff/" style="margin-left: 3em;">View Diff</a></p>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">File Attachments </h1>
<li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2016/03/24/6d5d5bb5-3619-470c-b6d6-e7693d888c9b__kcm-default-device.png">kcm-default-device.png</a></li>
<li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2016/03/24/23f3638a-aa27-4f46-aa6a-989c8d313a6a__Screenshot_20160324_220624.png">kcm-default-device.png</a></li>
</ul>
</td>
</tr>
</table>
</div>
</body>
</html>