Bluetooth: Audio: Remove the bt_vcp_aics API

The AICS functionality can be exercised using the
bt_aics API instead. These functions did very little
besides cluttering up the bt_vcp API.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
This commit is contained in:
Emil Gydesen 2022-10-09 12:42:22 +02:00 committed by Carles Cufí
commit bfbb704c8e
8 changed files with 46 additions and 482 deletions

View file

@ -44,23 +44,6 @@ static bool valid_vocs_inst(struct bt_vcp *vcp, struct bt_vocs *vocs)
return false;
}
static bool valid_aics_inst(struct bt_vcp *vcp, struct bt_aics *aics)
{
if (aics == NULL) {
return false;
}
#if defined(CONFIG_BT_VCP)
for (int i = 0; i < ARRAY_SIZE(vcp->srv.aics_insts); i++) {
if (vcp->srv.aics_insts[i] == aics) {
return true;
}
}
#endif /* CONFIG_BT_VCP */
return false;
}
#if defined(CONFIG_BT_VCP)
#define VOLUME_DOWN(current_vol) \
@ -417,45 +400,6 @@ int bt_vcp_register(struct bt_vcp_register_param *param, struct bt_vcp **vcp)
return err;
}
int bt_vcp_aics_deactivate(struct bt_vcp *vcp, struct bt_aics *inst)
{
CHECKIF(vcp == NULL) {
LOG_DBG("NULL vcp instance");
return -EINVAL;
}
CHECKIF(inst == NULL) {
LOG_DBG("NULL aics instance");
return -EINVAL;
}
if (!valid_aics_inst(vcp, inst)) {
return -EINVAL;
}
return bt_aics_deactivate(inst);
}
int bt_vcp_aics_activate(struct bt_vcp *vcp, struct bt_aics *inst)
{
CHECKIF(vcp == NULL) {
LOG_DBG("NULL vcp instance");
return -EINVAL;
}
CHECKIF(inst == NULL) {
LOG_DBG("NULL aics instance");
return -EINVAL;
}
if (!valid_aics_inst(vcp, inst)) {
return -EINVAL;
}
return bt_aics_activate(inst);
}
#endif /* CONFIG_BT_VCP */
int bt_vcp_included_get(struct bt_vcp *vcp, struct bt_vcp_included *included)
@ -833,214 +777,3 @@ int bt_vcp_vocs_description_set(struct bt_vcp *vcp, struct bt_vocs *inst,
return -EOPNOTSUPP;
}
int bt_vcp_aics_state_get(struct bt_vcp *vcp, struct bt_aics *inst)
{
CHECKIF(vcp == NULL) {
LOG_DBG("NULL vcp instance");
return -EINVAL;
}
if (IS_ENABLED(CONFIG_BT_VCP_CLIENT_AICS) &&
bt_vcp_client_valid_aics_inst(vcp, inst)) {
return bt_aics_state_get(inst);
}
if (IS_ENABLED(CONFIG_BT_VCP_AICS) && valid_aics_inst(vcp, inst)) {
return bt_aics_state_get(inst);
}
return -EOPNOTSUPP;
}
int bt_vcp_aics_gain_setting_get(struct bt_vcp *vcp, struct bt_aics *inst)
{
CHECKIF(vcp == NULL) {
LOG_DBG("NULL vcp instance");
return -EINVAL;
}
if (IS_ENABLED(CONFIG_BT_VCP_CLIENT_AICS) &&
bt_vcp_client_valid_aics_inst(vcp, inst)) {
return bt_aics_gain_setting_get(inst);
}
if (IS_ENABLED(CONFIG_BT_VCP_AICS) && valid_aics_inst(vcp, inst)) {
return bt_aics_gain_setting_get(inst);
}
return -EOPNOTSUPP;
}
int bt_vcp_aics_type_get(struct bt_vcp *vcp, struct bt_aics *inst)
{
CHECKIF(vcp == NULL) {
LOG_DBG("NULL vcp instance");
return -EINVAL;
}
if (IS_ENABLED(CONFIG_BT_VCP_CLIENT_AICS) &&
bt_vcp_client_valid_aics_inst(vcp, inst)) {
return bt_aics_type_get(inst);
}
if (IS_ENABLED(CONFIG_BT_VCP_AICS) && valid_aics_inst(vcp, inst)) {
return bt_aics_type_get(inst);
}
return -EOPNOTSUPP;
}
int bt_vcp_aics_status_get(struct bt_vcp *vcp, struct bt_aics *inst)
{
CHECKIF(vcp == NULL) {
LOG_DBG("NULL vcp instance");
return -EINVAL;
}
if (IS_ENABLED(CONFIG_BT_VCP_CLIENT_AICS) &&
bt_vcp_client_valid_aics_inst(vcp, inst)) {
return bt_aics_status_get(inst);
}
if (IS_ENABLED(CONFIG_BT_VCP_AICS) && valid_aics_inst(vcp, inst)) {
return bt_aics_status_get(inst);
}
return -EOPNOTSUPP;
}
int bt_vcp_aics_unmute(struct bt_vcp *vcp, struct bt_aics *inst)
{
CHECKIF(vcp == NULL) {
LOG_DBG("NULL vcp instance");
return -EINVAL;
}
if (IS_ENABLED(CONFIG_BT_VCP_CLIENT_AICS) &&
bt_vcp_client_valid_aics_inst(vcp, inst)) {
return bt_aics_unmute(inst);
}
if (IS_ENABLED(CONFIG_BT_VCP_AICS) && valid_aics_inst(vcp, inst)) {
return bt_aics_unmute(inst);
}
return -EOPNOTSUPP;
}
int bt_vcp_aics_mute(struct bt_vcp *vcp, struct bt_aics *inst)
{
CHECKIF(vcp == NULL) {
LOG_DBG("NULL vcp instance");
return -EINVAL;
}
if (IS_ENABLED(CONFIG_BT_VCP_CLIENT_AICS) &&
bt_vcp_client_valid_aics_inst(vcp, inst)) {
return bt_aics_mute(inst);
}
if (IS_ENABLED(CONFIG_BT_VCP_AICS) && valid_aics_inst(vcp, inst)) {
return bt_aics_mute(inst);
}
return -EOPNOTSUPP;
}
int bt_vcp_aics_manual_gain_set(struct bt_vcp *vcp, struct bt_aics *inst)
{
CHECKIF(vcp == NULL) {
LOG_DBG("NULL vcp instance");
return -EINVAL;
}
if (IS_ENABLED(CONFIG_BT_VCP_CLIENT_AICS) &&
bt_vcp_client_valid_aics_inst(vcp, inst)) {
return bt_aics_manual_gain_set(inst);
}
if (IS_ENABLED(CONFIG_BT_VCP_AICS) && valid_aics_inst(vcp, inst)) {
return bt_aics_manual_gain_set(inst);
}
return -EOPNOTSUPP;
}
int bt_vcp_aics_automatic_gain_set(struct bt_vcp *vcp, struct bt_aics *inst)
{
CHECKIF(vcp == NULL) {
LOG_DBG("NULL vcp instance");
return -EINVAL;
}
if (IS_ENABLED(CONFIG_BT_VCP_CLIENT_AICS) &&
bt_vcp_client_valid_aics_inst(vcp, inst)) {
return bt_aics_automatic_gain_set(inst);
}
if (IS_ENABLED(CONFIG_BT_VCP_AICS) && valid_aics_inst(vcp, inst)) {
return bt_aics_automatic_gain_set(inst);
}
return -EOPNOTSUPP;
}
int bt_vcp_aics_gain_set(struct bt_vcp *vcp, struct bt_aics *inst,
int8_t gain)
{
CHECKIF(vcp == NULL) {
LOG_DBG("NULL vcp instance");
return -EINVAL;
}
if (IS_ENABLED(CONFIG_BT_VCP_CLIENT_AICS) &&
bt_vcp_client_valid_aics_inst(vcp, inst)) {
return bt_aics_gain_set(inst, gain);
}
if (IS_ENABLED(CONFIG_BT_VCP_AICS) && valid_aics_inst(vcp, inst)) {
return bt_aics_gain_set(inst, gain);
}
return -EOPNOTSUPP;
}
int bt_vcp_aics_description_get(struct bt_vcp *vcp, struct bt_aics *inst)
{
CHECKIF(vcp == NULL) {
LOG_DBG("NULL vcp instance");
return -EINVAL;
}
if (IS_ENABLED(CONFIG_BT_VCP_CLIENT_AICS) &&
bt_vcp_client_valid_aics_inst(vcp, inst)) {
return bt_aics_description_get(inst);
}
if (IS_ENABLED(CONFIG_BT_VCP_AICS) && valid_aics_inst(vcp, inst)) {
return bt_aics_description_get(inst);
}
return -EOPNOTSUPP;
}
int bt_vcp_aics_description_set(struct bt_vcp *vcp, struct bt_aics *inst,
const char *description)
{
CHECKIF(vcp == NULL) {
LOG_DBG("NULL vcp instance");
return -EINVAL;
}
if (IS_ENABLED(CONFIG_BT_VCP_CLIENT_AICS) &&
bt_vcp_client_valid_aics_inst(vcp, inst)) {
return bt_aics_description_set(inst, description);
}
if (IS_ENABLED(CONFIG_BT_VCP_AICS) && valid_aics_inst(vcp, inst)) {
return bt_aics_description_set(inst, description);
}
return -EOPNOTSUPP;
}

View file

@ -61,33 +61,6 @@ bool bt_vcp_client_valid_vocs_inst(struct bt_vcp *vcp, struct bt_vocs *vocs)
return false;
}
bool bt_vcp_client_valid_aics_inst(struct bt_vcp *vcp, struct bt_aics *aics)
{
if (vcp == NULL) {
return false;
}
if (!vcp->client_instance) {
return false;
}
if (vcp->cli.conn == NULL) {
return false;
}
if (aics == NULL) {
return false;
}
for (int i = 0; i < ARRAY_SIZE(vcp->cli.aics); i++) {
if (vcp->cli.aics[i] == aics) {
return true;
}
}
return false;
}
static uint8_t vcp_client_notify_handler(struct bt_conn *conn,
struct bt_gatt_subscribe_params *params,
const void *data, uint16_t length)

View file

@ -106,5 +106,4 @@ int bt_vcp_client_unmute(struct bt_vcp *vcp);
int bt_vcp_client_mute(struct bt_vcp *vcp);
bool bt_vcp_client_valid_vocs_inst(struct bt_vcp *vcp, struct bt_vocs *vocs);
bool bt_vcp_client_valid_aics_inst(struct bt_vcp *vcp, struct bt_aics *aics);
#endif /* ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_VCP_INTERNAL_*/

View file

@ -529,7 +529,7 @@ static int cmd_vcs_aics_input_state_get(const struct shell *sh, size_t argc,
return -ENOEXEC;
}
result = bt_vcp_aics_state_get(NULL, vcp_included.aics[index]);
result = bt_aics_state_get(vcp_included.aics[index]);
if (result) {
shell_print(sh, "Fail: %d", result);
}
@ -549,7 +549,7 @@ static int cmd_vcs_aics_gain_setting_get(const struct shell *sh, size_t argc,
return -ENOEXEC;
}
result = bt_vcp_aics_gain_setting_get(NULL, vcp_included.aics[index]);
result = bt_aics_gain_setting_get(vcp_included.aics[index]);
if (result) {
shell_print(sh, "Fail: %d", result);
}
@ -569,7 +569,7 @@ static int cmd_vcs_aics_input_type_get(const struct shell *sh, size_t argc,
return -ENOEXEC;
}
result = bt_vcp_aics_type_get(NULL, vcp_included.aics[index]);
result = bt_aics_type_get(vcp_included.aics[index]);
if (result) {
shell_print(sh, "Fail: %d", result);
}
@ -589,7 +589,7 @@ static int cmd_vcs_aics_input_status_get(const struct shell *sh, size_t argc,
return -ENOEXEC;
}
result = bt_vcp_aics_status_get(NULL, vcp_included.aics[index]);
result = bt_aics_status_get(vcp_included.aics[index]);
if (result) {
shell_print(sh, "Fail: %d", result);
}
@ -609,7 +609,7 @@ static int cmd_vcs_aics_input_unmute(const struct shell *sh, size_t argc,
return -ENOEXEC;
}
result = bt_vcp_aics_unmute(NULL, vcp_included.aics[index]);
result = bt_aics_unmute(vcp_included.aics[index]);
if (result) {
shell_print(sh, "Fail: %d", result);
}
@ -629,7 +629,7 @@ static int cmd_vcs_aics_input_mute(const struct shell *sh, size_t argc,
return -ENOEXEC;
}
result = bt_vcp_aics_mute(NULL, vcp_included.aics[index]);
result = bt_aics_mute(vcp_included.aics[index]);
if (result) {
shell_print(sh, "Fail: %d", result);
}
@ -649,7 +649,7 @@ static int cmd_vcs_aics_manual_input_gain_set(const struct shell *sh,
return -ENOEXEC;
}
result = bt_vcp_aics_manual_gain_set(NULL, vcp_included.aics[index]);
result = bt_aics_manual_gain_set(vcp_included.aics[index]);
if (result) {
shell_print(sh, "Fail: %d", result);
}
@ -669,7 +669,7 @@ static int cmd_vcs_aics_automatic_input_gain_set(const struct shell *sh,
return -ENOEXEC;
}
result = bt_vcp_aics_automatic_gain_set(NULL, vcp_included.aics[index]);
result = bt_aics_automatic_gain_set(vcp_included.aics[index]);
if (result) {
shell_print(sh, "Fail: %d", result);
}
@ -696,7 +696,7 @@ static int cmd_vcs_aics_gain_set(const struct shell *sh, size_t argc,
return -ENOEXEC;
}
result = bt_vcp_aics_gain_set(NULL, vcp_included.aics[index], gain);
result = bt_aics_gain_set(vcp_included.aics[index], gain);
if (result) {
shell_print(sh, "Fail: %d", result);
}
@ -716,7 +716,7 @@ static int cmd_vcs_aics_input_description_get(const struct shell *sh,
return -ENOEXEC;
}
result = bt_vcp_aics_description_get(NULL, vcp_included.aics[index]);
result = bt_aics_description_get(vcp_included.aics[index]);
if (result) {
shell_print(sh, "Fail: %d", result);
}
@ -737,7 +737,7 @@ static int cmd_vcs_aics_input_description_set(const struct shell *sh,
return -ENOEXEC;
}
result = bt_vcp_aics_description_set(NULL, vcp_included.aics[index],
result = bt_aics_description_set(vcp_included.aics[index],
description);
if (result) {
shell_print(sh, "Fail: %d", result);

View file

@ -706,7 +706,7 @@ static int cmd_vcp_client_aics_input_state_get(const struct shell *sh,
return -ENOEXEC;
}
result = bt_vcp_aics_state_get(vcp, vcp_included.aics[index]);
result = bt_aics_state_get(vcp_included.aics[index]);
if (result != 0) {
shell_print(sh, "Fail: %d", result);
}
@ -731,7 +731,7 @@ static int cmd_vcp_client_aics_gain_setting_get(const struct shell *sh,
return -ENOEXEC;
}
result = bt_vcp_aics_gain_setting_get(vcp, vcp_included.aics[index]);
result = bt_aics_gain_setting_get(vcp_included.aics[index]);
if (result != 0) {
shell_print(sh, "Fail: %d", result);
}
@ -756,7 +756,7 @@ static int cmd_vcp_client_aics_input_type_get(const struct shell *sh,
return -ENOEXEC;
}
result = bt_vcp_aics_type_get(vcp, vcp_included.aics[index]);
result = bt_aics_type_get(vcp_included.aics[index]);
if (result != 0) {
shell_print(sh, "Fail: %d", result);
}
@ -781,7 +781,7 @@ static int cmd_vcp_client_aics_input_status_get(const struct shell *sh,
return -ENOEXEC;
}
result = bt_vcp_aics_status_get(vcp, vcp_included.aics[index]);
result = bt_aics_status_get(vcp_included.aics[index]);
if (result != 0) {
shell_print(sh, "Fail: %d", result);
}
@ -806,7 +806,7 @@ static int cmd_vcp_client_aics_input_unmute(const struct shell *sh,
return -ENOEXEC;
}
result = bt_vcp_aics_unmute(vcp, vcp_included.aics[index]);
result = bt_aics_unmute(vcp_included.aics[index]);
if (result != 0) {
shell_print(sh, "Fail: %d", result);
}
@ -831,7 +831,7 @@ static int cmd_vcp_client_aics_input_mute(const struct shell *sh,
return -ENOEXEC;
}
result = bt_vcp_aics_mute(vcp, vcp_included.aics[index]);
result = bt_aics_mute(vcp_included.aics[index]);
if (result != 0) {
shell_print(sh, "Fail: %d", result);
}
@ -856,7 +856,7 @@ static int cmd_vcp_client_aics_manual_input_gain_set(const struct shell *sh,
return -ENOEXEC;
}
result = bt_vcp_aics_manual_gain_set(vcp, vcp_included.aics[index]);
result = bt_aics_manual_gain_set(vcp_included.aics[index]);
if (result != 0) {
shell_print(sh, "Fail: %d", result);
}
@ -881,7 +881,7 @@ static int cmd_vcp_client_aics_auto_input_gain_set(const struct shell *sh,
return -ENOEXEC;
}
result = bt_vcp_aics_automatic_gain_set(vcp, vcp_included.aics[index]);
result = bt_aics_automatic_gain_set(vcp_included.aics[index]);
if (result != 0) {
shell_print(sh, "Fail: %d", result);
}
@ -913,7 +913,7 @@ static int cmd_vcp_client_aics_gain_set(const struct shell *sh, size_t argc,
return -ENOEXEC;
}
result = bt_vcp_aics_gain_set(vcp, vcp_included.aics[index], gain);
result = bt_aics_gain_set(vcp_included.aics[index], gain);
if (result != 0) {
shell_print(sh, "Fail: %d", result);
}
@ -938,7 +938,7 @@ static int cmd_vcp_client_aics_input_description_get(const struct shell *sh,
return -ENOEXEC;
}
result = bt_vcp_aics_description_get(vcp, vcp_included.aics[index]);
result = bt_aics_description_get(vcp_included.aics[index]);
if (result != 0) {
shell_print(sh, "Fail: %d", result);
}
@ -964,7 +964,7 @@ static int cmd_vcp_client_aics_input_description_set(const struct shell *sh,
return -ENOEXEC;
}
result = bt_vcp_aics_description_set(vcp, vcp_included.aics[index],
result = bt_aics_description_set(vcp_included.aics[index],
description);
if (result != 0) {
shell_print(sh, "Fail: %d", result);