<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
17.02.2014 16:36, Arun Raghavan wrote:<br>
<blockquote
cite="mid:CACuU-+h7KxV0FMoqzKixkzUBxEVZCzCi8C1wKtzs4w1gW5qBcg@mail.gmail.com"
type="cite">
<p dir="ltr">(Resend including list as well)</p>
<div class="gmail_quote">On 17 Feb 2014 09:30, "Arun Raghavan"
<<a moz-do-not-send="true" href="mailto:arun@accosted.net">arun@accosted.net</a>>
wrote:<br type="attribution">
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
We have 3 orthogonal issues here:<br>
<br>
1. Addition of volume control objects / information to allow
balance<br>
to be represented adequately<br>
</blockquote>
</div>
</blockquote>
<br>
This is not limited to balance information. Please split this issue,
see the other half below.<br>
<br>
<blockquote
cite="mid:CACuU-+h7KxV0FMoqzKixkzUBxEVZCzCi8C1wKtzs4w1gW5qBcg@mail.gmail.com"
type="cite">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
2. Creation and control of volume classes<br>
<br>
3. Adding a "main volume" concept<br>
<br>
I suggest we discuss each in a separate thread to keep the
discussion<br>
manageable. Right now, I'll address the first, viz. volume
control<br>
objects.<br>
</blockquote>
</div>
</blockquote>
<br>
OK, ignoring (2) and (3) in this e-mail.<br>
<br>
<blockquote
cite="mid:CACuU-+h7KxV0FMoqzKixkzUBxEVZCzCi8C1wKtzs4w1gW5qBcg@mail.gmail.com"
type="cite">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I'm not completely clear what you're trying to achieve with
volume<br>
control objects right now - are you just trying to fix the
balance<br>
problem, or ...? I see the point you're making about the
potential<br>
applicability of associating multiple volume controls with a
single<br>
device, but I'd like to understand what you'll be solving with
the<br>
patch set you'd be submitting with this infrastructure.<br>
</blockquote>
</div>
</blockquote>
<br>
As far as I understood Tanu's explanations, the problem is that
there are the following assumptions currently hard-coded into
PulseAudio:<br>
<br>
1. every volume belongs to either a source, or a sink, or a sink
input, or a source output;<br>
2. it belongs to exactly one such object;<br>
3. every such object has exactly one volume.<br>
<br>
A sensible model has been demonstrated (as a replacement of the
current logic) that doesn't fit into those assumptions. E.g. (here I
am deliberately trying to "misinterpret" and/or augment the earlier
e-mails by Tanu, just to see if this modification breaks any of his
own assumptions):<br>
<br>
A. For each sink, there are two volumes: "System" and
"Entertainment". None of them can be said to be the system's main
volume. An attempt to read or adjust the sink's volume via legacy
tools follows the usual flat-volume logic and changes both.<br>
B. These volumes exist and are adjustable via new tools even if
nothing is playing through that sink.<br>
C. Any stream playing through a sink does not have an
independently-adjustable volume. It effectively assumes one of the
"System" or "Entertainment" volumes belonging to the sink, depending
on its media role. An attempt to read or change the stream volume
via legacy interfaces reads or adjusts one of the "System" or
"Entertainment" volumes belonging to the sink, as appropriate.<br>
<br>
Here, (A) breaks (3) for sinks and (2) for streams, (B) breaks
nothing else (but, if these volumes were global instead of per-sink,
it would break (1)), and (C) breaks (2) and (3) for streams.<br>
<br>
So, Tanu tries to introduce a volume object, as an entity to
represent a volume that Just Exists (potentially, independently from
streams, sinks and sources), has a human-readable label, and methods
to enumerate all such volume objects.<br>
<br>
I hope this e-mail helps you better understand the "Addition of
volume control objects" issue that you brought up. Sorry if this
ends up misrepresenting the idea.<br>
<br>
<pre class="moz-signature" cols="72">--
Alexander E. Patrakov</pre>
</body>
</html>