1 /* csip.c - CAP initiator specific CSIP mocks */
2
3 /*
4 * Copyright (c) 2023-2024 Nordic Semiconductor ASA
5 *
6 * SPDX-License-Identifier: Apache-2.0
7 */
8 #include <stdbool.h>
9 #include <stddef.h>
10 #include <stdint.h>
11
12 #include <stdbool.h>
13 #include <stddef.h>
14 #include <stdint.h>
15
16 #include <zephyr/bluetooth/audio/csip.h>
17 #include <zephyr/bluetooth/conn.h>
18
19 static struct bt_csip_set_coordinator_cb *csip_cb;
20
21 struct bt_csip_set_coordinator_svc_inst {
22 struct bt_conn *conn;
23 struct bt_csip_set_coordinator_set_info *set_info;
24 } svc_inst;
25
26 static struct bt_csip_set_coordinator_set_member member = {
27 .insts = {
28 {
29 .info = {
30 .set_size = 2U,
31 .rank = 1U,
32 .lockable = false,
33 },
34 .svc_inst = &svc_inst,
35 },
36 },
37 };
38
39 struct bt_csip_set_coordinator_csis_inst *
bt_csip_set_coordinator_csis_inst_by_handle(struct bt_conn * conn,uint16_t start_handle)40 bt_csip_set_coordinator_csis_inst_by_handle(struct bt_conn *conn, uint16_t start_handle)
41 {
42 return &member.insts[0];
43 }
44
bt_csip_set_coordinator_register_cb(struct bt_csip_set_coordinator_cb * cb)45 int bt_csip_set_coordinator_register_cb(struct bt_csip_set_coordinator_cb *cb)
46 {
47 csip_cb = cb;
48
49 return 0;
50 }
51
bt_csip_set_coordinator_discover(struct bt_conn * conn)52 int bt_csip_set_coordinator_discover(struct bt_conn *conn)
53 {
54 if (csip_cb != NULL) {
55 svc_inst.conn = conn;
56 svc_inst.set_info = &member.insts[0].info;
57 csip_cb->discover(conn, &member, 0, 1);
58 }
59
60 return 0;
61 }
62
63 struct bt_csip_set_coordinator_set_member *
bt_csip_set_coordinator_set_member_by_conn(const struct bt_conn * conn)64 bt_csip_set_coordinator_set_member_by_conn(const struct bt_conn *conn)
65 {
66 if (conn == NULL) {
67 return NULL;
68 }
69
70 return &member;
71 }
72
mock_bt_csip_init(void)73 void mock_bt_csip_init(void)
74 {
75 }
76
mock_bt_csip_cleanup(void)77 void mock_bt_csip_cleanup(void)
78 {
79 csip_cb = NULL;
80 }
81