SANEI  1.2.1.194-728ca
sanei_net.h
1 /* sane - Scanner Access Now Easy.
2  Copyright (C) 1997-1999 David Mosberger-Tang and Andreas Beck
3  This file is part of the SANE package.
4 
5  This file is in the public domain. You may use and modify it as
6  you see fit, as long as this copyright message is included and
7  that there is an indication as to what modifications have been
8  made (if any).
9 
10  SANE is distributed in the hope that it will be useful, but WITHOUT
11  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12  FITNESS FOR A PARTICULAR PURPOSE.
13 
14  This file declares SANE application interface. See the SANE
15  standard for a detailed explanation of the interface. */
16 
17 #ifndef sanei_net_h
18 #define sanei_net_h
19 
20 #include <sane/sane.h>
21 #include <sane/sanei_wire.h>
22 
23 #define SANEI_NET_PROTOCOL_VERSION 3
24 
25 typedef enum
26  {
27  SANE_NET_LITTLE_ENDIAN = 0x1234,
28  SANE_NET_BIG_ENDIAN = 0x4321
29  }
30 SANE_Net_Byte_Order;
31 
32 typedef enum
33  {
34  SANE_NET_INIT = 0,
35  SANE_NET_GET_DEVICES,
36  SANE_NET_OPEN,
37  SANE_NET_CLOSE,
38  SANE_NET_GET_OPTION_DESCRIPTORS,
39  SANE_NET_CONTROL_OPTION,
40  SANE_NET_GET_PARAMETERS,
41  SANE_NET_START,
42  SANE_NET_CANCEL,
43  SANE_NET_AUTHORIZE,
44  SANE_NET_EXIT
45  }
46 SANE_Net_Procedure_Number;
47 
48 typedef struct
49  {
50  SANE_Word version_code;
51  SANE_String username;
52  }
53 SANE_Init_Req;
54 
55 typedef struct
56  {
57  SANE_Status status;
58  SANE_Word version_code;
59  }
60 SANE_Init_Reply;
61 
62 typedef struct
63  {
64  SANE_Status status;
65  SANE_Device **device_list;
66  }
67 SANE_Get_Devices_Reply;
68 
69 typedef struct
70  {
71  SANE_Status status;
72  SANE_Word handle;
73  SANE_String resource_to_authorize;
74  }
75 SANE_Open_Reply;
76 
77 typedef struct
78  {
79  SANE_Word num_options;
80  SANE_Option_Descriptor **desc;
81  }
82 SANE_Option_Descriptor_Array;
83 
84 typedef struct
85  {
86  SANE_Word handle;
87  SANE_Word option;
88  SANE_Word action;
89  SANE_Word value_type;
90  SANE_Word value_size;
91  void *value;
92  }
93 SANE_Control_Option_Req;
94 
95 typedef struct
96  {
97  SANE_Status status;
98  SANE_Word info;
99  SANE_Word value_type;
100  SANE_Word value_size;
101  void *value;
102  SANE_String resource_to_authorize;
103  }
104 SANE_Control_Option_Reply;
105 
106 typedef struct
107  {
108  SANE_Status status;
109  SANE_Parameters params;
110  }
111 SANE_Get_Parameters_Reply;
112 
113 typedef struct
114  {
115  SANE_Status status;
116  SANE_Word port;
117  SANE_Word byte_order;
118  SANE_String resource_to_authorize;
119  }
120 SANE_Start_Reply;
121 
122 typedef struct
123  {
124  SANE_String resource;
125  SANE_String username;
126  SANE_String password;
127  }
128 SANE_Authorization_Req;
129 
130 extern void sanei_w_init_req (Wire *w, SANE_Init_Req *req);
131 extern void sanei_w_init_reply (Wire *w, SANE_Init_Reply *reply);
132 extern void sanei_w_get_devices_reply (Wire *w, SANE_Get_Devices_Reply *reply);
133 extern void sanei_w_open_reply (Wire *w, SANE_Open_Reply *reply);
134 extern void sanei_w_option_descriptor_array (Wire *w,
135  SANE_Option_Descriptor_Array *opt);
136 extern void sanei_w_control_option_req (Wire *w, SANE_Control_Option_Req *req);
137 extern void sanei_w_control_option_reply (Wire *w,
138  SANE_Control_Option_Reply *reply);
139 extern void sanei_w_get_parameters_reply (Wire *w,
140  SANE_Get_Parameters_Reply *reply);
141 extern void sanei_w_start_reply (Wire *w, SANE_Start_Reply *reply);
142 extern void sanei_w_authorization_req (Wire *w, SANE_Authorization_Req *req);
143 
144 #endif /* sanei_net_h */