[sane-devel] [BUG] Duplicate SANE_NAME in saneopts.h
m. allan noah
kitno455 at gmail.com
Thu Jul 10 03:57:10 UTC 2008
i actually just found this comment in maxview, so other folks have
noticed this too...
//actually there seems to be no difference between
//resolution and x-resolution; see saneopts.h
allan
On 7/9/08, Olaf Meeuwissen <olaf.meeuwissen at avasys.jp> wrote:
> "m. allan noah" <kitno455 at gmail.com> writes:
>
> > On 7/8/08, Olaf Meeuwissen <olaf.meeuwissen at avasys.jp> wrote:
> >> Checking out why setting X/Y resolutions independently didn't quite
> >> work as expected, I discovered that saneopts.h has this:
> >>
> >> #define SANE_NAME_SCAN_RESOLUTION "resolution"
> >> #define SANE_NAME_SCAN_X_RESOLUTION "resolution"
> >> #define SANE_NAME_SCAN_Y_RESOLUTION "y-resolution"
> >>
> >> That means that trying to set the X resolution always does the same
> >> thing as setting the scan resolution. I think that is incorrect in
> >> the general case and suggest the above gets changed to:
> >>
> >> #define SANE_NAME_SCAN_RESOLUTION "resolution"
> >> #define SANE_NAME_SCAN_X_RESOLUTION "x-resolution"
> >> #define SANE_NAME_SCAN_Y_RESOLUTION "y-resolution"
> >>
> >> So that backend implementations can distinguish these cases if they
> >> want to. The corresponding descriptions for these option hint that
> >> setting the image's scan resolution is not necessarily the same as
> >> setting the horizontal scan resolution.
> >>
> >> In my particular situation, I have a use case where it makes sense to
> >> use SANE_NAME_SCAN_RESOLUTION with one set of allowed resolutions and
> >> different sets of allowed resolutions for the individual horizontal
> >> and vertical resolution settings.
> >>
> >> On a more general note, there is no point in having different option
> >> name macros that resolve to the same name. All of the SANE_NAME_*
> >> macros should be unique. At the moment (sane-backends-1.0.19), only
> >> SANE_NAME_SCAN_X_RESOLUTION is not unique.
> >>
> >> I don't think that the suggested change will break any of the current
> >> backends and frontends, but would like to ask everyone to take a look
> >> and comment on my suggestion before I file a bug report.
> >
> > i agree with your assessment, but i am not sure i can envision a use
> > case with all three controls active at the same time. or, are you
> > going to have a locked/unlocked choice that switches between the two
> > sets?
>
>
> Not sure I can either, at least not for a sensible use case. But then
> again, sometimes there are rather senseless use cases.
>
> In my particular case, I can query a number of devices for supported
> resolutions in two ways. One way gives a list of resolutions. These
> would correspond to the SANE_NAME_SCAN_RESOLUTION scenario, that is,
> horizontal and vertical resolutions are (and should be) identical.
> The other way gives a list with resolutions for both horizontal and
> vertical directions, corresponding to the SANE_NAME_SCAN_?_RESOLUTION
> scenario, where both resolutions can be selected independently. Fact
> is that all three list may contain values that are on neither of the
> other two lists.
>
> So I could end up with these (hypothetical) resolution lists
>
> SCAN_RESOLUTION : 100, 200, 300
> SCAN_X_RESOLUTION: 80, 150, 360
> SCAN_Y_RESOLUTION: 120, 240, 480
>
> and the following set of valid resolution settings:
>
> (100,100)
> (200,200)
> (300,300)
>
> ( 80,120), ( 80,240), ( 80,480)
> (150,120), (150,240), (150,480)
> (360,120), (360,240), (360,480)
>
> There is no way that I can merge the SCAN_RESOLUTION with the other
> two options (or the other way) around that restricts a frontend to
> these resolution sets.
>
> # Yes, I'm aware backends may set a value other than that requested
> # and I have seen the SANE_NAME_RESOLUTION_BIND option.
>
> Whatever the sensibility of my particular use case, having two macros
> expand to the same string for options that correspond to *different*
> things is not a good idea.
>
>
> Hope this helps,
> --
> Olaf Meeuwissen FLOSS Engineer -- AVASYS Corporation
> FSF Associate Member #1962 sign up at http://member.fsf.org/
>
--
"The truth is an offense, but not a sin"
More information about the sane-devel
mailing list