• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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__