00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00029 #ifndef GIMP_PRINT_VARS_H
00030 #define GIMP_PRINT_VARS_H
00031
00032 #include <gimp-print/array.h>
00033 #include <gimp-print/curve.h>
00034
00035 #ifdef __cplusplus
00036 extern "C" {
00037 #endif
00038
00054 struct stp_vars;
00056 typedef struct stp_vars stp_vars_t;
00057
00063 typedef enum
00064 {
00065 STP_PARAMETER_TYPE_STRING_LIST,
00066 STP_PARAMETER_TYPE_INT,
00067 STP_PARAMETER_TYPE_BOOLEAN,
00068 STP_PARAMETER_TYPE_DOUBLE,
00069 STP_PARAMETER_TYPE_CURVE,
00070 STP_PARAMETER_TYPE_FILE,
00071 STP_PARAMETER_TYPE_RAW,
00072 STP_PARAMETER_TYPE_ARRAY,
00073 STP_PARAMETER_TYPE_INVALID
00074 } stp_parameter_type_t;
00075
00081 typedef enum
00082 {
00083 STP_PARAMETER_CLASS_FEATURE,
00084 STP_PARAMETER_CLASS_OUTPUT,
00085 STP_PARAMETER_CLASS_CORE,
00086 STP_PARAMETER_CLASS_INVALID
00087 } stp_parameter_class_t;
00088
00093 typedef enum
00094 {
00095 STP_PARAMETER_LEVEL_BASIC,
00096 STP_PARAMETER_LEVEL_ADVANCED,
00097 STP_PARAMETER_LEVEL_ADVANCED1,
00098 STP_PARAMETER_LEVEL_ADVANCED2,
00099 STP_PARAMETER_LEVEL_ADVANCED3,
00100 STP_PARAMETER_LEVEL_ADVANCED4,
00101 STP_PARAMETER_LEVEL_INTERNAL,
00102 STP_PARAMETER_LEVEL_EXTERNAL,
00103 STP_PARAMETER_LEVEL_INVALID
00104 } stp_parameter_level_t;
00105
00112 typedef enum
00113 {
00114 STP_PARAMETER_INACTIVE,
00115 STP_PARAMETER_DEFAULTED,
00116 STP_PARAMETER_ACTIVE
00117 } stp_parameter_activity_t;
00118
00119
00126 typedef struct
00127 {
00128 const char *name,
00129 *text;
00130 } stp_param_string_t;
00131
00133 typedef void *stp_string_list_t;
00135 typedef const void *stp_const_string_list_t;
00136
00137
00138
00139
00140
00142 typedef struct
00143 {
00144 size_t bytes;
00145 const void *data;
00146 } stp_raw_t;
00147
00149 typedef struct
00150 {
00151 double lower;
00152 double upper;
00153 } stp_double_bound_t;
00154
00156 typedef struct
00157 {
00158 int lower;
00159 int upper;
00160 } stp_int_bound_t;
00161
00163 typedef struct
00164 {
00165 const char *name;
00166 const char *text;
00167 const char *category;
00168 const char *help;
00169 stp_parameter_type_t p_type;
00170 stp_parameter_class_t p_class;
00171 stp_parameter_level_t p_level;
00172 unsigned char is_mandatory;
00173 unsigned char is_active;
00174 unsigned char channel;
00175 unsigned char verify_this_parameter;
00176 unsigned char read_only;
00177 union
00178 {
00179 stp_curve_t *curve;
00180 stp_double_bound_t dbl;
00181 stp_int_bound_t integer;
00182 stp_string_list_t str;
00183 stp_array_t *array;
00184 } bounds;
00185 union
00186 {
00187 stp_curve_t *curve;
00188 double dbl;
00189 int integer;
00190 int boolean;
00191 const char *str;
00192 stp_array_t *array;
00193 } deflt;
00194 } stp_parameter_t;
00195
00197 typedef void *stp_parameter_list_t;
00199 typedef const void *stp_const_parameter_list_t;
00200
00210 typedef void (*stp_outfunc_t) (void *data, const char *buffer, size_t bytes);
00211
00212
00213
00214
00215
00216
00217
00218
00223 extern stp_vars_t *stp_vars_create(void);
00224
00232 extern void stp_vars_copy(stp_vars_t *dest, const stp_vars_t *source);
00233
00241 extern stp_vars_t *stp_vars_create_copy(const stp_vars_t *source);
00242
00248 extern void stp_vars_destroy(stp_vars_t *v);
00249
00255 extern void stp_set_driver(stp_vars_t *v, const char *val);
00256
00263 extern void stp_set_driver_n(stp_vars_t *v, const char *val, int bytes);
00264
00269 extern const char *stp_get_driver(const stp_vars_t *v);
00270
00276 extern void stp_set_color_conversion(stp_vars_t *v, const char *val);
00277
00284 extern void stp_set_color_conversion_n(stp_vars_t *v, const char *val, int bytes);
00285
00290 extern const char *stp_get_color_conversion(const stp_vars_t *v);
00291
00292
00293
00294
00295
00301 extern void stp_set_left(stp_vars_t *v, int val);
00302
00307 extern int stp_get_left(const stp_vars_t *v);
00308
00314 extern void stp_set_top(stp_vars_t *v, int val);
00315
00320 extern int stp_get_top(const stp_vars_t *v);
00321
00327 extern void stp_set_width(stp_vars_t *v, int val);
00328
00333 extern int stp_get_width(const stp_vars_t *v);
00334
00340 extern void stp_set_height(stp_vars_t *v, int val);
00341
00346 extern int stp_get_height(const stp_vars_t *v);
00347
00348
00349
00350
00351
00357 extern void stp_set_page_width(stp_vars_t *v, int val);
00358
00363 extern int stp_get_page_width(const stp_vars_t *v);
00364
00370 extern void stp_set_page_height(stp_vars_t *v, int val);
00371
00376 extern int stp_get_page_height(const stp_vars_t *v);
00377
00385 extern void stp_set_outfunc(stp_vars_t *v, stp_outfunc_t val);
00386
00392 extern stp_outfunc_t stp_get_outfunc(const stp_vars_t *v);
00393
00401 extern void stp_set_errfunc(stp_vars_t *v, stp_outfunc_t val);
00402
00408 extern stp_outfunc_t stp_get_errfunc(const stp_vars_t *v);
00409
00417 extern void stp_set_outdata(stp_vars_t *v, void *val);
00418
00424 extern void *stp_get_outdata(const stp_vars_t *v);
00425
00433 extern void stp_set_errdata(stp_vars_t *v, void *val);
00434
00440 extern void *stp_get_errdata(const stp_vars_t *v);
00441
00448 extern void stp_merge_printvars(stp_vars_t *user, const stp_vars_t *print);
00449
00450
00451
00452
00453
00454
00455
00456
00466 extern stp_parameter_list_t stp_get_parameter_list(const stp_vars_t *v);
00467
00474 extern size_t stp_parameter_list_count(stp_const_parameter_list_t list);
00475
00483 extern const stp_parameter_t *
00484 stp_parameter_find(stp_const_parameter_list_t list, const char *name);
00485
00494 extern const stp_parameter_t *
00495 stp_parameter_list_param(stp_const_parameter_list_t list, size_t item);
00496
00502 extern void stp_parameter_list_destroy(stp_parameter_list_t list);
00503
00508 extern stp_parameter_list_t stp_parameter_list_create(void);
00509
00515 extern void stp_parameter_list_add_param(stp_parameter_list_t list,
00516 const stp_parameter_t *item);
00517
00526 extern stp_parameter_list_t
00527 stp_parameter_list_copy(stp_const_parameter_list_t list);
00528
00535 extern void
00536 stp_parameter_list_append(stp_parameter_list_t list,
00537 stp_const_parameter_list_t append);
00538
00547 extern void
00548 stp_describe_parameter(const stp_vars_t *v, const char *name,
00549 stp_parameter_t *description);
00550
00557 extern void stp_parameter_description_destroy(stp_parameter_t *description);
00558
00566 extern const stp_parameter_t *
00567 stp_parameter_find_in_settings(const stp_vars_t *v, const char *name);
00568
00575 extern void stp_set_string_parameter(stp_vars_t *v, const char *parameter,
00576 const char *value);
00577
00585 extern void stp_set_string_parameter_n(stp_vars_t *v, const char *parameter,
00586 const char *value, size_t bytes);
00587
00594 extern void stp_set_file_parameter(stp_vars_t *v, const char *parameter,
00595 const char *value);
00596
00604 extern void stp_set_file_parameter_n(stp_vars_t *v, const char *parameter,
00605 const char *value, size_t bytes);
00606
00613 extern void stp_set_float_parameter(stp_vars_t *v, const char *parameter,
00614 double value);
00615
00622 extern void stp_set_int_parameter(stp_vars_t *v, const char *parameter,
00623 int value);
00624
00631 extern void stp_set_boolean_parameter(stp_vars_t *v, const char *parameter,
00632 int value);
00633
00640 extern void stp_set_curve_parameter(stp_vars_t *v, const char *parameter,
00641 const stp_curve_t *value);
00642
00649 extern void stp_set_array_parameter(stp_vars_t *v, const char *parameter,
00650 const stp_array_t *value);
00651
00659 extern void stp_set_raw_parameter(stp_vars_t *v, const char *parameter,
00660 const void *value, size_t bytes);
00661
00668 extern void stp_scale_float_parameter(stp_vars_t *v, const char *parameter,
00669 double scale);
00670
00680 extern void stp_set_default_string_parameter(stp_vars_t *v,
00681 const char *parameter,
00682 const char *value);
00683
00694 extern void stp_set_default_string_parameter_n(stp_vars_t *v,
00695 const char *parameter,
00696 const char *value, size_t bytes);
00697
00707 extern void stp_set_default_file_parameter(stp_vars_t *v,
00708 const char *parameter,
00709 const char *value);
00710
00721 extern void stp_set_default_file_parameter_n(stp_vars_t *v,
00722 const char *parameter,
00723 const char *value, size_t bytes);
00724
00734 extern void stp_set_default_float_parameter(stp_vars_t *v,
00735 const char *parameter,
00736 double value);
00737
00747 extern void stp_set_default_int_parameter(stp_vars_t *v,
00748 const char *parameter,
00749 int value);
00750
00760 extern void stp_set_default_boolean_parameter(stp_vars_t *v,
00761 const char *parameter,
00762 int value);
00763
00773 extern void stp_set_default_curve_parameter(stp_vars_t *v,
00774 const char *parameter,
00775 const stp_curve_t *value);
00776
00786 extern void stp_set_default_array_parameter(stp_vars_t *v,
00787 const char *parameter,
00788 const stp_array_t *value);
00789
00800 extern void stp_set_default_raw_parameter(stp_vars_t *v,
00801 const char *parameter,
00802 const void *value, size_t bytes);
00803
00810 extern const char *stp_get_string_parameter(const stp_vars_t *v,
00811 const char *parameter);
00812
00819 extern const char *stp_get_file_parameter(const stp_vars_t *v,
00820 const char *parameter);
00821
00828 extern double stp_get_float_parameter(const stp_vars_t *v,
00829 const char *parameter);
00830
00837 extern int stp_get_int_parameter(const stp_vars_t *v,
00838 const char *parameter);
00839
00846 extern int stp_get_boolean_parameter(const stp_vars_t *v,
00847 const char *parameter);
00848
00855 extern const stp_curve_t *stp_get_curve_parameter(const stp_vars_t *v,
00856 const char *parameter);
00857
00864 extern const stp_array_t *stp_get_array_parameter(const stp_vars_t *v,
00865 const char *parameter);
00866
00873 extern const stp_raw_t *stp_get_raw_parameter(const stp_vars_t *v,
00874 const char *parameter);
00875
00882 extern void stp_clear_string_parameter(stp_vars_t *v, const char *parameter);
00883
00890 extern void stp_clear_file_parameter(stp_vars_t *v, const char *parameter);
00891
00897 extern void stp_clear_float_parameter(stp_vars_t *v, const char *parameter);
00898
00904 extern void stp_clear_int_parameter(stp_vars_t *v, const char *parameter);
00905
00911 extern void stp_clear_boolean_parameter(stp_vars_t *v, const char *parameter);
00912
00919 extern void stp_clear_curve_parameter(stp_vars_t *v, const char *parameter);
00920
00927 extern void stp_clear_array_parameter(stp_vars_t *v, const char *parameter);
00928
00935 extern void stp_clear_raw_parameter(stp_vars_t *v, const char *parameter);
00936
00944 extern void stp_set_string_parameter_active(const stp_vars_t *v,
00945 const char *parameter,
00946 stp_parameter_activity_t active);
00947
00955 extern void stp_set_file_parameter_active(const stp_vars_t *v,
00956 const char *parameter,
00957 stp_parameter_activity_t active);
00958
00966 extern void stp_set_float_parameter_active(const stp_vars_t *v,
00967 const char *parameter,
00968 stp_parameter_activity_t active);
00969
00977 extern void stp_set_int_parameter_active(const stp_vars_t *v,
00978 const char *parameter,
00979 stp_parameter_activity_t active);
00980
00988 extern void stp_set_boolean_parameter_active(const stp_vars_t *v,
00989 const char *parameter,
00990 stp_parameter_activity_t active);
00991
00999 extern void stp_set_curve_parameter_active(const stp_vars_t *v,
01000 const char *parameter,
01001 stp_parameter_activity_t active);
01002
01010 extern void stp_set_array_parameter_active(const stp_vars_t *v,
01011 const char *parameter,
01012 stp_parameter_activity_t active);
01013
01021 extern void stp_set_raw_parameter_active(const stp_vars_t *v,
01022 const char *parameter,
01023 stp_parameter_activity_t active);
01024
01031 extern int stp_check_string_parameter(const stp_vars_t *v, const char *parameter,
01032 stp_parameter_activity_t active);
01033
01040 extern int stp_check_file_parameter(const stp_vars_t *v, const char *parameter,
01041 stp_parameter_activity_t active);
01042
01049 extern int stp_check_float_parameter(const stp_vars_t *v, const char *parameter,
01050 stp_parameter_activity_t active);
01051
01058 extern int stp_check_int_parameter(const stp_vars_t *v, const char *parameter,
01059 stp_parameter_activity_t active);
01060
01067 extern int stp_check_boolean_parameter(const stp_vars_t *v, const char *parameter,
01068 stp_parameter_activity_t active);
01069
01076 extern int stp_check_curve_parameter(const stp_vars_t *v, const char *parameter,
01077 stp_parameter_activity_t active);
01078
01085 extern int stp_check_array_parameter(const stp_vars_t *v, const char *parameter,
01086 stp_parameter_activity_t active);
01087
01094 extern int stp_check_raw_parameter(const stp_vars_t *v, const char *parameter,
01095 stp_parameter_activity_t active);
01096
01103 extern stp_parameter_activity_t
01104 stp_get_string_parameter_active(const stp_vars_t *v, const char *parameter);
01105
01112 extern stp_parameter_activity_t
01113 stp_get_file_parameter_active(const stp_vars_t *v, const char *parameter);
01114
01121 extern stp_parameter_activity_t
01122 stp_get_float_parameter_active(const stp_vars_t *v, const char *parameter);
01123
01130 extern stp_parameter_activity_t
01131 stp_get_int_parameter_active(const stp_vars_t *v, const char *parameter);
01132
01139 extern stp_parameter_activity_t
01140 stp_get_boolean_parameter_active(const stp_vars_t *v, const char *parameter);
01141
01148 extern stp_parameter_activity_t
01149 stp_get_curve_parameter_active(const stp_vars_t *v, const char *parameter);
01150
01157 extern stp_parameter_activity_t
01158 stp_get_array_parameter_active(const stp_vars_t *v, const char *parameter);
01159
01166 extern stp_parameter_activity_t
01167 stp_get_raw_parameter_active(const stp_vars_t *v, const char *parameter);
01168
01169
01170
01171
01172
01173
01174
01175
01176
01189 extern void stp_get_media_size(const stp_vars_t *v, int *width, int *height);
01190
01214 extern void stp_get_imageable_area(const stp_vars_t *v, int *left, int *right,
01215 int *bottom, int *top);
01216
01227 extern void
01228 stp_get_size_limit(const stp_vars_t *v, int *max_width, int *max_height,
01229 int *min_width, int *min_height);
01230
01231
01239 extern void stp_describe_resolution(const stp_vars_t *v, int *x, int *y);
01240
01249 extern int stp_verify(stp_vars_t *v);
01250
01259 extern const stp_vars_t *stp_default_settings(void);
01260
01261 typedef void *(*stp_copy_data_func_t)(void *);
01262 typedef void (*stp_free_data_func_t)(void *);
01263
01264 typedef enum
01265 {
01266 PARAMETER_BAD,
01267 PARAMETER_OK,
01268 PARAMETER_INACTIVE
01269 } stp_parameter_verify_t;
01270
01271 extern void stp_allocate_component_data(stp_vars_t *v,
01272 const char *name,
01273 stp_copy_data_func_t copyfunc,
01274 stp_free_data_func_t freefunc,
01275 void *data);
01276 extern void stp_destroy_component_data(stp_vars_t *v, const char *name);
01277
01278 struct stp_compdata;
01279 typedef struct stp_compdata compdata_t;
01280
01281 extern void *stp_get_component_data(const stp_vars_t *v, const char *name);
01282
01283 extern stp_parameter_verify_t stp_verify_parameter(const stp_vars_t *v,
01284 const char *parameter,
01285 int quiet);
01286 extern int stp_get_verified(const stp_vars_t *v);
01287 extern void stp_set_verified(stp_vars_t *v, int value);
01288
01289 extern void stp_copy_options(stp_vars_t *vd, const stp_vars_t *vs);
01290
01291 extern void
01292 stp_fill_parameter_settings(stp_parameter_t *desc,
01293 const stp_parameter_t *param);
01294
01297 #ifdef __cplusplus
01298 }
01299 #endif
01300
01301 #endif
01302
01303
01304