[sane-devel] SANE2 proposal
    Frank Zago 
    fzago at greshamstorage.com
       
    Sun Apr 14 23:51:21 BST 2002
    
    
  
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.
    
    
More information about the sane-devel
mailing list