1141cc406Sopenharmony_ciTo do:
2141cc406Sopenharmony_ci======
3141cc406Sopenharmony_ci- implement coarse calibration to determine settings for analog-front-end
4141cc406Sopenharmony_ci  All CCDs encountered so far seem to need about the same settings however.
5141cc406Sopenharmony_ci
6141cc406Sopenharmony_ci- Store analog calibration data somewhere.
7141cc406Sopenharmony_ci  Use currently used values as default.
8141cc406Sopenharmony_ci
9141cc406Sopenharmony_ci- Suggestions by Marcin Cieslak:
10141cc406Sopenharmony_ci	- clean up structures
11141cc406Sopenharmony_ci	- clean up namespace
12141cc406Sopenharmony_ci	- clean up source formatting ('indent --gnu' ?)
13141cc406Sopenharmony_ci
14141cc406Sopenharmony_ci
15141cc406Sopenharmony_ci- implement real calibration, using 12 bit data at 600 dpi
16141cc406Sopenharmony_ci  instead of 8 bit data.at 150 dpi.
17141cc406Sopenharmony_ci  -> is now at 600 dpi, not yet at 12 bit
18141cc406Sopenharmony_ci
19141cc406Sopenharmony_ci- design a mechanism to set the scan and calibration areas
20141cc406Sopenharmony_ci  a) part of HWProps structure, or
21141cc406Sopenharmony_ci  b) set by user at first scan
22141cc406Sopenharmony_ci
23141cc406Sopenharmony_ci- further investigate scanner registers
24141cc406Sopenharmony_ci  a) study backtracking register more
25141cc406Sopenharmony_ci  b) identify bits in bit-oriented registers.
26141cc406Sopenharmony_ci
27141cc406Sopenharmony_ci- add more error checking ('sanity checking') on parameters
28141cc406Sopenharmony_ci
29141cc406Sopenharmony_ci- figure out what the USB interrupts mean that sometimes occur.
30141cc406Sopenharmony_ci
31141cc406Sopenharmony_ci
32141cc406Sopenharmony_ci
33141cc406Sopenharmony_ciDone
34141cc406Sopenharmony_ci====
35141cc406Sopenharmony_ci
36141cc406Sopenharmony_ci- Get rid of mytypes.h / fix types
37141cc406Sopenharmony_ci  Now an int is implicitly assumed to be 32 bit.
38141cc406Sopenharmony_ci
39141cc406Sopenharmony_ci- make backend comply with tstbackend
40141cc406Sopenharmony_ci-> all externs and publics removed when compiling towards sane
41141cc406Sopenharmony_ci
42141cc406Sopenharmony_ci- implement sane_cancel properly
43141cc406Sopenharmony_ci-> done by ullsig
44141cc406Sopenharmony_ci
45141cc406Sopenharmony_ci- implement timing mechanism for scanner lamp
46141cc406Sopenharmony_ci  so scanning can only start if the lamp was already on for 30 seconds
47141cc406Sopenharmony_ciPossible implementation:
48141cc406Sopenharmony_ciOn startup: if lamp is off, turn it on and start timer
49141cc406Sopenharmony_ciOn scan: if lamp is off, turn it on and start timer. Wait for timer expiry.
50141cc406Sopenharmony_ciOn exit: if scanner chip is niash00012 then turn off lamp,
51141cc406Sopenharmony_ci  otherwise let the scanner turn it off automatically
52141cc406Sopenharmony_ci-> Implemented by Ullrich Sigwanz
53141cc406Sopenharmony_ci
54141cc406Sopenharmony_ci- try out parallel port scanning on HP3400/4300
55141cc406Sopenharmony_ci-> parallel port support will be dropped, no people to test/develop it
56141cc406Sopenharmony_ci
57141cc406Sopenharmony_ci- investigate vertical resolution setting of hp3400/4300.
58141cc406Sopenharmony_ci-> experiment with the motor table, formula is already known to generate it
59141cc406Sopenharmony_ci-> 600 dpi is possible by doubling most values in the table
60141cc406Sopenharmony_ci-> 150 dpi can be done by using register 0x06 to skip every other line
61141cc406Sopenharmony_ci
62141cc406Sopenharmony_ci- Add separate gamma tables for R, G, B. This should be easy (look at how
63141cc406Sopenharmony_ci  other backends do it) but is not really required yet.
64141cc406Sopenharmony_ci-> not required
65