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