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

Wyświetl plik

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

Wyświetl plik

@ -4,7 +4,7 @@
msgid ""
msgstr ""
"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"
"Last-Translator: Henning Meier-Geinitz <henning@meier-geinitz.de>\n"
"Language-Team: \n"
@ -12,45 +12,47 @@ msgstr ""
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
#: .tmp/pnm.c:129
#: .tmp/pnm.c:164
msgid "Source Selection"
msgstr "Dateiauswahl"
#: .tmp/pnm.c:130
#: .tmp/pnm.c:165
msgid "Selection of the file to load."
msgstr "Auswahl der zu ladenden Datei"
#: .tmp/pnm.c:163
#: .tmp/pnm.c:198
msgid "Image Enhancement"
msgstr "Bildkorrektur"
#: .tmp/pnm.c:164
#: .tmp/pnm.c:199
msgid "A few controls to enhance image while loading"
msgstr "Einige Einstellungen zur Verbesserung des Bildes während des Ladens"
#: .tmp/pnm.c:196
#: .tmp/pnm.c:231
msgid "Grayify"
msgstr "Graustufen"
#: .tmp/pnm.c:197
#: .tmp/pnm.c:232
msgid "Load the image as grayscale."
msgstr "Bild in Graustufen laden."
#: .tmp/pnm.c:207
#: .tmp/pnm.c:242
msgid "Three-Pass Simulation"
msgstr "Three-Pass Simulation"
#: .tmp/pnm.c:208
#: .tmp/pnm.c:243
msgid ""
"Simulate a three-pass scanner by returning 3 separate frames. For kicks, it "
"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"
msgstr "Handscanner Simulation"
#: .tmp/pnm.c:220
#: .tmp/pnm.c:255
msgid ""
"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 "
@ -61,66 +63,72 @@ msgstr ""
"Mit dieser Option kann man prüfen, ob das Frontend damit richtig umgehen "
"kann."
#: .tmp/pnm.c:232
#: .tmp/pnm.c:267
msgid "Defaults"
msgstr "Defaulteinstellungen"
#: .tmp/pnm.c:233
#: .tmp/pnm.c:268
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"
msgstr "Nur-Lese-Testoption"
#: .tmp/pnm.c:244
#: .tmp/pnm.c:279
msgid "Let's see whether frontends can treat this right"
msgstr "Mal sehen, ob das Frontend damit umgehen kann."
#: .tmp/pnm.c:254
#: .tmp/pnm.c:289
msgid "Gamma tables"
msgstr "Gammatabellen"
#: .tmp/pnm.c:255
#: .tmp/pnm.c:290
msgid "Selection of custom gamma tables."
msgstr "Auswahl der benutzerdefinierten Gammatabellen."
#: .tmp/pnm.c:320
#: .tmp/pnm.c:355
msgid "Status Code Simulation"
msgstr "Statuscode Simulation"
#: .tmp/pnm.c:321
#: .tmp/pnm.c:356
#, fuzzy
msgid ""
"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 ableto treat the "
"status 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."
"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 treat the status "
"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."
#: .tmp/pnm.c:333
#: .tmp/pnm.c:368
msgid "Do not force status code"
msgstr "Keinen Statuscode erzwingen"
#: .tmp/pnm.c:334
#: .tmp/pnm.c:369
msgid "Do not force the backend to return a status code."
msgstr "Zwinge das Backend nicht dazu, einen Statuscode zurückzuliefern."
#: .tmp/pnm.c:344
#: .tmp/pnm.c:379
msgid "Return SANE_STATUS_EOF"
msgstr "Liefere SANE_STATUS_EOF zurück"
#: .tmp/pnm.c:345
#: .tmp/pnm.c:380
msgid ""
"Force the backend to return the status code SANE_STATUS_EOF after "
"sane_read() has been called."
"Force the backend to return the status code SANE_STATUS_EOF after sane_read"
"() has been called."
msgstr ""
"Zwinge das Backend dazu, nach einem Aufruf von sane_read() den Statuscode "
"SANE_STATUS_EOF zurückzuliefern."
#: .tmp/pnm.c:356
#: .tmp/pnm.c:391
msgid "Return SANE_STATUS_JAMMED"
msgstr "Liefere SANE_STATUS_JAMMED zurück"
#: .tmp/pnm.c:357
#: .tmp/pnm.c:392
msgid ""
"Force the backend to return the status code SANE_STATUS_JAMMED after "
"sane_read() has been called."
@ -128,11 +136,11 @@ msgstr ""
"Zwinge das Backend dazu, nach einem Aufruf von sane_read() den Statuscode "
"SANE_STATUS_JAMMED zurückzuliefern."
#: .tmp/pnm.c:368
#: .tmp/pnm.c:403
msgid "Return SANE_STATUS_NO_DOCS"
msgstr "Liefere SANE_STATUS_NO_DOCS zurück"
#: .tmp/pnm.c:369
#: .tmp/pnm.c:404
msgid ""
"Force the backend to return the status code SANE_STATUS_NO_DOCS after "
"sane_read() has been called."
@ -140,11 +148,11 @@ msgstr ""
"Zwinge das Backend dazu, nach einem Aufruf von sane_read() den Statuscode "
"SANE_STATUS_NO_DOCS zurückzuliefern."
#: .tmp/pnm.c:380
#: .tmp/pnm.c:415
msgid "Return SANE_STATUS_COVER_OPEN"
msgstr "Liefere SANE_STATUS_COVER_OPEN zurück"
#: .tmp/pnm.c:381
#: .tmp/pnm.c:416
msgid ""
"Force the backend to return the status code SANE_STATUS_COVER_OPEN after "
"sane_read() has been called."
@ -152,11 +160,11 @@ msgstr ""
"Zwinge das Backend dazu, nach einem Aufruf von sane_read() den Statuscode "
"SANE_STATUS_COVER_OPEN zurückzuliefern."
#: .tmp/pnm.c:392
#: .tmp/pnm.c:427
msgid "Return SANE_STATUS_IO_ERROR"
msgstr "Liefere SANE_STATUS_IO_ERROR zurück"
#: .tmp/pnm.c:393
#: .tmp/pnm.c:428
msgid ""
"Force the backend to return the status code SANE_STATUS_IO_ERROR after "
"sane_read() has been called."
@ -164,11 +172,11 @@ msgstr ""
"Zwinge das Backend dazu, nach einem Aufruf von sane_read() den Statuscode "
"SANE_STATUS_IO_ERROR zurückzuliefern."
#: .tmp/pnm.c:404
#: .tmp/pnm.c:439
msgid "Return SANE_STATUS_NO_MEM"
msgstr "Liefere SANE_STATUS_NO_MEM zurück"
#: .tmp/pnm.c:405
#: .tmp/pnm.c:440
msgid ""
"Force the backend to return the status code SANE_STATUS_NO_MEM after "
"sane_read() has been called."
@ -176,11 +184,11 @@ msgstr ""
"Zwinge das Backend dazu, nach einem Aufruf von sane_read() den Statuscode "
"SANE_STATUS_NO_MEM zurückzuliefern."
#: .tmp/pnm.c:416
#: .tmp/pnm.c:451
msgid "Return SANE_STATUS_ACCESS_DENIED"
msgstr "Liefere SANE_STATUS_ACCESS_DENIED zurück"
#: .tmp/pnm.c:417
#: .tmp/pnm.c:452
msgid ""
"Force the backend to return the status code SANE_STATUS_ACCESS_DENIED after "
"sane_read() has been called."
@ -188,10 +196,6 @@ msgstr ""
"Zwinge das Backend dazu, nach einem Aufruf von sane_read() den Statuscode "
"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
msgid "Number of options"
msgstr ""
@ -532,14 +536,17 @@ msgstr ""
#: .tmp/saneopts.h:228
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
msgid ""
"Gamma-correction table. In color mode this option equally affects the red, "
"green, and blue channels simultaneously (i.e., it is an intensity gamma "
"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
msgid "Gamma-correction table for the red band."