221
247
fprintf(stderr, "DEBUG: Gutenprint: cupsRowCount = %d\n", cups->header.cupsRowCount);
222
248
fprintf(stderr, "DEBUG: Gutenprint: cupsRowFeed = %d\n", cups->header.cupsRowFeed);
223
249
fprintf(stderr, "DEBUG: Gutenprint: cupsRowStep = %d\n", cups->header.cupsRowStep);
224
fprintf(stderr, "DEBUG: Gutenprint: stp_get_driver(v) |%s|\n", stp_get_driver(v));
225
fprintf(stderr, "DEBUG: Gutenprint: stp_get_left(v) %d\n", stp_get_left(v));
226
fprintf(stderr, "DEBUG: Gutenprint: stp_get_top(v) %d\n", stp_get_top(v));
227
fprintf(stderr, "DEBUG: Gutenprint: stp_get_page_width(v) %d\n", stp_get_page_width(v));
228
fprintf(stderr, "DEBUG: Gutenprint: stp_get_page_height(v) %d\n", stp_get_page_height(v));
229
250
fprintf(stderr, "DEBUG: Gutenprint: shrink page to fit %d\n", cups->shrink_to_fit);
230
params = stp_get_parameter_list(v);
231
nparams = stp_parameter_list_count(params);
232
for (i = 0; i < nparams; i++)
234
const stp_parameter_t *p = stp_parameter_list_param(params, i);
237
case STP_PARAMETER_TYPE_STRING_LIST:
238
fprintf(stderr, "DEBUG: Gutenprint: stp_get_string %s(v) |%s| %d\n",
239
p->name, stp_get_string_parameter(v, p->name) ?
240
stp_get_string_parameter(v, p->name) : "NULL",
241
stp_get_string_parameter_active(v, p->name));
243
case STP_PARAMETER_TYPE_DOUBLE:
244
fprintf(stderr, "DEBUG: Gutenprint: stp_get_float %s(v) |%.3f| %d\n",
245
p->name, stp_get_float_parameter(v, p->name),
246
stp_get_float_parameter_active(v, p->name));
248
case STP_PARAMETER_TYPE_DIMENSION:
249
fprintf(stderr, "DEBUG: Gutenprint: stp_get_dimension %s(v) |%d| %d\n",
250
p->name, stp_get_dimension_parameter(v, p->name),
251
stp_get_dimension_parameter_active(v, p->name));
253
case STP_PARAMETER_TYPE_INT:
254
fprintf(stderr, "DEBUG: Gutenprint: stp_get_int %s(v) |%d| %d\n",
255
p->name, stp_get_int_parameter(v, p->name),
256
stp_get_int_parameter_active(v, p->name));
258
case STP_PARAMETER_TYPE_BOOLEAN:
259
fprintf(stderr, "DEBUG: Gutenprint: stp_get_boolean %s(v) |%d| %d\n",
260
p->name, stp_get_boolean_parameter(v, p->name),
261
stp_get_boolean_parameter_active(v, p->name));
264
* We don't handle raw, curve, or filename arguments.
251
stpi_vars_print_error(v, "DEBUG");
270
252
fprintf(stderr, "DEBUG: Gutenprint: End page data\n");
271
stp_parameter_list_destroy(params);
824
836
stp_parameter_list_destroy(params);
839
#ifdef ENABLE_CUPS_LOAD_SAVE_OPTIONS
841
save_options(const char *save_name, const stp_vars_t *v)
845
stp_vars_t *c = stp_vars_create();
846
stp_parameter_list_t params = stp_get_parameter_list(v);
847
stp_parameter_t desc;
848
stp_mxml_node_t *mxml = NULL;
856
f_options = fopen(save_name, "w");
859
stp_parameter_list_destroy(params);
863
param_count = stp_parameter_list_count(params);
864
stp_set_driver(c, stp_get_driver(v));
865
if (!suppress_messages)
866
fprintf(stderr, "DEBUG: Gutenprint: Saving parameters to %s\n", save_name);
867
for (i = 0; i < param_count; i++)
869
const stp_parameter_t *lparam =
870
stp_parameter_list_param(params, i);
871
stp_describe_parameter(v, lparam->name, &desc);
872
if (desc.read_only || !strcmp(desc.name, "ChannelBitDepth") ||
873
!stp_parameter_has_category_value(v, &desc, "Color", "Yes"))
875
if (!suppress_messages)
876
fprintf(stderr, "DEBUG: Gutenprint: skipping non-color %s\n",
878
stp_parameter_description_destroy(&desc);
883
case STP_PARAMETER_TYPE_STRING_LIST:
884
if (stp_check_string_parameter(v, desc.name,
885
STP_PARAMETER_DEFAULTED))
887
if (!suppress_messages)
888
fprintf(stderr, "DEBUG: Gutenprint: SAVING string %s %s\n",
889
desc.name, stp_get_string_parameter(v, desc.name));
890
stp_set_string_parameter(c, desc.name,
891
stp_get_string_parameter(v, desc.name));
893
else if (desc.is_mandatory)
895
if (!suppress_messages)
896
fprintf(stderr, "DEBUG: Gutenprint: SAVING defaulted string %s %s\n",
897
desc.name, desc.deflt.str);
898
stp_set_string_parameter(c, desc.name, desc.deflt.str);
900
else if (!suppress_messages)
901
fprintf(stderr, "DEBUG: Gutenprint: skipping string %s\n", desc.name);
903
case STP_PARAMETER_TYPE_RAW:
904
if (stp_check_raw_parameter(v, desc.name,
905
STP_PARAMETER_DEFAULTED))
907
const stp_raw_t *raw = stp_get_raw_parameter(v, desc.name);
908
if (!suppress_messages)
909
fprintf(stderr, "DEBUG: Gutenprint: SAVING raw %s\n", desc.name);
910
stp_set_raw_parameter(c, desc.name, raw->data, raw->bytes);
912
else if (!suppress_messages)
913
fprintf(stderr, "DEBUG: Gutenprint: skipping raw %s\n",
916
case STP_PARAMETER_TYPE_BOOLEAN:
917
if (stp_check_boolean_parameter(v, desc.name, STP_PARAMETER_DEFAULTED))
919
if (!suppress_messages)
920
fprintf(stderr, "DEBUG: Gutenprint: SAVING bool %s %d\n",
921
desc.name, stp_get_boolean_parameter(v, desc.name));
922
stp_set_boolean_parameter(c, desc.name,
923
stp_get_boolean_parameter(v, desc.name));
925
else if (desc.is_mandatory)
927
if (!suppress_messages)
928
fprintf(stderr, "DEBUG: Gutenprint: SAVING defaulted bool %s %d\n",
929
desc.name, desc.deflt.boolean);
930
stp_set_boolean_parameter(c, desc.name, desc.deflt.boolean);
932
else if (!suppress_messages)
933
fprintf(stderr, "DEBUG: Gutenprint: skipping bool %s\n", desc.name);
935
case STP_PARAMETER_TYPE_INT:
936
if (stp_check_int_parameter(v, desc.name, STP_PARAMETER_DEFAULTED))
938
if (!suppress_messages)
939
fprintf(stderr, "DEBUG: Gutenprint: SAVING int %s %d\n",
940
desc.name, stp_get_int_parameter(v, desc.name));
941
stp_set_int_parameter(c, desc.name, stp_get_int_parameter(v, desc.name));
943
else if (desc.is_mandatory)
945
if (!suppress_messages)
946
fprintf(stderr, "DEBUG: Gutenprint: SAVING defaulted int %s %d\n",
947
desc.name, desc.deflt.integer);
948
stp_set_int_parameter(c, desc.name, desc.deflt.integer);
950
else if (!suppress_messages)
951
fprintf(stderr, "DEBUG: Gutenprint: skipping int %s\n", desc.name);
953
case STP_PARAMETER_TYPE_DOUBLE:
954
if (stp_check_float_parameter(v, desc.name, STP_PARAMETER_DEFAULTED))
956
if (!suppress_messages)
957
fprintf(stderr, "DEBUG: Gutenprint: SAVING float %s %f\n",
958
desc.name, stp_get_float_parameter(v, desc.name));
959
stp_set_float_parameter(c, desc.name,
960
stp_get_float_parameter(v, desc.name));
962
else if (desc.is_mandatory)
964
if (!suppress_messages)
965
fprintf(stderr, "DEBUG: Gutenprint: SAVING defaulted float %s %f\n",
966
desc.name, desc.deflt.dbl);
967
stp_set_float_parameter(c, desc.name, desc.deflt.dbl);
969
else if (!suppress_messages)
970
fprintf(stderr, "DEBUG: Gutenprint: skipping float %s\n", desc.name);
972
case STP_PARAMETER_TYPE_DIMENSION:
973
if (stp_check_dimension_parameter(v, desc.name, STP_PARAMETER_DEFAULTED))
975
if (!suppress_messages)
976
fprintf(stderr, "DEBUG: Gutenprint: SAVING dimension %s %d\n",
977
desc.name, stp_get_dimension_parameter(v, desc.name));
978
stp_set_dimension_parameter(c, desc.name,
979
stp_get_dimension_parameter(v, desc.name));
981
else if (desc.is_mandatory)
983
if (!suppress_messages)
984
fprintf(stderr, "DEBUG: Gutenprint: SAVING defaulted dimension %s %d\n",
985
desc.name, desc.deflt.dimension);
986
stp_set_dimension_parameter(c, desc.name, desc.deflt.dimension);
988
else if (!suppress_messages)
989
fprintf(stderr, "DEBUG: Gutenprint: skipping dimension %s\n", desc.name);
991
case STP_PARAMETER_TYPE_CURVE:
992
if (stp_check_curve_parameter(v, desc.name, STP_PARAMETER_DEFAULTED))
994
if (!suppress_messages)
995
fprintf(stderr, "DEBUG: Gutenprint: SAVING curve %s\n", desc.name);
996
stp_set_curve_parameter(c, desc.name,
997
stp_get_curve_parameter(v, desc.name));
999
else if (desc.is_mandatory)
1001
if (!suppress_messages)
1002
fprintf(stderr, "DEBUG: Gutenprint: SAVING defaulted curve %s\n", desc.name);
1003
stp_set_curve_parameter(c, desc.name, desc.deflt.curve);
1005
else if (!suppress_messages)
1006
fprintf(stderr, "DEBUG: Gutenprint: skipping curve %s\n",
1010
if (!suppress_messages)
1011
fprintf(stderr, "DEBUG: Gutenprint: Ignoring unknown type parameter %s (%d)\n",
1012
desc.name, desc.p_type);
1015
stp_parameter_description_destroy(&desc);
1017
stp_parameter_list_destroy(params);
1018
mxml = stp_xmltree_create_from_vars(c);
1021
fputs("<?xml version=\"1.0\"?>\n\n", f_options);
1022
stp_mxmlSaveFile(mxml, f_options, STP_MXML_NO_CALLBACK);
1023
stp_mxmlDelete(mxml);
1025
(void) fclose(f_options);
1026
stp_vars_destroy(c);
1027
if (!suppress_messages)
1028
fprintf(stderr, "DEBUG: Gutenprint: Done saving parameters to %s\n", save_name);
1032
load_options(const char *load_name)
1034
FILE *f_options = fopen(load_name, "r");
1037
stp_vars_t *settings = NULL;
1038
stp_mxml_node_t *mxml;
1039
mxml = stp_mxmlLoadFile(NULL, f_options, STP_MXML_NO_CALLBACK);
1042
stp_mxml_node_t *nxml =
1043
stp_mxmlFindElement(mxml, mxml, "vars", NULL, NULL,
1047
settings = stp_vars_create_from_xmltree_ref(nxml->child, mxml);
1048
if (! suppress_messages)
1049
fprintf(stderr, "DEBUG: Gutenprint: loading options from %s\n",
1051
if (! suppress_messages)
1052
stpi_vars_print_error(settings, "DEBUG");
1056
fprintf(stderr, "DEBUG: Unable to load options from %s\n",
1064
#endif /* ENABLE_CUPS_LOAD_SAVE_OPTIONS */
828
1067
* 'main()' - Main entry and processing of driver.
1123
1403
clocks_per_sec = sysconf(_SC_CLK_TCK);
1124
1404
fprintf(stderr, "DEBUG: Gutenprint: Printed total %.0f bytes\n",
1125
1405
total_bytes_printed);
1126
fprintf(stderr, "DEBUG: Gutenprint: Used %.3f seconds user, %.3f seconds system, %.3f seconds elapsed\n",
1406
fprintf(stderr, "DEBUG: Gutenprint: Time %.3f user, %.3f sys, %.3f elapsed\n",
1127
1407
(double) tms.tms_utime / clocks_per_sec,
1128
1408
(double) tms.tms_stime / clocks_per_sec,
1129
1409
(double) (t2.tv_sec - t1.tv_sec) +
1130
1410
((double) (t2.tv_usec - t1.tv_usec)) / 1000000.0);
1131
stp_vars_destroy(default_settings);
1133
stp_free(page_size_name);
1411
if (!suppress_messages)
1141
stp_end_job(v, &theImage);
1143
stp_vars_destroy(v);
1413
fprintf(stderr, "DEBUG: Gutenprint: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
1414
fprintf(stderr, "DEBUG: Gutenprint: ============================================================\n");
1145
cupsRasterClose(cups.ras);
1147
(void) gettimeofday(&t2, &tz);
1148
clocks_per_sec = sysconf(_SC_CLK_TCK);
1149
fprintf(stderr, "DEBUG: Gutenprint: Printed total %.0f bytes\n",
1150
total_bytes_printed);
1151
fprintf(stderr, "DEBUG: Gutenprint: Used %.3f seconds user, %.3f seconds system, %.3f seconds elapsed\n",
1152
(double) tms.tms_utime / clocks_per_sec,
1153
(double) tms.tms_stime / clocks_per_sec,
1154
(double) (t2.tv_sec - t1.tv_sec) +
1155
((double) (t2.tv_usec - t1.tv_usec)) / 1000000.0);
1156
stp_i18n_printf(po, _("ERROR: Invalid Gutenprint driver settings!\n"));
1157
1416
stp_vars_destroy(default_settings);
1158
1417
if (page_size_name)
1159
1418
stp_free(page_size_name);
1421
return aborted ? 1 : 0;