kopia lustrzana https://gitlab.com/sane-project/backends
Fixed halftone pattern handling. The buffer was way too small. Option 0 has
an empty name. Better debug output for dev_cmd. Set size for group options to 0. Set size of halftone pattern to non 0. Henning Meier-Geinitz <henning@meier-geinitz.de>DEVEL_2_0_BRANCH-1
rodzic
8a3967bb03
commit
797a910e48
|
@ -46,7 +46,7 @@
|
||||||
|
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Mustek backend version */
|
/* Mustek backend version */
|
||||||
#define BUILD 118
|
#define BUILD 119
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
#include "../include/sane/config.h"
|
#include "../include/sane/config.h"
|
||||||
|
@ -585,8 +585,8 @@ dev_cmd (Mustek_Scanner * s, const void * src, size_t src_size,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DBG(5, "dev_cmd: finished: dst_size=%ld\n",
|
DBG(5, "dev_cmd: finished: dst_size=%ld, status=%s\n",
|
||||||
(long int) (dst_size ? *dst_size : 0));
|
(long int) (dst_size ? *dst_size : 0), sane_strstatus(status));
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4007,6 +4007,7 @@ init_options (Mustek_Scanner *s)
|
||||||
s->opt[i].cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
|
s->opt[i].cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
s->opt[OPT_NUM_OPTS].name = "";
|
||||||
s->opt[OPT_NUM_OPTS].title = SANE_TITLE_NUM_OPTIONS;
|
s->opt[OPT_NUM_OPTS].title = SANE_TITLE_NUM_OPTIONS;
|
||||||
s->opt[OPT_NUM_OPTS].desc = SANE_DESC_NUM_OPTIONS;
|
s->opt[OPT_NUM_OPTS].desc = SANE_DESC_NUM_OPTIONS;
|
||||||
s->opt[OPT_NUM_OPTS].type = SANE_TYPE_INT;
|
s->opt[OPT_NUM_OPTS].type = SANE_TYPE_INT;
|
||||||
|
@ -4018,6 +4019,7 @@ init_options (Mustek_Scanner *s)
|
||||||
s->opt[OPT_MODE_GROUP].desc = "";
|
s->opt[OPT_MODE_GROUP].desc = "";
|
||||||
s->opt[OPT_MODE_GROUP].type = SANE_TYPE_GROUP;
|
s->opt[OPT_MODE_GROUP].type = SANE_TYPE_GROUP;
|
||||||
s->opt[OPT_MODE_GROUP].cap = 0;
|
s->opt[OPT_MODE_GROUP].cap = 0;
|
||||||
|
s->opt[OPT_MODE_GROUP].size = 0;
|
||||||
s->opt[OPT_MODE_GROUP].constraint_type = SANE_CONSTRAINT_NONE;
|
s->opt[OPT_MODE_GROUP].constraint_type = SANE_CONSTRAINT_NONE;
|
||||||
|
|
||||||
/* scan mode */
|
/* scan mode */
|
||||||
|
@ -4154,6 +4156,7 @@ init_options (Mustek_Scanner *s)
|
||||||
s->opt[OPT_GEOMETRY_GROUP].desc = "";
|
s->opt[OPT_GEOMETRY_GROUP].desc = "";
|
||||||
s->opt[OPT_GEOMETRY_GROUP].type = SANE_TYPE_GROUP;
|
s->opt[OPT_GEOMETRY_GROUP].type = SANE_TYPE_GROUP;
|
||||||
s->opt[OPT_GEOMETRY_GROUP].cap = SANE_CAP_ADVANCED;
|
s->opt[OPT_GEOMETRY_GROUP].cap = SANE_CAP_ADVANCED;
|
||||||
|
s->opt[OPT_GEOMETRY_GROUP].size = 0;
|
||||||
s->opt[OPT_GEOMETRY_GROUP].constraint_type = SANE_CONSTRAINT_NONE;
|
s->opt[OPT_GEOMETRY_GROUP].constraint_type = SANE_CONSTRAINT_NONE;
|
||||||
|
|
||||||
/* top-left x */
|
/* top-left x */
|
||||||
|
@ -4201,6 +4204,7 @@ init_options (Mustek_Scanner *s)
|
||||||
s->opt[OPT_ENHANCEMENT_GROUP].desc = "";
|
s->opt[OPT_ENHANCEMENT_GROUP].desc = "";
|
||||||
s->opt[OPT_ENHANCEMENT_GROUP].type = SANE_TYPE_GROUP;
|
s->opt[OPT_ENHANCEMENT_GROUP].type = SANE_TYPE_GROUP;
|
||||||
s->opt[OPT_ENHANCEMENT_GROUP].cap = 0;
|
s->opt[OPT_ENHANCEMENT_GROUP].cap = 0;
|
||||||
|
s->opt[OPT_ENHANCEMENT_GROUP].size = 0;
|
||||||
s->opt[OPT_ENHANCEMENT_GROUP].constraint_type = SANE_CONSTRAINT_NONE;
|
s->opt[OPT_ENHANCEMENT_GROUP].constraint_type = SANE_CONSTRAINT_NONE;
|
||||||
|
|
||||||
/* brightness */
|
/* brightness */
|
||||||
|
@ -4402,7 +4406,7 @@ init_options (Mustek_Scanner *s)
|
||||||
s->opt[OPT_HALFTONE_PATTERN].title = SANE_TITLE_HALFTONE_PATTERN;
|
s->opt[OPT_HALFTONE_PATTERN].title = SANE_TITLE_HALFTONE_PATTERN;
|
||||||
s->opt[OPT_HALFTONE_PATTERN].desc = SANE_DESC_HALFTONE_PATTERN;
|
s->opt[OPT_HALFTONE_PATTERN].desc = SANE_DESC_HALFTONE_PATTERN;
|
||||||
s->opt[OPT_HALFTONE_PATTERN].type = SANE_TYPE_INT;
|
s->opt[OPT_HALFTONE_PATTERN].type = SANE_TYPE_INT;
|
||||||
s->opt[OPT_HALFTONE_PATTERN].size = 0;
|
s->opt[OPT_HALFTONE_PATTERN].size = 4;
|
||||||
s->opt[OPT_HALFTONE_PATTERN].cap |= SANE_CAP_INACTIVE;
|
s->opt[OPT_HALFTONE_PATTERN].cap |= SANE_CAP_INACTIVE;
|
||||||
s->opt[OPT_HALFTONE_PATTERN].constraint_type = SANE_CONSTRAINT_RANGE;
|
s->opt[OPT_HALFTONE_PATTERN].constraint_type = SANE_CONSTRAINT_RANGE;
|
||||||
s->opt[OPT_HALFTONE_PATTERN].constraint.range = &u8_range;
|
s->opt[OPT_HALFTONE_PATTERN].constraint.range = &u8_range;
|
||||||
|
@ -5354,6 +5358,9 @@ sane_open (SANE_String_Const devicename, SANE_Handle *handle)
|
||||||
s->pipe = -1;
|
s->pipe = -1;
|
||||||
s->hw = dev;
|
s->hw = dev;
|
||||||
s->ld.ld_line = 0;
|
s->ld.ld_line = 0;
|
||||||
|
s->halftone_pattern = malloc (8 * 8 * sizeof (SANE_Int));
|
||||||
|
if (!s->halftone_pattern)
|
||||||
|
return SANE_STATUS_NO_MEM;
|
||||||
init_options (s);
|
init_options (s);
|
||||||
|
|
||||||
/* insert newly opened handle into list of open handles: */
|
/* insert newly opened handle into list of open handles: */
|
||||||
|
@ -5400,7 +5407,8 @@ sane_close (SANE_Handle handle)
|
||||||
free (s->val[OPT_SOURCE].s);
|
free (s->val[OPT_SOURCE].s);
|
||||||
if (s->val[OPT_HALFTONE_DIMENSION].s)
|
if (s->val[OPT_HALFTONE_DIMENSION].s)
|
||||||
free (s->val[OPT_HALFTONE_DIMENSION].s);
|
free (s->val[OPT_HALFTONE_DIMENSION].s);
|
||||||
|
if (s->halftone_pattern)
|
||||||
|
free (s->halftone_pattern);
|
||||||
if (prev)
|
if (prev)
|
||||||
prev->next = s->next;
|
prev->next = s->next;
|
||||||
else
|
else
|
||||||
|
@ -5478,7 +5486,7 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
|
||||||
|
|
||||||
if (s->scanning)
|
if (s->scanning)
|
||||||
{
|
{
|
||||||
DBG(4, "sane_control_option: don't use wile scanning (option %s)\n",
|
DBG(4, "sane_control_option: don't use while scanning (option %s)\n",
|
||||||
s->opt[option].name);
|
s->opt[option].name);
|
||||||
return SANE_STATUS_DEVICE_BUSY;
|
return SANE_STATUS_DEVICE_BUSY;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,19 @@
|
||||||
CHANGES for the SANE Mustek backend
|
CHANGES for the SANE Mustek backend
|
||||||
|
|
||||||
|
2002-03-20:
|
||||||
|
* Released Mustek backend 1.0-119.
|
||||||
|
|
||||||
|
2002-03-20:
|
||||||
|
* Fix halftone pattern handling. The buffer was way too small.
|
||||||
|
|
||||||
|
2002-03-19:
|
||||||
|
* Option 0 has an empty name.
|
||||||
|
|
||||||
|
2002-03-18:
|
||||||
|
* Better debug output for dev_cmd.
|
||||||
|
* Set size for group options to 0.
|
||||||
|
* Set size of halftone pattern to non 0.
|
||||||
|
|
||||||
2002-02-14:
|
2002-02-14:
|
||||||
* Fixed some problems with wrong formats in DBG statements.
|
* Fixed some problems with wrong formats in DBG statements.
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue