[sane-devel] SANE2 proposal
Henning Meier-Geinitz
henning at meier-geinitz.de
Mon Apr 15 19:59:55 BST 2002
Hi,
On Sun, Apr 14, 2002 at 10:45:21PM +0200, Oliver Rauch wrote:
> Henning Meier-Geinitz wrote:
>
> > Some questions and comments that came to my mind while reading the
> > standard the first time (so I may have missed something):
> >
> > * 3.2 Image data format and 3.2.1 Image transmission:
> > The radical change in frame types and frame transmission should be
> > mentioned earlier in the text.
>
> Suggestions are welcome.
Ok. I append a LaTeX code for a revised chapter "Image data format". I
mostly moved paragraphs around. I removed the exact descriptions for
the old frame types. Added references to sane_get_parameters. Added
definition of the order of bits in 1-bit modes.
What do you think about it?
> > We don't know if all the information
> > about 1, 8, 16 bits per sample are true for some MIME format, do we?
>
> May be correct. Possibly the value depth makes no sense in MIME format.
I moved this part to SANE_FRAME_RAW.
> > I'm not sure if we should even mention the old SANE1 frame types.
> > If someone really wants to use them, he should looak at the SANE1
> > standard. Or is tehre a special reason for this?
>
> Once is to tell why values 5 and 6 are used for SANE2 frames,
> onther thing is the idea that a frontend may decide to support
> SANE1 and SANE2 backends.
That's ok. But I don't think we should describe all the old data
structures in detail in SANE 2. The frontend implementor has to read
the old standard anyway (e.g. for the changed sane_open() call).
> It also would be possible to start from 0 and remove the SANE1
> frame types. But this way it would be harder to write a
> SANE1+SANE2 frontend.
> This is one of the points that have to be discussed. May be
> it makes more sense to remove all SANE1 things.
Mention that the types were used by version 1 and add a "don't use
flag". Not more.
> >
> > Add a reference to the chapter about sane_get_parameters fort the exact
> > meaning of formatdesc.
>
> There is a describing point formatdesc in sane_get_parameters. What
> do you think about?
That's ok. I just wanted a link to that desription (\ref{some_section}).
> > * SANE_Device.email_backend_author: I'm not sure, if this really
> > belongs into the structure (and not into the man page and HTML page).
> > If it's in the code, I would prefer to also have the name of the
> > author in this entry. This makes it easier to find him when the
> > email address doesn't exist any longer.
>
> The email address should look like this:
>
> Oliver Rauch <Oliver.Rauch at XSane.org>
Ok, better explicitely talk about the name.
> it makes sense to put the email address into the backend because
> if someone uses a backend via network he may not have the manpage
> of the backend.
Ok. Maybe also a URL to the backend homepage?
> > * SANE_Device.device_location: I don't understand this one. Which
> > location? My device is on the table 1.5m to the right of me :-)
> > Do you mean the backend? A URL to the vendor? Or a path name?
> > And why should it be read from the config file (the backend doesn't
> > even need one and I'm not sure if we should mention this).
>
> No, I think about a real physical location.
> Imagine you are at work or in the university and 200 computers have
> access to a scanner via network, then it is necessary that a user
> can find out where he finds the scanner, so the entry could look like
> this:
>
> building 93, 2nd plane, room 2113
Ah, ok. Then my first guess wasn't that wrong. Maybe just add your
example to the descriptions, that makes it pretty clear.
> > * SANE_Device.backend_capability_flags: Can you give an example for
> > such a flag and what the frontend should do with it?
>
> This is planned for future extensions.
> Let?s say we add a new feature that is not defined in the sane-2.0.0
> standard (e.g. audio support for a camera) then it is necessary that
> the backend can tell te frontend if special features are supported or
> not.
But the features must be supported by some addition function or frame
type in this case, needn't it?
> > * 4.2.10 InternationAlization (missing "a").
> > Be clear. "Should" is should. There is no "preferrable" necessary.
> > Maybe we should cite the RFCs' meaning of "MUST" and "SHOULD"
> > somewhere in the standard?
>
> We can write "must" but I do not want to force this here, it also does
> work when the backend is written in chineese and we have a chineese
> to english translation
Ok, then just use "should". I didn't like the "preferrable".
> > As an addition, we should make clear what can be changed in a
> > SANE_Option_Descriptor and when. Currently it must only be "vaild" and
> > the address stay the same. E.g. is the backend allowed to change the
> > type of option? Or only capabilities?
>
> I think it is allowed to change all in sane_control_option when
> SANE_INFO_RELOAD_OPTIONS is set - or am I wrong?
Be carefull. You can change the value and (at least I think so)
SANE_CAP_INACTIVE. You don't know if SANE_INFO_RELOAD_OPTIONS means
that the options are reloaded immediately. info can even be 0.
Even when sane_get_option_descriptor is actually called, it's
currently not allowed to change the returned address until sane_close().
The net backend had this bug until recently.
More information about the sane-devel
mailing list