• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2018 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #pragma once
18 
19 #include <vector>
20 
21 // AVRCP packets pulled from wireshark
22 namespace {
23 
24 // AVRCP Get Capabilities Request packet
25 std::vector<uint8_t> get_capabilities_request = {
26     0x01, 0x48, 0x00, 0x00, 0x19, 0x58, 0x10, 0x00, 0x00, 0x01, 0x03};
27 
28 // AVRCP Get Capabilities Request packet with Company ID
29 std::vector<uint8_t> get_capabilities_request_company_id = {
30     0x01, 0x48, 0x00, 0x00, 0x19, 0x58, 0x10, 0x00, 0x00, 0x01, 0x02};
31 
32 // AVRCP Get Capabilities Request packet with Unknown
33 std::vector<uint8_t> get_capabilities_request_unknown = {
34     0x01, 0x48, 0x00, 0x00, 0x19, 0x58, 0x10, 0x00, 0x00, 0x01, 0x7f};
35 
36 // AVRCP Get Capabilities Response to Company ID request
37 std::vector<uint8_t> get_capabilities_response_company_id = {
38     0x0c, 0x48, 0x00, 0x00, 0x19, 0x58, 0x10, 0x00, 0x00,
39     0x08, 0x02, 0x02, 0x00, 0x19, 0x58, 0x00, 0x23, 0x45};
40 
41 // AVRCP Get Capabilities Response to Events Supported request
42 std::vector<uint8_t> get_capabilities_response_events_supported = {
43     0x0c, 0x48, 0x00, 0x00, 0x19, 0x58, 0x10, 0x00,
44     0x00, 0x05, 0x03, 0x03, 0x01, 0x02, 0x05};
45 
46 // AVRCP Get Element Attributes request for current playing song and attribute
47 // Title
48 std::vector<uint8_t> get_element_attributes_request_partial = {
49     0x01, 0x48, 0x00, 0x00, 0x19, 0x58, 0x20, 0x00, 0x00, 0x0d, 0x00, 0x00,
50     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01};
51 
52 // AVRCP Get Element Attributes request for current playing song and attributes
53 // Title, Artist, Album, Media Number, Playing Time, Total Number of Media, and
54 // Genre
55 std::vector<uint8_t> get_element_attributes_request_full = {
56     0x01, 0x48, 0x00, 0x00, 0x19, 0x58, 0x20, 0x00, 0x00, 0x25, 0x00, 0x00,
57     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00,
58     0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00,
59     0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06};
60 
61 
62 // AVRCP Get Element Attributes request for current playing song and attributes
63 // Title, Artist, Album, Media Number, Playing Time, Total Number of Media,
64 // Genre, and Cover Art
65 std::vector<uint8_t> get_element_attributes_request_full_cover_art = {
66     0x01, 0x48, 0x00, 0x00, 0x19, 0x58, 0x20, 0x00, 0x00, 0x29, 0x00, 0x00,
67     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00,
68     0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00,
69     0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00,
70     0x00, 0x00, 0x08};
71 
72 // AVRCP Get Element Attributes response with attribute values as follows
73 // Title: "Test Song"
74 // Artist: "Test Artist"
75 // Album: "Test Album"
76 // Track Number: "1"
77 // Number of Tracks: "2"
78 // Genre: "Test Genre"
79 // Duration: "1000"
80 std::vector<uint8_t> get_elements_attributes_response_full = {
81     0x0c, 0x48, 0x00, 0x00, 0x19, 0x58, 0x20, 0x00, 0x00, 0x67, 0x07, 0x00,
82     0x00, 0x00, 0x01, 0x00, 0x6a, 0x00, 0x09, 0x54, 0x65, 0x73, 0x74, 0x20,
83     0x53, 0x6f, 0x6e, 0x67, 0x00, 0x00, 0x00, 0x02, 0x00, 0x6a, 0x00, 0x0b,
84     0x54, 0x65, 0x73, 0x74, 0x20, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x00,
85     0x00, 0x00, 0x03, 0x00, 0x6a, 0x00, 0x0a, 0x54, 0x65, 0x73, 0x74, 0x20,
86     0x41, 0x6c, 0x62, 0x75, 0x6d, 0x00, 0x00, 0x00, 0x04, 0x00, 0x6a, 0x00,
87     0x01, 0x31, 0x00, 0x00, 0x00, 0x05, 0x00, 0x6a, 0x00, 0x01, 0x32, 0x00,
88     0x00, 0x00, 0x06, 0x00, 0x6a, 0x00, 0x0a, 0x54, 0x65, 0x73, 0x74, 0x20,
89     0x47, 0x65, 0x6e, 0x72, 0x65, 0x00, 0x00, 0x00, 0x07, 0x00, 0x6a, 0x00,
90     0x04, 0x31, 0x30, 0x30, 0x30};
91 
92 // AVRCP Get Play Status Request
93 std::vector<uint8_t> get_play_status_request = {0x01, 0x48, 0x00, 0x00, 0x19,
94                                                 0x58, 0x30, 0x00, 0x00, 0x00};
95 
96 // AVRCP Get Play Status Response
97 std::vector<uint8_t> get_play_status_response = {
98     0x0c, 0x48, 0x00, 0x00, 0x19, 0x58, 0x30, 0x00, 0x00, 0x09,
99     0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00};
100 
101 // AVRCP Pass Through Command Play Pushed Request
102 std::vector<uint8_t> pass_through_command_play_pushed = {0x00, 0x48, 0x7c, 0x44,
103                                                          0x00};
104 
105 // AVRCP Pass Through Command Play Pushed Response
106 std::vector<uint8_t> pass_through_command_play_released = {0x09, 0x48, 0x7c,
107                                                            0xc4, 0x00};
108 
109 // AVRCP Register Playback Status Notification
110 std::vector<uint8_t> register_play_status_notification = {
111     0x03, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00,
112     0x00, 0x05, 0x01, 0x00, 0x00, 0x00, 0x05};
113 
114 // AVRCP Register Volume Changed Notification
115 std::vector<uint8_t> register_volume_changed_notification = {
116     0x03, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00,
117     0x00, 0x05, 0x0d, 0x00, 0x00, 0x00, 0x00};
118 
119 // AVRCP Register Notification without any parameter
120 std::vector<uint8_t> register_notification_invalid = {0x03, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31,
121                                                       0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00};
122 
123 // AVRCP Interim Playback Status Notification
124 std::vector<uint8_t> interim_play_status_notification = {
125     0x0f, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00, 0x00, 0x02, 0x01, 0x00};
126 
127 // AVRCP Interim Track Changed Notification
128 std::vector<uint8_t> interim_track_changed_notification = {
129     0x0f, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00, 0x00, 0x09,
130     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
131 
132 // AVRCP Changed Playback Position Notification
133 std::vector<uint8_t> changed_play_pos_notification = {
134     0x0d, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00,
135     0x00, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00};
136 
137 // AVRCP Interim Now Playing Changed Notification
138 std::vector<uint8_t> interim_now_playing_notification = {
139     0x0f, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00, 0x00, 0x01, 0x09};
140 
141 // AVRCP Interim Available Players Changed Notification
142 std::vector<uint8_t> interim_available_players_notification = {
143     0x0f, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00, 0x00, 0x01, 0x0a};
144 
145 // AVRCP Interim Addressed Player Changed Notification with active
146 // player ID 1
147 std::vector<uint8_t> interim_addressed_player_notification = {
148     0x0f, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00,
149     0x00, 0x05, 0x0b, 0x00, 0x01, 0x00, 0x00};
150 
151 // AVRCP Interim UIDs Changed Notification
152 std::vector<uint8_t> interim_uids_notificaiton = {0x0f, 0x48, 0x00, 0x00, 0x19,
153                                                   0x58, 0x31, 0x00, 0x00, 0x03,
154                                                   0x0c, 0x00, 0x00};
155 
156 // AVRCP Interim Volume Changed Notification with volume at 55% (0x47)
157 std::vector<uint8_t> interim_volume_changed_notification = {
158     0x0f, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00, 0x00, 0x02, 0x0d, 0x47};
159 
160 // AVRCP Rejected Volume Changed Notification with volume at 0%
161 std::vector<uint8_t> rejected_volume_changed_notification = {
162     0x0a, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00, 0x00, 0x02, 0x0d, 0x00};
163 
164 // AVRCP Changed Volume Changed Notification with volume at 55% (0x47)
165 std::vector<uint8_t> changed_volume_changed_notification = {
166     0x0d, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00, 0x00, 0x02, 0x0d, 0x47};
167 
168 // AVRCP Reject List Player Application Settings Response
169 std::vector<uint8_t> reject_player_app_settings_response = {
170     0x0a, 0x48, 0x00, 0x00, 0x19, 0x58, 0x11, 0x00, 0x00, 0x01, 0x00};
171 
172 // AVRCP Browse General Reject packet for invalid PDU ID
173 std::vector<uint8_t> general_reject_invalid_command_packet = {0xa0, 0x00, 0x01,
174                                                               0x00};
175 
176 // AVRCP Browse Get Folder Items Request packet for media players with
177 // the following data:
178 //    scope = 0x00 (Media Player List)
179 //    start_item = 0x00
180 //    end_item = 0x03
181 //    attributes_requested: all
182 std::vector<uint8_t> get_folder_items_request = {0x71, 0x00, 0x0a, 0x00, 0x00,
183                                                  0x00, 0x00, 0x00, 0x00, 0x00,
184                                                  0x00, 0x03, 0x00};
185 
186 // AVRCP Browse Get Folder Items Request packet for media players with
187 // the following data:
188 //    scope = 0x01 (VFS)
189 //    start_item = 0x00
190 //    end_item = 0x09
191 //    attributes_requested: none
192 std::vector<uint8_t> get_folder_items_request_no_attrs = {
193     0x71, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x00,
194     0x00, 0x00, 0x00, 0x00, 0x09, 0xff};
195 
196 // AVRCP Browse Get Folder Items Request packet for media players with
197 // the following data:
198 //    scope = 0x01 (VFS)
199 //    start_item = 0x00
200 //    end_item = 0x09
201 //    attributes_requested: Title
202 std::vector<uint8_t> get_folder_items_request_title = {
203     0x71, 0x00, 0x0e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
204     0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0x00, 0x1};
205 
206 // AVRCP Browse Get Folder Items Request packet for vfs with
207 // the following data:
208 //    scope = 0x01 (VFS)
209 //    start_item = 0x00
210 //    end_item = 0x05
211 //    attributes_requested: TITLE
212 std::vector<uint8_t> get_folder_items_request_vfs = {
213     0x71, 0x00, 0x0e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
214     0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0x00, 0x01};
215 
216 // AVRCP Browse Get Folder Items Request packet for now playing with
217 // the following data:
218 //    scope = 0x03 (Now Playing)
219 //    start_item = 0x00
220 //    end_item = 0x05
221 //    attributes_requested: All Items
222 std::vector<uint8_t> get_folder_items_request_now_playing = {0x71, 0x00, 0x0a, 0x03, 0x00, 0x00, 0x00,
223                                                              0x00, 0x00, 0x00, 0x00, 0x05, 0x00};
224 
225 // AVRCP Browse Get Folder Items Response packet with range out of bounds error
226 std::vector<uint8_t> get_folder_items_error_response = {0x71, 0x00, 0x01, 0x0b};
227 
228 // AVRCP Browse Get Folder Items Response packet for media players
229 // Contains one media player with the following fields:
230 //    id = 0x0001
231 //    name = "com.google.android.music"
232 //    browsing_supported = true
233 std::vector<uint8_t> get_folder_items_media_player_response = {
234     0x71, 0x00, 0x3c, 0x04, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x34,
235     0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
236     0x00, 0x00, 0xb7, 0x01, 0x0c, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,
237     0x00, 0x00, 0x00, 0x6a, 0x00, 0x18, 0x63, 0x6f, 0x6d, 0x2e, 0x67,
238     0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x64, 0x72, 0x6f,
239     0x69, 0x64, 0x2e, 0x6d, 0x75, 0x73, 0x69, 0x63};
240 
241 // AVRCP Browse Get Folder Items Response packet with one folder
242 // with the following fields:
243 //    uid = 0x0000000000000001
244 //    type = 0x00 (Mixed);
245 //    name = "Test Folder"
246 //    is_playable = true
247 std::vector<uint8_t> get_folder_items_folder_response = {
248     0x71, 0x00, 0x21, 0x04, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x19, 0x00,
249     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x6a, 0x00,
250     0x0b, 0x54, 0x65, 0x73, 0x74, 0x20, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72};
251 
252 // AVRCP Browse Get Folder Items Response packet with one song
253 // with the following fields:
254 //    uid = 0x0000000000000002
255 //    name = "Test Title"
256 //    attribute[TITLE] = "Test Title"
257 std::vector<uint8_t> get_folder_items_song_response = {
258     0x71, 0x00, 0x32, 0x04, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x2a,
259     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x6a,
260     0x00, 0x0a, 0x54, 0x65, 0x73, 0x74, 0x20, 0x54, 0x69, 0x74, 0x6c,
261     0x65, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x6a, 0x00, 0x0a, 0x54,
262     0x65, 0x73, 0x74, 0x20, 0x54, 0x69, 0x74, 0x6c, 0x65};
263 
264 // AVRCP Browse Change Path Request down to folder with UID 0x0000000000000002
265 std::vector<uint8_t> change_path_request = {0x72, 0x00, 0x0b, 0x00, 0x00,
266                                             0x01, 0x00, 0x00, 0x00, 0x00,
267                                             0x00, 0x00, 0x00, 0x02};
268 
269 // AVRCP Browse Change Path Request up
270 std::vector<uint8_t> change_path_up_request = {0x72, 0x00, 0x0b, 0x00, 0x00,
271                                                0x00, 0xFF, 0xFF, 0xFF, 0xFF,
272                                                0xFF, 0xFF, 0xFF, 0xFF};
273 
274 // AVRCP Browse Change Path Response with two items in current folder
275 std::vector<uint8_t> change_path_response = {0x72, 0x00, 0x05, 0x04,
276                                              0x00, 0x00, 0x00, 0x02};
277 
278 // AVRCP Browse Change Path Response with an error of invalid direction
279 std::vector<uint8_t> change_path_error_response = {0x72, 0x00, 0x01, 0x07};
280 
281 // AVRCP Get Item Attributes request with all attributes requested
282 // with the following fields:
283 //    scope = 0x03 (Now Playing List)
284 //    uid_counter = 0x0000
285 //    uid = 0x0000000000000001
286 std::vector<uint8_t> get_item_attributes_request_all_attributes = {
287     0x73, 0x00, 0x28, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
288     0x01, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
289     0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,
290     0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07};
291 
292 // AVRCP Get Item Attributes request with all attributes requested
293 // with the following fields:
294 //    scope = 0x03 (Now Playing List)
295 //    uid_counter = 0x0000
296 //    uid = 0x0000000000000001
297 //    attributes = Title, Artist, Album, Media Number, Playing Time,
298 //                 Total Number of Media, Genre, and Cover Art
299 std::vector<uint8_t> get_item_attributes_request_all_attributes_with_cover_art = {
300     0x73, 0x00, 0x2C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
301     0x01, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
302     0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,
303     0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00,
304     0x00, 0x00, 0x08};
305 
306 // AVRCP Get Item Attributes request with all attributes requested
307 // with the following fields:
308 //    scope = 0x03 (Now Playing List)
309 //    uid_counter = 0x0001
310 //    uid = 0x0000000000000001
311 std::vector<uint8_t> get_item_attributes_request_all_attributes_invalid = {
312     0x73, 0x00, 0x28, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
313     0x01, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
314     0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,
315     0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07};
316 
317 // AVRCP Get Item Attributes Response with the following attributes:
318 //    title = "Test Song"
319 //    artist = "Test Artist"
320 //    album = "Test Album"
321 std::vector<uint8_t> get_item_attributes_song_response = {
322     0x73, 0x00, 0x38, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x6a, 0x00,
323     0x09, 0x54, 0x65, 0x73, 0x74, 0x20, 0x53, 0x6f, 0x6e, 0x67, 0x00, 0x00,
324     0x00, 0x02, 0x00, 0x6a, 0x00, 0x0b, 0x54, 0x65, 0x73, 0x74, 0x20, 0x41,
325     0x72, 0x74, 0x69, 0x73, 0x74, 0x00, 0x00, 0x00, 0x03, 0x00, 0x6a, 0x00,
326     0x0a, 0x54, 0x65, 0x73, 0x74, 0x20, 0x41, 0x6c, 0x62, 0x75, 0x6d};
327 
328 // AVRCP Set Addressed Player Request with player_id = 0
329 std::vector<uint8_t> set_addressed_player_request = {
330     0x00, 0x48, 0x00, 0x00, 0x19, 0x58, 0x60, 0x00, 0x00, 0x02, 0x00, 0x00};
331 
332 // AVRCP Set Addressed Player Request with player_id = 1
333 std::vector<uint8_t> set_addressed_player_id_1_request = {
334     0x00, 0x48, 0x00, 0x00, 0x19, 0x58, 0x60, 0x00, 0x00, 0x02, 0x00, 0x01};
335 
336 // AVRCP Set Addressed Player Response with status success
337 std::vector<uint8_t> set_addressed_player_response = {
338     0x09, 0x48, 0x00, 0x00, 0x19, 0x58, 0x60, 0x00, 0x00, 0x01, 0x04};
339 
340 // AVRCP Set Browsed Player Request with player_id = 2
341 std::vector<uint8_t> set_browsed_player_request = {0x70, 0x00, 0x02, 0x00,
342                                                    0x02};
343 
344 // AVRCP Set Browsed Player Request with player_id = 0
345 std::vector<uint8_t> set_browsed_player_id_0_request = {0x70, 0x00, 0x02, 0x00,
346                                                         0x00};
347 
348 // AVRCP Set Browsed Player Response with num items = 4 and depth = 0
349 std::vector<uint8_t> set_browsed_player_response = {
350     0x70, 0x00, 0x0a, 0x04, 0x00, 0x00, 0x00,
351     0x00, 0x00, 0x04, 0x00, 0x6a, 0x00};
352 
353 // AVRCP Get Total Number of Items Request with Scope = Media Player List
354 std::vector<uint8_t> get_total_number_of_items_request_media_players = {
355     0x75, 0x00, 0x01, 0x00};
356 
357 // AVRCP Get Total Number of Items Request with Scope = VFS
358 std::vector<uint8_t> get_total_number_of_items_request_vfs = {0x75, 0x00, 0x01,
359                                                               0x01};
360 
361 // AVRCP Get Total Number of Items Request with Scope = Now Playing List
362 std::vector<uint8_t> get_total_number_of_items_request_now_playing = {
363     0x75, 0x00, 0x01, 0x03};
364 
365 // AVRCP Get Total number of Items Response with 5 items in folder
366 std::vector<uint8_t> get_total_number_of_items_response = {
367     0x75, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05};
368 
369 // AVRCP Play Item Request with scope = Now Playing and
370 // UID = 0x0000000000000003
371 std::vector<uint8_t> play_item_request = {
372     0x00, 0x48, 0x00, 0x00, 0x19, 0x58, 0x74, 0x00, 0x00, 0x0b, 0x03,
373     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00};
374 
375 // AVRCP Play Item Response
376 std::vector<uint8_t> play_item_response = {0x09, 0x48, 0x00, 0x00, 0x19, 0x58,
377                                            0x74, 0x00, 0x00, 0x01, 0x04};
378 
379 // AVRCP Set Absolute Volume Request with volume at 56% (0x48)
380 std::vector<uint8_t> set_absolute_volume_request = {
381     0x00, 0x48, 0x00, 0x00, 0x19, 0x58, 0x50, 0x00, 0x00, 0x01, 0x48};
382 
383 // AVRCP Set Absolute Volume Response with voume at 52% (0x43)
384 std::vector<uint8_t> set_absolute_volume_response = {
385     0x09, 0x48, 0x00, 0x00, 0x19, 0x58, 0x50, 0x00, 0x00, 0x01, 0x43};
386 
387 // Invalid Packets
388 // Short Vendor Packet
389 std::vector<uint8_t> short_vendor_packet = {0x01, 0x48, 0x00, 0x00, 0x19, 0x58, 0x10, 0x00, 0x00, 0x01};
390 
391 // Short Get Capabilities Request Packet
392 std::vector<uint8_t> short_get_capabilities_request = {0x01, 0x48, 0x00, 0x00, 0x19, 0x58, 0x10, 0x00, 0x00, 0x00};
393 
394 // Short Get Element Attributes Request Packet
395 std::vector<uint8_t> short_get_element_attributes_request = {0x01, 0x48, 0x00, 0x00, 0x19,
396                                                              0x58, 0x20, 0x00, 0x00, 0x00};
397 
398 // Short Play Item Request Packet
399 std::vector<uint8_t> short_play_item_request = {0x00, 0x48, 0x00, 0x00, 0x19, 0x58, 0x74, 0x00, 0x00, 0x00};
400 
401 // Short Set Addressed Player Request Packet
402 std::vector<uint8_t> short_set_addressed_player_request = {0x00, 0x48, 0x00, 0x00, 0x19, 0x58, 0x60, 0x00, 0x00, 0x00};
403 
404 // Short Browse Packet
405 std::vector<uint8_t> short_browse_packet = {0x71, 0x00, 0x0a};
406 
407 // Short Get Folder Items Request Packet
408 std::vector<uint8_t> short_get_folder_items_request = {0x71, 0x00, 0x00};
409 
410 // Short Get Total Number of Items Request Packet
411 std::vector<uint8_t> short_get_total_number_of_items_request = {0x75, 0x00, 0x00};
412 
413 // Short Change Path Request Packet
414 std::vector<uint8_t> short_change_path_request = {0x72, 0x00, 0x00};
415 
416 // Short Get Item Attributes Request Packet
417 std::vector<uint8_t> short_get_item_attributes_request = {0x73, 0x00, 0x00};
418 
419 }  // namespace
420