1141cc406Sopenharmony_ci/*
2141cc406Sopenharmony_ci * Prototypes for epson2 I/O functions
3141cc406Sopenharmony_ci *
4141cc406Sopenharmony_ci * Based on Kazuhiro Sasayama previous
5141cc406Sopenharmony_ci * Work on epson.[ch] file from the SANE package.
6141cc406Sopenharmony_ci * Please see those files for original copyrights.
7141cc406Sopenharmony_ci *
8141cc406Sopenharmony_ci * Copyright (C) 2006 Tower Technologies
9141cc406Sopenharmony_ci * Author: Alessandro Zummo <a.zummo@towertech.it>
10141cc406Sopenharmony_ci *
11141cc406Sopenharmony_ci * This file is part of the SANE package.
12141cc406Sopenharmony_ci *
13141cc406Sopenharmony_ci * This program is free software; you can redistribute it and/or
14141cc406Sopenharmony_ci * modify it under the terms of the GNU General Public License as
15141cc406Sopenharmony_ci * published by the Free Software Foundation, version 2.
16141cc406Sopenharmony_ci */
17141cc406Sopenharmony_ci
18141cc406Sopenharmony_ci#ifndef epson2_io_h
19141cc406Sopenharmony_ci#define epson2_io_h
20141cc406Sopenharmony_ci
21141cc406Sopenharmony_ciextern unsigned int r_cmd_count;
22141cc406Sopenharmony_ciextern unsigned int w_cmd_count;
23141cc406Sopenharmony_ci
24141cc406Sopenharmony_ci
25141cc406Sopenharmony_ciSANE_Status e2_cmd_simple(Epson_Scanner * s, void *buf, size_t buf_size);
26141cc406Sopenharmony_ciint e2_send(Epson_Scanner * s, void *buf, size_t buf_size,
27141cc406Sopenharmony_ci		size_t reply_len, SANE_Status * status);
28141cc406Sopenharmony_cissize_t e2_recv(Epson_Scanner * s, void *buf, ssize_t buf_size,
29141cc406Sopenharmony_ci		    SANE_Status * status);
30141cc406Sopenharmony_ci
31141cc406Sopenharmony_ciSANE_Status
32141cc406Sopenharmony_cie2_txrx(Epson_Scanner * s, unsigned char *txbuf, size_t txlen,
33141cc406Sopenharmony_ci	    unsigned char *rxbuf, size_t rxlen);
34141cc406Sopenharmony_ci
35141cc406Sopenharmony_ciSANE_Status
36141cc406Sopenharmony_cie2_recv_info_block(Epson_Scanner * s, unsigned char *scanner_status,
37141cc406Sopenharmony_ci		       size_t info_size, size_t * payload_size);
38141cc406Sopenharmony_ci
39141cc406Sopenharmony_ciSANE_Status
40141cc406Sopenharmony_cie2_cmd_info_block(SANE_Handle handle, unsigned char *params,
41141cc406Sopenharmony_ci		      unsigned char params_len, size_t reply_len,
42141cc406Sopenharmony_ci		      unsigned char **buf, size_t * buf_len);
43141cc406Sopenharmony_ci
44141cc406Sopenharmony_ciSANE_Status e2_ack(Epson_Scanner * s);
45141cc406Sopenharmony_ciSANE_Status e2_ack_next(Epson_Scanner * s, size_t reply_len);
46141cc406Sopenharmony_ciSANE_Status e2_cancel(Epson_Scanner * s);
47141cc406Sopenharmony_ci
48141cc406Sopenharmony_ciSANE_Status
49141cc406Sopenharmony_cie2_esc_cmd(Epson_Scanner * s, unsigned char cmd, unsigned char val);
50141cc406Sopenharmony_ci#endif /* epson2_io_h */
51