Hi Oliver, Here are my comments:
- section 4.2.1 Is there any reason why SANE_Word can't be suppressed? SANE_Word and SANE_int are implemented the same and have close definitions. - section 4.2.7 (status type). The panasonic scanners scan a whole page before giving it back to the scanner. ie they must be able to cache the page. However if a high resolution is used, the internal memory isn't enough, the scan rejects the scan command with an insufficient memory error. SANE1/2 does not have a error status for that. Returning SANE_STATUS_NO_MEM is misleading because it is not the backend which is out of memory. What about adding a SANE_STATUS_SCANNER_OOM? Or adding several reserved error code for use by the backend (with a corresponding sane_strstatus() function)? - section 4.2.9 SANE_OPTION_IS_SETTABLE(cap) should add that the option must also be active. - section 4.2.9 A new macro SANE_OPTION_IS_GETTABLE(cap) could return SANE_TRUE is the option is active an readable. I needed one in my backend tester. Maybe some frontend also need it. #define SANE_OPTION_IS_GETTABLE(cap) (((cap) & (SANE_CAP_SOFT_DETECT | SANE_CAP_INACTIVE)) == SANE_CAP_SOFT_DETECT) - section 4.3.8 For SANE FRAME RAW, and possibly others, what is the endianness to use? - Some scanner can find and decode 5 or 10 barcodes per sheet. How can such a scanner transfer a decoded barcode? With a MIME type? - I'd like to have all the SANE functions (sane_init, sane_open, ...) declared in a structure. Only that structure would be exported. eg: static ... sane_open(...) static ... sane_init(...) backend_desc backendname_desc { /* backend entry points */ sane_open, sane_init, ... /* Backend info */ "backendname", 0, /* backend capabilities */ 6544, /* backend version */ ... /* Reserved fields */ NULL, ... 0, ... } backendname_desc; Some of the info here are from the SANE_Device structure. I don't think they belong there. I know that would be a big change. - well known options (eg "source") and well know option values (eg "Flatbed") should have a corresponding #define to avoid mispellings and ease translations. - the .desc format description should be added too, and expanded. I'd like to see an fcc id field. Frank.