1 /**************************************************************************/ 2 /* */ 3 /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 /* */ 5 /* This software is licensed under the Microsoft Software License */ 6 /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 /* and in the root directory of this software. */ 9 /* */ 10 /**************************************************************************/ 11 12 13 /**************************************************************************/ 14 /**************************************************************************/ 15 /** */ 16 /** USBX Component */ 17 /** */ 18 /** Pictbridge Application */ 19 /** */ 20 /**************************************************************************/ 21 /**************************************************************************/ 22 23 24 /**************************************************************************/ 25 /* */ 26 /* COMPONENT DEFINITION RELEASE */ 27 /* */ 28 /* ux_pictbridge.h PORTABLE C */ 29 /* 6.1.12 */ 30 /* AUTHOR */ 31 /* */ 32 /* Chaoqiong Xiao, Microsoft Corporation */ 33 /* */ 34 /* DESCRIPTION */ 35 /* */ 36 /* This file contains all the header and extern functions used by the */ 37 /* USBX Pictbridge application */ 38 /* */ 39 /* RELEASE HISTORY */ 40 /* */ 41 /* DATE NAME DESCRIPTION */ 42 /* */ 43 /* 05-19-2020 Chaoqiong Xiao Initial Version 6.0 */ 44 /* 09-30-2020 Chaoqiong Xiao Modified comment(s), */ 45 /* used UX prefix to refer to */ 46 /* TX symbols instead of using */ 47 /* them directly, */ 48 /* resulting in version 6.1 */ 49 /* 08-02-2021 Wen Wang Modified comment(s), */ 50 /* added extern "C" keyword */ 51 /* for compatibility with C++, */ 52 /* resulting in version 6.1.8 */ 53 /* 07-29-2022 Chaoqiong Xiao Modified comment(s), */ 54 /* added magic number defines, */ 55 /* resulting in version 6.1.12 */ 56 /* */ 57 /**************************************************************************/ 58 59 #ifndef UX_PICTBRIDGE_H 60 #define UX_PICTBRIDGE_H 61 62 /* Determine if a C++ compiler is being used. If so, ensure that standard 63 C is used to process the API information. */ 64 65 #ifdef __cplusplus 66 67 /* Yes, C++ compiler is present. Use standard C. */ 68 extern "C" { 69 70 #endif 71 72 struct UX_PICTBRIDGE_STRUCT; 73 74 /* Define the behaviour of this Pictbridge device : DPSHOST or DPSCLIENT. 75 This should be done in the project management tool. */ 76 #ifndef UX_PICTBRIDGE_DPSHOST_NO 77 #define UX_PICTBRIDGE_DPSHOST 78 #endif 79 80 #ifndef UX_PICTBRIDGE_DPSCLIENT_NO 81 #define UX_PICTBRIDGE_DPSCLIENT 82 #endif 83 84 #ifdef UX_PICTBRIDGE_DPSHOST 85 #include "ux_host_class_pima.h" 86 #endif 87 88 #ifdef UX_PICTBRIDGE_DPSCLIENT 89 #include "ux_device_class_pima.h" 90 #endif 91 92 93 /* Define PICTBRIDGE main equivalences. */ 94 95 #define UX_PICTBRIDGE_MAX_FILE_NAME_SIZE 63 96 #define UX_PICTBRIDGE_MAX_TAG_SIZE 64 97 #define UX_PICTBRIDGE_MAX_ELEMENT_SIZE 128 98 #define UX_PICTBRIDGE_MAX_TAG_DEPTH 16 99 #define UX_PICTBRIDGE_MAX_VARIABLE_SIZE 128 100 #define UX_PICTBRIDGE_MAX_STRING_SIZE 128 101 #define UX_PICTBRIDGE_MAX_PIMA_OBJECT_BUFFER 1024 102 #define UX_PICTBRIDGE_MAX_EVENT_NUMBER 8 103 #define UX_PICTBRIDGE_MAX_DEVINFO_ARRAY_SIZE 16 104 #define UX_PICTBRIDGE_MAX_NUMBER_STORAGE_IDS 64 105 #define UX_PICTBRIDGE_MAX_NUMBER_OBJECT_HANDLES 64 106 #define UX_PICTBRIDGE_OBJECT_SCRIPT 0x3002 107 #define UX_PICTBRIDGE_THREAD_STACK_SIZE 2048 108 #define UX_PICTBRIDGE_THREAD_PRIORITY_CLASS 20 109 #define UX_PICTBRIDGE_LEADING_ZERO_ON 1 110 #define UX_PICTBRIDGE_LEADING_ZERO_OFF 2 111 #define UX_PICTBRIDGE_REQUEST 1 112 #define UX_PICTBRIDGE_RESPONSE 2 113 #define UX_PICTBRIDGE_ALL_CONTAINERS 0xFFFFFFFF 114 115 #define UX_PICTBRIDGE_XML_LEAF ((void*)(ALIGN_TYPE)0xFFFFFFFF) 116 #define UX_PICTBRIDGE_EVENT_TIMEOUT (30 * UX_PERIODIC_RATE) 117 118 /* Define PICTBRIDGE OBJECT HANDLES. */ 119 120 #define UX_PICTBRIDGE_OBJECT_HANDLE_HOST_REQUEST 1 121 #define UX_PICTBRIDGE_OBJECT_HANDLE_HOST_RESPONSE 1 122 #define UX_PICTBRIDGE_OBJECT_HANDLE_CLIENT_REQUEST 2 123 #define UX_PICTBRIDGE_OBJECT_HANDLE_PRINT 3 124 125 /* Define PICTBRIDGE HOST\CLIENT state machine flags. */ 126 127 #define UX_PICTBRIDGE_STATE_MACHINE_IDLE 0x00000001 128 #define UX_PICTBRIDGE_STATE_MACHINE_CLIENT_REQUEST_PENDING 0x00000002 129 #define UX_PICTBRIDGE_STATE_MACHINE_CLIENT_REQUEST 0x00000004 130 #define UX_PICTBRIDGE_STATE_MACHINE_HOST_REQUEST_PENDING 0x00000008 131 #define UX_PICTBRIDGE_STATE_MACHINE_HOST_REQUEST 0x00000010 132 133 /* Define PICTBRIDGE event flags. */ 134 135 #define UX_PICTBRIDGE_EVENT_FLAG_CONFIGURE_PRINT_SERVICE 0x00000001 136 #define UX_PICTBRIDGE_EVENT_FLAG_CAPABILITY 0x00000002 137 #define UX_PICTBRIDGE_EVENT_FLAG_JOB_STATUS 0x00000004 138 #define UX_PICTBRIDGE_EVENT_FLAG_DEVICE_STATUS 0x00000008 139 #define UX_PICTBRIDGE_EVENT_FLAG_START_JOB 0x00000010 140 #define UX_PICTBRIDGE_EVENT_FLAG_ABORT_JOB 0x00000020 141 #define UX_PICTBRIDGE_EVENT_FLAG_CONTINUE_JOB 0x00000040 142 #define UX_PICTBRIDGE_EVENT_FLAG_NOTIFY_JOB_STATUS 0x00000080 143 #define UX_PICTBRIDGE_EVENT_FLAG_NOTIFY_DEVICE_STATUS 0x00000100 144 145 #define UX_PICTBRIDGE_EVENT_FLAG_APPLICATION_1 0x00100000 146 #define UX_PICTBRIDGE_EVENT_FLAG_APPLICATION_2 0x00200000 147 #define UX_PICTBRIDGE_EVENT_FLAG_APPLICATION_3 0x00400000 148 #define UX_PICTBRIDGE_EVENT_FLAG_APPLICATION_4 0x00800000 149 150 #define UX_PICTBRIDGE_EVENT_FLAG_DISCOVERY 0x00010000 151 #define UX_PICTBRIDGE_EVENT_FLAG_ERROR 0x80000000 152 #define UX_PICTBRIDGE_EVENT_FLAG_STATE_MACHINE_READY 0x40000000 153 154 /* Define PICTBRIDGE QUALITY API equivalences. */ 155 156 #define UX_PICTBRIDGE_API_QUALITIES 0x00000001 157 #define UX_PICTBRIDGE_API_PAPER_SIZES 0x00000002 158 #define UX_PICTBRIDGE_API_PAPER_TYPES 0x00000004 159 #define UX_PICTBRIDGE_API_PAPER_TYPES_SIZE 0x00000008 160 #define UX_PICTBRIDGE_API_FILE_TYPES 0x00000010 161 #define UX_PICTBRIDGE_API_DATE_PRINTS 0x00000020 162 #define UX_PICTBRIDGE_API_FILE_NAME_PRINTS 0x00000040 163 #define UX_PICTBRIDGE_API_IMAGE_OPTIMIZES 0x00000080 164 #define UX_PICTBRIDGE_API_LAYOUTS 0x00000100 165 #define UX_PICTBRIDGE_API_LAYOUTS_SIZE 0x00000200 166 #define UX_PICTBRIDGE_API_FIXED_SIZES 0x00000400 167 #define UX_PICTBRIDGE_API_CROPPINGS 0x00000800 168 #define UX_PICTBRIDGE_API_CHAR_REPERTOIRES 0x00001000 169 170 /* Define PICTBRIDGE tag characters. */ 171 172 #define UX_PICTBRIDGE_TAG_CHAR_SPACE 0x20 173 #define UX_PICTBRIDGE_TAG_CHAR_START_BRACKET 0x3C 174 #define UX_PICTBRIDGE_TAG_CHAR_END_BRACKET 0x3E 175 #define UX_PICTBRIDGE_TAG_CHAR_EQUAL 0x3D 176 #define UX_PICTBRIDGE_TAG_CHAR_QUOTE 0x22 177 #define UX_PICTBRIDGE_TAG_CHAR_CR 0x0d 178 #define UX_PICTBRIDGE_TAG_CHAR_LF 0x0a 179 #define UX_PICTBRIDGE_TAG_CHAR_SLASH 0x2f 180 #define UX_PICTBRIDGE_TAG_CHAR_QUESTION_MARK 0x3f 181 182 /* Define PICTBRIDGE tag flags. */ 183 184 #define UX_PICTBRIDGE_TAG_FLAG_BEGIN 0x00000001 185 #define UX_PICTBRIDGE_TAG_FLAG_END 0x00000002 186 #define UX_PICTBRIDGE_TAG_FLAG_TRAILING_SPACE 0x00000004 187 #define UX_PICTBRIDGE_TAG_FLAG_CLOSING 0x00000008 188 #define UX_PICTBRIDGE_TAG_FLAG_SELF_CLOSING 0x00000010 189 #define UX_PICTBRIDGE_TAG_FLAG_CHAR_BEGIN 0x00000020 190 #define UX_PICTBRIDGE_TAG_FLAG_QUOTE 0x00000040 191 #define UX_PICTBRIDGE_TAG_FLAG_COMMENT 0x00000080 192 #define UX_PICTBRIDGE_TAG_FLAG_VARIABLE_HEXA 0x00000100 193 #define UX_PICTBRIDGE_TAG_FLAG_VARIABLE_DECIMAL 0x00000200 194 #define UX_PICTBRIDGE_TAG_FLAG_VARIABLE_MAJOR_MINOR 0x00000400 195 #define UX_PICTBRIDGE_TAG_FLAG_VARIABLE_STRING 0x00000800 196 #define UX_PICTBRIDGE_TAG_FLAG_VARIABLE_ARRAY_HEXA 0x00001000 197 #define UX_PICTBRIDGE_TAG_FLAG_VARIABLE_ARRAY_DECIMAL 0x00002000 198 #define UX_PICTBRIDGE_TAG_FLAG_VARIABLE_ARRAY_MAJOR_MINOR 0x00004000 199 #define UX_PICTBRIDGE_TAG_FLAG_VARIABLE_ARRAY_STRING 0x00008000 200 #define UX_PICTBRIDGE_TAG_FLAG_FORCE_LF 0x00010000 201 #define UX_PICTBRIDGE_TAG_FLAG_IN_TAG 0x00020000 202 #define UX_PICTBRIDGE_TAG_FLAG_IN_VARIABLE 0x00040000 203 #define UX_PICTBRIDGE_TAG_FLAG_EXPECTING_STRING 0x00080000 204 #define UX_PICTBRIDGE_TAG_FLAG_IN_STRING 0x00100000 205 #define UX_PICTBRIDGE_TAG_FLAG_VARIABLE_DECIMAL_3DIGITS 0x00200000 206 #define UX_PICTBRIDGE_TAG_FLAG_FORCE_SLASH_AT_END 0x00400000 207 208 #define UX_PICTBRIDGE_TAG_FLAG_VARIABLE (UX_PICTBRIDGE_TAG_FLAG_VARIABLE_HEXA | \ 209 UX_PICTBRIDGE_TAG_FLAG_VARIABLE_DECIMAL | \ 210 UX_PICTBRIDGE_TAG_FLAG_VARIABLE_MAJOR_MINOR | \ 211 UX_PICTBRIDGE_TAG_FLAG_VARIABLE_STRING | \ 212 UX_PICTBRIDGE_TAG_FLAG_VARIABLE_DECIMAL_3DIGITS) 213 214 #define UX_PICTBRIDGE_TAG_FLAG_VARIABLE_ARRAY (UX_PICTBRIDGE_TAG_FLAG_VARIABLE_ARRAY_HEXA | \ 215 UX_PICTBRIDGE_TAG_FLAG_VARIABLE_ARRAY_DECIMAL | \ 216 UX_PICTBRIDGE_TAG_FLAG_VARIABLE_ARRAY_MAJOR_MINOR | \ 217 UX_PICTBRIDGE_TAG_FLAG_VARIABLE_ARRAY_STRING) 218 219 /* Define PICTBRIDGE error codes. */ 220 221 #define UX_PICTBRIDGE_ERROR_UNDEFINED 0x00002000 222 #define UX_PICTBRIDGE_ERROR_GENERAL_ERROR 0x00002002 223 #define UX_PICTBRIDGE_ERROR_SESSION_NOT_OPEN 0x00002003 224 #define UX_PICTBRIDGE_ERROR_INVALID_TRANSACTION_ID 0x00002004 225 #define UX_PICTBRIDGE_ERROR_OPERATION_NOT_SUPPORTED 0x00002005 226 #define UX_PICTBRIDGE_ERROR_PARAMETER_NOT_SUPPORTED 0x00002006 227 #define UX_PICTBRIDGE_ERROR_INCOMPLETE_TRANSFER 0x00002007 228 #define UX_PICTBRIDGE_ERROR_INVALID_STORAGE_ID 0x00002008 229 #define UX_PICTBRIDGE_ERROR_INVALID_OBJECT_HANDLE 0x00002009 230 #define UX_PICTBRIDGE_ERROR_DEVICE_PROP_NOT_SUPPORTED 0x0000200A 231 #define UX_PICTBRIDGE_ERROR_INVALID_OBJECT_FORMAT_CODE 0x0000200B 232 #define UX_PICTBRIDGE_ERROR_STORE_FULL 0x0000200C 233 #define UX_PICTBRIDGE_ERROR_OBJECT_WRITE_PROTECTED 0x0000200D 234 #define UX_PICTBRIDGE_ERROR_STORE_READ_ONLY 0x0000200E 235 #define UX_PICTBRIDGE_ERROR_ACCESS_DENIED 0x0000200F 236 #define UX_PICTBRIDGE_ERROR_NO_THUMBNAIL_PRESENT 0x00002010 237 #define UX_PICTBRIDGE_ERROR_SELF_TEST_FAILED 0x00002011 238 #define UX_PICTBRIDGE_ERROR_PARTIAL_DELETION 0x00002012 239 #define UX_PICTBRIDGE_ERROR_STORE_NOT_AVAILABLE 0x00002013 240 #define UX_PICTBRIDGE_ERROR_FORMAT_UNSUPPORTED 0x00002014 241 #define UX_PICTBRIDGE_ERROR_NO_VALID_OBJECT_INFO 0x00002015 242 #define UX_PICTBRIDGE_ERROR_INVALID_CODE_FORMAT 0x00002016 243 #define UX_PICTBRIDGE_ERROR_UNKNOWN_VENDOR_CODE 0x00002017 244 #define UX_PICTBRIDGE_ERROR_CAPTURE_ALREADY_TERMINATED 0x00002018 245 #define UX_PICTBRIDGE_ERROR_DEVICE_BUSY 0x00002019 246 #define UX_PICTBRIDGE_ERROR_INVALID_PARENT_OBJECT 0x0000201A 247 #define UX_PICTBRIDGE_ERROR_INVALID_DEVICE_PROP_FORMAT 0x0000201B 248 #define UX_PICTBRIDGE_ERROR_INVALID_DEVICE_PROP_VALUE 0x0000201C 249 #define UX_PICTBRIDGE_ERROR_INVALID_PARAMETER 0x0000201D 250 #define UX_PICTBRIDGE_ERROR_SESSION_ALREADY_OPENED 0x0000201E 251 #define UX_PICTBRIDGE_ERROR_TRANSACTION_CANCELED 0x0000201F 252 #define UX_PICTBRIDGE_ERROR_DESTINATION_UNSUPPORTED 0x00002020 253 #define UX_PICTBRIDGE_ERROR_OBJECT_ALREADY_OPENED 0x00002021 254 #define UX_PICTBRIDGE_ERROR_OBJECT_ALREADY_CLOSED 0x00002022 255 #define UX_PICTBRIDGE_ERROR_OBJECT_NOT_OPENED 0x00002023 256 #define UX_PICTBRIDGE_ERROR_NO_DISCOVERY_SCRIPT 0x00002024 257 #define UX_PICTBRIDGE_ERROR_SCRIPT_BUFFER_OVERFLOW 0x00002025 258 #define UX_PICTBRIDGE_ERROR_SCRIPT_SYNTAX_ERROR 0x00002026 259 #define UX_PICTBRIDGE_ERROR_PARAMETER_UNKNOWN 0x00002027 260 #define UX_PICTBRIDGE_ERROR_PARAMETER_MISSING 0x00002028 261 #define UX_PICTBRIDGE_ERROR_EMPTY_LINE 0x00002029 262 263 /* Define Pictbridge Event Codes. */ 264 265 #define UX_PICTBRIDGE_EC_UNDEFINED 0x00004000 266 #define UX_PICTBRIDGE_EC_CANCEL_TRANSACTION 0x00004001 267 #define UX_PICTBRIDGE_EC_OBJECT_ADDED 0x00004002 268 #define UX_PICTBRIDGE_EC_OBJECT_REMOVED 0x00004003 269 #define UX_PICTBRIDGE_EC_STORE_ADDED 0x00004004 270 #define UX_PICTBRIDGE_EC_STORE_REMOVED 0x00004005 271 #define UX_PICTBRIDGE_EC_DEVICE_PROP_CHANGED 0x00004006 272 #define UX_PICTBRIDGE_EC_OBJECT_INFO_CHANGED 0x00004007 273 #define UX_PICTBRIDGE_EC_DEVICE_INFO_CHANGED 0x00004008 274 #define UX_PICTBRIDGE_EC_REQUEST_OBJECT_TRANSFER 0x00004009 275 #define UX_PICTBRIDGE_EC_STORE_FULL 0x0000400A 276 #define UX_PICTBRIDGE_EC_DEVICE_RESET 0x0000400B 277 #define UX_PICTBRIDGE_EC_STORAGE_INFO_CHANGED 0x0000400C 278 #define UX_PICTBRIDGE_EC_CAPTURE_COMPLETE 0x0000400D 279 #define UX_PICTBRIDGE_EC_UNREPORTED_STATUS 0x0000400E 280 281 /* Define Pictbridge Internal Event Codes. */ 282 283 #define UX_PICTBRIDGE_EC_START_JOB 0x00004100 284 285 /* Define Pictbridge state machine. */ 286 #define UX_PICTBRIDGE_DPSCLIENT_DISCOVERY_PENDING 0x00000000 287 #define UX_PICTBRIDGE_DPSCLIENT_DISCOVERY_COMPLETE 0x00000001 288 289 290 /* Define Pictbridge XML Object input\output direction flags. */ 291 #define UX_PICTBRIDGE_OBJECT_DIRECTION_INPUT 0x00000001 292 #define UX_PICTBRIDGE_OBJECT_DIRECTION_OUTPUT 0x00000002 293 294 /* Define Pictbridge output request codes. */ 295 296 #define UX_PICTBRIDGE_OR_CONFIGURE_PRINT_SERVICE 0x00000001 297 #define UX_PICTBRIDGE_OR_GET_CAPABILITY 0x00000002 298 #define UX_PICTBRIDGE_OR_GET_JOB_STATUS 0x00000003 299 #define UX_PICTBRIDGE_OR_GET_DEVICE_STATUS 0x00000004 300 #define UX_PICTBRIDGE_OR_START_JOB 0x00000005 301 #define UX_PICTBRIDGE_OR_ABORT_JOB 0x00000006 302 #define UX_PICTBRIDGE_OR_CONTINUE_JOB 0x00000007 303 #define UX_PICTBRIDGE_OR_NOTIFY_JOB_STATUS 0x00000008 304 #define UX_PICTBRIDGE_OR_NOTIFY_DEVICE_STATUS 0x00000009 305 306 /* Define Pictbridge input request codes. */ 307 308 #define UX_PICTBRIDGE_IR_CONFIGURE_PRINT_SERVICE 0x00000001 309 #define UX_PICTBRIDGE_IR_GET_CAPABILITY 0x00000002 310 #define UX_PICTBRIDGE_IR_GET_JOB_STATUS 0x00000003 311 #define UX_PICTBRIDGE_IR_GET_DEVICE_STATUS 0x00000004 312 #define UX_PICTBRIDGE_IR_START_JOB 0x00000005 313 #define UX_PICTBRIDGE_IR_ABORT_JOB 0x00000006 314 #define UX_PICTBRIDGE_IR_CONTINUE_JOB 0x00000007 315 #define UX_PICTBRIDGE_IR_NOTIFY_JOB_STATUS 0x00000008 316 #define UX_PICTBRIDGE_IR_NOTIFY_DEVICE_STATUS 0x00000009 317 318 /* Define Pictbridge input request subfunction flags. */ 319 320 #define UX_PICTBRIDGE_IR_CPS_DPS_VERSIONS 0x00000001 321 #define UX_PICTBRIDGE_IR_CPS_VENDOR_NAME 0x00000002 322 #define UX_PICTBRIDGE_IR_CPS_VENDOR_SPECIFIC_VERSION 0x00000004 323 #define UX_PICTBRIDGE_IR_CPS_PRODUCT_NAME 0x00000008 324 #define UX_PICTBRIDGE_IR_CPS_SERIAL_NO 0x00000010 325 326 #define UX_PICTBRIDGE_IR_GC_QUALITIES 0x00000001 327 #define UX_PICTBRIDGE_IR_GC_PAPER_SIZES 0x00000002 328 #define UX_PICTBRIDGE_IR_GC_PAPER_TYPES 0x00000004 329 #define UX_PICTBRIDGE_IR_GC_PAPER_TYPES_SIZE 0x00000008 330 #define UX_PICTBRIDGE_IR_GC_FILE_TYPES 0x00000010 331 #define UX_PICTBRIDGE_IR_GC_DATE_PRINTS 0x00000020 332 #define UX_PICTBRIDGE_IR_GC_FILE_NAME_PRINTS 0x00000040 333 #define UX_PICTBRIDGE_IR_GC_IMAGE_OPTIMIZES 0x00000080 334 #define UX_PICTBRIDGE_IR_GC_LAYOUTS 0x00000100 335 #define UX_PICTBRIDGE_IR_GC_LAYOUTS_SIZE 0x00000200 336 #define UX_PICTBRIDGE_IR_GC_FIXED_SIZES 0x00000400 337 #define UX_PICTBRIDGE_IR_GC_CROPPINGS 0x00000800 338 #define UX_PICTBRIDGE_IR_GC_CHAR_REPERTOIRES 0x00001000 339 340 #define UX_PICTBRIDGE_IR_SJJC_QUALITY 0x00000001 341 #define UX_PICTBRIDGE_IR_SJJC_PAPER_TYPE 0x00000002 342 #define UX_PICTBRIDGE_IR_SJJC_PAPER_SIZE 0x00000004 343 #define UX_PICTBRIDGE_IR_SJJC_FILE_TYPE 0x00000008 344 #define UX_PICTBRIDGE_IR_SJJC_DATE_PRINT 0x00000010 345 #define UX_PICTBRIDGE_IR_SJJC_FILE_NAME_PRINT 0x00000020 346 #define UX_PICTBRIDGE_IR_SJJC_IMAGE_OPTIMIZE 0x00000040 347 #define UX_PICTBRIDGE_IR_SJJC_LAYOUT 0x00000080 348 #define UX_PICTBRIDGE_IR_SJJC_FIXED_SIZE 0x00000100 349 #define UX_PICTBRIDGE_IR_SJJC_CROPPINGS 0x00000200 350 351 #define UX_PICTBRIDGE_IR_SJPI_CROPPING_AREA 0x00000400 352 #define UX_PICTBRIDGE_IR_SJPI_FILE_ID 0x00000800 353 #define UX_PICTBRIDGE_IR_SJPI_FILE_NAME 0x00001000 354 #define UX_PICTBRIDGE_IR_SJPI_DATE 0x00002000 355 #define UX_PICTBRIDGE_IR_SJPI_COPIES 0x00004000 356 #define UX_PICTBRIDGE_IR_SJPI_PRT_PID 0x00008000 357 #define UX_PICTBRIDGE_IR_SJPI_FILE_PATH 0x00010000 358 #define UX_PICTBRIDGE_IR_SJPI_COPY_ID 0x00020000 359 360 #define UX_PICTBRIDGE_IR_NJS_PRT_PID 0x00000001 361 #define UX_PICTBRIDGE_IR_NJS_FILE_PATH 0x00000002 362 #define UX_PICTBRIDGE_IR_NJS_COPY_ID 0x00000004 363 #define UX_PICTBRIDGE_IR_NJS_PROGRESS 0x00000008 364 #define UX_PICTBRIDGE_IR_NJS_IMAGES_PRINTED 0x00000010 365 366 367 /* Define parameter format masks. */ 368 #define UX_PICTBRIDGE_PARAMETER_MAJOR_CODE_MASK 0xFFFF0000 369 #define UX_PICTBRIDGE_PARAMETER_MINOR_CODE_MASK 0x0000FFFF 370 #define UX_PICTBRIDGE_ERROR_REASON_MINOR_CODE_MASK 0x0000FF00 371 #define UX_PICTBRIDGE_ERROR_REASON_DETAIL_CODE_MASK 0x000000FF 372 373 /* Define Pictbridge Qualities Codes. */ 374 375 #define UX_PICTBRIDGE_QUALITIES_DEFAULT 0x50000000 376 #define UX_PICTBRIDGE_QUALITIES_NORMAL 0x50010000 377 #define UX_PICTBRIDGE_QUALITIES_DRAFT 0x50020000 378 #define UX_PICTBRIDGE_QUALITIES_FINE 0x50030000 379 380 /* Define Pictbridge PaperSizes Codes. */ 381 382 #define UX_PICTBRIDGE_PAPER_SIZES_DEFAULT 0x51000000 383 #define UX_PICTBRIDGE_PAPER_SIZES_L 0x51010000 384 #define UX_PICTBRIDGE_PAPER_SIZES_2L 0x51020000 385 #define UX_PICTBRIDGE_PAPER_SIZES_HAGAKI_POSTCARD 0x51030000 386 #define UX_PICTBRIDGE_PAPER_SIZES_CARD_SIZE 0x51040000 387 #define UX_PICTBRIDGE_PAPER_SIZES_100X150 0x51050000 388 #define UX_PICTBRIDGE_PAPER_SIZES_4IX6I 0x51060000 389 #define UX_PICTBRIDGE_PAPER_SIZES_8IX10I 0x51070000 390 #define UX_PICTBRIDGE_PAPER_SIZES_LETTER 0x51080000 391 #define UX_PICTBRIDGE_PAPER_SIZES_11IX17I 0x510A0000 392 393 /* Define Pictbridge PaperTypes Codes. */ 394 395 #define UX_PICTBRIDGE_PAPER_TYPES_DEFAULT 0x52000000 396 #define UX_PICTBRIDGE_PAPER_TYPES_PLAIN 0x52010000 397 #define UX_PICTBRIDGE_PAPER_TYPES_PHOTO 0x52020000 398 #define UX_PICTBRIDGE_PAPER_TYPES_FAST_PHOTO 0x52030000 399 400 /* Define Pictbridge FileTypes Codes. */ 401 402 #define UX_PICTBRIDGE_FILE_TYPES_DEFAULT 0x53000000 403 #define UX_PICTBRIDGE_FILE_TYPES_EXIF_JPEG 0x53010000 404 #define UX_PICTBRIDGE_FILE_TYPES_OTHER_EXIF 0x53020000 405 #define UX_PICTBRIDGE_FILE_TYPES_JPEG 0x53030000 406 #define UX_PICTBRIDGE_FILE_TYPES_TIFF_EP 0x53040000 407 #define UX_PICTBRIDGE_FILE_TYPES_FLASHPIX 0x53050000 408 #define UX_PICTBRIDGE_FILE_TYPES_BMP 0x53060000 409 #define UX_PICTBRIDGE_FILE_TYPES_CIFF 0x53070000 410 #define UX_PICTBRIDGE_FILE_TYPES_GIF 0x53080000 411 #define UX_PICTBRIDGE_FILE_TYPES_JFIF 0x53090000 412 #define UX_PICTBRIDGE_FILE_TYPES_PCD 0x530A0000 413 #define UX_PICTBRIDGE_FILE_TYPES_PICT 0x530B0000 414 #define UX_PICTBRIDGE_FILE_TYPES_PNG 0x530C0000 415 #define UX_PICTBRIDGE_FILE_TYPES_TIFF 0x530D0000 416 #define UX_PICTBRIDGE_FILE_TYPES_TIFF_IT 0x530E0000 417 #define UX_PICTBRIDGE_FILE_TYPES_JP2 0x530F0000 418 #define UX_PICTBRIDGE_FILE_TYPES_JPX 0x53110000 419 #define UX_PICTBRIDGE_FILE_TYPES_UNDEFINED 0x53120000 420 #define UX_PICTBRIDGE_FILE_TYPES_ASSOCIATION 0x53130000 421 #define UX_PICTBRIDGE_FILE_TYPES_SCRIPT 0x53140000 422 #define UX_PICTBRIDGE_FILE_TYPES_EXECUTABLE 0x53150000 423 #define UX_PICTBRIDGE_FILE_TYPES_TEXT 0x53160000 424 #define UX_PICTBRIDGE_FILE_TYPES_HTML 0x53170000 425 #define UX_PICTBRIDGE_FILE_TYPES_DPOF 0x53180000 426 #define UX_PICTBRIDGE_FILE_TYPES_AIFF 0x53190000 427 #define UX_PICTBRIDGE_FILE_TYPES_WAV 0x531A0000 428 #define UX_PICTBRIDGE_FILE_TYPES_MP3 0x531B0000 429 #define UX_PICTBRIDGE_FILE_TYPES_AVI 0x531C0000 430 #define UX_PICTBRIDGE_FILE_TYPES_MPEG 0x531D0000 431 #define UX_PICTBRIDGE_FILE_TYPES_ASF 0x531E0000 432 433 /* Define Pictbridge action result codes. */ 434 435 #define UX_PICTBRIDGE_ACTION_RESULT_OK 0x10000000 436 #define UX_PICTBRIDGE_ACTION_RESULT_NOT_EXECUTED 0x10010000 437 #define UX_PICTBRIDGE_ACTION_RESULT_NOT_SUPPORTED_DEFAULT 0x10020000 438 #define UX_PICTBRIDGE_ACTION_RESULT_NOT_SUPPORTED_UP 0x10020001 439 #define UX_PICTBRIDGE_ACTION_RESULT_NOT_SUPPORTED_IP 0x10020002 440 #define UX_PICTBRIDGE_ACTION_RESULT_NOT_SUPPORTED_MP 0x10020003 441 #define UX_PICTBRIDGE_ACTION_RESULT_NOT_SUPPORTED_BO 0x10020004 442 #define UX_PICTBRIDGE_ACTION_RESULT_NOT_RECOGNIZED 0x10030000 443 444 /* Define Pictbridge DatePrints Codes. */ 445 446 #define UX_PICTBRIDGE_DATE_PRINTS_DEFAULT 0x54000000 447 #define UX_PICTBRIDGE_DATE_PRINTS_OFF 0x54010000 448 #define UX_PICTBRIDGE_DATE_PRINTS_ON 0x54020000 449 450 /* Define Pictbridge FileNamePrints Codes. */ 451 452 #define UX_PICTBRIDGE_FILE_NAME_PRINTS_DEFAULT 0x55000000 453 #define UX_PICTBRIDGE_FILE_NAME_PRINTS_OFF 0x55010000 454 #define UX_PICTBRIDGE_FILE_NAME_PRINTS_ON 0x55020000 455 456 /* Define Pictbridge ImageOptimizes Codes. */ 457 458 #define UX_PICTBRIDGE_IMAGE_OPTIMIZES_DEFAULT 0x56000000 459 #define UX_PICTBRIDGE_IMAGE_OPTIMIZES_OFF 0x56010000 460 #define UX_PICTBRIDGE_IMAGE_OPTIMIZES_ON 0x56020000 461 462 /* Define Pictbridge Layouts Codes. */ 463 464 #define UX_PICTBRIDGE_LAYOUTS_DEFAULT 0x57000000 465 #define UX_PICTBRIDGE_LAYOUTS_1_UP_BORDER 0x57010000 466 #define UX_PICTBRIDGE_LAYOUTS_1_UP_LAYOUT 0x57020000 467 #define UX_PICTBRIDGE_LAYOUTS_2_UP_LAYOUT 0x57030000 468 #define UX_PICTBRIDGE_LAYOUTS_3_UP_LAYOUT 0x57040000 469 #define UX_PICTBRIDGE_LAYOUTS_4_UP_LAYOUT 0x57050000 470 #define UX_PICTBRIDGE_LAYOUTS_5_UP_LAYOUT 0x57060000 471 #define UX_PICTBRIDGE_LAYOUTS_6_UP_LAYOUT 0x57070000 472 #define UX_PICTBRIDGE_LAYOUTS_7_UP_LAYOUT 0x57080000 473 #define UX_PICTBRIDGE_LAYOUTS_8_UP_LAYOUT 0x57090000 474 #define UX_PICTBRIDGE_LAYOUTS_INDEX_PRINT 0x57FE0000 475 #define UX_PICTBRIDGE_LAYOUTS_1_UP_BORDERLESS 0x57FF0000 476 477 /* Define Pictbridge FixedSizes Codes. */ 478 479 #define UX_PICTBRIDGE_FIXED_SIZE_DEFAULT 0x58000000 480 #define UX_PICTBRIDGE_FIXED_SIZE_2IX3I 0x58010000 481 #define UX_PICTBRIDGE_FIXED_SIZE_35IX5I 0x58020000 482 #define UX_PICTBRIDGE_FIXED_SIZE_4IX6I 0x58030000 483 #define UX_PICTBRIDGE_FIXED_SIZE_5IX7I 0x58040000 484 #define UX_PICTBRIDGE_FIXED_SIZE_8IX10I 0x58050000 485 #define UX_PICTBRIDGE_FIXED_SIZE_254MMX178MM 0x58060000 486 #define UX_PICTBRIDGE_FIXED_SIZE_110MMX74MM 0x58070000 487 #define UX_PICTBRIDGE_FIXED_SIZE_6CMX8CM 0x58080000 488 #define UX_PICTBRIDGE_FIXED_SIZE_7CMX10CM 0x58090000 489 #define UX_PICTBRIDGE_FIXED_SIZE_9CMX13CM 0x580A0000 490 #define UX_PICTBRIDGE_FIXED_SIZE_10CMX13CM 0x580B0000 491 #define UX_PICTBRIDGE_FIXED_SIZE_15CMX21CM 0x580C0000 492 #define UX_PICTBRIDGE_FIXED_SIZE_18CMX24CM 0x580D0000 493 #define UX_PICTBRIDGE_FIXED_SIZE_A4 0x580E0000 494 #define UX_PICTBRIDGE_FIXED_SIZE_LETTER 0x580F0000 495 496 /* Define Pictbridge Croppings Codes. */ 497 498 #define UX_PICTBRIDGE_CROPPINGS_DEFAULT 0x59000000 499 #define UX_PICTBRIDGE_CROPPINGS_OFF 0x59010000 500 #define UX_PICTBRIDGE_CROPPINGS_ON 0x59020000 501 502 /* Define Pictbridge Abort Style Codes. */ 503 504 #define UX_PICTBRIDGE_ABORT_STYLE_IMMEDIATELY 0x90000000 505 #define UX_PICTBRIDGE_ABORT_STYLE_AFTER_CURRENT_PAGE 0x90010000 506 507 /* Define Pictbridge Print Service Status Codes. */ 508 509 #define UX_PICTBRIDGE_DPS_PRINTSERVICE_STATUS_ACTIVE 0x70000000 510 #define UX_PICTBRIDGE_DPS_PRINTSERVICE_STATUS_IDLE 0x70010000 511 #define UX_PICTBRIDGE_DPS_PRINTSERVICE_STATUS_PAUSED 0x70020000 512 513 /* Define Pictbridge Print Service Status Codes. */ 514 515 #define UX_PICTBRIDGE_JOB_END_REASON_NOT_ENDED 0x71000000 516 #define UX_PICTBRIDGE_JOB_END_REASON_NORMAL 0x71010000 517 #define UX_PICTBRIDGE_JOB_END_REASON_ABORTED_9000000 0x71020000 518 #define UX_PICTBRIDGE_JOB_END_REASON_ABORTED_9001000 0x71030000 519 #define UX_PICTBRIDGE_JOB_END_REASON_ABORTED_OTHER 0x71040000 520 521 /* Define Pictbridge Error Status Codes. */ 522 523 #define UX_PICTBRIDGE_ERROR_STATUS_NO_ERROR 0x72000000 524 #define UX_PICTBRIDGE_ERROR_STATUS_WARNING 0x72010000 525 #define UX_PICTBRIDGE_ERROR_STATUS_FATAL 0x72020000 526 527 /* Define Pictbridge Error REASON Status Codes. */ 528 529 #define UX_PICTBRIDGE_ERROR_REASON_NO_REASON 0x73000000 530 #define UX_PICTBRIDGE_ERROR_REASON_PAPER_RELATED 0x73010000 531 #define UX_PICTBRIDGE_ERROR_REASON_INK_RELATED 0x73020000 532 #define UX_PICTBRIDGE_ERROR_REASON_HARDWARE_RELATED 0x73030000 533 #define UX_PICTBRIDGE_ERROR_REASON_FILE_RELATED 0x73040000 534 535 /* Define Pictbridge Disconnect Enable Status Codes. */ 536 537 #define UX_PICTBRIDGE_DISCONNECT_ENABLE_FALSE 0x74000000 538 #define UX_PICTBRIDGE_DISCONNECT_ENABLE_TRUE 0x74010000 539 540 /* Define Pictbridge Capability Changed Status Codes. */ 541 542 #define UX_PICTBRIDGE_CAPABILITY_CHANGED_FALSE 0x75000000 543 #define UX_PICTBRIDGE_CAPABILITY_CHANGED_TRUE 0x75010000 544 545 /* Define Pictbridge New Job Status Codes. */ 546 547 #define UX_PICTBRIDGE_NEW_JOB_FALSE 0x76000000 548 #define UX_PICTBRIDGE_NEW_JOB_TRUE 0x76010000 549 550 /* Define Pictbridge Print Info structure. */ 551 typedef struct UX_PICTBRIDGE_PRINTINFO_STRUCT 552 { 553 554 struct UX_PICTBRIDGE_PRINTINFO_STRUCT *ux_pictbridge_printinfo_next; 555 ULONG ux_pictbridge_printinfo_croppingarea_xcoordinate; 556 ULONG ux_pictbridge_printinfo_croppingarea_ycoordinate; 557 ULONG ux_pictbridge_printinfo_croppingarea_width; 558 ULONG ux_pictbridge_printinfo_croppingarea_height; 559 ULONG ux_pictbridge_printinfo_fileid; 560 UCHAR ux_pictbridge_printinfo_filename[UX_PICTBRIDGE_MAX_STRING_SIZE]; 561 UCHAR ux_pictbridge_printinfo_date[UX_PICTBRIDGE_MAX_STRING_SIZE]; 562 ULONG ux_pictbridge_printinfo_copies; 563 ULONG ux_pictbridge_printinfo_prtpid; 564 UCHAR ux_pictbridge_printinfo_filepath[UX_PICTBRIDGE_MAX_STRING_SIZE]; 565 ULONG ux_pictbridge_printinfo_copyid; 566 ULONG ux_pictbridge_printinfo_current_page; 567 ULONG ux_pictbridge_printinfo_total_page; 568 ULONG ux_pictbridge_printinfo_images_printed; 569 } UX_PICTBRIDGE_PRINTINFO; 570 571 /* Define Pictbridge Job Info structure. */ 572 typedef struct UX_PICTBRIDGE_JOBINFO_STRUCT 573 { 574 575 ULONG ux_pictbridge_jobinfo_status; 576 ULONG ux_pictbridge_jobinfo_quality; 577 ULONG ux_pictbridge_jobinfo_papertype; 578 ULONG ux_pictbridge_jobinfo_papersize; 579 ULONG ux_pictbridge_jobinfo_filetype; 580 ULONG ux_pictbridge_jobinfo_dateprint; 581 ULONG ux_pictbridge_jobinfo_filenameprint; 582 ULONG ux_pictbridge_jobinfo_imageoptimize; 583 ULONG ux_pictbridge_jobinfo_layout; 584 ULONG ux_pictbridge_jobinfo_fixedsize; 585 ULONG ux_pictbridge_jobinfo_cropping; 586 ULONG ux_pictbridge_jobinfo_abort_style; 587 VOID *ux_pictbridge_jobinfo_object; 588 UINT (*ux_pictbridge_jobinfo_object_data_read)(struct UX_PICTBRIDGE_STRUCT *pictbridge, ULONG object_handle, UCHAR *buffer, ULONG offset, ULONG length, ULONG *actual_length); 589 UINT (*ux_pictbridge_jobinfo_object_info_get) (struct UX_SLAVE_CLASS_PIMA_STRUCT *pima, ULONG object_handle, UX_SLAVE_CLASS_PIMA_OBJECT **object); 590 struct UX_PICTBRIDGE_PRINTINFO_STRUCT *ux_pictbridge_jobinfo_printinfo_start; 591 struct UX_PICTBRIDGE_PRINTINFO_STRUCT *ux_pictbridge_jobinfo_printinfo_current; 592 } UX_PICTBRIDGE_JOBINFO; 593 594 /* Define Pictbridge Device Info structure. */ 595 typedef struct UX_PICTBRIDGE_DEVINFO_STRUCT 596 { 597 598 UCHAR ux_pictbridge_devinfo_vendor_name[UX_PICTBRIDGE_MAX_STRING_SIZE]; 599 UCHAR ux_pictbridge_devinfo_product_name[UX_PICTBRIDGE_MAX_STRING_SIZE]; 600 UCHAR ux_pictbridge_devinfo_serial_no[UX_PICTBRIDGE_MAX_STRING_SIZE]; 601 ULONG ux_pictbridge_devinfo_dpsversions[UX_PICTBRIDGE_MAX_DEVINFO_ARRAY_SIZE]; 602 ULONG ux_pictbridge_devinfo_vendor_specific_version; 603 ULONG ux_pictbridge_devinfo_print_service_available; 604 ULONG ux_pictbridge_devinfo_qualities[UX_PICTBRIDGE_MAX_DEVINFO_ARRAY_SIZE]; 605 ULONG ux_pictbridge_devinfo_papersizes[UX_PICTBRIDGE_MAX_DEVINFO_ARRAY_SIZE]; 606 ULONG ux_pictbridge_devinfo_papertypes[UX_PICTBRIDGE_MAX_DEVINFO_ARRAY_SIZE]; 607 ULONG ux_pictbridge_devinfo_papertypes_papersize; 608 ULONG ux_pictbridge_devinfo_filetypes[UX_PICTBRIDGE_MAX_DEVINFO_ARRAY_SIZE]; 609 ULONG ux_pictbridge_devinfo_dateprints[UX_PICTBRIDGE_MAX_DEVINFO_ARRAY_SIZE]; 610 ULONG ux_pictbridge_devinfo_filenameprints[UX_PICTBRIDGE_MAX_DEVINFO_ARRAY_SIZE]; 611 ULONG ux_pictbridge_devinfo_imageoptimizes[UX_PICTBRIDGE_MAX_DEVINFO_ARRAY_SIZE]; 612 ULONG ux_pictbridge_devinfo_layouts[UX_PICTBRIDGE_MAX_DEVINFO_ARRAY_SIZE]; 613 ULONG ux_pictbridge_devinfo_layouts_papersize; 614 ULONG ux_pictbridge_devinfo_fixedsizes[UX_PICTBRIDGE_MAX_DEVINFO_ARRAY_SIZE]; 615 ULONG ux_pictbridge_devinfo_croppings[UX_PICTBRIDGE_MAX_DEVINFO_ARRAY_SIZE]; 616 ULONG ux_pictbridge_devinfo_charrepertoires[UX_PICTBRIDGE_MAX_DEVINFO_ARRAY_SIZE]; 617 ULONG ux_pictbridge_devinfo_dpsprintservicestatus; 618 ULONG ux_pictbridge_devinfo_jobendreason; 619 ULONG ux_pictbridge_devinfo_errorstatus; 620 ULONG ux_pictbridge_devinfo_errorreason; 621 ULONG ux_pictbridge_devinfo_disconnectenable; 622 ULONG ux_pictbridge_devinfo_capabilitychanged; 623 ULONG ux_pictbridge_devinfo_newjobok; 624 ULONG ux_pictbridge_devinfo_storage_size; 625 626 } UX_PICTBRIDGE_DEVINFO; 627 628 629 /* Define Pictbridge event structure. */ 630 typedef struct UX_PICTBRIDGE_EVENT_STRUCT 631 { 632 ULONG ux_pictbridge_event_code; 633 ULONG ux_pictbridge_event_parameter_1; 634 ULONG ux_pictbridge_event_parameter_2; 635 ULONG ux_pictbridge_event_parameter_3; 636 637 } UX_PICTBRIDGE_EVENT; 638 639 /* Define Pictbridge structure. */ 640 typedef struct UX_PICTBRIDGE_STRUCT 641 { 642 643 VOID *ux_pictbridge_pima; 644 ULONG ux_pictbridge_storage_ids[UX_PICTBRIDGE_MAX_NUMBER_STORAGE_IDS]; 645 ULONG ux_pictbridge_object_handles_array[UX_PICTBRIDGE_MAX_NUMBER_OBJECT_HANDLES]; 646 UX_PICTBRIDGE_EVENT ux_pictbridge_event_array[UX_PICTBRIDGE_MAX_EVENT_NUMBER]; 647 UX_PICTBRIDGE_EVENT *ux_pictbridge_event_array_head; 648 UX_PICTBRIDGE_EVENT *ux_pictbridge_event_array_tail; 649 UX_PICTBRIDGE_EVENT *ux_pictbridge_event_array_end; 650 UX_SEMAPHORE ux_pictbridge_notification_semaphore; 651 UCHAR *ux_pictbridge_thread_stack; 652 UX_THREAD ux_pictbridge_thread; 653 UX_EVENT_FLAGS_GROUP ux_pictbridge_event_flags_group; 654 ULONG ux_pictbridge_operation_result; 655 ULONG ux_pictbridge_output_result; 656 ULONG ux_pictbridge_xml_report_direction; 657 ULONG ux_pictbridge_request_response; 658 ULONG ux_pictbridge_input_tags; 659 ULONG ux_pictbridge_input_request; 660 ULONG ux_pictbridge_discovery_state; 661 ULONG ux_pictbridge_host_client_state_machine; 662 UX_PICTBRIDGE_DEVINFO ux_pictbridge_dpslocal; 663 UX_PICTBRIDGE_DEVINFO ux_pictbridge_dpsclient; 664 UX_PICTBRIDGE_JOBINFO ux_pictbridge_jobinfo; 665 VOID *ux_pictbridge_storage; 666 VOID *ux_pictbridge_object_host; 667 VOID *ux_pictbridge_object_client; 668 VOID *ux_pictbridge_session; 669 VOID *ux_pictbridge_device; 670 UINT (*ux_pictbridge_application_object_data_write)(struct UX_PICTBRIDGE_STRUCT *pictbridge, UCHAR *buffer, ULONG offset, ULONG total_length, ULONG length); 671 #ifdef UX_PICTBRIDGE_DPSCLIENT 672 UX_SLAVE_CLASS_PIMA_PARAMETER ux_pictbridge_pima_parameter; 673 UINT (*ux_pictbridge_dps_event_callback_function)(struct UX_PICTBRIDGE_STRUCT *pictbridge, UINT event_flag); 674 #endif 675 676 } UX_PICTBRIDGE; 677 678 /* Define PICTBRIDGE XML Item structure. */ 679 680 typedef struct UX_PICTBRIDGE_XML_ITEM_STRUCT 681 { 682 UCHAR ux_pictbridge_xml_item_tag_name[UX_PICTBRIDGE_MAX_TAG_SIZE]; 683 ULONG ux_pictbridge_xml_item_tag_code; 684 struct UX_PICTBRIDGE_XML_ITEM_STRUCT *ux_pictbridge_xml_item_child; 685 struct UX_PICTBRIDGE_XML_ITEM_STRUCT *ux_pictbridge_xml_item_parent; 686 UINT (*ux_pictbridge_xml_item_function)(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 687 } UX_PICTBRIDGE_XML_ITEM; 688 689 690 691 692 693 UINT _ux_pictbridge_xml_function_root_xml(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 694 UINT _ux_pictbridge_xml_function_root_dps(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 695 UINT _ux_pictbridge_xml_function_root_input(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 696 UINT _ux_pictbridge_xml_function_root_output(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 697 UINT _ux_pictbridge_xml_function_null(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 698 UINT _ux_pictbridge_xml_function_input_getcapability_capability_layouts(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 699 UINT _ux_pictbridge_xml_function_input_getcapability_capability_papertypes(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 700 UINT _ux_pictbridge_xml_function_input_startjob(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 701 UINT _ux_pictbridge_xml_function_input_startjob_printinfo(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 702 UINT _ux_pictbridge_xml_function_input_startjob_jobconfig_quality(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 703 UINT _ux_pictbridge_xml_function_input_startjob_jobconfig_papersize(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 704 UINT _ux_pictbridge_xml_function_input_startjob_jobconfig_papertype(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 705 UINT _ux_pictbridge_xml_function_input_startjob_jobconfig_filetype(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 706 UINT _ux_pictbridge_xml_function_input_startjob_jobconfig_dateprint(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 707 UINT _ux_pictbridge_xml_function_input_startjob_jobconfig_filenameprint(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 708 UINT _ux_pictbridge_xml_function_input_startjob_jobconfig_imageoptimize(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 709 UINT _ux_pictbridge_xml_function_input_startjob_jobconfig_layout(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 710 UINT _ux_pictbridge_xml_function_input_startjob_jobconfig_fixedsize(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 711 UINT _ux_pictbridge_xml_function_input_startjob_jobconfig_cropping(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 712 UINT _ux_pictbridge_xml_function_input_startjob_printinfo_croppingarea(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 713 UINT _ux_pictbridge_xml_function_input_startjob_printinfo_fileid(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 714 UINT _ux_pictbridge_xml_function_input_startjob_printinfo_filename(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 715 UINT _ux_pictbridge_xml_function_input_startjob_printinfo_date(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 716 UINT _ux_pictbridge_xml_function_input_startjob_printinfo_copies(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 717 UINT _ux_pictbridge_xml_function_input_startjob_printinfo_prtpid(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 718 UINT _ux_pictbridge_xml_function_input_startjob_printinfo_filepath(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 719 UINT _ux_pictbridge_xml_function_input_startjob_printinfo_copyid(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 720 UINT _ux_pictbridge_xml_function_input_notifydevicestatus_dpsprintservicestatus(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 721 UINT _ux_pictbridge_xml_function_input_notifydevicestatus_jobendreason(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 722 UINT _ux_pictbridge_xml_function_input_notifydevicestatus_errorstatus(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 723 UINT _ux_pictbridge_xml_function_input_notifydevicestatus_errorreason(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 724 UINT _ux_pictbridge_xml_function_input_notifydevicestatus_capabilitychanged(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 725 UINT _ux_pictbridge_xml_function_input_notifydevicestatus_disconnectenable(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 726 UINT _ux_pictbridge_xml_function_input_notifydevicestatus_newjobok(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 727 UINT _ux_pictbridge_xml_function_output_result(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 728 UINT _ux_pictbridge_xml_function_output_getcapability_capability_qualities(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 729 UINT _ux_pictbridge_xml_function_output_getcapability_capability_papersizes(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 730 UINT _ux_pictbridge_xml_function_output_getcapability_capability_filetypes(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 731 UINT _ux_pictbridge_xml_function_output_getcapability_capability_dateprints(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 732 UINT _ux_pictbridge_xml_function_output_getcapability_capability_filenameprints(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 733 UINT _ux_pictbridge_xml_function_output_getcapability_capability_imageoptimizes(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 734 UINT _ux_pictbridge_xml_function_output_getcapability_capability_fixedsizes(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 735 UINT _ux_pictbridge_xml_function_output_getcapability_capability_croppings(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 736 UINT _ux_pictbridge_xml_function_output_getcapability_capability_papertypes(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 737 UINT _ux_pictbridge_xml_function_output_getcapability_capability_layouts(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 738 UINT _ux_pictbridge_xml_function_output_getdevicestatus_dpsprintservicestatus(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 739 UINT _ux_pictbridge_xml_function_output_getdevicestatus_jobendreason(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 740 UINT _ux_pictbridge_xml_function_output_getdevicestatus_errorstatus(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 741 UINT _ux_pictbridge_xml_function_output_getdevicestatus_errorreason(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 742 UINT _ux_pictbridge_xml_function_output_getdevicestatus_disconnectenable(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 743 UINT _ux_pictbridge_xml_function_output_getdevicestatus_capabilitychanged(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 744 UINT _ux_pictbridge_xml_function_output_getdevicestatus_newjobok(UX_PICTBRIDGE *pictbridge, UCHAR *input_variable, UCHAR *input_string, UCHAR *xml_parameter); 745 746 /* Remapping of pictbridge functions that point to a NULL function.. */ 747 748 #define _ux_pictbridge_xml_function_input_getfilelist_filetype _ux_pictbridge_xml_function_null 749 #define _ux_pictbridge_xml_function_input_getfilelist_parentfileid _ux_pictbridge_xml_function_null 750 #define _ux_pictbridge_xml_function_input_getfilelist_maxnumids _ux_pictbridge_xml_function_null 751 #define _ux_pictbridge_xml_function_output_getfilelist_fileids _ux_pictbridge_xml_function_null 752 #define _ux_pictbridge_xml_function_output_getfilelist_numids _ux_pictbridge_xml_function_null 753 #define _ux_pictbridge_xml_function_input_getpartialfile_fileid _ux_pictbridge_xml_function_null 754 #define _ux_pictbridge_xml_function_input_getpartialfile_offset _ux_pictbridge_xml_function_null 755 #define _ux_pictbridge_xml_function_input_getpartialfile_maxsize _ux_pictbridge_xml_function_null 756 #define _ux_pictbridge_xml_function_output_getpartialfile_bytesread _ux_pictbridge_xml_function_null 757 #define _ux_pictbridge_xml_function_input_getfile_fileid _ux_pictbridge_xml_function_null 758 #define _ux_pictbridge_xml_function_output_getfile_bytesread _ux_pictbridge_xml_function_null 759 #define _ux_pictbridge_xml_function_input_getthumb_fileid _ux_pictbridge_xml_function_null 760 #define _ux_pictbridge_xml_function_output_getthumb_bytesread _ux_pictbridge_xml_function_null 761 #define _ux_pictbridge_xml_function_input_getfileid_fileid _ux_pictbridge_xml_function_null 762 #define _ux_pictbridge_xml_function_output_getfileinfo_filetype _ux_pictbridge_xml_function_null 763 #define _ux_pictbridge_xml_function_output_getfileinfo_filesize _ux_pictbridge_xml_function_null 764 #define _ux_pictbridge_xml_function_output_getfileinfo_thumbformat _ux_pictbridge_xml_function_null 765 #define _ux_pictbridge_xml_function_output_getfileinfo_thumbsize _ux_pictbridge_xml_function_null 766 #define _ux_pictbridge_xml_function_input_getfileid_basepathid _ux_pictbridge_xml_function_null 767 #define _ux_pictbridge_xml_function_input_getfileid_filepath _ux_pictbridge_xml_function_null 768 #define _ux_pictbridge_xml_function_output_getfileid_basepathid _ux_pictbridge_xml_function_null 769 #define _ux_pictbridge_xml_function_output_getfileid_filepath _ux_pictbridge_xml_function_null 770 #define _ux_pictbridge_xml_function_input_notifydevicestatus _ux_pictbridge_xml_function_null 771 #define _ux_pictbridge_xml_function_input_notifyjobstatus _ux_pictbridge_xml_function_null 772 #define _ux_pictbridge_xml_function_input_notifyjobstatus_prtpid _ux_pictbridge_xml_function_null 773 #define _ux_pictbridge_xml_function_input_notifyjobstatus_filepath _ux_pictbridge_xml_function_null 774 #define _ux_pictbridge_xml_function_input_notifyjobstatus_copyid _ux_pictbridge_xml_function_null 775 #define _ux_pictbridge_xml_function_input_notifyjobstatus_progress _ux_pictbridge_xml_function_null 776 #define _ux_pictbridge_xml_function_output_notifyjobstatus_imagesprinted _ux_pictbridge_xml_function_null 777 #define _ux_pictbridge_xml_function_input_getdevicestatus _ux_pictbridge_xml_function_null 778 #define _ux_pictbridge_xml_function_input_abortjob _ux_pictbridge_xml_function_null 779 #define _ux_pictbridge_xml_function_output_getjobstatus_prtpid _ux_pictbridge_xml_function_null 780 #define _ux_pictbridge_xml_function_output_getjobstatus_filepath _ux_pictbridge_xml_function_null 781 #define _ux_pictbridge_xml_function_output_getjobstatus_copyid _ux_pictbridge_xml_function_null 782 #define _ux_pictbridge_xml_function_output_getjobstatus_progress _ux_pictbridge_xml_function_null 783 #define _ux_pictbridge_xml_function_output_getjobstatus_imagesprinted _ux_pictbridge_xml_function_null 784 #define _ux_pictbridge_xml_function_output_printserviceavailable _ux_pictbridge_xml_function_null 785 #define _ux_pictbridge_xml_function_output_dpsversion _ux_pictbridge_xml_function_null 786 #define _ux_pictbridge_xml_function_output_vendorname _ux_pictbridge_xml_function_null 787 #define _ux_pictbridge_xml_function_output_vendorspecificversion _ux_pictbridge_xml_function_null 788 #define _ux_pictbridge_xml_function_output_productname _ux_pictbridge_xml_function_null 789 #define _ux_pictbridge_xml_function_output_serialno _ux_pictbridge_xml_function_null 790 #define _ux_pictbridge_xml_function_output_startjob _ux_pictbridge_xml_function_null 791 #define _ux_pictbridge_xml_function_output_abortjob _ux_pictbridge_xml_function_null 792 #define _ux_pictbridge_xml_function_output_continuejob _ux_pictbridge_xml_function_null 793 #define _ux_pictbridge_xml_function_output_notifyjobstatus _ux_pictbridge_xml_function_null 794 #define _ux_pictbridge_xml_function_output_notifydevicestatus _ux_pictbridge_xml_function_null 795 #define _ux_pictbridge_xml_function_output_getcapability_capability _ux_pictbridge_xml_function_null 796 #define _ux_pictbridge_xml_function_input_getcapability_capability_qualities _ux_pictbridge_xml_function_null 797 #define _ux_pictbridge_xml_function_input_getcapability_capability_papersizes _ux_pictbridge_xml_function_null 798 #define _ux_pictbridge_xml_function_input_getcapability_capability_filetypes _ux_pictbridge_xml_function_null 799 #define _ux_pictbridge_xml_function_input_getcapability_capability_dateprints _ux_pictbridge_xml_function_null 800 #define _ux_pictbridge_xml_function_input_getcapability_capability_filenameprints _ux_pictbridge_xml_function_null 801 #define _ux_pictbridge_xml_function_input_getcapability_capability_imageoptimizes _ux_pictbridge_xml_function_null 802 #define _ux_pictbridge_xml_function_input_getcapability_capability_fixedsizes _ux_pictbridge_xml_function_null 803 #define _ux_pictbridge_xml_function_input_getcapability_capability_croppings _ux_pictbridge_xml_function_null 804 #define _ux_pictbridge_xml_function_input_getcapability_capability_charrepertoires _ux_pictbridge_xml_function_null 805 #define _ux_pictbridge_xml_function_input_getjobstatus _ux_pictbridge_xml_function_null 806 #define _ux_pictbridge_xml_function_input_continuejob _ux_pictbridge_xml_function_null 807 #define _ux_pictbridge_xml_function_input_dpsversion _ux_pictbridge_xml_function_null 808 #define _ux_pictbridge_xml_function_input_vendorname _ux_pictbridge_xml_function_null 809 #define _ux_pictbridge_xml_function_input_vendorspecificversion _ux_pictbridge_xml_function_null 810 #define _ux_pictbridge_xml_function_input_productname _ux_pictbridge_xml_function_null 811 #define _ux_pictbridge_xml_function_input_serialno _ux_pictbridge_xml_function_null 812 #define _ux_pictbridge_xml_function_output_getcapability_capability_charrepertoires _ux_pictbridge_xml_function_null 813 814 #ifdef UX_PICTBRIDGE_DPSCLIENT 815 816 VOID _ux_pictbridge_dpsclient_thread(ULONG parameter); 817 UINT _ux_pictbridge_dpsclient_object_data_get(UX_SLAVE_CLASS_PIMA *pima, ULONG object_handle, UCHAR *object_buffer, ULONG object_offset, 818 ULONG object_length_requested, ULONG *object_actual_length); 819 UINT _ux_pictbridge_dpsclient_object_data_send(UX_SLAVE_CLASS_PIMA *pima, ULONG object_handle, ULONG phase, 820 UCHAR *object_buffer, ULONG object_offset, 821 ULONG object_length); 822 UINT _ux_pictbridge_dpsclient_object_number_get(UX_SLAVE_CLASS_PIMA *pima, ULONG object_format_code, ULONG object_association, ULONG *number_objects); 823 UINT _ux_pictbridge_dpsclient_object_info_get(UX_SLAVE_CLASS_PIMA *pima, ULONG object_handle, 824 UX_SLAVE_CLASS_PIMA_OBJECT **object); 825 UINT _ux_pictbridge_dpsclient_object_info_send(UX_SLAVE_CLASS_PIMA *pima, UX_SLAVE_CLASS_PIMA_OBJECT *object, 826 ULONG storage_id, ULONG parent_object_handle, ULONG *object_handle); 827 UINT _ux_pictbridge_dpsclient_object_delete(UX_SLAVE_CLASS_PIMA *pima, ULONG object_handle); 828 UINT _ux_pictbridge_dpsclient_object_handles_get(UX_SLAVE_CLASS_PIMA *pima, 829 ULONG object_handles_format_code, 830 ULONG object_handles_association, 831 ULONG *object_handles_array, 832 ULONG object_handles_max_number); 833 UINT _ux_pictbridge_dpsclient_input_object_prepare(UX_PICTBRIDGE *pictbridge, 834 ULONG input_function, 835 ULONG input_subfunction, 836 ULONG input_parameter); 837 UINT _ux_pictbridge_dpsclient_input_object_configure_print_service(UX_PICTBRIDGE *pictbridge, 838 UCHAR *pima_object_buffer, 839 ULONG object_length, 840 UCHAR **pima_object_buffer_updated, 841 ULONG *object_length_updated); 842 UINT _ux_pictbridge_dpsclient_input_object_get_capability(UX_PICTBRIDGE *pictbridge, 843 ULONG input_subcode, 844 ULONG input_parameter, 845 UCHAR *pima_object_buffer, 846 ULONG object_length, 847 UCHAR **pima_object_buffer_updated, 848 ULONG *object_length_updated); 849 UINT _ux_pictbridge_dpsclient_input_object_startjob(UX_PICTBRIDGE *pictbridge, 850 ULONG input_subcode, 851 ULONG input_parameter, 852 UCHAR *pima_object_buffer, 853 ULONG object_length, 854 UCHAR **pima_object_buffer_updated, 855 ULONG *object_length_updated); 856 UINT _ux_pictbridge_dpsclient_input_object_abortjob(UX_PICTBRIDGE *pictbridge, 857 ULONG input_subcode, 858 ULONG input_parameter, 859 UCHAR *pima_object_buffer, 860 ULONG object_length, 861 UCHAR **pima_object_buffer_updated, 862 ULONG *object_length_updated); 863 UINT _ux_pictbridge_dpsclient_input_object_continuejob(UX_PICTBRIDGE *pictbridge, 864 ULONG input_subcode, 865 ULONG input_parameter, 866 UCHAR *pima_object_buffer, 867 ULONG object_length, 868 UCHAR **pima_object_buffer_updated, 869 ULONG *object_length_updated); 870 UINT _ux_pictbridge_dpsclient_start(UX_PICTBRIDGE *pictbridge); 871 UINT _ux_pictbridge_dpsclient_api_configure_print_service(UX_PICTBRIDGE *pictbridge); 872 UINT _ux_pictbridge_dpsclient_api_capability(UX_PICTBRIDGE *pictbridge, ULONG capability_code, 873 ULONG capability_parameter); 874 UINT _ux_pictbridge_dpsclient_api_device_status(UX_PICTBRIDGE *pictbridge); 875 UINT _ux_pictbridge_dpsclient_api_start_job(UX_PICTBRIDGE *pictbridge); 876 UINT _ux_pictbridge_dpsclient_api_abort_job(UX_PICTBRIDGE *pictbridge); 877 UINT _ux_pictbridge_dpsclient_api_continue_job(UX_PICTBRIDGE *pictbridge); 878 UINT _ux_pictbridge_dpsclient_register_event_callback_function(UX_PICTBRIDGE *pictbridge, 879 UINT (*event_callback_function)(struct UX_PICTBRIDGE_STRUCT *pictbridge, UINT event_flag)); 880 881 882 /* Define Pictbridge Client API prototypes. */ 883 884 #define ux_pictbridge_dpsclient_object_data_get _ux_pictbridge_dpsclient_object_data_get 885 #define ux_pictbridge_dpsclient_object_data_send _ux_pictbridge_dpsclient_object_data_send 886 #define ux_pictbridge_dpsclient_object_number_get _ux_pictbridge_dpsclient_object_number_get 887 #define ux_pictbridge_dpsclient_object_info_get _ux_pictbridge_dpsclient_object_info_get 888 #define ux_pictbridge_dpsclient_object_info_send _ux_pictbridge_dpsclient_object_info_send 889 #define ux_pictbridge_dpsclient_object_delete _ux_pictbridge_dpsclient_object_delete 890 #define ux_pictbridge_dpsclient_object_handles_get _ux_pictbridge_dpsclient_object_handles_get 891 #define ux_pictbridge_dpsclient_input_object_prepare _ux_pictbridge_dpsclient_input_object_prepare 892 #define ux_pictbridge_dpsclient_input_object_configure_print_service _ux_pictbridge_dpsclient_input_object_configure_print_service 893 #define ux_pictbridge_dpsclient_input_object_get_capability _ux_pictbridge_dpsclient_input_object_get_capability 894 #define ux_pictbridge_dpsclient_input_object_startjob _ux_pictbridge_dpsclient_input_object_startjob 895 #define ux_pictbridge_dpsclient_input_object_abortjob _ux_pictbridge_dpsclient_input_object_abortjob 896 #define ux_pictbridge_dpsclient_input_object_continuejob _ux_pictbridge_dpsclient_input_object_continuejob 897 #define ux_pictbridge_dpsclient_start _ux_pictbridge_dpsclient_start 898 #define ux_pictbridge_dpsclient_api_configure_print_service _ux_pictbridge_dpsclient_api_configure_print_service 899 #define ux_pictbridge_dpsclient_api_capability _ux_pictbridge_dpsclient_api_capability 900 #define ux_pictbridge_dpsclient_api_device_status _ux_pictbridge_dpsclient_api_device_status 901 #define ux_pictbridge_dpsclient_api_start_job _ux_pictbridge_dpsclient_api_start_job 902 #define ux_pictbridge_dpsclient_api_abort_job _ux_pictbridge_dpsclient_api_abort_job 903 #define ux_pictbridge_dpsclient_api_continue_job _ux_pictbridge_dpsclient_api_continue_job 904 #define ux_pictbridge_dpsclient_register_event_callback_function _ux_pictbridge_dpsclient_register_event_callback_function 905 906 907 #endif 908 #ifdef UX_PICTBRIDGE_DPSHOST 909 UINT _ux_pictbridge_dpshost_start(UX_PICTBRIDGE *pictbridge, UX_HOST_CLASS_PIMA *pima); 910 UINT _ux_pictbridge_dpshost_startjob(UX_PICTBRIDGE *pictbridge); 911 VOID _ux_pictbridge_dpshost_thread(ULONG parameter); 912 VOID _ux_pictbridge_dpshost_notification_callback(UX_HOST_CLASS_PIMA_EVENT *pima_event); 913 UINT _ux_pictbridge_dpshost_object_get(UX_PICTBRIDGE *pictbridge, ULONG object_handle); 914 UINT _ux_pictbridge_dpshost_response_get(UX_PICTBRIDGE *pictbridge); 915 UINT _ux_pictbridge_dpshost_input_object_send(UX_PICTBRIDGE *pictbridge, ULONG input_function); 916 UINT _ux_pictbridge_dpshost_output_object_create(UX_PICTBRIDGE *pictbridge); 917 UINT _ux_pictbridge_dpshost_output_object_configure_print_service(UX_PICTBRIDGE *pictbridge, 918 UCHAR *pima_object_buffer, 919 ULONG object_length, 920 UCHAR **pima_object_buffer_updated, 921 ULONG *object_length_updated); 922 923 UINT _ux_pictbridge_dpshost_input_object_notify_job_status(UX_PICTBRIDGE *pictbridge, 924 UCHAR *pima_object_buffer, 925 ULONG object_length, 926 UCHAR **pima_object_buffer_updated, 927 ULONG *object_length_updated); 928 929 UINT _ux_pictbridge_dpshost_input_object_notify_device_status(UX_PICTBRIDGE *pictbridge, 930 UCHAR *pima_object_buffer, 931 ULONG object_length, 932 UCHAR **pima_object_buffer_updated, 933 ULONG *object_length_updated); 934 935 UINT _ux_pictbridge_dpshost_output_object_get_capability(UX_PICTBRIDGE *pictbridge, 936 UCHAR *pima_object_buffer, 937 ULONG object_length, 938 UCHAR **pima_object_buffer_updated, 939 ULONG *object_length_updated); 940 941 UINT _ux_pictbridge_dpshost_output_object_get_device_status(UX_PICTBRIDGE *pictbridge, 942 UCHAR *pima_object_buffer, 943 ULONG object_length, 944 UCHAR **pima_object_buffer_updated, 945 ULONG *object_length_updated); 946 947 /* Define Pictbridge Client API prototypes. */ 948 949 #endif 950 951 /* Define the XML schema root prototype. */ 952 extern UX_PICTBRIDGE_XML_ITEM _ux_pictbridge_xml_item_root[]; 953 954 /* Define pictbridge permanent function. */ 955 UINT _ux_pictbridge_object_parse(UX_PICTBRIDGE *pictbridge, UCHAR *xml_object_buffer, 956 ULONG xml_object_length); 957 UINT _ux_pictbridge_array_element_to_array_hexa(UCHAR *element, ULONG *hexa_array); 958 UINT _ux_pictbridge_element_to_decimal(UCHAR *element, ULONG *decimal_value); 959 UINT _ux_pictbridge_element_to_hexa(UCHAR *element, ULONG *hexa_value); 960 UINT _ux_pictbridge_hexa_to_element(ULONG hexa_value, UCHAR *element); 961 UINT _ux_pictbridge_tag_name_get(UCHAR *input_buffer, ULONG input_length, 962 UCHAR *tag_name, 963 UCHAR *variable_name, 964 UCHAR *variable_string, 965 UCHAR *xml_parameter, 966 UCHAR **output_buffer, ULONG *output_length, 967 ULONG *tag_flag); 968 UINT _ux_pictbridge_tag_name_scan(UX_PICTBRIDGE_XML_ITEM *tag_item, 969 UCHAR *tag_name, 970 UX_PICTBRIDGE_XML_ITEM **tag_entry); 971 UINT _ux_pictbridge_hexa_to_major_minor(ULONG hexa_value, UCHAR *output_buffer); 972 UINT _ux_pictbridge_hexa_to_decimal_string(ULONG hexa_value, UCHAR *decimal_string, 973 ULONG leading_zero_flag, ULONG max_digit_string_size); 974 UINT _ux_pictbridge_object_tag_line_add(UCHAR *pima_object_buffer, 975 ULONG object_length, 976 UCHAR *tag_element_string, 977 ULONG tag_flag, 978 UCHAR *tag_variable, 979 ULONG tag_variable_value, 980 VOID *tag_element, 981 UCHAR **pima_object_buffer_updated, 982 ULONG *object_length_updated); 983 984 UINT _ux_pictbridge_input_object_create(UX_PICTBRIDGE *pictbridge, ULONG input_function); 985 986 987 988 /* Define external strings and xml tag lines. */ 989 extern UCHAR _ux_pictbridge_volume_description[]; 990 extern UCHAR _ux_pictbridge_volume_label[]; 991 extern UCHAR _ux_pictbridge_ddiscovery_name[]; 992 extern UCHAR _ux_pictbridge_hdiscovery_name[]; 993 extern UCHAR _ux_pictbridge_hrequest_name[]; 994 extern UCHAR _ux_pictbridge_hrsponse_name[]; 995 extern UCHAR _ux_pictbridge_drequest_name[]; 996 extern UCHAR _ux_pictbridge_drsponse_name[]; 997 extern UCHAR _ux_pictbridge_xml_tag_line_xmlversion[]; 998 extern UCHAR _ux_pictbridge_xml_tag_line_dpsxmlns[]; 999 extern UCHAR _ux_pictbridge_xml_tag_line_dps[]; 1000 extern UCHAR _ux_pictbridge_xml_tag_line_output[]; 1001 extern UCHAR _ux_pictbridge_xml_tag_line_input[]; 1002 extern UCHAR _ux_pictbridge_xml_tag_line_result[]; 1003 extern UCHAR _ux_pictbridge_xml_tag_line_configureprintservice[]; 1004 extern UCHAR _ux_pictbridge_xml_tag_line_printserviceavailable[]; 1005 extern UCHAR _ux_pictbridge_xml_tag_line_dpsversions[]; 1006 extern UCHAR _ux_pictbridge_xml_tag_line_vendorname[]; 1007 extern UCHAR _ux_pictbridge_xml_tag_line_vendorspecificversion[]; 1008 extern UCHAR _ux_pictbridge_xml_tag_line_productname[]; 1009 extern UCHAR _ux_pictbridge_xml_tag_line_serialno[]; 1010 extern UCHAR _ux_pictbridge_xml_tag_line_capability[]; 1011 extern UCHAR _ux_pictbridge_xml_tag_line_getcapability[]; 1012 extern UCHAR _ux_pictbridge_xml_tag_line_qualities[]; 1013 extern UCHAR _ux_pictbridge_xml_tag_line_papersizes[]; 1014 extern UCHAR _ux_pictbridge_xml_tag_line_papertypes[]; 1015 extern UCHAR _ux_pictbridge_xml_tag_line_filetypes[]; 1016 extern UCHAR _ux_pictbridge_xml_tag_line_dateprints[]; 1017 extern UCHAR _ux_pictbridge_xml_tag_line_filenameprints[]; 1018 extern UCHAR _ux_pictbridge_xml_tag_line_imageoptimizes[]; 1019 extern UCHAR _ux_pictbridge_xml_tag_line_layouts[]; 1020 extern UCHAR _ux_pictbridge_xml_tag_line_fixedsizes[]; 1021 extern UCHAR _ux_pictbridge_xml_tag_line_croppings[]; 1022 extern UCHAR _ux_pictbridge_xml_tag_line_charrepertoires[]; 1023 extern UCHAR _ux_pictbridge_xml_variable_papersize[]; 1024 extern UCHAR _ux_pictbridge_xml_variable_version[]; 1025 extern UCHAR _ux_pictbridge_xml_variable_xmlns[]; 1026 extern UCHAR _ux_pictbridge_xml_string_xmlns[]; 1027 extern UCHAR _ux_pictbridge_xml_tag_line_getdevicestatus[]; 1028 extern UCHAR _ux_pictbridge_xml_tag_line_dpsprintservicestatus[]; 1029 extern UCHAR _ux_pictbridge_xml_tag_line_jobendreason[]; 1030 extern UCHAR _ux_pictbridge_xml_tag_line_errorstatus[]; 1031 extern UCHAR _ux_pictbridge_xml_tag_line_errorreason[]; 1032 extern UCHAR _ux_pictbridge_xml_tag_line_disconnectenable[]; 1033 extern UCHAR _ux_pictbridge_xml_tag_line_capabilitychanged[]; 1034 extern UCHAR _ux_pictbridge_xml_tag_line_newjobok[]; 1035 extern UCHAR _ux_pictbridge_xml_tag_line_notifydevicestatus[]; 1036 extern UCHAR _ux_pictbridge_xml_tag_line_notifyjobstatus[]; 1037 extern UCHAR _ux_pictbridge_xml_tag_line_progress[]; 1038 extern UCHAR _ux_pictbridge_xml_tag_line_imagesprinted[]; 1039 extern UCHAR _ux_pictbridge_xml_tag_line_startjob[]; 1040 extern UCHAR _ux_pictbridge_xml_tag_line_abortjob[]; 1041 extern UCHAR _ux_pictbridge_xml_tag_line_abortstyle[]; 1042 extern UCHAR _ux_pictbridge_xml_tag_line_continuejob[]; 1043 1044 extern UCHAR _ux_pictbridge_xml_tag_line_quality[]; 1045 extern UCHAR _ux_pictbridge_xml_tag_line_papersize[]; 1046 extern UCHAR _ux_pictbridge_xml_tag_line_papertype[]; 1047 extern UCHAR _ux_pictbridge_xml_tag_line_filetype[]; 1048 extern UCHAR _ux_pictbridge_xml_tag_line_dateprint[]; 1049 extern UCHAR _ux_pictbridge_xml_tag_line_filenameprint[]; 1050 extern UCHAR _ux_pictbridge_xml_tag_line_imageoptimize[]; 1051 extern UCHAR _ux_pictbridge_xml_tag_line_layout[]; 1052 extern UCHAR _ux_pictbridge_xml_tag_line_fixedsize[]; 1053 extern UCHAR _ux_pictbridge_xml_tag_line_cropping[]; 1054 extern UCHAR _ux_pictbridge_xml_tag_line_jobconfig[]; 1055 extern UCHAR _ux_pictbridge_xml_tag_line_printinfo[]; 1056 extern UCHAR _ux_pictbridge_xml_tag_line_fileid[]; 1057 extern UCHAR _ux_pictbridge_xml_tag_line_filename[]; 1058 extern UCHAR _ux_pictbridge_xml_tag_line_date[]; 1059 1060 /* Determine if a C++ compiler is being used. If so, complete the standard 1061 C conditional started above. */ 1062 #ifdef __cplusplus 1063 } 1064 #endif 1065 1066 #endif 1067 1068 1069 1070 1071