Hi Luiz, On Mon, Dec 16, 2013 at 2:08 PM, Luiz Augusto von Dentz <luiz.dentz@xxxxxxxxx> wrote: > From: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx> > > This IPC is used to communicate Android BlueZ daemon and AudioFlinger > plugin. > --- > v2: Rework IPC commands to match Android Audio HAL > > android/Makefile.am | 3 +- > android/audio-ipc-api.txt | 85 +++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 87 insertions(+), 1 deletion(-) > create mode 100644 android/audio-ipc-api.txt > > diff --git a/android/Makefile.am b/android/Makefile.am > index 79f30d7..ac00bb2 100644 > --- a/android/Makefile.am > +++ b/android/Makefile.am > @@ -111,4 +111,5 @@ EXTRA_DIST += android/Android.mk android/hal-ipc-api.txt android/README \ > android/pixit-gap.txt android/pixit-hid.txt \ > android/pixit-opp.txt android/pixit-pan.txt \ > android/pixit-pbap.txt android/pts-gap.txt android/pts-hid.txt \ > - android/pts-opp.txt android/pts-pbap.txt > + android/pts-opp.txt android/pts-pbap.txt \ > + android/audio-ipc-api.txt > diff --git a/android/audio-ipc-api.txt b/android/audio-ipc-api.txt > new file mode 100644 > index 0000000..e9a2136 > --- /dev/null > +++ b/android/audio-ipc-api.txt > @@ -0,0 +1,85 @@ > +Bluetooth Audio Plugin > +====================== > + > +The audio plugin happen to be in a different socket but all the rules for > +HAL socket apply here as well, the abstract socket name is > +"\0bluez_audio_socket" (tentative): > + > + .--Android--. .---Audio---. > + | daemon | | Plugin | > + | | Command | | > + | | <-------------------------- | | > + | | | | > + | | --------------------------> | | > + | | Response | | > + | | | | > + | | | | > + | | | | > + '-----------' '-----------' > + > + > + Audio HAL Daemon > + ---------------------------------------------------- > + > + call dev->open() --> command 0x01 > + return dev->open() <-- response 0x01 > + > + call dev->open_output_stream() --> command 0x03 > + return dev->open_output_stream() <-- response 0x03 > + > + call stream_in->read() --> command 0x05 > + return stream_in->read() <-- response 0x05 > + I think it should be stream_out->write() here. > + call stream_in->common.standby() --> command 0x06 > + return stream_in->common.standby() <-- response 0x06 > + Also here: stream_out->common.standby() > + call dev->close_output_stream() --> command 0x04 > + return dev->close_output_stream() <-- response 0x04 > + > + call dev->close() --> command 0x02 > + return dev->close() <-- response 0x02 > + > +Identifier: "audio" (BT_AUDIO_ID) > + > + Opcode 0x00 - Error response > + > + Response parameters: Status (1 octet) > + > + Opcode 0x01 - Open Audio Endpoint commmand > + > + Command parameters: Service UUID (16 octets) > + Codec ID (1 octets) > + Codec capabilities length (1 octets) > + Codec capabilities (variable) > + Number of codec presets (1 octets) > + Codec preset # length (1 octets) > + Codec preset # configuration (variable) > + ... > + Response parameters: Endpoint ID (1 octets) > + > + Opcode 0x02 - Close Audio Endpoint command > + > + Command parameters: Endpoint ID (1 octets) > + Response parameters: <none> > + > + Opcode 0x03 - Open Stream command > + > + Command parameters: Endpoint ID (1 octets) > + Response parameters: Codec configuration length (1 octets) > + Codec configuration (1 octets) > + File descriptor (inline) > + > + Opcode 0x04 - Close Stream command > + > + Command parameters: Endpoint ID (1 octets) > + Response parameters: <none> > + > + Opcode 0x05 - Resume Stream command > + > + Command parameters: Endpoint ID (1 octets) > + Response parameters: <none> > + > + Opcode 0x06 - Suspend Stream command > + > + Command parameters: Endpoint ID (1 octets) > + Response parameters: <none> > -- > 1.8.3.1 > Otherwise looks ok to me. BR Lukasz > -- > To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html