kopia lustrzana https://gitlab.com/sane-project/backends
Fixed the "three-valued boolean" bug
rodzic
448ba7e84d
commit
17e9115fdd
|
@ -1,3 +1,8 @@
|
||||||
|
2007-01-20 Mattias Ellert <mattias.ellert@tsl.uu.se>
|
||||||
|
|
||||||
|
* backend/canon.c, backend/canon-sane.c:
|
||||||
|
Fixed the "three-valued boolean" bug
|
||||||
|
|
||||||
2007-01-20 Alessandro Zummo <a.zummo@towertech.it>
|
2007-01-20 Alessandro Zummo <a.zummo@towertech.it>
|
||||||
|
|
||||||
* sanei/sanei_tcp.c: added a missing include
|
* sanei/sanei_tcp.c: added a missing include
|
||||||
|
|
|
@ -371,8 +371,6 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
|
||||||
*(SANE_Word *) val = s->val[option].w;
|
*(SANE_Word *) val = s->val[option].w;
|
||||||
DBG (21, "value for option %s: %d\n", option_name[option],
|
DBG (21, "value for option %s: %d\n", option_name[option],
|
||||||
s->val[option].w);
|
s->val[option].w);
|
||||||
if (info)
|
|
||||||
*info |= SANE_INFO_RELOAD_PARAMS;
|
|
||||||
return (SANE_STATUS_GOOD);
|
return (SANE_STATUS_GOOD);
|
||||||
|
|
||||||
case OPT_GAMMA_VECTOR:
|
case OPT_GAMMA_VECTOR:
|
||||||
|
@ -435,33 +433,10 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
|
||||||
case OPT_TPU_DCM:
|
case OPT_TPU_DCM:
|
||||||
case OPT_TPU_FILMTYPE:
|
case OPT_TPU_FILMTYPE:
|
||||||
case OPT_MODE:
|
case OPT_MODE:
|
||||||
strcpy (val, s->val[option].s);
|
|
||||||
if (info)
|
|
||||||
*info |= SANE_INFO_RELOAD_PARAMS;
|
|
||||||
DBG (21, "value for option %s: %s\n", option_name[option],
|
|
||||||
s->val[option].s);
|
|
||||||
return (SANE_STATUS_GOOD);
|
|
||||||
|
|
||||||
case OPT_NEGATIVE:
|
case OPT_NEGATIVE:
|
||||||
strcpy (val, s->val[option].s);
|
|
||||||
if (info)
|
|
||||||
*info |= SANE_INFO_RELOAD_PARAMS | SANE_INFO_RELOAD_OPTIONS;
|
|
||||||
DBG (21, "value for option %s: %s\n", option_name[option],
|
|
||||||
s->val[option].s);
|
|
||||||
return (SANE_STATUS_GOOD);
|
|
||||||
|
|
||||||
case OPT_NEGATIVE_TYPE:
|
case OPT_NEGATIVE_TYPE:
|
||||||
strcpy (val, s->val[option].s);
|
|
||||||
if (info)
|
|
||||||
*info |= SANE_INFO_RELOAD_PARAMS | SANE_INFO_RELOAD_OPTIONS;
|
|
||||||
DBG (21, "value for option %s: %s\n", option_name[option],
|
|
||||||
s->val[option].s);
|
|
||||||
return (SANE_STATUS_GOOD);
|
|
||||||
|
|
||||||
case OPT_SCANNING_SPEED:
|
case OPT_SCANNING_SPEED:
|
||||||
strcpy (val, s->val[option].s);
|
strcpy (val, s->val[option].s);
|
||||||
if (info)
|
|
||||||
*info |= SANE_INFO_RELOAD_PARAMS | SANE_INFO_RELOAD_OPTIONS;
|
|
||||||
DBG (21, "value for option %s: %s\n", option_name[option],
|
DBG (21, "value for option %s: %s\n", option_name[option],
|
||||||
s->val[option].s);
|
s->val[option].s);
|
||||||
return (SANE_STATUS_GOOD);
|
return (SANE_STATUS_GOOD);
|
||||||
|
@ -663,16 +638,14 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
|
||||||
s->hw->adf.Priority |= 0x03; /* flatbed mode */
|
s->hw->adf.Priority |= 0x03; /* flatbed mode */
|
||||||
s->hw->adf.Feeder &= 0x00; /* autofeed off (default) */
|
s->hw->adf.Feeder &= 0x00; /* autofeed off (default) */
|
||||||
s->hw->adf.Status = ADF_STAT_DISABLED;
|
s->hw->adf.Status = ADF_STAT_DISABLED;
|
||||||
s->val[option].w = SANE_TRUE;
|
|
||||||
} /* if it isn't connected, don't bother fixing */
|
} /* if it isn't connected, don't bother fixing */
|
||||||
return SANE_STATUS_GOOD;
|
return SANE_STATUS_GOOD;
|
||||||
|
|
||||||
case OPT_TPU_ON:
|
case OPT_TPU_ON:
|
||||||
if (s->val[OPT_TPU_ON].w == TPU_STAT_INACTIVE) /* switch on */
|
s->val[option].w = *(SANE_Word *) val;
|
||||||
|
if (s->val[option].w) /* switch on */
|
||||||
{
|
{
|
||||||
s->val[OPT_TPU_ON].w = TPU_STAT_ACTIVE;
|
s->hw->tpu.Status = TPU_STAT_ACTIVE;
|
||||||
s->opt[OPT_TPU_ON].title = SANE_I18N("Turn off the transparency "
|
|
||||||
"unit");
|
|
||||||
s->opt[OPT_TPU_TRANSPARENCY].cap &=
|
s->opt[OPT_TPU_TRANSPARENCY].cap &=
|
||||||
(s->hw->tpu.ControlMode == 3) ? ~SANE_CAP_INACTIVE : ~0;
|
(s->hw->tpu.ControlMode == 3) ? ~SANE_CAP_INACTIVE : ~0;
|
||||||
s->opt[OPT_TPU_FILMTYPE].cap &=
|
s->opt[OPT_TPU_FILMTYPE].cap &=
|
||||||
|
@ -680,9 +653,7 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
|
||||||
}
|
}
|
||||||
else /* switch off */
|
else /* switch off */
|
||||||
{
|
{
|
||||||
s->val[OPT_TPU_ON].w = TPU_STAT_INACTIVE;
|
s->hw->tpu.Status = TPU_STAT_INACTIVE;
|
||||||
s->opt[OPT_TPU_ON].title = SANE_I18N("Turn on the transparency "
|
|
||||||
"unit");
|
|
||||||
s->opt[OPT_TPU_TRANSPARENCY].cap |= SANE_CAP_INACTIVE;
|
s->opt[OPT_TPU_TRANSPARENCY].cap |= SANE_CAP_INACTIVE;
|
||||||
s->opt[OPT_TPU_FILMTYPE].cap |= SANE_CAP_INACTIVE;
|
s->opt[OPT_TPU_FILMTYPE].cap |= SANE_CAP_INACTIVE;
|
||||||
}
|
}
|
||||||
|
@ -1186,7 +1157,7 @@ sane_start (SANE_Handle handle)
|
||||||
|
|
||||||
s->scanning = SANE_FALSE;
|
s->scanning = SANE_FALSE;
|
||||||
|
|
||||||
if ((s->hw->adf.Status == SANE_TRUE)
|
if ((s->hw->adf.Status != ADF_STAT_NONE)
|
||||||
&& (s->val[OPT_FLATBED_ONLY].w != SANE_TRUE)
|
&& (s->val[OPT_FLATBED_ONLY].w != SANE_TRUE)
|
||||||
&& (s->hw->adf.Problem != 0))
|
&& (s->hw->adf.Problem != 0))
|
||||||
{
|
{
|
||||||
|
@ -1208,7 +1179,7 @@ sane_start (SANE_Handle handle)
|
||||||
}
|
}
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
else if ((s->hw->adf.Status == SANE_TRUE)
|
else if ((s->hw->adf.Status != ADF_STAT_NONE)
|
||||||
&& (s->val[OPT_FLATBED_ONLY].w == SANE_TRUE))
|
&& (s->val[OPT_FLATBED_ONLY].w == SANE_TRUE))
|
||||||
{
|
{
|
||||||
set_adf_mode (s->fd, s->hw->adf.Priority);
|
set_adf_mode (s->fd, s->hw->adf.Priority);
|
||||||
|
|
|
@ -244,7 +244,7 @@ get_tpu_stat (int fd, CANON_Device * dev)
|
||||||
DBG (3, "scan mode control byte[%d] = %d\n", (int) i, tbuf[i]);
|
DBG (3, "scan mode control byte[%d] = %d\n", (int) i, tbuf[i]);
|
||||||
dev->tpu.Status = (tbuf[2 + 4 + 5] >> 7) ?
|
dev->tpu.Status = (tbuf[2 + 4 + 5] >> 7) ?
|
||||||
TPU_STAT_INACTIVE : TPU_STAT_NONE;
|
TPU_STAT_INACTIVE : TPU_STAT_NONE;
|
||||||
if (dev->tpu.Status == SANE_TRUE) /* TPU available */
|
if (dev->tpu.Status != TPU_STAT_NONE) /* TPU available */
|
||||||
{
|
{
|
||||||
dev->tpu.Status = (tbuf[2 + 4 + 5] && 0x04) ?
|
dev->tpu.Status = (tbuf[2 + 4 + 5] && 0x04) ?
|
||||||
TPU_STAT_INACTIVE : TPU_STAT_ACTIVE;
|
TPU_STAT_INACTIVE : TPU_STAT_ACTIVE;
|
||||||
|
@ -291,7 +291,7 @@ get_adf_stat (int fd, CANON_Device * dev)
|
||||||
dev->adf.Status = (abuf[ADF_Status] & ADF_NOT_PRESENT) ?
|
dev->adf.Status = (abuf[ADF_Status] & ADF_NOT_PRESENT) ?
|
||||||
ADF_STAT_NONE : ADF_STAT_INACTIVE;
|
ADF_STAT_NONE : ADF_STAT_INACTIVE;
|
||||||
|
|
||||||
if (dev->adf.Status == SANE_TRUE) /* ADF available / INACTIVE */
|
if (dev->adf.Status != ADF_STAT_NONE) /* ADF available / INACTIVE */
|
||||||
{
|
{
|
||||||
dev->adf.Status = (abuf[ADF_Status] & ADF_PROBLEM) ?
|
dev->adf.Status = (abuf[ADF_Status] & ADF_PROBLEM) ?
|
||||||
ADF_STAT_INACTIVE : ADF_STAT_ACTIVE;
|
ADF_STAT_INACTIVE : ADF_STAT_ACTIVE;
|
||||||
|
@ -1706,14 +1706,13 @@ init_options (CANON_Scanner * s)
|
||||||
|
|
||||||
/* Transparency Unit (FAU, Film Adapter Unit) */
|
/* Transparency Unit (FAU, Film Adapter Unit) */
|
||||||
s->opt[OPT_TPU_ON].name = "transparency-unit-on-off";
|
s->opt[OPT_TPU_ON].name = "transparency-unit-on-off";
|
||||||
s->opt[OPT_TPU_ON].title = (s->hw->tpu.Status == TPU_STAT_ACTIVE)
|
s->opt[OPT_TPU_ON].title = SANE_I18N("Transparency unit");
|
||||||
? SANE_I18N("Turn off the transparency unit")
|
|
||||||
: SANE_I18N("Turn on the transparency unit");
|
|
||||||
s->opt[OPT_TPU_ON].desc = SANE_I18N("Switch on/off the transparency unit "
|
s->opt[OPT_TPU_ON].desc = SANE_I18N("Switch on/off the transparency unit "
|
||||||
"(FAU, film adapter unit)");
|
"(FAU, film adapter unit)");
|
||||||
s->opt[OPT_TPU_ON].type = SANE_TYPE_BOOL;
|
s->opt[OPT_TPU_ON].type = SANE_TYPE_BOOL;
|
||||||
s->opt[OPT_TPU_ON].unit = SANE_UNIT_NONE;
|
s->opt[OPT_TPU_ON].unit = SANE_UNIT_NONE;
|
||||||
s->val[OPT_TPU_ON].w = s->hw->tpu.Status;
|
s->val[OPT_TPU_ON].w =
|
||||||
|
(s->hw->tpu.Status == TPU_STAT_ACTIVE) ? SANE_TRUE : SANE_FALSE;
|
||||||
s->opt[OPT_TPU_ON].cap |=
|
s->opt[OPT_TPU_ON].cap |=
|
||||||
(s->hw->tpu.Status != TPU_STAT_NONE) ? 0 : SANE_CAP_INACTIVE;
|
(s->hw->tpu.Status != TPU_STAT_NONE) ? 0 : SANE_CAP_INACTIVE;
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue