Thanks Frank, Replies are below your comments.
Frank Zago wrote: > Hi Fred, > > Good job. > > I have a few remarks about the the code: > - option are prefixed by LXK_ (eg LXK_OPT_SCAN_SIZE). Backends usually > don't use a prefix. This was a carry over from the Lexmark Linux developer's kit code, which I started from. I'll change it. > - size_list[] doesn't have A4 and other standard formats. You can get > some values at http://www.cl.cam.ac.uk/~mgk25/iso-paper.html I'll add this to my todo list, because adding more sizes will require more scan logs and more testing... > - in sane_start(), sane_read(), and probably other, you check whether > the handle is a valid one. While this is correct I think it's > overkill. The frontend should be trusted. Again, a carry over from the Lexmark code. I'll remove the checks. > - bytes_read in sane_read() should be a long instead of ssize_t to > avoid a cast. Will change. > - in lexmark-x1000.c, there 6 global variables (transfer_buffer, ...). > They should be per scanner instance. Same thing with at least eof, > x_dpi and y_dpi in lexmark.c. So, put them in the device record? > - shouldnt the lexmark copyright be in lexmark-x1000.c too? No, lexmark-x1100.c was entirely written by me. lexmark.h and lexmark.c were adapted from code in Lexmark's Linux development kit. > - unless you intend to add more code to read_buffer_is_empty(), get > rid of it. I know its unecessary, but I'd like to keep it. I did a lot of object oriented programming in school and some at work. I really like the data abstraction with this technique - the calling code doesn't need to know the implementation of the read buffer... > - you could replace "scan-size" with SANE_NAME_PAPER_SIZE which is > already used by 2 other backends. Will do. > > I also get the following warnings when I compile (target is x86_64): Thanks. For some reason I only get the 1st warming when I compile - same target. > > lexmark-x1100.c:59:1: warning: "BACKEND_NAME" redefined > <command line>:10:1: warning: this is the location of the previous > definition > lexmark-x1100.c: In function `x1100_read_scan_data': > lexmark-x1100.c:2359: warning: unsigned int format, different type arg > (arg 3) > lexmark-x1100.c:2360: warning: unsigned int format, different type arg > (arg 3) > lexmark-x1100.c:2361: warning: cast from pointer to integer of > different size > lexmark-x1100.c:2395: warning: unsigned int format, different type arg > (arg 3) > lexmark-x1100.c:2396: warning: unsigned int format, different type arg > (arg 3) > lexmark-x1100.c: In function `read_buffer_bytes_available': > lexmark-x1100.c:2728: warning: comparison between signed and unsigned > > > Regards, > Frank. >