hand_scanner and three_pass options need SANE_INFO_RELOAD_PARAMETERS. All

options have a symbolic name now. Removed bogus translation from po. New
version: 1.0.3.
Henning Meier-Geinitz <henning@meier-geinitz.de>
DEVEL_2_0_BRANCH-1
Henning Geinitz 2002-01-11 18:26:29 +00:00
rodzic d2cf6a57e1
commit 57337989cf
3 zmienionych plików z 201 dodań i 159 usunięć

Wyświetl plik

@ -1,7 +1,7 @@
/* sane - Scanner Access Now Easy. /* sane - Scanner Access Now Easy.
Copyright (C) 1996, 1997 Andreas Beck Copyright (C) 1996, 1997 Andreas Beck
Copyright (C) 2000, 2001 Michael Herder <crapsite@gmx.net> Copyright (C) 2000, 2001 Michael Herder <crapsite@gmx.net>
Copyright (C) 2001 Henning Meier-Geinitz <henning@meier-geinitz.de> Copyright (C) 2001, 2002 Henning Meier-Geinitz <henning@meier-geinitz.de>
This file is part of the SANE package. This file is part of the SANE package.
This program is free software; you can redistribute it and/or This program is free software; you can redistribute it and/or
@ -40,7 +40,7 @@
whether to permit this exception to apply to your modifications. whether to permit this exception to apply to your modifications.
If you do not wish that, delete this exception notice. */ If you do not wish that, delete this exception notice. */
#define BUILD 2 #define BUILD 3
#include "../include/sane/config.h" #include "../include/sane/config.h"
@ -111,9 +111,44 @@ static const SANE_Range gamma_range =
255 , /* maximum */ 255 , /* maximum */
0 /* quantization */ 0 /* quantization */
}; };
typedef enum
{
opt_num_opts = 0,
opt_source_group,
opt_filename,
opt_resolution,
opt_enhancement_group,
opt_brightness,
opt_contrast,
opt_grayify,
opt_three_pass,
opt_hand_scanner,
opt_default_enhancements,
opt_read_only,
opt_gamma_group,
opt_custom_gamma,
opt_gamma,
opt_gamma_r,
opt_gamma_g,
opt_gamma_b,
opt_status_group,
opt_status,
opt_status_eof,
opt_status_jammed,
opt_status_nodocs,
opt_status_coveropen,
opt_status_ioerror,
opt_status_nomem,
opt_status_accessdenied,
/* must come last: */
num_options
}
pnm_opts;
static SANE_Option_Descriptor sod[] = static SANE_Option_Descriptor sod[] =
{ {
{ { /* opt_num_opts */
SANE_NAME_NUM_OPTIONS, SANE_NAME_NUM_OPTIONS,
SANE_TITLE_NUM_OPTIONS, SANE_TITLE_NUM_OPTIONS,
SANE_DESC_NUM_OPTIONS, SANE_DESC_NUM_OPTIONS,
@ -124,7 +159,7 @@ static SANE_Option_Descriptor sod[] =
SANE_CONSTRAINT_NONE, SANE_CONSTRAINT_NONE,
{NULL} {NULL}
}, },
{ { /* opt_source_group */
"", "",
SANE_I18N("Source Selection"), SANE_I18N("Source Selection"),
SANE_I18N("Selection of the file to load."), SANE_I18N("Selection of the file to load."),
@ -135,7 +170,7 @@ static SANE_Option_Descriptor sod[] =
SANE_CONSTRAINT_NONE, SANE_CONSTRAINT_NONE,
{NULL} {NULL}
}, },
{ { /* opt_filename */
SANE_NAME_FILE, SANE_NAME_FILE,
SANE_TITLE_FILE, SANE_TITLE_FILE,
SANE_DESC_FILE, SANE_DESC_FILE,
@ -147,7 +182,7 @@ static SANE_Option_Descriptor sod[] =
{NULL} {NULL}
}, },
{ {
/* resolution */ /* opt_resolution */
SANE_NAME_SCAN_RESOLUTION, SANE_NAME_SCAN_RESOLUTION,
SANE_TITLE_SCAN_RESOLUTION, SANE_TITLE_SCAN_RESOLUTION,
SANE_DESC_SCAN_RESOLUTION, SANE_DESC_SCAN_RESOLUTION,
@ -158,7 +193,7 @@ static SANE_Option_Descriptor sod[] =
SANE_CONSTRAINT_WORD_LIST, SANE_CONSTRAINT_WORD_LIST,
{(SANE_String_Const *)resbit_list} {(SANE_String_Const *)resbit_list}
}, },
{ { /* opt_enhancement_group */
"", "",
SANE_I18N("Image Enhancement"), SANE_I18N("Image Enhancement"),
SANE_I18N("A few controls to enhance image while loading"), SANE_I18N("A few controls to enhance image while loading"),
@ -169,7 +204,7 @@ static SANE_Option_Descriptor sod[] =
SANE_CONSTRAINT_NONE, SANE_CONSTRAINT_NONE,
{NULL} {NULL}
}, },
{ { /* opt_brightness */
SANE_NAME_BRIGHTNESS, SANE_NAME_BRIGHTNESS,
SANE_TITLE_BRIGHTNESS, SANE_TITLE_BRIGHTNESS,
SANE_DESC_BRIGHTNESS, SANE_DESC_BRIGHTNESS,
@ -180,7 +215,7 @@ static SANE_Option_Descriptor sod[] =
SANE_CONSTRAINT_RANGE, SANE_CONSTRAINT_RANGE,
{(SANE_String_Const *) &percentage_range} /* this is ANSI conformant! */ {(SANE_String_Const *) &percentage_range} /* this is ANSI conformant! */
}, },
{ { /* opt_contrast */
SANE_NAME_CONTRAST, SANE_NAME_CONTRAST,
SANE_TITLE_CONTRAST, SANE_TITLE_CONTRAST,
SANE_DESC_CONTRAST, SANE_DESC_CONTRAST,
@ -191,7 +226,7 @@ static SANE_Option_Descriptor sod[] =
SANE_CONSTRAINT_RANGE, SANE_CONSTRAINT_RANGE,
{(SANE_String_Const *) &percentage_range} /* this is ANSI conformant! */ {(SANE_String_Const *) &percentage_range} /* this is ANSI conformant! */
}, },
{ { /* opt_grayify */
"grayify", "grayify",
SANE_I18N("Grayify"), SANE_I18N("Grayify"),
SANE_I18N("Load the image as grayscale."), SANE_I18N("Load the image as grayscale."),
@ -202,7 +237,7 @@ static SANE_Option_Descriptor sod[] =
SANE_CONSTRAINT_NONE, SANE_CONSTRAINT_NONE,
{NULL} {NULL}
}, },
{ { /* opt_three_pass */
"three-pass", "three-pass",
SANE_I18N("Three-Pass Simulation"), SANE_I18N("Three-Pass Simulation"),
SANE_I18N("Simulate a three-pass scanner by returning 3 separate frames. " SANE_I18N("Simulate a three-pass scanner by returning 3 separate frames. "
@ -214,7 +249,7 @@ static SANE_Option_Descriptor sod[] =
SANE_CONSTRAINT_NONE, SANE_CONSTRAINT_NONE,
{NULL} {NULL}
}, },
{ { /* opt_hand_scanner */
"hand-scanner", "hand-scanner",
SANE_I18N("Hand-Scanner Simulation"), SANE_I18N("Hand-Scanner Simulation"),
SANE_I18N("Simulate a hand-scanner. Hand-scanners often do not know the image " SANE_I18N("Simulate a hand-scanner. Hand-scanners often do not know the image "
@ -227,7 +262,7 @@ static SANE_Option_Descriptor sod[] =
SANE_CONSTRAINT_NONE, SANE_CONSTRAINT_NONE,
{NULL} {NULL}
}, },
{ { /* opt_default_enhancements */
"default-enhancements", "default-enhancements",
SANE_I18N("Defaults"), SANE_I18N("Defaults"),
SANE_I18N("Set default values for enhancement controls (brightness & contrast)."), SANE_I18N("Set default values for enhancement controls (brightness & contrast)."),
@ -238,8 +273,8 @@ static SANE_Option_Descriptor sod[] =
SANE_CONSTRAINT_NONE, SANE_CONSTRAINT_NONE,
{NULL} {NULL}
}, },
{ { /* opt_read_only */
"test option", "read-only",
SANE_I18N("Read only test-option"), SANE_I18N("Read only test-option"),
SANE_I18N("Let's see whether frontends can treat this right") , SANE_I18N("Let's see whether frontends can treat this right") ,
SANE_TYPE_INT, SANE_TYPE_INT,
@ -249,7 +284,7 @@ static SANE_Option_Descriptor sod[] =
SANE_CONSTRAINT_NONE, SANE_CONSTRAINT_NONE,
{NULL} {NULL}
}, },
{ { /* opt_gamma_group */
"", "",
SANE_I18N("Gamma tables"), SANE_I18N("Gamma tables"),
SANE_I18N("Selection of custom gamma tables."), SANE_I18N("Selection of custom gamma tables."),
@ -260,7 +295,7 @@ static SANE_Option_Descriptor sod[] =
SANE_CONSTRAINT_NONE, SANE_CONSTRAINT_NONE,
{NULL} {NULL}
}, },
{/* custom-gamma table */ {/* opt_custom_gamma */
SANE_NAME_CUSTOM_GAMMA, SANE_NAME_CUSTOM_GAMMA,
SANE_TITLE_CUSTOM_GAMMA , SANE_TITLE_CUSTOM_GAMMA ,
SANE_DESC_CUSTOM_GAMMA, SANE_DESC_CUSTOM_GAMMA,
@ -271,7 +306,7 @@ static SANE_Option_Descriptor sod[] =
SANE_CONSTRAINT_NONE, SANE_CONSTRAINT_NONE,
{NULL} {NULL}
}, },
{ /* grayscale gamma vector */ { /* opt_gamma */
SANE_NAME_GAMMA_VECTOR, SANE_NAME_GAMMA_VECTOR,
SANE_TITLE_GAMMA_VECTOR, SANE_TITLE_GAMMA_VECTOR,
SANE_DESC_GAMMA_VECTOR, SANE_DESC_GAMMA_VECTOR,
@ -282,7 +317,7 @@ static SANE_Option_Descriptor sod[] =
SANE_CONSTRAINT_RANGE, SANE_CONSTRAINT_RANGE,
{(SANE_String_Const *) &gamma_range} {(SANE_String_Const *) &gamma_range}
}, },
{ /* red gamma vector */ { /* opt_gamma_r */
SANE_NAME_GAMMA_VECTOR_R, SANE_NAME_GAMMA_VECTOR_R,
SANE_TITLE_GAMMA_VECTOR_R, SANE_TITLE_GAMMA_VECTOR_R,
SANE_DESC_GAMMA_VECTOR_R, SANE_DESC_GAMMA_VECTOR_R,
@ -293,7 +328,7 @@ static SANE_Option_Descriptor sod[] =
SANE_CONSTRAINT_RANGE, SANE_CONSTRAINT_RANGE,
{(SANE_String_Const *) &gamma_range} {(SANE_String_Const *) &gamma_range}
}, },
{ /* green gamma vector */ { /* opt_gamma_g */
SANE_NAME_GAMMA_VECTOR_G, SANE_NAME_GAMMA_VECTOR_G,
SANE_TITLE_GAMMA_VECTOR_G, SANE_TITLE_GAMMA_VECTOR_G,
SANE_DESC_GAMMA_VECTOR_G, SANE_DESC_GAMMA_VECTOR_G,
@ -304,7 +339,7 @@ static SANE_Option_Descriptor sod[] =
SANE_CONSTRAINT_RANGE, SANE_CONSTRAINT_RANGE,
{(SANE_String_Const *) &gamma_range} {(SANE_String_Const *) &gamma_range}
}, },
{ /* blue gamma vector */ { /* opt_gamma_b */
SANE_NAME_GAMMA_VECTOR_B, SANE_NAME_GAMMA_VECTOR_B,
SANE_TITLE_GAMMA_VECTOR_B, SANE_TITLE_GAMMA_VECTOR_B,
SANE_DESC_GAMMA_VECTOR_B, SANE_DESC_GAMMA_VECTOR_B,
@ -315,11 +350,11 @@ static SANE_Option_Descriptor sod[] =
SANE_CONSTRAINT_RANGE, SANE_CONSTRAINT_RANGE,
{(SANE_String_Const *) &gamma_range} {(SANE_String_Const *) &gamma_range}
}, },
{ { /* opt_status_group */
"", "",
SANE_I18N("Status Code Simulation"), SANE_I18N("Status Code Simulation"),
SANE_I18N("Forces the backend to return a specific status code after a call " SANE_I18N("Forces the backend to return a specific status code after a call "
"to sane_read(). This can be used to test whether a frontend is able" "to sane_read(). This can be used to test whether a frontend is able "
"to treat the status codes correctly."), "to treat the status codes correctly."),
SANE_TYPE_GROUP, SANE_TYPE_GROUP,
SANE_UNIT_NONE, SANE_UNIT_NONE,
@ -328,7 +363,7 @@ static SANE_Option_Descriptor sod[] =
SANE_CONSTRAINT_NONE, SANE_CONSTRAINT_NONE,
{NULL} {NULL}
}, },
{ { /* opt_status */
"status", "status",
SANE_I18N("Do not force status code"), SANE_I18N("Do not force status code"),
SANE_I18N("Do not force the backend to return a status code."), SANE_I18N("Do not force the backend to return a status code."),
@ -339,7 +374,7 @@ static SANE_Option_Descriptor sod[] =
SANE_CONSTRAINT_NONE, SANE_CONSTRAINT_NONE,
{NULL} {NULL}
}, },
{ { /* opt_status_eof */
"status-eof", "status-eof",
SANE_I18N("Return SANE_STATUS_EOF"), SANE_I18N("Return SANE_STATUS_EOF"),
SANE_I18N("Force the backend to return the status code SANE_STATUS_EOF after " SANE_I18N("Force the backend to return the status code SANE_STATUS_EOF after "
@ -351,7 +386,7 @@ static SANE_Option_Descriptor sod[] =
SANE_CONSTRAINT_NONE, SANE_CONSTRAINT_NONE,
{NULL} {NULL}
}, },
{ { /* opt_status_jammed */
"status-jammed", "status-jammed",
SANE_I18N("Return SANE_STATUS_JAMMED"), SANE_I18N("Return SANE_STATUS_JAMMED"),
SANE_I18N("Force the backend to return the status code SANE_STATUS_JAMMED after " SANE_I18N("Force the backend to return the status code SANE_STATUS_JAMMED after "
@ -363,7 +398,7 @@ static SANE_Option_Descriptor sod[] =
SANE_CONSTRAINT_NONE, SANE_CONSTRAINT_NONE,
{NULL} {NULL}
}, },
{ { /* opt_status_nodocs */
"status-nodocs", "status-nodocs",
SANE_I18N("Return SANE_STATUS_NO_DOCS"), SANE_I18N("Return SANE_STATUS_NO_DOCS"),
SANE_I18N("Force the backend to return the status code SANE_STATUS_NO_DOCS after " SANE_I18N("Force the backend to return the status code SANE_STATUS_NO_DOCS after "
@ -375,7 +410,7 @@ static SANE_Option_Descriptor sod[] =
SANE_CONSTRAINT_NONE, SANE_CONSTRAINT_NONE,
{NULL} {NULL}
}, },
{ { /* opt_status_coveropen */
"status-coveropen", "status-coveropen",
SANE_I18N("Return SANE_STATUS_COVER_OPEN"), SANE_I18N("Return SANE_STATUS_COVER_OPEN"),
SANE_I18N("Force the backend to return the status code SANE_STATUS_COVER_OPEN after " SANE_I18N("Force the backend to return the status code SANE_STATUS_COVER_OPEN after "
@ -387,7 +422,7 @@ static SANE_Option_Descriptor sod[] =
SANE_CONSTRAINT_NONE, SANE_CONSTRAINT_NONE,
{NULL} {NULL}
}, },
{ { /* opt_status_ioerror */
"status-ioerror", "status-ioerror",
SANE_I18N("Return SANE_STATUS_IO_ERROR"), SANE_I18N("Return SANE_STATUS_IO_ERROR"),
SANE_I18N("Force the backend to return the status code SANE_STATUS_IO_ERROR after " SANE_I18N("Force the backend to return the status code SANE_STATUS_IO_ERROR after "
@ -399,7 +434,7 @@ static SANE_Option_Descriptor sod[] =
SANE_CONSTRAINT_NONE, SANE_CONSTRAINT_NONE,
{NULL} {NULL}
}, },
{ { /* opt_status_nomem */
"status-nomem", "status-nomem",
SANE_I18N("Return SANE_STATUS_NO_MEM"), SANE_I18N("Return SANE_STATUS_NO_MEM"),
SANE_I18N("Force the backend to return the status code SANE_STATUS_NO_MEM after " SANE_I18N("Force the backend to return the status code SANE_STATUS_NO_MEM after "
@ -411,7 +446,7 @@ static SANE_Option_Descriptor sod[] =
SANE_CONSTRAINT_NONE, SANE_CONSTRAINT_NONE,
{NULL} {NULL}
}, },
{ { /* opt_status_accessdenied */
"status-accessdenied", "status-accessdenied",
SANE_I18N("Return SANE_STATUS_ACCESS_DENIED"), SANE_I18N("Return SANE_STATUS_ACCESS_DENIED"),
SANE_I18N("Force the backend to return the status code SANE_STATUS_ACCESS_DENIED " SANE_I18N("Force the backend to return the status code SANE_STATUS_ACCESS_DENIED "
@ -569,7 +604,7 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
return status; return status;
switch (option) switch (option)
{ {
case 3: case opt_resolution:
res = 75; res = 75;
myinfo |= SANE_INFO_RELOAD_PARAMS; myinfo |= SANE_INFO_RELOAD_PARAMS;
break; break;
@ -583,109 +618,110 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
return status; return status;
switch (option) switch (option)
{ {
case 2: case opt_filename:
if ((strlen (value) + 1) > sizeof (filename)) if ((strlen (value) + 1) > sizeof (filename))
return SANE_STATUS_NO_MEM; return SANE_STATUS_NO_MEM;
strcpy (filename, value); strcpy (filename, value);
myinfo |= SANE_INFO_RELOAD_PARAMS; myinfo |= SANE_INFO_RELOAD_PARAMS;
break; break;
case 3: case opt_resolution:
res = *(SANE_Word *) value; res = *(SANE_Word *) value;
break; break;
case 5: case opt_brightness:
bright = *(SANE_Word *) value; bright = *(SANE_Word *) value;
break; break;
case 6: case opt_contrast:
contr = *(SANE_Word *) value; contr = *(SANE_Word *) value;
break; break;
case 7: case opt_grayify:
gray = !!*(SANE_Word *) value; gray = !!*(SANE_Word *) value;
if (usegamma) if (usegamma)
{ {
if (gray) if (gray)
{ {
sod[14].cap &= ~SANE_CAP_INACTIVE; sod[opt_gamma].cap &= ~SANE_CAP_INACTIVE;
sod[15].cap |= SANE_CAP_INACTIVE; sod[opt_gamma_r].cap |= SANE_CAP_INACTIVE;
sod[16].cap |= SANE_CAP_INACTIVE; sod[opt_gamma_g].cap |= SANE_CAP_INACTIVE;
sod[17].cap |= SANE_CAP_INACTIVE; sod[opt_gamma_b].cap |= SANE_CAP_INACTIVE;
} }
else else
{ {
sod[14].cap |= SANE_CAP_INACTIVE; sod[opt_gamma].cap |= SANE_CAP_INACTIVE;
sod[15].cap &= ~SANE_CAP_INACTIVE; sod[opt_gamma_r].cap &= ~SANE_CAP_INACTIVE;
sod[16].cap &= ~SANE_CAP_INACTIVE; sod[opt_gamma_g].cap &= ~SANE_CAP_INACTIVE;
sod[17].cap &= ~SANE_CAP_INACTIVE; sod[opt_gamma_b].cap &= ~SANE_CAP_INACTIVE;
} }
} }
else else
{ {
sod[14].cap |= SANE_CAP_INACTIVE; sod[opt_gamma].cap |= SANE_CAP_INACTIVE;
sod[15].cap |= SANE_CAP_INACTIVE; sod[opt_gamma_r].cap |= SANE_CAP_INACTIVE;
sod[16].cap |= SANE_CAP_INACTIVE; sod[opt_gamma_g].cap |= SANE_CAP_INACTIVE;
sod[17].cap |= SANE_CAP_INACTIVE; sod[opt_gamma_b].cap |= SANE_CAP_INACTIVE;
} }
myinfo |= SANE_INFO_RELOAD_PARAMS | SANE_INFO_RELOAD_OPTIONS; myinfo |= SANE_INFO_RELOAD_PARAMS | SANE_INFO_RELOAD_OPTIONS;
break; break;
case 8: case opt_three_pass:
three_pass = !!*(SANE_Word *) value; three_pass = !!*(SANE_Word *) value;
myinfo |= SANE_INFO_RELOAD_PARAMS;
break; break;
case 9: case opt_hand_scanner:
hand_scanner = !!*(SANE_Word *) value; hand_scanner = !!*(SANE_Word *) value;
myinfo |= SANE_INFO_RELOAD_PARAMS;
break; break;
case 10: case opt_default_enhancements:
bright = contr = 0; bright = contr = 0;
myinfo |= SANE_INFO_RELOAD_OPTIONS; myinfo |= SANE_INFO_RELOAD_OPTIONS;
break; break;
/*gamma stuff*/ case opt_custom_gamma:
case 13:/*usegamma*/
usegamma = *(SANE_Word *) value; usegamma = *(SANE_Word *) value;
/*activate/deactivate gamma*/ /* activate/deactivate gamma */
if(usegamma) if (usegamma)
{ {
test_option = 100; test_option = 100;
if(gray) if(gray)
{ {
sod[14].cap &= ~SANE_CAP_INACTIVE; sod[opt_gamma].cap &= ~SANE_CAP_INACTIVE;
sod[15].cap |= SANE_CAP_INACTIVE; sod[opt_gamma_r].cap |= SANE_CAP_INACTIVE;
sod[16].cap |= SANE_CAP_INACTIVE; sod[opt_gamma_g].cap |= SANE_CAP_INACTIVE;
sod[17].cap |= SANE_CAP_INACTIVE; sod[opt_gamma_b].cap |= SANE_CAP_INACTIVE;
} }
else else
{ {
sod[14].cap |= SANE_CAP_INACTIVE; sod[opt_gamma].cap |= SANE_CAP_INACTIVE;
sod[15].cap &= ~SANE_CAP_INACTIVE; sod[opt_gamma_r].cap &= ~SANE_CAP_INACTIVE;
sod[16].cap &= ~SANE_CAP_INACTIVE; sod[opt_gamma_g].cap &= ~SANE_CAP_INACTIVE;
sod[17].cap &= ~SANE_CAP_INACTIVE; sod[opt_gamma_b].cap &= ~SANE_CAP_INACTIVE;
} }
} }
else else
{ {
test_option = 0; test_option = 0;
sod[14].cap |= SANE_CAP_INACTIVE; sod[opt_gamma].cap |= SANE_CAP_INACTIVE;
sod[15].cap |= SANE_CAP_INACTIVE; sod[opt_gamma_r].cap |= SANE_CAP_INACTIVE;
sod[16].cap |= SANE_CAP_INACTIVE; sod[opt_gamma_g].cap |= SANE_CAP_INACTIVE;
sod[17].cap |= SANE_CAP_INACTIVE; sod[opt_gamma_b].cap |= SANE_CAP_INACTIVE;
} }
myinfo |= SANE_INFO_RELOAD_OPTIONS; myinfo |= SANE_INFO_RELOAD_OPTIONS;
break; break;
case 14: case opt_gamma:
memcpy(&gamma[0][0], (SANE_Word *) value, 256*sizeof(SANE_Word)); memcpy (&gamma[0][0], (SANE_Word *) value, 256 * sizeof(SANE_Word));
myinfo |= SANE_INFO_RELOAD_OPTIONS; myinfo |= SANE_INFO_RELOAD_OPTIONS;
break; break;
case 15: case opt_gamma_r:
memcpy(&gamma[1][0], (SANE_Word *) value, 256*sizeof(SANE_Word)); memcpy (&gamma[1][0], (SANE_Word *) value, 256 * sizeof(SANE_Word));
myinfo |= SANE_INFO_RELOAD_OPTIONS; myinfo |= SANE_INFO_RELOAD_OPTIONS;
break; break;
case 16: case opt_gamma_g:
memcpy(&gamma[2][0], (SANE_Word *) value, 256*sizeof(SANE_Word)); memcpy (&gamma[2][0], (SANE_Word *) value, 256 * sizeof(SANE_Word));
myinfo |= SANE_INFO_RELOAD_OPTIONS; myinfo |= SANE_INFO_RELOAD_OPTIONS;
break; break;
case 17: case opt_gamma_b:
memcpy(&gamma[3][0], (SANE_Word *) value, 256*sizeof(SANE_Word)); memcpy (&gamma[3][0], (SANE_Word *) value, 256 * sizeof(SANE_Word));
myinfo |= SANE_INFO_RELOAD_OPTIONS; myinfo |= SANE_INFO_RELOAD_OPTIONS;
break; break;
/*status*/ /* status */
case 19: case opt_status:
status_none = *(SANE_Word *) value; status_none = *(SANE_Word *) value;
if (status_none) if (status_none)
{ {
@ -699,9 +735,9 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
} }
myinfo |= SANE_INFO_RELOAD_OPTIONS; myinfo |= SANE_INFO_RELOAD_OPTIONS;
break; break;
case 20: case opt_status_eof:
status_eof = *(SANE_Word *) value; status_eof = *(SANE_Word *) value;
if(status_eof) if (status_eof)
{ {
status_none = SANE_FALSE; status_none = SANE_FALSE;
status_jammed = SANE_FALSE; status_jammed = SANE_FALSE;
@ -713,7 +749,7 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
} }
myinfo |= SANE_INFO_RELOAD_OPTIONS; myinfo |= SANE_INFO_RELOAD_OPTIONS;
break; break;
case 21: case opt_status_jammed:
status_jammed = *(SANE_Word *) value; status_jammed = *(SANE_Word *) value;
if (status_jammed) if (status_jammed)
{ {
@ -727,7 +763,7 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
} }
myinfo |= SANE_INFO_RELOAD_OPTIONS; myinfo |= SANE_INFO_RELOAD_OPTIONS;
break; break;
case 22: case opt_status_nodocs:
status_nodocs = *(SANE_Word *) value; status_nodocs = *(SANE_Word *) value;
if (status_nodocs) if (status_nodocs)
{ {
@ -741,7 +777,7 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
} }
myinfo |= SANE_INFO_RELOAD_OPTIONS; myinfo |= SANE_INFO_RELOAD_OPTIONS;
break; break;
case 23: case opt_status_coveropen:
status_coveropen = *(SANE_Word *) value; status_coveropen = *(SANE_Word *) value;
if (status_coveropen) if (status_coveropen)
{ {
@ -755,7 +791,7 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
} }
myinfo |= SANE_INFO_RELOAD_OPTIONS; myinfo |= SANE_INFO_RELOAD_OPTIONS;
break; break;
case 24: case opt_status_ioerror:
status_ioerror = *(SANE_Word *) value; status_ioerror = *(SANE_Word *) value;
if (status_ioerror) if (status_ioerror)
{ {
@ -769,7 +805,7 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
} }
myinfo |= SANE_INFO_RELOAD_OPTIONS; myinfo |= SANE_INFO_RELOAD_OPTIONS;
break; break;
case 25: case opt_status_nomem:
status_nomem = *(SANE_Word *) value; status_nomem = *(SANE_Word *) value;
if (status_nomem) if (status_nomem)
{ {
@ -783,7 +819,7 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
} }
myinfo |= SANE_INFO_RELOAD_OPTIONS; myinfo |= SANE_INFO_RELOAD_OPTIONS;
break; break;
case 26: case opt_status_accessdenied:
status_accessdenied = *(SANE_Word *) value; status_accessdenied = *(SANE_Word *) value;
if (status_accessdenied) if (status_accessdenied)
{ {
@ -804,71 +840,70 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
case SANE_ACTION_GET_VALUE: case SANE_ACTION_GET_VALUE:
switch (option) switch (option)
{ {
case 0: case opt_num_opts:
*(SANE_Word *) value = NELEMS(sod); *(SANE_Word *) value = NELEMS(sod);
break; break;
case 2: case opt_filename:
strcpy (value, filename); strcpy (value, filename);
break; break;
case 3: case opt_resolution:
*(SANE_Word *) value = res; *(SANE_Word *) value = res;
break; break;
case 5: case opt_brightness:
*(SANE_Word *) value = bright; *(SANE_Word *) value = bright;
break; break;
case 6: case opt_contrast:
*(SANE_Word *) value = contr; *(SANE_Word *) value = contr;
break; break;
case 7: case opt_grayify:
*(SANE_Word *) value = gray; *(SANE_Word *) value = gray;
break; break;
case 8: case opt_three_pass:
*(SANE_Word *) value = three_pass; *(SANE_Word *) value = three_pass;
break; break;
case 9: case opt_hand_scanner:
*(SANE_Word *) value = hand_scanner; *(SANE_Word *) value = hand_scanner;
break; break;
case 11: case opt_read_only:
*(SANE_Word *) value = test_option; *(SANE_Word *) value = test_option;
break; break;
case 13: case opt_custom_gamma:
*(SANE_Word *) value = usegamma; *(SANE_Word *) value = usegamma;
break; break;
case 14: case opt_gamma:
memcpy((SANE_Word *) value, &gamma[0][0], 256*sizeof(SANE_Word)); memcpy((SANE_Word *) value, &gamma[0][0], 256*sizeof(SANE_Word));
break; break;
case 15: case opt_gamma_r:
memcpy((SANE_Word *) value, &gamma[1][0], 256*sizeof(SANE_Word)); memcpy((SANE_Word *) value, &gamma[1][0], 256*sizeof(SANE_Word));
break; break;
case 16: case opt_gamma_g:
memcpy((SANE_Word *) value, &gamma[2][0], 256*sizeof(SANE_Word)); memcpy((SANE_Word *) value, &gamma[2][0], 256*sizeof(SANE_Word));
break; break;
case 17: case opt_gamma_b:
memcpy((SANE_Word *) value, &gamma[3][0], 256*sizeof(SANE_Word)); memcpy((SANE_Word *) value, &gamma[3][0], 256*sizeof(SANE_Word));
break; break;
/*status*/ case opt_status:
case 19:
*(SANE_Word *) value = status_none; *(SANE_Word *) value = status_none;
break; break;
case 20: case opt_status_eof:
*(SANE_Word *) value = status_eof; *(SANE_Word *) value = status_eof;
break; break;
case 21: case opt_status_jammed:
*(SANE_Word *) value = status_jammed; *(SANE_Word *) value = status_jammed;
break; break;
case 22: case opt_status_nodocs:
*(SANE_Word *) value = status_nodocs; *(SANE_Word *) value = status_nodocs;
break; break;
case 23: case opt_status_coveropen:
*(SANE_Word *) value = status_coveropen; *(SANE_Word *) value = status_coveropen;
break; break;
case 24: case opt_status_ioerror:
*(SANE_Word *) value = status_ioerror; *(SANE_Word *) value = status_ioerror;
break; break;
case 25: case opt_status_nomem:
*(SANE_Word *) value = status_nomem; *(SANE_Word *) value = status_nomem;
break; break;
case 26: case opt_status_accessdenied:
*(SANE_Word *) value = status_accessdenied; *(SANE_Word *) value = status_accessdenied;
break; break;
default: default:

Wyświetl plik

@ -1,5 +1,5 @@
:backend "pnm" :backend "pnm"
:version "1.0.2" :version "1.0.3"
:status :beta :status :beta
:manpage "sane-pnm" :manpage "sane-pnm"
:url "mailto:henning@meier-geinitz.de" :url "mailto:henning@meier-geinitz.de"

Wyświetl plik

@ -4,7 +4,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: sane-backends 1.0.7\n" "Project-Id-Version: sane-backends 1.0.7\n"
"POT-Creation-Date: 2002-01-09 16:00+0100\n" "POT-Creation-Date: 2002-01-11 19:24+0100\n"
"PO-Revision-Date: 2002-01-09 14:46+0100\n" "PO-Revision-Date: 2002-01-09 14:46+0100\n"
"Last-Translator: Henning Meier-Geinitz <henning@meier-geinitz.de>\n" "Last-Translator: Henning Meier-Geinitz <henning@meier-geinitz.de>\n"
"Language-Team: \n" "Language-Team: \n"
@ -12,45 +12,47 @@ msgstr ""
"Content-Type: text/plain; charset=iso-8859-1\n" "Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: .tmp/pnm.c:129 #: .tmp/pnm.c:164
msgid "Source Selection" msgid "Source Selection"
msgstr "Dateiauswahl" msgstr "Dateiauswahl"
#: .tmp/pnm.c:130 #: .tmp/pnm.c:165
msgid "Selection of the file to load." msgid "Selection of the file to load."
msgstr "Auswahl der zu ladenden Datei" msgstr "Auswahl der zu ladenden Datei"
#: .tmp/pnm.c:163 #: .tmp/pnm.c:198
msgid "Image Enhancement" msgid "Image Enhancement"
msgstr "Bildkorrektur" msgstr "Bildkorrektur"
#: .tmp/pnm.c:164 #: .tmp/pnm.c:199
msgid "A few controls to enhance image while loading" msgid "A few controls to enhance image while loading"
msgstr "Einige Einstellungen zur Verbesserung des Bildes während des Ladens" msgstr "Einige Einstellungen zur Verbesserung des Bildes während des Ladens"
#: .tmp/pnm.c:196 #: .tmp/pnm.c:231
msgid "Grayify" msgid "Grayify"
msgstr "Graustufen" msgstr "Graustufen"
#: .tmp/pnm.c:197 #: .tmp/pnm.c:232
msgid "Load the image as grayscale." msgid "Load the image as grayscale."
msgstr "Bild in Graustufen laden." msgstr "Bild in Graustufen laden."
#: .tmp/pnm.c:207 #: .tmp/pnm.c:242
msgid "Three-Pass Simulation" msgid "Three-Pass Simulation"
msgstr "Three-Pass Simulation" msgstr "Three-Pass Simulation"
#: .tmp/pnm.c:208 #: .tmp/pnm.c:243
msgid "" msgid ""
"Simulate a three-pass scanner by returning 3 separate frames. For kicks, it " "Simulate a three-pass scanner by returning 3 separate frames. For kicks, it "
"returns green, then blue, then red." "returns green, then blue, then red."
msgstr "Simuliere einen Three-Pass Scanner, indem hintereinander je ein Frame für jede Grundfarbe übertragen wird. Die Reihenfolge ist grün-blau-rot." msgstr ""
"Simuliere einen Three-Pass Scanner, indem hintereinander je ein Frame für "
"jede Grundfarbe übertragen wird. Die Reihenfolge ist grün-blau-rot."
#: .tmp/pnm.c:219 #: .tmp/pnm.c:254
msgid "Hand-Scanner Simulation" msgid "Hand-Scanner Simulation"
msgstr "Handscanner Simulation" msgstr "Handscanner Simulation"
#: .tmp/pnm.c:220 #: .tmp/pnm.c:255
msgid "" msgid ""
"Simulate a hand-scanner. Hand-scanners often do not know the image height a " "Simulate a hand-scanner. Hand-scanners often do not know the image height a "
"priori. Instead, they return a height of -1. Setting this option allows to " "priori. Instead, they return a height of -1. Setting this option allows to "
@ -61,66 +63,72 @@ msgstr ""
"Mit dieser Option kann man prüfen, ob das Frontend damit richtig umgehen " "Mit dieser Option kann man prüfen, ob das Frontend damit richtig umgehen "
"kann." "kann."
#: .tmp/pnm.c:232 #: .tmp/pnm.c:267
msgid "Defaults" msgid "Defaults"
msgstr "Defaulteinstellungen" msgstr "Defaulteinstellungen"
#: .tmp/pnm.c:233 #: .tmp/pnm.c:268
msgid "Set default values for enhancement controls (brightness & contrast)." msgid "Set default values for enhancement controls (brightness & contrast)."
msgstr "Stellt die Farbverbesserungseinstellungen (Helligkeit und Kontrast) auf Defaultwerte." msgstr ""
"Stellt die Farbverbesserungseinstellungen (Helligkeit und Kontrast) auf "
"Defaultwerte."
#: .tmp/pnm.c:243 #: .tmp/pnm.c:278
msgid "Read only test-option" msgid "Read only test-option"
msgstr "Nur-Lese-Testoption" msgstr "Nur-Lese-Testoption"
#: .tmp/pnm.c:244 #: .tmp/pnm.c:279
msgid "Let's see whether frontends can treat this right" msgid "Let's see whether frontends can treat this right"
msgstr "Mal sehen, ob das Frontend damit umgehen kann." msgstr "Mal sehen, ob das Frontend damit umgehen kann."
#: .tmp/pnm.c:254 #: .tmp/pnm.c:289
msgid "Gamma tables" msgid "Gamma tables"
msgstr "Gammatabellen" msgstr "Gammatabellen"
#: .tmp/pnm.c:255 #: .tmp/pnm.c:290
msgid "Selection of custom gamma tables." msgid "Selection of custom gamma tables."
msgstr "Auswahl der benutzerdefinierten Gammatabellen." msgstr "Auswahl der benutzerdefinierten Gammatabellen."
#: .tmp/pnm.c:320 #: .tmp/pnm.c:355
msgid "Status Code Simulation" msgid "Status Code Simulation"
msgstr "Statuscode Simulation" msgstr "Statuscode Simulation"
#: .tmp/pnm.c:321 #: .tmp/pnm.c:356
#, fuzzy
msgid "" msgid ""
"Forces the backend to return a specific status code after a call to " "Forces the backend to return a specific status code after a call to sane_read"
"sane_read(). This can be used to test whether a frontend is ableto treat the " "(). This can be used to test whether a frontend is able to treat the status "
"status codes correctly." "codes correctly."
msgstr "Zwingt das Backend, einen bestimmten Statuscode nach dem Aufruf von sane_read() zurückzuliefern. Damit kann man prüfen, ob ein Frontend die Statuscodes richtig behandeln kann." msgstr ""
"Zwingt das Backend, einen bestimmten Statuscode nach dem Aufruf von sane_read"
"() zurückzuliefern. Damit kann man prüfen, ob ein Frontend die Statuscodes "
"richtig behandeln kann."
#: .tmp/pnm.c:333 #: .tmp/pnm.c:368
msgid "Do not force status code" msgid "Do not force status code"
msgstr "Keinen Statuscode erzwingen" msgstr "Keinen Statuscode erzwingen"
#: .tmp/pnm.c:334 #: .tmp/pnm.c:369
msgid "Do not force the backend to return a status code." msgid "Do not force the backend to return a status code."
msgstr "Zwinge das Backend nicht dazu, einen Statuscode zurückzuliefern." msgstr "Zwinge das Backend nicht dazu, einen Statuscode zurückzuliefern."
#: .tmp/pnm.c:344 #: .tmp/pnm.c:379
msgid "Return SANE_STATUS_EOF" msgid "Return SANE_STATUS_EOF"
msgstr "Liefere SANE_STATUS_EOF zurück" msgstr "Liefere SANE_STATUS_EOF zurück"
#: .tmp/pnm.c:345 #: .tmp/pnm.c:380
msgid "" msgid ""
"Force the backend to return the status code SANE_STATUS_EOF after " "Force the backend to return the status code SANE_STATUS_EOF after sane_read"
"sane_read() has been called." "() has been called."
msgstr "" msgstr ""
"Zwinge das Backend dazu, nach einem Aufruf von sane_read() den Statuscode " "Zwinge das Backend dazu, nach einem Aufruf von sane_read() den Statuscode "
"SANE_STATUS_EOF zurückzuliefern." "SANE_STATUS_EOF zurückzuliefern."
#: .tmp/pnm.c:356 #: .tmp/pnm.c:391
msgid "Return SANE_STATUS_JAMMED" msgid "Return SANE_STATUS_JAMMED"
msgstr "Liefere SANE_STATUS_JAMMED zurück" msgstr "Liefere SANE_STATUS_JAMMED zurück"
#: .tmp/pnm.c:357 #: .tmp/pnm.c:392
msgid "" msgid ""
"Force the backend to return the status code SANE_STATUS_JAMMED after " "Force the backend to return the status code SANE_STATUS_JAMMED after "
"sane_read() has been called." "sane_read() has been called."
@ -128,11 +136,11 @@ msgstr ""
"Zwinge das Backend dazu, nach einem Aufruf von sane_read() den Statuscode " "Zwinge das Backend dazu, nach einem Aufruf von sane_read() den Statuscode "
"SANE_STATUS_JAMMED zurückzuliefern." "SANE_STATUS_JAMMED zurückzuliefern."
#: .tmp/pnm.c:368 #: .tmp/pnm.c:403
msgid "Return SANE_STATUS_NO_DOCS" msgid "Return SANE_STATUS_NO_DOCS"
msgstr "Liefere SANE_STATUS_NO_DOCS zurück" msgstr "Liefere SANE_STATUS_NO_DOCS zurück"
#: .tmp/pnm.c:369 #: .tmp/pnm.c:404
msgid "" msgid ""
"Force the backend to return the status code SANE_STATUS_NO_DOCS after " "Force the backend to return the status code SANE_STATUS_NO_DOCS after "
"sane_read() has been called." "sane_read() has been called."
@ -140,11 +148,11 @@ msgstr ""
"Zwinge das Backend dazu, nach einem Aufruf von sane_read() den Statuscode " "Zwinge das Backend dazu, nach einem Aufruf von sane_read() den Statuscode "
"SANE_STATUS_NO_DOCS zurückzuliefern." "SANE_STATUS_NO_DOCS zurückzuliefern."
#: .tmp/pnm.c:380 #: .tmp/pnm.c:415
msgid "Return SANE_STATUS_COVER_OPEN" msgid "Return SANE_STATUS_COVER_OPEN"
msgstr "Liefere SANE_STATUS_COVER_OPEN zurück" msgstr "Liefere SANE_STATUS_COVER_OPEN zurück"
#: .tmp/pnm.c:381 #: .tmp/pnm.c:416
msgid "" msgid ""
"Force the backend to return the status code SANE_STATUS_COVER_OPEN after " "Force the backend to return the status code SANE_STATUS_COVER_OPEN after "
"sane_read() has been called." "sane_read() has been called."
@ -152,11 +160,11 @@ msgstr ""
"Zwinge das Backend dazu, nach einem Aufruf von sane_read() den Statuscode " "Zwinge das Backend dazu, nach einem Aufruf von sane_read() den Statuscode "
"SANE_STATUS_COVER_OPEN zurückzuliefern." "SANE_STATUS_COVER_OPEN zurückzuliefern."
#: .tmp/pnm.c:392 #: .tmp/pnm.c:427
msgid "Return SANE_STATUS_IO_ERROR" msgid "Return SANE_STATUS_IO_ERROR"
msgstr "Liefere SANE_STATUS_IO_ERROR zurück" msgstr "Liefere SANE_STATUS_IO_ERROR zurück"
#: .tmp/pnm.c:393 #: .tmp/pnm.c:428
msgid "" msgid ""
"Force the backend to return the status code SANE_STATUS_IO_ERROR after " "Force the backend to return the status code SANE_STATUS_IO_ERROR after "
"sane_read() has been called." "sane_read() has been called."
@ -164,11 +172,11 @@ msgstr ""
"Zwinge das Backend dazu, nach einem Aufruf von sane_read() den Statuscode " "Zwinge das Backend dazu, nach einem Aufruf von sane_read() den Statuscode "
"SANE_STATUS_IO_ERROR zurückzuliefern." "SANE_STATUS_IO_ERROR zurückzuliefern."
#: .tmp/pnm.c:404 #: .tmp/pnm.c:439
msgid "Return SANE_STATUS_NO_MEM" msgid "Return SANE_STATUS_NO_MEM"
msgstr "Liefere SANE_STATUS_NO_MEM zurück" msgstr "Liefere SANE_STATUS_NO_MEM zurück"
#: .tmp/pnm.c:405 #: .tmp/pnm.c:440
msgid "" msgid ""
"Force the backend to return the status code SANE_STATUS_NO_MEM after " "Force the backend to return the status code SANE_STATUS_NO_MEM after "
"sane_read() has been called." "sane_read() has been called."
@ -176,11 +184,11 @@ msgstr ""
"Zwinge das Backend dazu, nach einem Aufruf von sane_read() den Statuscode " "Zwinge das Backend dazu, nach einem Aufruf von sane_read() den Statuscode "
"SANE_STATUS_NO_MEM zurückzuliefern." "SANE_STATUS_NO_MEM zurückzuliefern."
#: .tmp/pnm.c:416 #: .tmp/pnm.c:451
msgid "Return SANE_STATUS_ACCESS_DENIED" msgid "Return SANE_STATUS_ACCESS_DENIED"
msgstr "Liefere SANE_STATUS_ACCESS_DENIED zurück" msgstr "Liefere SANE_STATUS_ACCESS_DENIED zurück"
#: .tmp/pnm.c:417 #: .tmp/pnm.c:452
msgid "" msgid ""
"Force the backend to return the status code SANE_STATUS_ACCESS_DENIED after " "Force the backend to return the status code SANE_STATUS_ACCESS_DENIED after "
"sane_read() has been called." "sane_read() has been called."
@ -188,10 +196,6 @@ msgstr ""
"Zwinge das Backend dazu, nach einem Aufruf von sane_read() den Statuscode " "Zwinge das Backend dazu, nach einem Aufruf von sane_read() den Statuscode "
"SANE_STATUS_ACCESS_DENIED zurückzuliefern." "SANE_STATUS_ACCESS_DENIED zurückzuliefern."
#: .tmp/pnm.c:469 .tmp/pnm.c:475
msgid "PNM file reader"
msgstr "PNM Dateileser"
#: .tmp/saneopts.h:105 #: .tmp/saneopts.h:105
msgid "Number of options" msgid "Number of options"
msgstr "" msgstr ""
@ -532,14 +536,17 @@ msgstr ""
#: .tmp/saneopts.h:228 #: .tmp/saneopts.h:228
msgid "Determines whether a builtin or a custom gamma-table should be used." msgid "Determines whether a builtin or a custom gamma-table should be used."
msgstr "Legt fest, dass eine benutzerdefinierte Gammatabelle verwendet werden soll." msgstr ""
"Legt fest, dass eine benutzerdefinierte Gammatabelle verwendet werden soll."
#: .tmp/saneopts.h:232 #: .tmp/saneopts.h:232
msgid "" msgid ""
"Gamma-correction table. In color mode this option equally affects the red, " "Gamma-correction table. In color mode this option equally affects the red, "
"green, and blue channels simultaneously (i.e., it is an intensity gamma " "green, and blue channels simultaneously (i.e., it is an intensity gamma "
"table)." "table)."
msgstr "Gammatabelle. Im Farbmodus wirkt sich diese Option auf alle Farbkomponenten gleichzeitig aus." msgstr ""
"Gammatabelle. Im Farbmodus wirkt sich diese Option auf alle Farbkomponenten "
"gleichzeitig aus."
#: .tmp/saneopts.h:237 #: .tmp/saneopts.h:237
msgid "Gamma-correction table for the red band." msgid "Gamma-correction table for the red band."