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 // AVRCP Get Element Attributes response with attribute values as follows
62 // Title: "Test Song"
63 // Artist: "Test Artist"
64 // Album: "Test Album"
65 // Track Number: "1"
66 // Number of Tracks: "2"
67 // Genre: "Test Genre"
68 // Duration: "1000"
69 std::vector<uint8_t> get_elements_attributes_response_full = {
70     0x0c, 0x48, 0x00, 0x00, 0x19, 0x58, 0x20, 0x00, 0x00, 0x67, 0x07, 0x00,
71     0x00, 0x00, 0x01, 0x00, 0x6a, 0x00, 0x09, 0x54, 0x65, 0x73, 0x74, 0x20,
72     0x53, 0x6f, 0x6e, 0x67, 0x00, 0x00, 0x00, 0x02, 0x00, 0x6a, 0x00, 0x0b,
73     0x54, 0x65, 0x73, 0x74, 0x20, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x00,
74     0x00, 0x00, 0x03, 0x00, 0x6a, 0x00, 0x0a, 0x54, 0x65, 0x73, 0x74, 0x20,
75     0x41, 0x6c, 0x62, 0x75, 0x6d, 0x00, 0x00, 0x00, 0x04, 0x00, 0x6a, 0x00,
76     0x01, 0x31, 0x00, 0x00, 0x00, 0x05, 0x00, 0x6a, 0x00, 0x01, 0x32, 0x00,
77     0x00, 0x00, 0x06, 0x00, 0x6a, 0x00, 0x0a, 0x54, 0x65, 0x73, 0x74, 0x20,
78     0x47, 0x65, 0x6e, 0x72, 0x65, 0x00, 0x00, 0x00, 0x07, 0x00, 0x6a, 0x00,
79     0x04, 0x31, 0x30, 0x30, 0x30};
80 
81 // AVRCP Get Play Status Request
82 std::vector<uint8_t> get_play_status_request = {0x01, 0x48, 0x00, 0x00, 0x19,
83                                                 0x58, 0x30, 0x00, 0x00, 0x00};
84 
85 // AVRCP Get Play Status Response
86 std::vector<uint8_t> get_play_status_response = {
87     0x0c, 0x48, 0x00, 0x00, 0x19, 0x58, 0x30, 0x00, 0x00, 0x09,
88     0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00};
89 
90 // AVRCP Pass Through Command Play Pushed Request
91 std::vector<uint8_t> pass_through_command_play_pushed = {0x00, 0x48, 0x7c, 0x44,
92                                                          0x00};
93 
94 // AVRCP Pass Through Command Play Pushed Response
95 std::vector<uint8_t> pass_through_command_play_released = {0x09, 0x48, 0x7c,
96                                                            0xc4, 0x00};
97 
98 // AVRCP Register Playback Status Notification
99 std::vector<uint8_t> register_play_status_notification = {
100     0x03, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00,
101     0x00, 0x05, 0x01, 0x00, 0x00, 0x00, 0x05};
102 
103 // AVRCP Register Volume Changed Notification
104 std::vector<uint8_t> register_volume_changed_notification = {
105     0x03, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00,
106     0x00, 0x05, 0x0d, 0x00, 0x00, 0x00, 0x00};
107 
108 // AVRCP Register Notification without any parameter
109 std::vector<uint8_t> register_notification_invalid = {0x03, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31,
110                                                       0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00};
111 
112 // AVRCP Interim Playback Status Notification
113 std::vector<uint8_t> interim_play_status_notification = {
114     0x0f, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00, 0x00, 0x02, 0x01, 0x00};
115 
116 // AVRCP Interim Track Changed Notification
117 std::vector<uint8_t> interim_track_changed_notification = {
118     0x0f, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00, 0x00, 0x09,
119     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
120 
121 // AVRCP Changed Playback Position Notification
122 std::vector<uint8_t> changed_play_pos_notification = {
123     0x0d, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00,
124     0x00, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00};
125 
126 // AVRCP Interim Now Playing Changed Notification
127 std::vector<uint8_t> interim_now_playing_notification = {
128     0x0f, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00, 0x00, 0x01, 0x09};
129 
130 // AVRCP Interim Available Players Changed Notification
131 std::vector<uint8_t> interim_available_players_notification = {
132     0x0f, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00, 0x00, 0x01, 0x0a};
133 
134 // AVRCP Interim Addressed Player Changed Notification with active
135 // player ID 1
136 std::vector<uint8_t> interim_addressed_player_notification = {
137     0x0f, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00,
138     0x00, 0x05, 0x0b, 0x00, 0x01, 0x00, 0x00};
139 
140 // AVRCP Interim UIDs Changed Notification
141 std::vector<uint8_t> interim_uids_notificaiton = {0x0f, 0x48, 0x00, 0x00, 0x19,
142                                                   0x58, 0x31, 0x00, 0x00, 0x03,
143                                                   0x0c, 0x00, 0x00};
144 
145 // AVRCP Interim Volume Changed Notification with volume at 55% (0x47)
146 std::vector<uint8_t> interim_volume_changed_notification = {
147     0x0f, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00, 0x00, 0x02, 0x0d, 0x47};
148 
149 // AVRCP Rejected Volume Changed Notification with volume at 0%
150 std::vector<uint8_t> rejected_volume_changed_notification = {
151     0x0a, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00, 0x00, 0x02, 0x0d, 0x00};
152 
153 // AVRCP Changed Volume Changed Notification with volume at 55% (0x47)
154 std::vector<uint8_t> changed_volume_changed_notification = {
155     0x0d, 0x48, 0x00, 0x00, 0x19, 0x58, 0x31, 0x00, 0x00, 0x02, 0x0d, 0x47};
156 
157 // AVRCP Reject List Player Application Settings Response
158 std::vector<uint8_t> reject_player_app_settings_response = {
159     0x0a, 0x48, 0x00, 0x00, 0x19, 0x58, 0x11, 0x00, 0x00, 0x01, 0x00};
160 
161 // AVRCP Browse General Reject packet for invalid PDU ID
162 std::vector<uint8_t> general_reject_invalid_command_packet = {0xa0, 0x00, 0x01,
163                                                               0x00};
164 
165 // AVRCP Browse Get Folder Items Request packet for media players with
166 // the following data:
167 //    scope = 0x00 (Media Player List)
168 //    start_item = 0x00
169 //    end_item = 0x03
170 //    attributes_requested: all
171 std::vector<uint8_t> get_folder_items_request = {0x71, 0x00, 0x0a, 0x00, 0x00,
172                                                  0x00, 0x00, 0x00, 0x00, 0x00,
173                                                  0x00, 0x03, 0x00};
174 
175 // AVRCP Browse Get Folder Items Request packet for media players with
176 // the following data:
177 //    scope = 0x01 (VFS)
178 //    start_item = 0x00
179 //    end_item = 0x09
180 //    attributes_requested: none
181 std::vector<uint8_t> get_folder_items_request_no_attrs = {
182     0x71, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x00,
183     0x00, 0x00, 0x00, 0x00, 0x09, 0xff};
184 
185 // AVRCP Browse Get Folder Items Request packet for media players with
186 // the following data:
187 //    scope = 0x01 (VFS)
188 //    start_item = 0x00
189 //    end_item = 0x09
190 //    attributes_requested: Title
191 std::vector<uint8_t> get_folder_items_request_title = {
192     0x71, 0x00, 0x0e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
193     0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0x00, 0x1};
194 
195 // AVRCP Browse Get Folder Items Request packet for vfs with
196 // the following data:
197 //    scope = 0x01 (VFS)
198 //    start_item = 0x00
199 //    end_item = 0x05
200 //    attributes_requested: TITLE
201 std::vector<uint8_t> get_folder_items_request_vfs = {
202     0x71, 0x00, 0x0e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
203     0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0x00, 0x01};
204 
205 // AVRCP Browse Get Folder Items Request packet for now playing with
206 // the following data:
207 //    scope = 0x03 (Now Playing)
208 //    start_item = 0x00
209 //    end_item = 0x05
210 //    attributes_requested: All Items
211 std::vector<uint8_t> get_folder_items_request_now_playing = {0x71, 0x00, 0x0a, 0x03, 0x00, 0x00, 0x00,
212                                                              0x00, 0x00, 0x00, 0x00, 0x05, 0x00};
213 
214 // AVRCP Browse Get Folder Items Response packet with range out of bounds error
215 std::vector<uint8_t> get_folder_items_error_response = {0x71, 0x00, 0x01, 0x0b};
216 
217 // AVRCP Browse Get Folder Items Response packet for media players
218 // Contains one media player with the following fields:
219 //    id = 0x0001
220 //    name = "com.google.android.music"
221 //    browsing_supported = true
222 std::vector<uint8_t> get_folder_items_media_player_response = {
223     0x71, 0x00, 0x3c, 0x04, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x34,
224     0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
225     0x00, 0x00, 0xb7, 0x01, 0x0c, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,
226     0x00, 0x00, 0x00, 0x6a, 0x00, 0x18, 0x63, 0x6f, 0x6d, 0x2e, 0x67,
227     0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x6e, 0x64, 0x72, 0x6f,
228     0x69, 0x64, 0x2e, 0x6d, 0x75, 0x73, 0x69, 0x63};
229 
230 // AVRCP Browse Get Folder Items Response packet with one folder
231 // with the following fields:
232 //    uid = 0x0000000000000001
233 //    type = 0x00 (Mixed);
234 //    name = "Test Folder"
235 //    is_playable = true
236 std::vector<uint8_t> get_folder_items_folder_response = {
237     0x71, 0x00, 0x21, 0x04, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x19, 0x00,
238     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x6a, 0x00,
239     0x0b, 0x54, 0x65, 0x73, 0x74, 0x20, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72};
240 
241 // AVRCP Browse Get Folder Items Response packet with one song
242 // with the following fields:
243 //    uid = 0x0000000000000002
244 //    name = "Test Title"
245 //    attribute[TITLE] = "Test Title"
246 std::vector<uint8_t> get_folder_items_song_response = {
247     0x71, 0x00, 0x32, 0x04, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x2a,
248     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x6a,
249     0x00, 0x0a, 0x54, 0x65, 0x73, 0x74, 0x20, 0x54, 0x69, 0x74, 0x6c,
250     0x65, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x6a, 0x00, 0x0a, 0x54,
251     0x65, 0x73, 0x74, 0x20, 0x54, 0x69, 0x74, 0x6c, 0x65};
252 
253 // AVRCP Browse Change Path Request down to folder with UID 0x0000000000000002
254 std::vector<uint8_t> change_path_request = {0x72, 0x00, 0x0b, 0x00, 0x00,
255                                             0x01, 0x00, 0x00, 0x00, 0x00,
256                                             0x00, 0x00, 0x00, 0x02};
257 
258 // AVRCP Browse Change Path Request up
259 std::vector<uint8_t> change_path_up_request = {0x72, 0x00, 0x0b, 0x00, 0x00,
260                                                0x00, 0xFF, 0xFF, 0xFF, 0xFF,
261                                                0xFF, 0xFF, 0xFF, 0xFF};
262 
263 // AVRCP Browse Change Path Response with two items in current folder
264 std::vector<uint8_t> change_path_response = {0x72, 0x00, 0x05, 0x04,
265                                              0x00, 0x00, 0x00, 0x02};
266 
267 // AVRCP Browse Change Path Response with an error of invalid direction
268 std::vector<uint8_t> change_path_error_response = {0x72, 0x00, 0x01, 0x07};
269 
270 // AVRCP Get Item Attributes request with all attributes requested
271 // with the following fields:
272 //    scope = 0x03 (Now Playing List)
273 //    uid_counter = 0x0000
274 //    uid = 0x0000000000000001
275 std::vector<uint8_t> get_item_attributes_request_all_attributes = {
276     0x73, 0x00, 0x28, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
277     0x01, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
278     0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,
279     0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 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 = 0x0001
285 //    uid = 0x0000000000000001
286 std::vector<uint8_t> get_item_attributes_request_all_attributes_invalid = {
287     0x73, 0x00, 0x28, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
288     0x01, 0x00, 0x01, 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 Response with the following attributes:
293 //    title = "Test Song"
294 //    artist = "Test Artist"
295 //    album = "Test Album"
296 std::vector<uint8_t> get_item_attributes_song_response = {
297     0x73, 0x00, 0x38, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x6a, 0x00,
298     0x09, 0x54, 0x65, 0x73, 0x74, 0x20, 0x53, 0x6f, 0x6e, 0x67, 0x00, 0x00,
299     0x00, 0x02, 0x00, 0x6a, 0x00, 0x0b, 0x54, 0x65, 0x73, 0x74, 0x20, 0x41,
300     0x72, 0x74, 0x69, 0x73, 0x74, 0x00, 0x00, 0x00, 0x03, 0x00, 0x6a, 0x00,
301     0x0a, 0x54, 0x65, 0x73, 0x74, 0x20, 0x41, 0x6c, 0x62, 0x75, 0x6d};
302 
303 // AVRCP Set Addressed Player Request with player_id = 0
304 std::vector<uint8_t> set_addressed_player_request = {
305     0x00, 0x48, 0x00, 0x00, 0x19, 0x58, 0x60, 0x00, 0x00, 0x02, 0x00, 0x00};
306 
307 // AVRCP Set Addressed Player Request with player_id = 1
308 std::vector<uint8_t> set_addressed_player_id_1_request = {
309     0x00, 0x48, 0x00, 0x00, 0x19, 0x58, 0x60, 0x00, 0x00, 0x02, 0x00, 0x01};
310 
311 // AVRCP Set Addressed Player Response with status success
312 std::vector<uint8_t> set_addressed_player_response = {
313     0x09, 0x48, 0x00, 0x00, 0x19, 0x58, 0x60, 0x00, 0x00, 0x01, 0x04};
314 
315 // AVRCP Set Browsed Player Request with player_id = 2
316 std::vector<uint8_t> set_browsed_player_request = {0x70, 0x00, 0x02, 0x00,
317                                                    0x02};
318 
319 // AVRCP Set Browsed Player Response with num items = 4 and depth = 0
320 std::vector<uint8_t> set_browsed_player_response = {
321     0x70, 0x00, 0x0a, 0x04, 0x00, 0x00, 0x00,
322     0x00, 0x00, 0x04, 0x00, 0x6a, 0x00};
323 
324 // AVRCP Get Total Number of Items Request with Scope = Media Player List
325 std::vector<uint8_t> get_total_number_of_items_request_media_players = {
326     0x75, 0x00, 0x01, 0x00};
327 
328 // AVRCP Get Total Number of Items Request with Scope = VFS
329 std::vector<uint8_t> get_total_number_of_items_request_vfs = {0x75, 0x00, 0x01,
330                                                               0x01};
331 
332 // AVRCP Get Total Number of Items Request with Scope = Now Playing List
333 std::vector<uint8_t> get_total_number_of_items_request_now_playing = {
334     0x75, 0x00, 0x01, 0x03};
335 
336 // AVRCP Get Total number of Items Response with 5 items in folder
337 std::vector<uint8_t> get_total_number_of_items_response = {
338     0x75, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05};
339 
340 // AVRCP Play Item Request with scope = Now Playing and
341 // UID = 0x0000000000000003
342 std::vector<uint8_t> play_item_request = {
343     0x00, 0x48, 0x00, 0x00, 0x19, 0x58, 0x74, 0x00, 0x00, 0x0b, 0x03,
344     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00};
345 
346 // AVRCP Play Item Response
347 std::vector<uint8_t> play_item_response = {0x09, 0x48, 0x00, 0x00, 0x19, 0x58,
348                                            0x74, 0x00, 0x00, 0x01, 0x04};
349 
350 // AVRCP Set Absolute Volume Request with volume at 56% (0x48)
351 std::vector<uint8_t> set_absolute_volume_request = {
352     0x00, 0x48, 0x00, 0x00, 0x19, 0x58, 0x50, 0x00, 0x00, 0x01, 0x48};
353 
354 // AVRCP Set Absolute Volume Response with voume at 52% (0x43)
355 std::vector<uint8_t> set_absolute_volume_response = {
356     0x09, 0x48, 0x00, 0x00, 0x19, 0x58, 0x50, 0x00, 0x00, 0x01, 0x43};
357 
358 // Invalid Packets
359 // Short Vendor Packet
360 std::vector<uint8_t> short_vendor_packet = {0x01, 0x48, 0x00, 0x00, 0x19, 0x58, 0x10, 0x00, 0x00, 0x01};
361 
362 // Short Get Capabilities Request Packet
363 std::vector<uint8_t> short_get_capabilities_request = {0x01, 0x48, 0x00, 0x00, 0x19, 0x58, 0x10, 0x00, 0x00, 0x00};
364 
365 // Short Get Element Attributes Request Packet
366 std::vector<uint8_t> short_get_element_attributes_request = {0x01, 0x48, 0x00, 0x00, 0x19,
367                                                              0x58, 0x20, 0x00, 0x00, 0x00};
368 
369 // Short Play Item Request Packet
370 std::vector<uint8_t> short_play_item_request = {0x00, 0x48, 0x00, 0x00, 0x19, 0x58, 0x74, 0x00, 0x00, 0x00};
371 
372 // Short Set Addressed Player Request Packet
373 std::vector<uint8_t> short_set_addressed_player_request = {0x00, 0x48, 0x00, 0x00, 0x19, 0x58, 0x60, 0x00, 0x00, 0x00};
374 
375 // Short Browse Packet
376 std::vector<uint8_t> short_browse_packet = {0x71, 0x00, 0x0a};
377 
378 // Short Get Folder Items Request Packet
379 std::vector<uint8_t> short_get_folder_items_request = {0x71, 0x00, 0x00};
380 
381 // Short Get Total Number of Items Request Packet
382 std::vector<uint8_t> short_get_total_number_of_items_request = {0x75, 0x00, 0x00};
383 
384 // Short Change Path Request Packet
385 std::vector<uint8_t> short_change_path_request = {0x72, 0x00, 0x00};
386 
387 // Short Get Item Attributes Request Packet
388 std::vector<uint8_t> short_get_item_attributes_request = {0x73, 0x00, 0x00};
389 
390 }  // namespace
391