Return-Path: From: Mikel Astiz To: "Von Dentz, Luiz" , Joao Paulo Rechi Vita CC: Luiz Augusto von Dentz , "linux-bluetooth@vger.kernel.org" , Vinicius Gomes , Claudio Takahasi Subject: AW: [PATCH BlueZ 01/11] transport: Initialize the "Volume" property with 50% Date: Mon, 14 Jan 2013 14:55:19 +0000 Message-ID: <0E5B0602414B684FAFC3B07F5A858CC40FFB5CDF@Exchange2010.bmw-carit.intra> References: <1357935934-20033-1-git-send-email-jprvita@openbossa.org> <1357935934-20033-2-git-send-email-jprvita@openbossa.org> In-Reply-To: Content-Type: text/plain; charset="iso-8859-1" MIME-Version: 1.0 Sender: linux-bluetooth-owner@vger.kernel.org List-ID: Hi all, > Hi Joao, > > On Mon, Jan 14, 2013 at 4:05 PM, Joao Paulo Rechi Vita > wrote: > > On Sun, Jan 13, 2013 at 12:22 PM, Luiz Augusto von Dentz > > wrote: > >> Hi Joao, > >> > >> On Fri, Jan 11, 2013 at 10:25 PM, Jo?o Paulo Rechi Vita > >> wrote: > >>> --- > >>> profiles/audio/transport.c | 2 +- > >>> 1 file changed, 1 insertion(+), 1 deletion(-) > >>> > >>> diff --git a/profiles/audio/transport.c b/profiles/audio/transport.c > >>> index a4370a5..6ffa98a 100644 > >>> --- a/profiles/audio/transport.c > >>> +++ b/profiles/audio/transport.c > >>> @@ -787,7 +787,7 @@ struct media_transport > *media_transport_create(struct media_endpoint *endpoint, > >>> struct a2dp_transport *a2dp; > >>> > >>> a2dp = g_new0(struct a2dp_transport, 1); > >>> - a2dp->volume = -1; > >>> + a2dp->volume = 63; > >>> > >>> transport->resume = resume_a2dp; > >>> transport->suspend = suspend_a2dp; > >>> -- > >>> 1.7.11.7 > >> > >> Does the spec say anything regarding this? Actually it seems this > >> value must be set by PA if it does support volume notification, which > >> means a new version of PA, then it should set the value when the card > >> is initialized, otherwise if the endpoint doesn't set a value it > >> should remain -1/not available. If volume is not set by the endpoint > >> we should either return and error upon register notification or > >> return maximum volume always and refuse to SetAbsoluteVolume, my > >> guess is that the latter is better for IOP reasons since the remote > >> device may register to volume while the endpoint is setting up the > >> transport so the volume may be set latter. > >> > >> > > > > I agree the right value will come from PA. The problem is that the > > org.bluez.MediaTransport.Volume property doesn't exist when volume is > > < 0 or > 127 and PA will not be able to inform the correct volume > > value. Should we simply remove volume_exists(), or do you have any > > other suggestion? > > I guess we could use the role of transport, if it is a sink/controller transport it > should be initialized to max volume otherwise it should still be initialized with > -1 so we can continue to omit in case of source/target role. A side question: AFAIK this feature has been added in AVRCP 1.4. How would the endpoint (PulseAudio) know if it's supported or not by a certain device? My proposal would be that the property is not present if the feature is not supported (or also if AVRCP is not connected). Therefore, I'd propose exposing a special value in D-Bus (i.e. -1) as soon as the feature becomes available (AVRCP 1.4 connected) so the endpoint can set the initial value. Cheers, Mikel