summaryrefslogtreecommitdiff
path: root/backend/niash_xfer.h
diff options
context:
space:
mode:
Diffstat (limited to 'backend/niash_xfer.h')
-rw-r--r--backend/niash_xfer.h95
1 files changed, 95 insertions, 0 deletions
diff --git a/backend/niash_xfer.h b/backend/niash_xfer.h
new file mode 100644
index 0000000..b325240
--- /dev/null
+++ b/backend/niash_xfer.h
@@ -0,0 +1,95 @@
+/*
+ Copyright (C) 2001 Bertrik Sikken (bertrik@zonnet.nl)
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ $Id$
+*/
+
+/*
+ Provides a simple interface to read and write data from the scanner,
+ without any knowledge whether it's a parallel or USB scanner
+*/
+
+#ifndef _NIASH_XFER_H_
+#define _NIASH_XFER_H_
+
+#include <stdio.h> /* for FILE * */
+
+/* register codes for the USB - IEEE1284 bridge */
+#define USB_SETUP 0x82
+#define EPP_ADDR 0x83
+#define EPP_DATA_READ 0x84
+#define EPP_DATA_WRITE 0x85
+#define SPP_STATUS 0x86
+#define SPP_CONTROL 0x87
+#define SPP_DATA 0x88
+
+
+typedef enum
+{
+ eUnknownModel = 0,
+ eHp3300c,
+ eHp3400c,
+ eHp4300c,
+ eAgfaTouch
+} EScannerModel;
+
+
+typedef struct
+{
+ char *pszVendor;
+ char *pszName;
+ int iVendor;
+ int iProduct;
+ EScannerModel eModel;
+} TScannerModel;
+
+
+typedef int (TFnReportDevice) (TScannerModel * pModel,
+ const char *pszDeviceName);
+
+
+/* Creates our own DBG definitions, externs are define in main.c*/
+#ifndef WITH_NIASH
+#define DBG fprintf
+extern FILE *DBG_MSG;
+extern FILE *DBG_ERR;
+extern FILE *BG_ASSERT;
+#endif /* NO WITH_NIASH */
+
+/* we do not make data prototypes */
+#ifndef WITH_NIASH
+/* list of supported models, the actual list is in niash_xfer.c */
+extern TScannerModel ScannerModels[];
+#endif /* NO WITH_NIASH */
+
+STATIC void NiashXferInit (TFnReportDevice * pfnReport);
+STATIC int NiashXferOpen (const char *pszName, EScannerModel * peModel);
+STATIC void NiashXferClose (int iXferHandle);
+
+STATIC void NiashWriteReg (int iXferHandle, unsigned char bReg,
+ unsigned char bData);
+STATIC void NiashReadReg (int iXferHandle, unsigned char bReg,
+ unsigned char *pbData);
+STATIC void NiashWriteBulk (int iXferHandle, unsigned char *pabBuf,
+ int iSize);
+STATIC void NiashReadBulk (int iXferHandle, unsigned char *pabBuf, int iSize);
+STATIC void NiashWakeup (int iXferHandle);
+
+STATIC SANE_Bool MatchUsbDevice (int iVendor, int iProduct,
+ TScannerModel ** ppeModel);
+
+#endif /* _NIASH_XFER_H_ */