diff --git a/btio/btio.c b/btio/btio.c
index 6f6d76d..b68bfb1 100644
--- a/btio/btio.c
+++ b/btio/btio.c
uint32_t priority;
uint16_t voice;
struct bt_iso_qos qos;
+ struct bt_iso_base base;
};
struct connect {
return TRUE;
}
-static gboolean iso_set(int sock, struct bt_iso_qos *qos, GError **err)
+static gboolean iso_set_qos(int sock, struct bt_iso_qos *qos, GError **err)
{
if (setsockopt(sock, SOL_BLUETOOTH, BT_ISO_QOS, qos,
sizeof(*qos)) < 0) {
return TRUE;
}
+static gboolean iso_set_base(int sock, struct bt_iso_base *base, GError **err)
+{
+ if (setsockopt(sock, SOL_BLUETOOTH, BT_ISO_BASE, base->base,
+ base->base_len) < 0) {
+ ERROR_FAILED(err, "setsockopt(BT_ISO_BASE)", errno);
+ return FALSE;
+ }
+
+ return TRUE;
+}
static gboolean parse_set_opts(struct set_opts *opts, GError **err,
BtIOOption opt1, va_list args)
{
case BT_IO_OPT_QOS:
opts->qos = *va_arg(args, struct bt_iso_qos *);
break;
+ case BT_IO_OPT_BASE:
+ opts->base = *va_arg(args, struct bt_iso_base *);
+ break;
case BT_IO_OPT_INVALID:
case BT_IO_OPT_KEY_SIZE:
case BT_IO_OPT_SOURCE_CHANNEL:
case BT_IO_OPT_MTU:
case BT_IO_OPT_VOICE:
case BT_IO_OPT_QOS:
+ case BT_IO_OPT_BASE:
default:
g_set_error(err, BT_IO_ERROR, EINVAL,
"Unknown option %d", opt);
case BT_IO_OPT_PRIORITY:
case BT_IO_OPT_VOICE:
case BT_IO_OPT_QOS:
+ case BT_IO_OPT_BASE:
case BT_IO_OPT_INVALID:
default:
g_set_error(err, BT_IO_ERROR, EINVAL,
case BT_IO_OPT_PRIORITY:
case BT_IO_OPT_VOICE:
case BT_IO_OPT_QOS:
+ case BT_IO_OPT_BASE:
case BT_IO_OPT_INVALID:
default:
g_set_error(err, BT_IO_ERROR, EINVAL,
case BT_IO_OPT_QOS:
*(va_arg(args, struct bt_iso_qos *)) = qos;
break;
+ case BT_IO_OPT_BASE:
case BT_IO_OPT_HANDLE:
case BT_IO_OPT_CLASS:
case BT_IO_OPT_DEFER_TIMEOUT:
case BT_IO_SCO:
return sco_set(sock, opts.mtu, opts.voice, err);
case BT_IO_ISO:
- return iso_set(sock, &opts.qos, err);
+ return iso_set_qos(sock, &opts.qos, err);
case BT_IO_INVALID:
default:
g_set_error(err, BT_IO_ERROR, EINVAL,
}
if (iso_bind(sock, &opts->src, opts->src_type, err) < 0)
goto failed;
- if (!iso_set(sock, &opts->qos, err))
+ if (!iso_set_qos(sock, &opts->qos, err))
+ goto failed;
+ if (!iso_set_base(sock, &opts->base, err))
goto failed;
break;
case BT_IO_INVALID:
diff --git a/btio/btio.h b/btio/btio.h
index 9636fd4..e9a8a01 100644
--- a/btio/btio.h
+++ b/btio/btio.h
*
* Copyright (C) 2009-2010 Marcel Holtmann <marcel@holtmann.org>
* Copyright (C) 2009-2010 Nokia Corporation
+ * Copyright 2023 NXP
*
*
*/
BT_IO_OPT_VOICE,
BT_IO_OPT_PHY,
BT_IO_OPT_QOS,
+ BT_IO_OPT_BASE
} BtIOOption;
typedef enum {