summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--spec/Call_Content_Interface_Audio_Control.xml111
-rw-r--r--spec/Makefile.am1
-rw-r--r--telepathy-yell/call.xml1
3 files changed, 113 insertions, 0 deletions
diff --git a/spec/Call_Content_Interface_Audio_Control.xml b/spec/Call_Content_Interface_Audio_Control.xml
new file mode 100644
index 0000000..1229fb5
--- /dev/null
+++ b/spec/Call_Content_Interface_Audio_Control.xml
@@ -0,0 +1,111 @@
+<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
+<node name="/Call_Content_Interface_Audio_Control"
+ xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+ <tp:copyright>Copyright © 2009-2011 Collabora Ltd.</tp:copyright>
+ <tp:license xmlns="http://www.w3.org/1999/xhtml">
+ <p>This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.</p>
+
+ <p>This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.</p>
+
+ <p>You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA.</p>
+ </tp:license>
+
+ <interface name="org.freedesktop.Telepathy.Call1.Content.Interface.AudioControl"
+ tp:causes-havoc="experimental">
+ <tp:added version="0.25.UNRELEASED">(draft 1)</tp:added>
+ <tp:requires interface="org.freedesktop.Telepathy.Call1.Content.Interface.Media"/>
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
+
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>This interface allows the connection manager to be kept informed of,
+ and control, the input and output volumes of an audio stream.
+ While generally not needed, if the connection manager needs to
+ handle stream volumes directly (typically when using
+ <tp:value-ref>Call_Content_Packetization_Type_Raw</tp:value-ref>),
+ this interface may be necessary.</p>
+
+ <p>If this interface is present, the handler should call
+ <tp:member-ref>ReportInputVolume</tp:member-ref>
+ and <tp:member-ref>ReportOutputVolume</tp:member-ref> whenever the
+ input and output volume change, both when the user manually modifies
+ the volume and when the volumes are adjusted in response to
+ <tp:member-ref>RequestedInputVolume</tp:member-ref> and
+ <tp:member-ref>RequestedOutputVolume</tp:member-ref> changing.</p>
+
+ <p>The maximum volume as used in this interface represent the unamplified
+ hardware volume (0 dB). No software amplification should be used to
+ boost the signal to a higher level when this Interface is in use</p>
+ </tp:docstring>
+
+ <property name="RequestedInputVolume" tp:type="Audio_Control_Volume"
+ type="i" access="read" tp:name-for-bindings="Requested_Input_Volume">
+ <tp:docstring>
+ The input volume as requested by the Connection Manager.
+ Initially and on any changes the client should change its input volume
+ to match the requested volume.
+ </tp:docstring>
+ </property>
+
+ <method name="ReportInputVolume" tp:name-for-bindings="Report_Input_Volume">
+ <arg direction="in" name="Volume" tp:type="Audio_Control_Volume" type="i">
+ <tp:docstring>
+ Report the input volume level as set by the client.
+ </tp:docstring>
+ </arg>
+ <tp:docstring>
+ <p>Report to the CM that the Content input volume has been
+ changed by the client.</p>
+
+ <p>It is the client's responsibility to change the input volume used for
+ the content. However, the client MUST call this whenever it changes
+ input volume for the content.</p>
+ </tp:docstring>
+ </method>
+
+ <property name="RequestedOutputVolume" tp:type="Audio_Control_Volume"
+ type="i" access="read" tp:name-for-bindings="Requested_Output_Volume">
+ <tp:docstring>
+ The input volume as requested by the Connection Manager.
+ Initially and on any changes the client should change its input volume
+ to match the requested volume.
+ </tp:docstring>
+ </property>
+
+ <method name="ReportOutputVolume"
+ tp:name-for-bindings="Report_Output_Volume">
+ <arg direction="in" name="Volume" tp:type="Audio_Control_Volume" type="i">
+ <tp:docstring>
+ Report the output volume level as set by the client.
+ </tp:docstring>
+ </arg>
+ <tp:docstring>
+ <p>Report to the CM that the content output volume has been
+ changed by the client.</p>
+
+ <p>It is the client's responsibility to change the output volume used
+ for the content. However, the client MUST call this whenever it
+ changes output volume for the content.</p>
+ </tp:docstring>
+ </method>
+
+ <tp:simple-type name="Audio_Control_Volume" type="i">
+ <tp:docstring>
+ <p>A volume value either reported to or requested by the Connection
+ Manager. This value should either be -1 for an unknown value or in the
+ range of 0-255, with 0 being the minimal volume and 255 being the
+ highest unamplified volume the input or output is capable of (known
+ as 0 dB)
+ </p>
+ </tp:docstring>
+ </tp:simple-type>
+ </interface>
+</node>
diff --git a/spec/Makefile.am b/spec/Makefile.am
index 21b4a4f..d23f471 100644
--- a/spec/Makefile.am
+++ b/spec/Makefile.am
@@ -1,5 +1,6 @@
EXTRA_DIST = \
Call_Content_Codec_Offer.xml \
+ Call_Content_Interface_Audio_Control.xml \
Call_Content_Interface_Media.xml \
Call_Content_Interface_Mute.xml \
Call_Content_Interface_Video_Control.xml \
diff --git a/telepathy-yell/call.xml b/telepathy-yell/call.xml
index 617a621..283a2f4 100644
--- a/telepathy-yell/call.xml
+++ b/telepathy-yell/call.xml
@@ -6,6 +6,7 @@
<xi:include href="../spec/Call_Content.xml" />
<xi:include href="../spec/Call_Content_Codec_Offer.xml" />
+<xi:include href="../spec/Call_Content_Interface_Audio_Control.xml" />
<xi:include href="../spec/Call_Content_Interface_Media.xml" />
<xi:include href="../spec/Call_Content_Interface_Mute.xml" />
<xi:include href="../spec/Call_Content_Interface_Video_Control.xml" />