blob: 4983ad7cf7b1ca84e3e022b345522310944d79a6 [file] [log] [blame]
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
call stream_in->common.standby() --> command 0x06
return stream_in->common.standby() <-- response 0x06
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 octet)
Codec capabilities length (1 octet)
Codec capabilities (variable)
Number of codec presets (1 octet)
Codec preset # length (1 octet)
Codec preset # configuration (variable)
...
Response parameters: Endpoint ID (1 octet)
Opcode 0x02 - Close Audio Endpoint command
Command parameters: Endpoint ID (1 octet)
Response parameters: <none>
Opcode 0x03 - Open Stream command
Command parameters: Endpoint ID (1 octet)
Response parameters: Codec configuration length (1 octet)
Codec configuration (1 octet)
File descriptor (inline)
Opcode 0x04 - Close Stream command
Command parameters: Endpoint ID (1 octet)
Response parameters: <none>
Opcode 0x05 - Resume Stream command
Command parameters: Endpoint ID (1 octet)
Response parameters: <none>
Opcode 0x06 - Suspend Stream command
Command parameters: Endpoint ID (1 octet)
Response parameters: <none>