| /* |
| * Copyright (C) 2017 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| syntax = "proto2"; |
| package android.service.print; |
| |
| option java_multiple_files = true; |
| option java_outer_classname = "PrintServiceProto"; |
| |
| import "frameworks/base/core/proto/android/content/component_name.proto"; |
| import "frameworks/base/core/proto/android/privacy.proto"; |
| |
| message PrintServiceDumpProto { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Each user has a separate printer state |
| repeated PrintUserStateProto user_states = 1; |
| } |
| |
| message PrintUserStateProto { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Should be 0, 10, 11, 12, etc. where 0 is the owner. |
| optional int32 user_id = 1; |
| |
| // The installed print services |
| repeated InstalledPrintServiceProto installed_services = 2; |
| |
| // The disabled print services |
| repeated android.content.ComponentNameProto disabled_services = 3; |
| |
| // The active print services |
| repeated ActivePrintServiceProto active_services = 4; |
| |
| // The cached print jobs |
| repeated CachedPrintJobProto cached_print_jobs = 5; |
| |
| // The printer discovery sessions |
| repeated PrinterDiscoverySessionProto discovery_sessions = 6; |
| |
| // The print spooler state |
| optional PrintSpoolerStateProto print_spooler_state = 7; |
| } |
| |
| message PrintSpoolerStateProto { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Is the print spooler destroyed? |
| optional bool is_destroyed = 1; |
| |
| // Is the print spooler bound? |
| optional bool is_bound = 2; |
| |
| // State internal to the print spooler |
| optional PrintSpoolerInternalStateProto internal_state = 3; |
| } |
| |
| message PrintSpoolerInternalStateProto { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Print jobs |
| repeated PrintJobInfoProto print_jobs = 1; |
| |
| // Files used by these print jobs. These are auto-generated UUIDs that are |
| // only valid while the print job is processed. |
| repeated string print_job_files = 2 [ (android.privacy).dest = DEST_EXPLICIT ]; |
| |
| // Approved print services |
| repeated android.content.ComponentNameProto approved_services = 3; |
| } |
| |
| message PrinterCapabilitiesProto { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Minimum margins of the printer |
| optional MarginsProto min_margins = 1; |
| |
| // List of supported media sizes |
| repeated MediaSizeProto media_sizes = 2; |
| |
| // List of supported resolutions |
| repeated ResolutionProto resolutions = 3; |
| |
| // List of supported color modes |
| repeated PrintAttributesProto.ColorMode color_modes = 4; |
| |
| // List of supported duplex modes |
| repeated PrintAttributesProto.DuplexMode duplex_modes = 5; |
| } |
| |
| message PrinterInfoProto { |
| option (android.msg_privacy).dest = DEST_EXPLICIT; |
| |
| // The id of the printer |
| optional PrinterIdProto id = 1; |
| |
| // The name of the printer |
| optional string name = 2; |
| |
| enum Status { |
| // unused |
| __STATUS_UNUSED = 0; |
| |
| // Printer is idle |
| STATUS_IDLE = 1; |
| |
| // Printer is busy |
| STATUS_BUSY = 2; |
| |
| // Printer is unavailable |
| STATUS_UNAVAILABLE = 3; |
| } |
| // The status of the printer |
| optional Status status = 3 [ (android.privacy).dest = DEST_AUTOMATIC ]; |
| |
| // The description of the printer, set by the user. |
| optional string description = 4; |
| |
| // The capabilities of the printer |
| optional PrinterCapabilitiesProto capabilities = 5; |
| } |
| |
| message PrinterDiscoverySessionProto { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Is this session destroyed? |
| optional bool is_destroyed = 1; |
| |
| // Is printer discovery in progress? |
| optional bool is_printer_discovery_in_progress = 2; |
| |
| // List of printer discovery observers |
| repeated string printer_discovery_observers = 3; |
| |
| // List of discovery request |
| repeated string discovery_requests = 4; |
| |
| // List of ids of printers that are have tracking requests |
| repeated PrinterIdProto tracked_printer_requests = 5; |
| |
| // List of printers found |
| repeated PrinterInfoProto printer = 6; |
| } |
| |
| message InstalledPrintServiceProto { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Component name of the service |
| optional android.content.ComponentNameProto component_name = 1; |
| |
| // Settings activity for this service |
| optional string settings_activity = 2; |
| |
| // Add printers activity for this service |
| optional string add_printers_activity = 3; |
| |
| // Advances options activity for this service |
| optional string advanced_options_activity = 4; |
| } |
| |
| message PrinterIdProto { |
| option (android.msg_privacy).dest = DEST_EXPLICIT; |
| |
| // Component name of the service that reported the printer |
| optional android.content.ComponentNameProto service_name = 1 [ (android.privacy).dest = DEST_AUTOMATIC ]; |
| |
| // Local id of the printer |
| optional string local_id = 2; |
| } |
| |
| message ActivePrintServiceProto { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Component name of the service |
| optional android.content.ComponentNameProto component_name = 1; |
| |
| // Is the active service destroyed |
| optional bool is_destroyed = 2; |
| |
| // Is the active service bound |
| optional bool is_bound = 3; |
| |
| // Has the active service a discovery session |
| optional bool has_discovery_session = 4; |
| |
| // Has the active service a active print jobs |
| optional bool has_active_print_jobs = 5; |
| |
| // Is the active service discovering printers |
| optional bool is_discovering_printers = 6; |
| |
| // The tracked printers of this active service |
| repeated PrinterIdProto tracked_printers = 7; |
| } |
| |
| message MediaSizeProto { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Id of this media size |
| optional string id = 1; |
| |
| // Label of this media size |
| optional string label = 2; |
| |
| // Height of the media |
| optional int32 height_mils = 3; |
| |
| // Width of the media |
| optional int32 width_mils = 4; |
| } |
| |
| message ResolutionProto { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Id of this resolution |
| optional string id = 1; |
| |
| // Label for this resoltion |
| optional string label = 2; |
| |
| // Resolution in horizontal orientation |
| optional int32 horizontal_dpi = 3; |
| |
| // Resolution in vertical orientation |
| optional int32 vertical_dpi = 4; |
| } |
| |
| message MarginsProto { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Space at the top |
| optional int32 top_mils = 1; |
| |
| // Space at the left |
| optional int32 left_mils = 2; |
| |
| // Space at the right |
| optional int32 right_mils = 3; |
| |
| // Space at the bottom |
| optional int32 bottom_mils = 4; |
| } |
| |
| message PrintAttributesProto { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Media to use |
| optional ResolutionProto media_size = 1; |
| |
| // Is the media in portrait mode? |
| optional bool is_portrait = 2; |
| |
| // Resolution to use |
| optional ResolutionProto resolution = 3; |
| |
| // Margins around the document |
| optional MarginsProto min_margins = 4; |
| |
| enum ColorMode { |
| // unused |
| __COLOR_MODE_UNUSED = 0; |
| |
| // Use black, white, gray |
| COLOR_MODE_MONOCHROME = 1; |
| |
| // Use full color is available |
| COLOR_MODE_COLOR = 2; |
| } |
| // Color mode to use |
| optional ColorMode color_mode = 5; |
| |
| enum DuplexMode { |
| // unused |
| __DUPLEX_MODE_UNUSED = 0; |
| |
| // No duplex |
| DUPLEX_MODE_NONE = 1; |
| |
| // Duplex where the long edge attached |
| DUPLEX_MODE_LONG_EDGE = 2; |
| |
| // Duplex where the short edge attach |
| DUPLEX_MODE_SHORT_EDGE = 4; |
| } |
| // Duplex mode to use |
| optional DuplexMode duplex_mode = 6; |
| } |
| |
| message PrintDocumentInfoProto { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Name of the document to print |
| optional string name = 1 [ (android.privacy).dest = DEST_EXPLICIT ]; |
| |
| // Number of pages in the doc |
| optional int32 page_count = 2; |
| |
| // Type of content (see PrintDocumentInfo.ContentType) |
| optional int32 content_type = 3; |
| |
| // The size of the document |
| optional int64 data_size = 4; |
| } |
| |
| message PageRangeProto { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Start of the range |
| optional int32 start = 1; |
| |
| // End of the range (included) |
| optional int32 end = 2; |
| } |
| |
| message PrintJobInfoProto { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Label of the job |
| optional string label = 1 [ (android.privacy).dest = DEST_EXPLICIT ]; |
| |
| // Id of the job |
| optional string print_job_id = 2 [ (android.privacy).dest = DEST_EXPLICIT ]; |
| |
| enum State { |
| // Unknown state |
| STATE_UNKNOWN = 0; |
| |
| // The print job is being created but not yet ready to be printed |
| STATE_CREATED = 1; |
| |
| // The print jobs is created, it is ready to be printed and should be processed |
| STATE_QUEUED = 2; |
| |
| // The print job is being printed |
| STATE_STARTED = 3; |
| |
| // The print job is blocked |
| STATE_BLOCKED = 4; |
| |
| // The print job is successfully printed |
| STATE_COMPLETED = 5; |
| |
| // The print job was printing but printing failed |
| STATE_FAILED = 6; |
| |
| // The print job is canceled |
| STATE_CANCELED = 7; |
| } |
| |
| // State of the job |
| optional State state = 3; |
| |
| // Printer handling the job |
| optional PrinterIdProto printer = 4; |
| |
| // Tag assigned to the job |
| optional string tag = 5 [ (android.privacy).dest = DEST_EXPLICIT ]; |
| |
| // Time the job was created |
| optional int64 creation_time = 6; |
| |
| // Attributes of the job |
| optional PrintAttributesProto attributes = 7; |
| |
| // Document info of the job |
| optional PrintDocumentInfoProto document_info = 8; |
| |
| // If the job current getting canceled |
| optional bool is_canceling = 9; |
| |
| // The selected ranges of the job |
| repeated PageRangeProto pages = 10; |
| |
| // Does the job have any advanced options |
| optional bool has_advanced_options = 11; |
| |
| // Progress of the job |
| optional float progress = 12; |
| |
| // The current service set state |
| optional string status = 13; |
| } |
| |
| message CachedPrintJobProto { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // The id of the app the job belongs to |
| optional int32 app_id = 1; |
| |
| // The print job |
| optional PrintJobInfoProto print_job = 2; |
| } |