bluez/android/audio-msg.h
Andrzej Kaczmarek 27f17d4083 android/hal-audio: Allow to autoselect endpoint in open_stream IPC
audio_open_output_stream always tries to open 1st registered endpoint
based on assumption that there is only one endpoint registered anyway
(due to support for only one codec). With more endpoints available in
future we need to be able to retrieve endpoint id which is connected
and use it for streaming.

This patch adds special case for id=0 in open_stream IPC to return 1st
opened endpoint on BlueZ side which is enough for now since only one
headset can be connected at any time (i.e. we should not have more
than 1 endpoint opened).
2014-06-01 10:17:16 +03:00

83 lines
2.1 KiB
C

/*
*
* BlueZ - Bluetooth protocol stack for Linux
*
* Copyright (C) 2014 Intel Corporation. All rights reserved.
*
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
#define BLUEZ_AUDIO_MTU 1024
static const char BLUEZ_AUDIO_SK_PATH[] = "\0bluez_audio_socket";
#define AUDIO_SERVICE_ID 0
#define AUDIO_SERVICE_ID_MAX AUDIO_SERVICE_ID
#define AUDIO_STATUS_SUCCESS IPC_STATUS_SUCCESS
#define AUDIO_STATUS_FAILED 0x01
#define AUDIO_OP_STATUS IPC_OP_STATUS
#define AUDIO_OP_OPEN 0x01
struct audio_preset {
uint8_t len;
uint8_t data[0];
} __attribute__((packed));
struct audio_cmd_open {
uint8_t uuid[16];
uint8_t codec;
uint8_t presets;
struct audio_preset preset[0];
} __attribute__((packed));
struct audio_rsp_open {
uint8_t id;
} __attribute__((packed));
#define AUDIO_OP_CLOSE 0x02
struct audio_cmd_close {
uint8_t id;
} __attribute__((packed));
#define AUDIO_OP_OPEN_STREAM 0x03
struct audio_cmd_open_stream {
uint8_t id;
} __attribute__((packed));
struct audio_rsp_open_stream {
uint16_t id;
uint16_t mtu;
struct audio_preset preset[0];
} __attribute__((packed));
#define AUDIO_OP_CLOSE_STREAM 0x04
struct audio_cmd_close_stream {
uint8_t id;
} __attribute__((packed));
#define AUDIO_OP_RESUME_STREAM 0x05
struct audio_cmd_resume_stream {
uint8_t id;
} __attribute__((packed));
#define AUDIO_OP_SUSPEND_STREAM 0x06
struct audio_cmd_suspend_stream {
uint8_t id;
} __attribute__((packed));