| 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): |
| |
| .---Audio---. .--Android--. |
| | Plugin | | Daemon | |
| | | 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->write() --> command 0x05 |
| return stream->write() <-- response 0x05 |
| |
| call stream->common.standby() --> command 0x06 |
| return stream->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 |
| |
| Audio Service (ID 0) |
| ==================== |
| |
| 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) |
| Number of codec presets (1 octet) |
| Codec capabilities length (1 octet) |
| Codec capabilities (variable) |
| 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: Outgoing MTU (2 octets) |
| 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> |