Home | History | Annotate | Download | only in include
      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 __WPRINT_STATUS_TYPES_H__
     19 #define __WPRINT_STATUS_TYPES_H__
     20 
     21 #define PRINTER_IDLE_BIT       (1 << PRINT_STATUS_MAX_STATE)
     22 #define PRINTER_IS_IDLE(X)     ((X) << PRINT_STATUS_MAX_STATE)
     23 #define PRINTER_STATUS_MASK(X) ((X) & (PRINTER_IDLE_BIT - 1))
     24 
     25 #define BLOCKED_REASON_UNABLE_TO_CONNECT (1 << PRINT_STATUS_UNABLE_TO_CONNECT)
     26 #define BLOCKED_REASONS_PRINTER_BUSY     (1 << PRINT_STATUS_BUSY)
     27 #define BLOCKED_REASONS_CANCELLED        (1 << PRINT_STATUS_CANCELLED)
     28 #define BLOCKED_REASON_OUT_OF_PAPER      (1 << PRINT_STATUS_OUT_OF_PAPER)
     29 #define BLOCKED_REASON_OUT_OF_INK        (1 << PRINT_STATUS_OUT_OF_INK)
     30 #define BLOCKED_REASON_OUT_OF_TONER      (1 << PRINT_STATUS_OUT_OF_TONER)
     31 #define BLOCKED_REASON_JAMMED            (1 << PRINT_STATUS_JAMMED)
     32 #define BLOCKED_REASON_DOOR_OPEN         (1 << PRINT_STATUS_DOOR_OPEN)
     33 #define BLOCKED_REASON_SVC_REQUEST       (1 << PRINT_STATUS_SVC_REQUEST)
     34 #define BLOCKED_REASON_LOW_ON_INK        (1 << PRINT_STATUS_LOW_ON_INK)
     35 #define BLOCKED_REASON_LOW_ON_TONER      (1 << PRINT_STATUS_LOW_ON_TONER)
     36 #define BLOCKED_REASON_UNKNOWN           (1 << PRINT_STATUS_UNKNOWN)
     37 #define BLOCKED_REASON_BUSY              (1 << PRINT_STATUS_PRINTING)
     38 #define BLOCKED_REASON_IDLE              (1 << PRINT_STATUS_IDLE)
     39 #define BLOCKED_REASON_CANCELLED         (1 << PRINT_STATUS_CANCELLED)
     40 #define BLOCKED_REASON_PRINT_STATUS_VERY_LOW_ON_INK (1 << PRINT_STATUS_VERY_LOW_ON_INK)
     41 #define BLOCKED_REASON_PARTIAL_CANCEL   (1 << PRINT_STATUS_PARTIAL_CANCEL)
     42 
     43 /*
     44  * Enumeration for printer statuses
     45  */
     46 typedef enum {
     47     PRINT_STATUS_INITIALIZING,
     48     PRINT_STATUS_SHUTTING_DOWN,
     49     PRINT_STATUS_UNABLE_TO_CONNECT,
     50 
     51     PRINT_STATUS_UNKNOWN,
     52     PRINT_STATUS_OFFLINE,
     53 
     54     PRINT_STATUS_BUSY,
     55     PRINT_STATUS_CANCELLED,
     56 
     57     PRINT_STATUS_IDLE,
     58     PRINT_STATUS_PRINTING,
     59     PRINT_STATUS_JAMMED,
     60     PRINT_STATUS_OUT_OF_PAPER,
     61     PRINT_STATUS_OUT_OF_INK,
     62     PRINT_STATUS_OUT_OF_TONER,
     63     PRINT_STATUS_DOOR_OPEN,
     64     PRINT_STATUS_SVC_REQUEST,
     65 
     66     PRINT_STATUS_LOW_ON_INK,
     67     PRINT_STATUS_LOW_ON_TONER,
     68 
     69     PRINT_STATUS_VERY_LOW_ON_INK,
     70     PRINT_STATUS_PARTIAL_CANCEL,
     71 
     72     PRINT_STATUS_MAX_STATE // Add new entries above this line.
     73 } print_status_t;
     74 
     75 /*
     76  * Structure for handling printer status
     77  */
     78 typedef struct printer_state_dyn_s {
     79     // Printer state (idle, printing, service request, unknown)
     80     print_status_t printer_status;
     81 
     82     // all current print status events
     83     print_status_t printer_reasons[PRINT_STATUS_MAX_STATE + 1];
     84 } printer_state_dyn_t;
     85 
     86 #endif // __WPRINT_STATUS_TYPES_H__