| /* |
| * Copyright (C) 2016 The Android Open Source Project |
| * Copyright (C) 2016 Mopria Alliance, Inc. |
| * Copyright (C) 2013 Hewlett-Packard Development Company, L.P. |
| * |
| * 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. |
| */ |
| #ifndef __IFC_WPRINT_H__ |
| #define __IFC_WPRINT_H__ |
| |
| #include "wprint_msgq.h" |
| #include "wtypes.h" |
| |
| #ifdef __cplusplus |
| extern "C" |
| { |
| #endif |
| |
| /* |
| * An interface for capturing job data as it is spooled for debugging purposes |
| */ |
| typedef struct { |
| void (*debug_start_job)(wJob_t job_handle, const char *ext); |
| |
| void (*debug_job_data)(wJob_t job_handle, const unsigned char *buff, unsigned long nbytes); |
| |
| void (*debug_end_job)(wJob_t job_handle); |
| |
| void (*debug_start_page)(wJob_t job_handle, int page_number, int width, int height); |
| |
| void (*debug_page_data)(wJob_t job_handle, const unsigned char *buff, unsigned long nbytes); |
| |
| void (*debug_end_page)(wJob_t job_handle); |
| } ifc_wprint_debug_stream_t; |
| |
| /* |
| * Interface for global wprint functions |
| */ |
| typedef struct { |
| /* |
| * Create a FIFO message queue |
| */ |
| msg_q_id (*msgQCreate)(int max_mesgs, int max_msg_length); |
| |
| /* |
| * Delete a previously created message queue. Returns OK or ERROR. |
| */ |
| status_t (*msgQDelete)(msg_q_id msgQ); |
| |
| /** |
| * Sends a message to a message queue. Returns OK or ERROR. |
| */ |
| status_t (*msgQSend)(msg_q_id msgQ, const char *buffer, unsigned long nbytes, int timeout, |
| int priority); |
| |
| /** |
| * Collects a message, returning 0 if successful. timeout may be WAIT_FOREVER or NO_WAIT. |
| */ |
| status_t (*msgQReceive)(msg_q_id msgQ, char *buffer, unsigned long max_nbytes, int timeout); |
| |
| /** |
| * Returns the number of messages in the queue or ERROR. |
| */ |
| int (*msgQNumMsgs)(msg_q_id msgQ); |
| |
| /* |
| * Returns an interface used for debugging data delivered for a job |
| */ |
| const ifc_wprint_debug_stream_t *(*get_debug_stream_ifc)(wJob_t id); |
| } ifc_wprint_t; |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif // __IFC_WPRINT_H__ |