• 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 // 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 Request with player_id = 0
320 std::vector<uint8_t> set_browsed_player_id_0_request = {0x70, 0x00, 0x02, 0x00,
321                                                         0x00};
322 
323 // AVRCP Set Browsed Player Response with num items = 4 and depth = 0
324 std::vector<uint8_t> set_browsed_player_response = {
325     0x70, 0x00, 0x0a, 0x04, 0x00, 0x00, 0x00,
326     0x00, 0x00, 0x04, 0x00, 0x6a, 0x00};
327 
328 // AVRCP Get Total Number of Items Request with Scope = Media Player List
329 std::vector<uint8_t> get_total_number_of_items_request_media_players = {
330     0x75, 0x00, 0x01, 0x00};
331 
332 // AVRCP Get Total Number of Items Request with Scope = VFS
333 std::vector<uint8_t> get_total_number_of_items_request_vfs = {0x75, 0x00, 0x01,
334                                                               0x01};
335 
336 // AVRCP Get Total Number of Items Request with Scope = Now Playing List
337 std::vector<uint8_t> get_total_number_of_items_request_now_playing = {
338     0x75, 0x00, 0x01, 0x03};
339 
340 // AVRCP Get Total number of Items Response with 5 items in folder
341 std::vector<uint8_t> get_total_number_of_items_response = {
342     0x75, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05};
343 
344 // AVRCP Play Item Request with scope = Now Playing and
345 // UID = 0x0000000000000003
346 std::vector<uint8_t> play_item_request = {
347     0x00, 0x48, 0x00, 0x00, 0x19, 0x58, 0x74, 0x00, 0x00, 0x0b, 0x03,
348     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00};
349 
350 // AVRCP Play Item Response
351 std::vector<uint8_t> play_item_response = {0x09, 0x48, 0x00, 0x00, 0x19, 0x58,
352                                            0x74, 0x00, 0x00, 0x01, 0x04};
353 
354 // AVRCP Set Absolute Volume Request with volume at 56% (0x48)
355 std::vector<uint8_t> set_absolute_volume_request = {
356     0x00, 0x48, 0x00, 0x00, 0x19, 0x58, 0x50, 0x00, 0x00, 0x01, 0x48};
357 
358 // AVRCP Set Absolute Volume Response with voume at 52% (0x43)
359 std::vector<uint8_t> set_absolute_volume_response = {
360     0x09, 0x48, 0x00, 0x00, 0x19, 0x58, 0x50, 0x00, 0x00, 0x01, 0x43};
361 
362 // Invalid Packets
363 // Short Vendor Packet
364 std::vector<uint8_t> short_vendor_packet = {0x01, 0x48, 0x00, 0x00, 0x19, 0x58, 0x10, 0x00, 0x00, 0x01};
365 
366 // Short Get Capabilities Request Packet
367 std::vector<uint8_t> short_get_capabilities_request = {0x01, 0x48, 0x00, 0x00, 0x19, 0x58, 0x10, 0x00, 0x00, 0x00};
368 
369 // Short Get Element Attributes Request Packet
370 std::vector<uint8_t> short_get_element_attributes_request = {0x01, 0x48, 0x00, 0x00, 0x19,
371                                                              0x58, 0x20, 0x00, 0x00, 0x00};
372 
373 // Short Play Item Request Packet
374 std::vector<uint8_t> short_play_item_request = {0x00, 0x48, 0x00, 0x00, 0x19, 0x58, 0x74, 0x00, 0x00, 0x00};
375 
376 // Short Set Addressed Player Request Packet
377 std::vector<uint8_t> short_set_addressed_player_request = {0x00, 0x48, 0x00, 0x00, 0x19, 0x58, 0x60, 0x00, 0x00, 0x00};
378 
379 // Short Browse Packet
380 std::vector<uint8_t> short_browse_packet = {0x71, 0x00, 0x0a};
381 
382 // Short Get Folder Items Request Packet
383 std::vector<uint8_t> short_get_folder_items_request = {0x71, 0x00, 0x00};
384 
385 // Short Get Total Number of Items Request Packet
386 std::vector<uint8_t> short_get_total_number_of_items_request = {0x75, 0x00, 0x00};
387 
388 // Short Change Path Request Packet
389 std::vector<uint8_t> short_change_path_request = {0x72, 0x00, 0x00};
390 
391 // Short Get Item Attributes Request Packet
392 std::vector<uint8_t> short_get_item_attributes_request = {0x73, 0x00, 0x00};
393 
394 }  // namespace
395