Zephyr Project API 3.7.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
mcs.h
Go to the documentation of this file.
1
5/*
6 * Copyright (c) 2019 - 2024 Nordic Semiconductor ASA
7 *
8 * SPDX-License-Identifier: Apache-2.0
9 */
10
11#ifndef ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_MCS_H_
12#define ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_MCS_H_
13
29#include <zephyr/sys/util.h>
31
32#ifdef __cplusplus
33extern "C" {
34#endif
35
40#define BT_MCS_ERR_LONG_VAL_CHANGED 0x80
41
50#define BT_MCS_PLAYBACK_SPEED_MIN -128
52#define BT_MCS_PLAYBACK_SPEED_QUARTER -128
54#define BT_MCS_PLAYBACK_SPEED_HALF -64
56#define BT_MCS_PLAYBACK_SPEED_UNITY 0
58#define BT_MCS_PLAYBACK_SPEED_DOUBLE 64
60#define BT_MCS_PLAYBACK_SPEED_MAX 127
72#define BT_MCS_SEEKING_SPEED_FACTOR_MAX 64
74#define BT_MCS_SEEKING_SPEED_FACTOR_MIN 4
76#define BT_MCS_SEEKING_SPEED_FACTOR_ZERO 0
84#define BT_MCS_PLAYING_ORDER_SINGLE_ONCE 0X01
86#define BT_MCS_PLAYING_ORDER_SINGLE_REPEAT 0x02
88#define BT_MCS_PLAYING_ORDER_INORDER_ONCE 0x03
90#define BT_MCS_PLAYING_ORDER_INORDER_REPEAT 0x04
92#define BT_MCS_PLAYING_ORDER_OLDEST_ONCE 0x05
94#define BT_MCS_PLAYING_ORDER_OLDEST_REPEAT 0x06
96#define BT_MCS_PLAYING_ORDER_NEWEST_ONCE 0x07
98#define BT_MCS_PLAYING_ORDER_NEWEST_REPEAT 0x08
100#define BT_MCS_PLAYING_ORDER_SHUFFLE_ONCE 0x09
102#define BT_MCS_PLAYING_ORDER_SHUFFLE_REPEAT 0x0a
112#define BT_MCS_PLAYING_ORDERS_SUPPORTED_SINGLE_ONCE BIT(0)
114#define BT_MCS_PLAYING_ORDERS_SUPPORTED_SINGLE_REPEAT BIT(1)
116#define BT_MCS_PLAYING_ORDERS_SUPPORTED_INORDER_ONCE BIT(2)
118#define BT_MCS_PLAYING_ORDERS_SUPPORTED_INORDER_REPEAT BIT(3)
120#define BT_MCS_PLAYING_ORDERS_SUPPORTED_OLDEST_ONCE BIT(4)
122#define BT_MCS_PLAYING_ORDERS_SUPPORTED_OLDEST_REPEAT BIT(5)
124#define BT_MCS_PLAYING_ORDERS_SUPPORTED_NEWEST_ONCE BIT(6)
126#define BT_MCS_PLAYING_ORDERS_SUPPORTED_NEWEST_REPEAT BIT(7)
128#define BT_MCS_PLAYING_ORDERS_SUPPORTED_SHUFFLE_ONCE BIT(8)
130#define BT_MCS_PLAYING_ORDERS_SUPPORTED_SHUFFLE_REPEAT BIT(9)
138#define BT_MCS_MEDIA_STATE_INACTIVE 0x00
140#define BT_MCS_MEDIA_STATE_PLAYING 0x01
142#define BT_MCS_MEDIA_STATE_PAUSED 0x02
144#define BT_MCS_MEDIA_STATE_SEEKING 0x03
152#define BT_MCS_OPC_PLAY 0x01
154#define BT_MCS_OPC_PAUSE 0x02
156#define BT_MCS_OPC_FAST_REWIND 0x03
158#define BT_MCS_OPC_FAST_FORWARD 0x04
163#define BT_MCS_OPC_STOP 0x05
164
166#define BT_MCS_OPC_MOVE_RELATIVE 0x10
167
172#define BT_MCS_OPC_PREV_SEGMENT 0x20
177#define BT_MCS_OPC_NEXT_SEGMENT 0x21
182#define BT_MCS_OPC_FIRST_SEGMENT 0x22
187#define BT_MCS_OPC_LAST_SEGMENT 0x23
192#define BT_MCS_OPC_GOTO_SEGMENT 0x24
193
195#define BT_MCS_OPC_PREV_TRACK 0x30
197#define BT_MCS_OPC_NEXT_TRACK 0x31
199#define BT_MCS_OPC_FIRST_TRACK 0x32
201#define BT_MCS_OPC_LAST_TRACK 0x33
203#define BT_MCS_OPC_GOTO_TRACK 0x34
204
206#define BT_MCS_OPC_PREV_GROUP 0x40
208#define BT_MCS_OPC_NEXT_GROUP 0x41
210#define BT_MCS_OPC_FIRST_GROUP 0x42
212#define BT_MCS_OPC_LAST_GROUP 0x43
214#define BT_MCS_OPC_GOTO_GROUP 0x44
218#define BT_MCS_OPCODES_SUPPORTED_LEN 4
219
225#define BT_MCS_OPC_SUP_PLAY BIT(0)
227#define BT_MCS_OPC_SUP_PAUSE BIT(1)
229#define BT_MCS_OPC_SUP_FAST_REWIND BIT(2)
231#define BT_MCS_OPC_SUP_FAST_FORWARD BIT(3)
233#define BT_MCS_OPC_SUP_STOP BIT(4)
234
236#define BT_MCS_OPC_SUP_MOVE_RELATIVE BIT(5)
237
239#define BT_MCS_OPC_SUP_PREV_SEGMENT BIT(6)
241#define BT_MCS_OPC_SUP_NEXT_SEGMENT BIT(7)
243#define BT_MCS_OPC_SUP_FIRST_SEGMENT BIT(8)
245#define BT_MCS_OPC_SUP_LAST_SEGMENT BIT(9)
247#define BT_MCS_OPC_SUP_GOTO_SEGMENT BIT(10)
248
250#define BT_MCS_OPC_SUP_PREV_TRACK BIT(11)
252#define BT_MCS_OPC_SUP_NEXT_TRACK BIT(12)
254#define BT_MCS_OPC_SUP_FIRST_TRACK BIT(13)
256#define BT_MCS_OPC_SUP_LAST_TRACK BIT(14)
258#define BT_MCS_OPC_SUP_GOTO_TRACK BIT(15)
259
261#define BT_MCS_OPC_SUP_PREV_GROUP BIT(16)
263#define BT_MCS_OPC_SUP_NEXT_GROUP BIT(17)
265#define BT_MCS_OPC_SUP_FIRST_GROUP BIT(18)
267#define BT_MCS_OPC_SUP_LAST_GROUP BIT(19)
269#define BT_MCS_OPC_SUP_GOTO_GROUP BIT(20)
277#define BT_MCS_OPC_NTF_SUCCESS 0x01
279#define BT_MCS_OPC_NTF_NOT_SUPPORTED 0x02
285#define BT_MCS_OPC_NTF_PLAYER_INACTIVE 0x03
290#define BT_MCS_OPC_NTF_CANNOT_BE_COMPLETED 0x04
300#define BT_MCS_SEARCH_TYPE_TRACK_NAME 0x01
302#define BT_MCS_SEARCH_TYPE_ARTIST_NAME 0x02
304#define BT_MCS_SEARCH_TYPE_ALBUM_NAME 0x03
306#define BT_MCS_SEARCH_TYPE_GROUP_NAME 0x04
308#define BT_MCS_SEARCH_TYPE_EARLIEST_YEAR 0x05
310#define BT_MCS_SEARCH_TYPE_LATEST_YEAR 0x06
312#define BT_MCS_SEARCH_TYPE_GENRE 0x07
314#define BT_MCS_SEARCH_TYPE_ONLY_TRACKS 0x08
316#define BT_MCS_SEARCH_TYPE_ONLY_GROUPS 0x09
325#define SEARCH_LEN_MIN 2
326
328#define SEARCH_LEN_MAX 64
329
336#define SEARCH_SCI_LEN_MIN 1 /* An SCI length can be as little as one byte,
337 * for an SCI that has only the type field.
338 * (The SCI len is the length of type + param.)
339 */
340
342#define SEARCH_PARAM_MAX 62
343
351#define BT_MCS_SCP_NTF_SUCCESS 0x01
353#define BT_MCS_SCP_NTF_FAILURE 0x02
363#define BT_MCS_GROUP_OBJECT_TRACK_TYPE 0x00
365#define BT_MCS_GROUP_OBJECT_GROUP_TYPE 0x01
368#ifdef __cplusplus
369}
370#endif
371
376#endif /* ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_MCS_H_ */
Misc utilities.
Macro utilities.