1 /* sane - Scanner Access Now Easy.
2 
3    Copyright (C) 2019 Povilas Kanapickas <povilas@radix.lt>
4 
5    This file is part of the SANE package.
6 
7    This program is free software; you can redistribute it and/or
8    modify it under the terms of the GNU General Public License as
9    published by the Free Software Foundation; either version 2 of the
10    License, or (at your option) any later version.
11 
12    This program is distributed in the hope that it will be useful, but
13    WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15    General Public License for more details.
16 
17    You should have received a copy of the GNU General Public License
18    along with this program.  If not, see <https://www.gnu.org/licenses/>.
19 
20    As a special exception, the authors of SANE give permission for
21    additional uses of the libraries contained in this release of SANE.
22 
23    The exception is that, if you link a SANE library with other files
24    to produce an executable, this does not by itself cause the
25    resulting executable to be covered by the GNU General Public
26    License.  Your use of that executable is in no way restricted on
27    account of linking the SANE library code into it.
28 
29    This exception does not, however, invalidate any other reasons why
30    the executable file might be covered by the GNU General Public
31    License.
32 
33    If you submit changes to SANE to the maintainers to be included in
34    a subsequent release, you agree by submitting the changes that
35    those changes may be distributed with this exception intact.
36 
37    If you write modifications of your own for SANE, it is your choice
38    whether to permit this exception to apply to your modifications.
39    If you do not wish that, delete this exception notice.
40 */
41 
42 #ifndef BACKEND_GENESYS_FWD_H
43 #define BACKEND_GENESYS_FWD_H
44 
45 namespace genesys {
46 
47 // calibration.h
48 struct Genesys_Calibration_Cache;
49 
50 // command_set.h
51 class CommandSet;
52 
53 // device.h
54 struct Genesys_Gpo;
55 struct MethodResolutions;
56 struct Genesys_Model;
57 struct Genesys_Device;
58 
59 // error.h
60 class DebugMessageHelper;
61 class SaneException;
62 
63 // genesys.h
64 class GenesysButton;
65 struct Genesys_Scanner;
66 
67 // image.h
68 class Image;
69 
70 // image_buffer.h
71 class ImageBuffer;
72 
73 // image_pipeline.h
74 class ImagePipelineNode;
75 // ImagePipelineNode* skipped
76 class ImagePipelineStack;
77 
78 // image_pixel.h
79 struct Pixel;
80 struct RawPixel;
81 
82 // low.h
83 struct UsbDeviceEntry;
84 
85 // motor.h
86 struct Genesys_Motor;
87 struct MotorSlope;
88 struct MotorProfile;
89 struct MotorSlopeTable;
90 
91 // register.h
92 class Genesys_Register_Set;
93 struct GenesysRegisterSetState;
94 
95 // row_buffer.h
96 class RowBuffer;
97 
98 // usb_device.h
99 class IUsbDevice;
100 class UsbDevice;
101 
102 // scanner_interface.h
103 class ScannerInterface;
104 class ScannerInterfaceUsb;
105 class TestScannerInterface;
106 
107 // sensor.h
108 struct GenesysFrontendLayout;
109 struct Genesys_Frontend;
110 struct SensorExposure;
111 struct Genesys_Sensor;
112 
113 // settings.h
114 struct Genesys_Settings;
115 struct SetupParams;
116 struct ScanSession;
117 
118 // value_filter.h
119 template<class T> class ValueFilter;
120 template<class T> class ValueFilterAny;
121 
122 // test_usb_device.h
123 class TestUsbDevice;
124 
125 } // namespace genesys
126 
127 #endif
128