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