1 /* 2 * Copyright (C) 2016 The Android Open Source Project 3 * Copyright (C) 2016 Mopria Alliance, Inc. 4 * Copyright (C) 2013 Hewlett-Packard Development Company, L.P. 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 #ifndef __PRINTER_CAPABILITIES_TYPES_H__ 19 #define __PRINTER_CAPABILITIES_TYPES_H__ 20 21 #define MAX_SIZES_SUPPORTED 50 22 #define MAX_MEDIA_TRAYS_SUPPORTED 10 23 #define MAX_MEDIA_TYPES_SUPPORTED 20 24 #define MAX_RESOLUTIONS_SUPPORTED 10 25 #define MAX_QUALITY_SUPPORTED 3 26 #define MAX_URI_LENGTH 1024 27 #define MAX_STRING 256 28 #define MAX_UUID 46 29 #define MAX_PRINT_SCALING_LENGTH 32 30 #define MAX_PRINT_SCALING_COUNT 10 31 #define MAX_PRINTER_ICONS_SUPPORTED 3 32 #define MAX_MARKER 30 33 #define MAX_MARKER_NAME 256 34 35 #include "wprint_df_types.h" 36 37 /* 38 * Media ready set definition 39 */ 40 typedef struct { 41 unsigned int x_dimension; 42 unsigned int y_dimension; 43 char media_tray_tag[MAX_STRING + 1]; 44 } media_ready_set_t; 45 46 /* 47 * Printer Capabilities structure. 48 */ 49 typedef struct { 50 unsigned char duplex; 51 unsigned char sidesSupported; 52 unsigned char borderless; 53 unsigned char canPrintPDF; 54 unsigned char canPrintPCLm; 55 unsigned char canPrintPWG; 56 char make[MAX_STRING]; 57 char name[MAX_STRING]; 58 char uuid[MAX_UUID]; 59 char location[MAX_STRING]; 60 unsigned char canRotateDuplexBackPage; 61 unsigned char color; 62 int supportedQuality[MAX_QUALITY_SUPPORTED]; 63 unsigned int numSupportedQuality; 64 unsigned char faceDownTray; 65 media_size_t supportedMediaSizes[MAX_SIZES_SUPPORTED]; 66 unsigned int numSupportedMediaSizes; 67 media_size_t supportedMediaReadySizes[MAX_SIZES_SUPPORTED]; 68 unsigned int numSupportedMediaReadySizes; 69 70 // IPP major version (0 = not supported) 71 int ippVersionMajor; 72 73 int ippVersionMinor; 74 75 // ePCL over IPP supported version 76 int ePclIppVersion; 77 78 int stripHeight; 79 unsigned long long supportedInputMimeTypes; 80 media_tray_t supportedMediaTrays[MAX_MEDIA_TRAYS_SUPPORTED]; 81 unsigned int numSupportedMediaTrays; 82 media_type_t supportedMediaTypes[MAX_MEDIA_TYPES_SUPPORTED]; 83 unsigned int numSupportedMediaTypes; 84 unsigned char isSupported; 85 unsigned char canCopy; 86 unsigned char isMediaSizeNameSupported; 87 unsigned int printerTopMargin; 88 unsigned int printerBottomMargin; 89 unsigned int printerLeftMargin; 90 unsigned int printerRightMargin; 91 unsigned char inkjet; 92 int supportedResolutions[MAX_RESOLUTIONS_SUPPORTED]; 93 unsigned int numSupportedResolutions; 94 char printerUri[MAX_URI_LENGTH + 1]; 95 char httpResource[MAX_URI_LENGTH + 1]; 96 char mediaDefault[MAX_STRING]; 97 unsigned char docSourceAppName; 98 unsigned char docSourceAppVersion; 99 unsigned char docSourceOsName; 100 unsigned char docSourceOsVersion; 101 char print_scalings_supported[MAX_PRINT_SCALING_COUNT][MAX_PRINT_SCALING_LENGTH]; 102 int print_scalings_supported_count; 103 char print_scaling_default[MAX_PRINT_SCALING_LENGTH]; /* Printer default value */ 104 unsigned char jobPagesPerSetSupported; 105 106 char certification[256]; 107 int num_printer_icons; /* Number of printer icon available*/ 108 char printer_icons[MAX_PRINTER_ICONS_SUPPORTED][MAX_URI_LENGTH]; /* Printer Icon URIs */ 109 int marker_levels_count; 110 char marker_names[MAX_MARKER][MAX_MARKER_NAME]; 111 char marker_types[MAX_MARKER][MAX_MARKER_NAME]; 112 char marker_colors[MAX_MARKER][MAX_MARKER_NAME]; 113 int marker_levels[MAX_MARKER]; 114 int marker_low_levels[MAX_MARKER]; 115 int marker_high_levels[MAX_MARKER]; 116 } printer_capabilities_t; 117 118 #endif // __PRINTER_CAPABILITIES_TYPES_H__