2016-07-20 12:26:22

by Marco Trapanese

[permalink] [raw]
Subject: AVRCP: player object path

Hello, I'm trying to implement some function of AVRCP protocol. From here:

http://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc/media-api.txt

I don't understand how to retreive the |object path| of my player:

Object path [variable
prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX/playerX

I'm not sure if it is returned from some DBus methods or I have to
manually build it using the bluetooth address and the local device.

Thanks!
Marco




2016-07-21 08:38:31

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: Re: AVRCP: player object path

Hi Marco, Barry,

On Wed, Jul 20, 2016 at 6:44 PM, Marco Trapanese
<[email protected]> wrote:
> Il 20/07/2016 16:39, Barry Byford ha scritto:
>>
>>
>> This is something I'm currently trying to get my head around.
>>
>> There appears to be a dbus.INTROSPECTABLE_IFACE interface that has an
>> Introspect() method.
>>
>> I've got an example of using it in Python at:
>> https://github.com/ukBaz/python-bluezero/blob/master/examples/iterate.py
>> In build_introspection()
>>
>> You can do something similar on the command line with:
>> gdbus introspect --system --dest org.bluez --object-path / --recurse
>>
>> Hope that helps move you forward.
>
>
> Hi Barry,
> I was able to get it in this way:
>
>> QDBusInterface *iface = new QDBusInterface("org.bluez", "/org/bluez/hci0",
>> "org.freedesktop.DBus.Introspectable", QDBusConnection::systemBus(), this);
>> QString xml = iface->call("Introspect").arguments().at(0).toString();
>
>
> and then I extract the attribute "name" from the second "node" tag...

If the issue under discussion here is how to enumerate these objects
you should use ObjectManager to do that, you can check how
tools/bluetooth-player.c uses our gdbus client helpers to discover the
objects, it should be very straight forward if the D-Bus library has
support for ObjectManager built-in otherwise you may need to do it
yourselves.

--
Luiz Augusto von Dentz

2016-07-20 15:44:07

by Marco Trapanese

[permalink] [raw]
Subject: Re: AVRCP: player object path

Il 20/07/2016 16:39, Barry Byford ha scritto:
>
> This is something I'm currently trying to get my head around.
>
> There appears to be a dbus.INTROSPECTABLE_IFACE interface that has an
> Introspect() method.
>
> I've got an example of using it in Python at:
> https://github.com/ukBaz/python-bluezero/blob/master/examples/iterate.py
> In build_introspection()
>
> You can do something similar on the command line with:
> gdbus introspect --system --dest org.bluez --object-path / --recurse
>
> Hope that helps move you forward.

Hi Barry,
I was able to get it in this way:

> QDBusInterface *iface = new QDBusInterface("org.bluez",
> "/org/bluez/hci0", "org.freedesktop.DBus.Introspectable",
> QDBusConnection::systemBus(), this);
> QString xml = iface->call("Introspect").arguments().at(0).toString();

and then I extract the attribute "name" from the second "node" tag...


2016-07-20 14:39:10

by Barry Byford

[permalink] [raw]
Subject: Re: AVRCP: player object path

Hello Marco,

On 20 July 2016 at 13:26, Marco Trapanese <[email protected]> wrote:
> Hello, I'm trying to implement some function of AVRCP protocol. From here:
>
> http://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc/media-api.txt
>
> I don't understand how to retreive the |object path| of my player:
>
> Object path [variable
> prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX/playerX
>
> I'm not sure if it is returned from some DBus methods or I have to manually
> build it using the bluetooth address and the local device.

This is something I'm currently trying to get my head around.

There appears to be a dbus.INTROSPECTABLE_IFACE interface that has an
Introspect() method.

I've got an example of using it in Python at:
https://github.com/ukBaz/python-bluezero/blob/master/examples/iterate.py
In build_introspection()

You can do something similar on the command line with:
gdbus introspect --system --dest org.bluez --object-path / --recurse

Hope that helps move you forward.

Regards,
Barry

>
> Thanks!
> Marco
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth"
> in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html