On Tue, Apr 16, 2013 at 10:40 AM, Mikel Astiz <mikel.astiz.oss at gmail.com> wrote: > From: Mikel Astiz <mikel.astiz at bmw-carit.de> > > In BlueZ 5, the microphone and speaker gains are exposed as properties > of the MediaTransport1 interface. There is no HSP implementation in BlueZ 5 and for HFP these interfaces will be exposed in the oFono API, so this code will never be used. IMO we shouldn't merge this patch util these properties are actually used by someone. > --- > src/modules/bluetooth/bluetooth-util.c | 41 ++++++++++++++++++++++++++++++++++ > 1 file changed, 41 insertions(+) > > diff --git a/src/modules/bluetooth/bluetooth-util.c b/src/modules/bluetooth/bluetooth-util.c > index 7589c22..de4dbce 100644 > --- a/src/modules/bluetooth/bluetooth-util.c > +++ b/src/modules/bluetooth/bluetooth-util.c > @@ -1154,6 +1154,32 @@ static int transport_parse_property(pa_bluetooth_transport *t, DBusMessageIter * > > break; > } > + > + case DBUS_TYPE_BYTE: { > + uint8_t value; > + > + dbus_message_iter_get_basic(&variant_i, &value); > + > + if (pa_streq(key, "MicrophoneGain")) { > + uint8_t gain; > + > + if ((gain = PA_MIN(value, HSP_MAX_GAIN)) == t->microphone_gain) > + break; > + > + t->microphone_gain = gain; > + pa_hook_fire(&t->device->discovery->hooks[PA_BLUETOOTH_HOOK_TRANSPORT_MICROPHONE_GAIN_CHANGED], t); > + } else if (pa_streq(key, "SpeakerGain")) { > + uint8_t gain; > + > + if ((gain = PA_MIN(value, HSP_MAX_GAIN)) == t->speaker_gain) > + break; > + > + t->speaker_gain = gain; > + pa_hook_fire(&t->device->discovery->hooks[PA_BLUETOOTH_HOOK_TRANSPORT_SPEAKER_GAIN_CHANGED], t); > + } > + > + break; > + } > } > > return 0; > @@ -1617,6 +1643,14 @@ void pa_bluetooth_transport_set_microphone_gain(pa_bluetooth_transport *t, uint1 > pa_assert(t); > pa_assert(t->profile == PROFILE_HSP); > > + if (t->device->discovery->version >= BLUEZ_VERSION_5) { > + uint8_t g = (uint8_t) gain; > + > + set_property(t->device->discovery, t->owner, t->path, "org.bluez.MediaTransport1", > + "MicrophoneGain", DBUS_TYPE_BYTE, &g); > + return; > + } > + > set_property(t->device->discovery, "org.bluez", t->device->path, "org.bluez.Headset", > "MicrophoneGain", DBUS_TYPE_UINT16, &gain); > } > @@ -1627,6 +1661,13 @@ void pa_bluetooth_transport_set_speaker_gain(pa_bluetooth_transport *t, uint16_t > pa_assert(t); > pa_assert(t->profile == PROFILE_HSP); > > + if (t->device->discovery->version >= BLUEZ_VERSION_5) { > + uint8_t g = (uint8_t) gain; > + > + set_property(t->device->discovery, t->owner, t->path, "org.bluez.MediaTransport1", "SpeakerGain", DBUS_TYPE_BYTE, &g); > + return; > + } > + > set_property(t->device->discovery, "org.bluez", t->device->path, "org.bluez.Headset", > "SpeakerGain", DBUS_TYPE_UINT16, &gain); > } > -- > 1.8.1.4 > > _______________________________________________ > pulseaudio-discuss mailing list > pulseaudio-discuss at lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss -- Jo?o Paulo Rechi Vita http://about.me/jprvita