public inbox for linux-bluetooth@vger.kernel.org
 help / color / mirror / Atom feed
From: David Stockwell <dstockwell@frequency-one.com>
To: bluez-devel@lists.sourceforge.net
Subject: [Bluez-devel] Proposed API for org.bluez.audio.control (AVRCP)
Date: Sat, 29 Mar 2008 08:30:16 -0500	[thread overview]
Message-ID: <200803290830.16736.dstockwell@frequency-one.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 404 bytes --]

Marcel, Johan, Brad, et al:

As promised, I have laid out a first draft interface for .control, which is 
largely based on AVRCP support provided by CSR.

It appears that the *-api.txt documents are created with groff (or something 
like that); this document I just quickly hacked together in KWrite (similar 
to MS Notepad).

Any and all comments will be appreciated.

-- 
David Stockwell
Frequency One

[-- Attachment #2: avrcp-api.txt --]
[-- Type: text/plain, Size: 3415 bytes --]

org.bluez.audio.Control interface

This interface is available for remote devices which implement support for an
AVRCP controller and target.

Object path(s)	/org/bluez/audio/device*

Methods:
	void	Connect(uint8 role)
		Request connection between this node and remote device.
		Role is role of THIS node in the connection, {CT|TG|CT&TG}.

	void	Disconnect()
		Disconnect from the remote device.

	boolean IsConnected()
		Returns TRUE if connected with the remote device.

	boolean GetUnitInfo()
		Sends UnitInfo command to target of connection

	boolean SendUnitInfo(boolean accepted,
			uint8 avc_subunit_type, uint16 unit, uint32 company_id)
		Called to send UnitInfo (in response to a UnitInfoRequested signal).
		NOTE:	Once this is set, should it be possible to auto-respond to
			future UnitInfoRequested signals?

	boolean GetSubUnitInfo(uint8 page)
		Sends UnitInfo command to target of connection

	boolean SendSubUnitInfo(boolean accepted, uint8 page,
			const uint8 * page_data)
		Called to send a page of SubUnitInfo (in response to a
		SubUnitInfoRequested signal).

	boolean SendPassthrough(uint8 avc_subunit_type,
			uint8 avc_subunit_id, boolean state, avc_operation_id key,
			uint16 sizeof_op_data, const uint8 * op_data)
		Called to send Passthrough commands.

	boolean SendVendorDependent(uint8 avc_subunit_type,
			uint8 avc_subunit_id, uint8 ctype, uint32 company_id,
			uint16 sizeof_op_data, const uint8 * op_data)
		Called to send VendorDependent commands (also used internally for
		Metadata).

	void	SendMetadata(uint8 avc_subunit_type,
			uint8 avc_subunit_id, uint8 ctype,
			{uint16 meta_attr, const char * meta_element})
		Called to send Metadata commands (a subset of the
		VendorDependent message). May be multiple meta attribute/element pairs.

Signals:
	void	Connected()
		Sent when a successful connection has been made to the remote device.

	void	Disconnected()
		Sent when a connection to the remote device has been disconnected.

	void	ConnectRequested(string address, uint8 role)
		Sent when a remote device wishes to connect.

	void	DisconnectRequested()
		Sent when a connected remote device wishes to disconnect.

	void	UnitInfoRequested()
		Received when another connected device requests UnitInfo.

	void	UnitInfoReceived(boolean accepted,
			uint8 avc_subunit_type, uint16 unit, uint32 company_id)
		Called when response to GetUnitInfo is received from connected
		device.

	void	SubUnitInfoRequested(uint8 page)
		Received when another connected device requests SubUnitInfo

	void	SubUnitInfoReceived(boolean accepted, uint8 page,
			const uint8 * page_data)
		Called when response to GetSubUnitInfo is received from connected device.

	void	PassthroughReceived(uint8 avc_subunit_type,
			uint8 avc_subunit_id, boolean state, avc_operation_id key,
			uint16 sizeof_op_data, const uint8 * op_data)
		Called when Passthrough command is received from connected device.

	void	VendorDependentReceived(uint8 avc_subunit_type,
			uint8 avc_subunit_id, uint8 ctype, uint32 company_id,
			uint16 sizeof_op_data, const uint8 * op_data)
		Called when VendorDependent message is received from connected device
		(except for Metadata).

	void	MetadataReceived(uint8 avc_subunit_type,
			uint8 avc_subunit_id, uint8 ctype,
			{uint16 meta_attr, const char * meta_element})
		Called when Metadata is received from connected device.  May be multiple
		meta attribute/element pairs.

[-- Attachment #3: Type: text/plain, Size: 278 bytes --]

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace

[-- Attachment #4: Type: text/plain, Size: 164 bytes --]

_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

             reply	other threads:[~2008-03-29 13:30 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-29 13:30 David Stockwell [this message]
2008-03-31  3:19 ` [Bluez-devel] Proposed API for org.bluez.audio.control (AVRCP) Marcel Holtmann
2008-04-02 14:02   ` David Stockwell
2008-04-02 15:25     ` Johan Hedberg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200803290830.16736.dstockwell@frequency-one.com \
    --to=dstockwell@frequency-one.com \
    --cc=bluez-devel@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox