diff options
Diffstat (limited to 'src/foomatic/printer_options.c')
-rw-r--r-- | src/foomatic/printer_options.c | 317 |
1 files changed, 0 insertions, 317 deletions
diff --git a/src/foomatic/printer_options.c b/src/foomatic/printer_options.c deleted file mode 100644 index 9bf8e64..0000000 --- a/src/foomatic/printer_options.c +++ /dev/null @@ -1,317 +0,0 @@ -/* - * "$Id: printer_options.c,v 1.55 2015/09/08 03:59:55 speachy Exp $" - * - * Dump the per-printer options for the OpenPrinting database - * - * Copyright 2000 Robert Krawitz (rlk@alum.mit.edu) - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif -#include <stdio.h> -#include <string.h> -#include <gutenprint/gutenprint.h> -#include <gutenprint/gutenprint-intl.h> - -int -main(int argc, char **argv) -{ - int i, j, k; - stp_parameter_level_t max_level = STP_PARAMETER_LEVEL_ADVANCED4; - stp_string_list_t *params_seen; - if (argc > 1 && !strcmp(argv[1], "-s")) - max_level = STP_PARAMETER_LEVEL_BASIC; - - stp_init(); - params_seen = stp_string_list_create(); - for (i = 0; i < stp_printer_model_count(); i++) - { - stp_parameter_list_t params; - int nparams; - stp_parameter_t desc; - const stp_printer_t *printer = stp_get_printer_by_index(i); - const char *driver = stp_printer_get_driver(printer); - const char *family = stp_printer_get_family(printer); - stp_vars_t *pv; - int tcount = 0; - size_t count; - int printer_is_color = 0; - - if (strcmp(family, "ps") == 0 || strcmp(family, "raw") == 0) - continue; - - pv = stp_vars_create_copy(stp_printer_get_defaults(printer)); - - /* Set Job Mode to "Job" as this enables the Duplex option */ - stp_set_string_parameter(pv, "JobMode", "Job"); - - stp_describe_parameter(pv, "PrintingMode", &desc); - if (stp_string_list_is_present(desc.bounds.str, "Color")) - printer_is_color = 1; - stp_parameter_description_destroy(&desc); - if (printer_is_color) - stp_set_string_parameter(pv, "PrintingMode", "Color"); - else - stp_set_string_parameter(pv, "PrintingMode", "BW"); - stp_set_string_parameter(pv, "ChannelBitDepth", "8"); - - printf("# Printer model %s, long name `%s'\n", driver, - stp_printer_get_long_name(printer)); - - params = stp_get_parameter_list(pv); - nparams = stp_parameter_list_count(params); - - for (k = 0; k < nparams; k++) - { - const stp_parameter_t *p = stp_parameter_list_param(params, k); - if (p->read_only || - (p->p_level > max_level && strcmp(p->name, "Resolution") != 0) || - (p->p_class != STP_PARAMETER_CLASS_OUTPUT && - p->p_class != STP_PARAMETER_CLASS_FEATURE)) - continue; - count = 0; - stp_describe_parameter(pv, p->name, &desc); - if (desc.is_active) - { - char buf[1024]; - sprintf(buf, "STP_%s", desc.name); - if (!stp_string_list_find(params_seen, buf)) - { - stp_string_list_add_string(params_seen, buf, buf); - if ((desc.p_type == STP_PARAMETER_TYPE_DOUBLE || - desc.p_type == STP_PARAMETER_TYPE_DIMENSION || - desc.p_type == STP_PARAMETER_TYPE_INT) && - !desc.is_mandatory) - { - sprintf(buf, "STP_Enable%s", desc.name); - if (!stp_string_list_find(params_seen, buf)) - { - stp_string_list_add_string(params_seen, buf, buf); - /* - * Create a dummy option that enables or disables - * the option as appropriate. The long name ends in - * enable, rather than starts with enable, because - * CUPS has this nasty habit of sorting options - * alphabetically rather than leaving them in the - * order listed. This ensures that the enable - * option is adjacent to the value it controls. - */ - printf("$longnames{'STP_Enable%s'}='%s Enable';", - desc.name, desc.text); - printf("$param_classes{'STP_Enable%s'}=%d;", - desc.name, desc.p_class); - printf("$param_levels{'STP_Enable%s'}=%d;", - desc.name, desc.p_level); - printf("$longnames{'STP_%s'}='%s Value';", - desc.name, desc.text); - } - } - else - printf("$longnames{'STP_%s'}='%s';", - desc.name, desc.text); - printf("$param_classes{'STP_%s'}=%d;", - desc.name, desc.p_class); - printf("$param_levels{'STP_%s'}=%d;", - desc.name, desc.p_level); - } - if ((desc.p_type == STP_PARAMETER_TYPE_DOUBLE || - desc.p_type == STP_PARAMETER_TYPE_DIMENSION || - desc.p_type == STP_PARAMETER_TYPE_INT) && - !desc.is_mandatory) - { - printf("$defaults{'%s'}{'STP_Enable%s'}='Disabled';", - driver, desc.name); - printf("$stpdata{'%s'}{'STP_Enable%s'}{'Disabled'}='Disabled';", - driver, desc.name); - printf("$stpdata{'%s'}{'STP_Enable%s'}{'Enabled'}='Enabled';", - driver, desc.name); - } - if (desc.p_type == STP_PARAMETER_TYPE_STRING_LIST) - { - count = stp_string_list_count(desc.bounds.str); - if (count > 0) - { - printf("{ $stpdata{'%s'}{'STP_%s'}={};", - driver, desc.name); - printf("my $tmp=$stpdata{'%s'}{'STP_%s'};", - driver, desc.name); - if (strcmp(desc.name, "Resolution") == 0) - { - printf("$stpdata{'%s'}{'x_resolution'}={};", - driver); - printf("my $x_t=$stpdata{'%s'}{'x_resolution'};", - driver); - printf("$stpdata{'%s'}{'y_resolution'}={};", - driver); - printf("my $y_t=$stpdata{'%s'}{'y_resolution'};", - driver); - } - if (desc.is_mandatory) - { - printf("$defaults{'%s'}{'STP_%s'}='%s';", - driver, desc.name, desc.deflt.str); - } - else - { - printf("$defaults{'%s'}{'STP_%s'}='%s';", - driver, desc.name, "None"); - printf("$$tmp{'%s'}='%s';", "None", "None"); - } - for (j = 0; j < count; j++) - { - const stp_param_string_t *param = - stp_string_list_param(desc.bounds.str, j); - printf("$$tmp{'%s'}='%s';", - param->name, param->text); - if (strcmp(desc.name, "Resolution") == 0) - { - int x, y; - stp_set_string_parameter(pv, "Resolution", - param->name); - stp_describe_resolution(pv, &x, &y); - if (x > 0 && y > 0) - { - printf("$$x_t{'%s'}='%d';",param->name, x); - printf("$$y_t{'%s'}='%d';",param->name, y); - } - stp_clear_string_parameter(pv, "Resolution"); - } - } - printf("}\n"); - } - } - else if (desc.p_type == STP_PARAMETER_TYPE_BOOLEAN) - { - if (desc.is_mandatory) - { - printf("$defaults{'%s'}{'STP_%s'}='%d';", - driver, desc.name, desc.deflt.boolean); - } - else - { - printf("$defaults{'%s'}{'STP_%s'}='%s';", - driver, desc.name, "None"); - printf("$stpdata{'%s'}{'STP_%s'}{'%s'}='%s';", - driver, desc.name, "None", "None"); - } - - printf("$stpdata{'%s'}{'STP_%s'}{'False'}='False';", - driver, desc.name); - printf("$stpdata{'%s'}{'STP_%s'}{'True'}='True';\n", - driver, desc.name); - } - else if (desc.p_type == STP_PARAMETER_TYPE_DOUBLE) - { - if (desc.bounds.dbl.lower <= desc.deflt.dbl && - desc.bounds.dbl.upper >= desc.deflt.dbl) - { - printf("{ $stp_float_values{'%s'}{'STP_%s'}={};", - driver, desc.name); - printf("my $tmp=$stp_float_values{'%s'}{'STP_%s'};", - driver, desc.name); - printf("$$tmp{'MINVAL'}=%.3f;", - desc.bounds.dbl.lower); - printf("$$tmp{'MAXVAL'}=%.3f;", - desc.bounds.dbl.upper); - printf("$$tmp{'DEFVAL'}=%.3f;", - desc.deflt.dbl); - /* printf("$$tmp{'LONG_NAME'}='%s';", - gettext(desc.text)); */ - printf("$$tmp{'CATEGORY'}='%s';", - gettext(desc.category)); - printf("$$tmp{'MANDATORY'}=q(%d);", - desc.is_mandatory); - printf("}\n"); - } - } - else if (desc.p_type == STP_PARAMETER_TYPE_INT) - { - if (desc.bounds.integer.lower <= desc.deflt.integer && - desc.bounds.integer.upper >= desc.deflt.integer) - { - printf("{ $stp_int_values{'%s'}{'STP_%s'}={};", - driver, desc.name); - printf("my $tmp=$stp_int_values{'%s'}{'STP_%s'};", - driver, desc.name); - printf("$$tmp{'MINVAL'}=%d;", - desc.bounds.integer.lower); - printf("$$tmp{'MAXVAL'}=%d;", - desc.bounds.integer.upper); - printf("$$tmp{'DEFVAL'}=%d;", - desc.deflt.integer); - /* printf("$$tmp{'LONG_NAME'}='%s';", - gettext(desc.text)); */ - printf("$$tmp{'CATEGORY'}='%s';", - gettext(desc.category)); - printf("$$tmp{'MANDATORY'}=q(%d);", - desc.is_mandatory); - printf("}\n"); - } - } - else if (desc.p_type == STP_PARAMETER_TYPE_DIMENSION) - { - if (desc.bounds.dimension.lower <= desc.deflt.dimension && - desc.bounds.dimension.upper >= desc.deflt.dimension) - { - printf("{ $stp_dimension_values{'%s'}{'STP_%s'}={};", - driver, desc.name); - printf("my $tmp=$stp_dimension_values{'%s'}{'STP_%s'};", - driver, desc.name); - printf("$$tmp{'MINVAL'}=%d;", - desc.bounds.dimension.lower); - printf("$$tmp{'MAXVAL'}=%d;", - desc.bounds.dimension.upper); - printf("$$tmp{'DEFVAL'}=%d;", - desc.deflt.dimension); - /* printf("$$tmp{'LONG_NAME'}='%s';", - gettext(desc.text)); */ - printf("$$tmp{'CATEGORY'}='%s';", - gettext(desc.category)); - printf("$$tmp{'MANDATORY'}=q(%d);", - desc.is_mandatory); - printf("}\n"); - } - } - tcount += count; - } - stp_parameter_description_destroy(&desc); - } - stp_parameter_list_destroy(params); - if (tcount > 0) - { - if (printer_is_color) - { - printf("$defaults{'%s'}{'%s'}='%s';", - driver, "Color", "Color"); - printf("$stpdata{'%s'}{'%s'}{'%s'}='%s';", - driver, "Color", "Color", "Color"); - printf("$stpdata{'%s'}{'%s'}{'%s'}='%s';\n", - driver, "Color", "RawCMYK", "Raw CMYK"); - } - else - printf("$defaults{'%s'}{'%s'}='%s';", - driver, "Color", "Grayscale"); - printf("$stpdata{'%s'}{'%s'}{'%s'}='%s';", - driver, "Color", "Grayscale", "Gray Scale"); - printf("$stpdata{'%s'}{'%s'}{'%s'}='%s';\n", - driver, "Color", "BlackAndWhite", "Black and White"); - } - stp_vars_destroy(pv); - } - return 0; -} |