<p><br>
2014-2-15 下午5:08 於 "David Henningsson" <<a href="mailto:david.henningsson@canonical.com">david.henningsson@canonical.com</a>> 寫道:<br>
><br>
> On 02/14/2014 01:51 PM, Tanu Kaskinen wrote:<br>
> > On Fri, 2014-02-14 at 11:55 +0100, David Henningsson wrote:<br>
> >> On 02/14/2014 10:49 AM, Tanu Kaskinen wrote:<br>
> >>> Does the grouping have any benefits? If pa_volume_control_info has a<br>
> >>> field with this pa_cvolume2 type, then it could be argued that for<br>
> >>> symmetry there should also be function<br>
> >>> pa_context_set_volume_control_volume() that takes a pa_cvolume2 struct<br>
> >>> as a parameter. However, when an application sets the attributes of a<br>
> >>> volume control object, usually it will only modify the overall volume or<br>
> >>> the balance, not both, and the channel map is immutable, so passing a<br>
> >>> pa_cvolume2 struct to the setter function is inconvenient.<br>
> >><br>
> >> A volume control UI with presets would typically set both. So would any<br>
> >> volume control UI do that does not look exactly the way you anticipate.<br>
> >><br>
> >> E g, pavucontrol has two sliders, one left and one right, and gnome<br>
> >> volume control has main volume + balance.<br>
> ><br>
> > I thought about pavucontrol, but not thoroughly enough. I thought that<br>
> > if you change only one channel, only balance needs to be changed, but of<br>
> > course that only works if the channel in question isn't the highest<br>
> > volume channel.<br>
> ><br>
> >> The grouping would also enable potential helper functions such as those<br>
> >> we have for pa_cvolume today.<br>
> ><br>
> > Good point.<br>
> ><br>
> > I think grouping the overall volume, the balance and the channel map<br>
> > together makes sense. About the struct naming: do you know what "c" in<br>
> > "cvolume" refers to? I would guess that it means "channel". pa_cvolume<br>
> > very concretely has per-channel volume (a pa_volume_t value for each<br>
> > channel). It could be argued that pa_cvolume2 is more balance-oriented<br>
> > than channel volume oriented, so here's an idea for a name without<br>
> > numbers: pa_bvolume. Thoughts?<br>
><br>
> Sure, pa_bvolume sounds as good as anything else to me.<br>
><br>
> >>> I'd like to keep mute controls completely separate from volume. They are<br>
> >>> not inherently linked to each other (even though they very often appear<br>
> >>> together).<br>
> >><br>
> >> I don't understand this argument. A mute control *is* a volume control<br>
> >> (with two distinct values).</p>
<p>the volume control of some dac which have no independent mute switch but  mute is implemented at minimum SNDRV_CTL_TLVT_DB_MINMAX_MUTE</p>
<p>For this kind of volume control, You lost the original volume after mute and unmute</p>
<p>You also need a hardware button to toggle those independent mute switch</p>
<p>Even when the sound card provide independent mute switch, the platform may decide not to expose these mute switch to ordinary application , e.g. moblie phone can use the mute switch when user select virbate mode and unmute when the user switch to normal without affect the volume </p>