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 #include <gimp-print/string-list.h>
00035
00036 #ifdef __cplusplus
00037 extern "C" {
00038 #endif
00039
00055 struct stp_vars;
00057 typedef struct stp_vars stp_vars_t;
00058
00064 typedef enum
00065 {
00066 STP_PARAMETER_TYPE_STRING_LIST,
00067 STP_PARAMETER_TYPE_INT,
00068 STP_PARAMETER_TYPE_BOOLEAN,
00069 STP_PARAMETER_TYPE_DOUBLE,
00070 STP_PARAMETER_TYPE_CURVE,
00071 STP_PARAMETER_TYPE_FILE,
00072 STP_PARAMETER_TYPE_RAW,
00073 STP_PARAMETER_TYPE_ARRAY,
00074 STP_PARAMETER_TYPE_DIMENSION,
00075 STP_PARAMETER_TYPE_INVALID
00076 } stp_parameter_type_t;
00077
00083 typedef enum
00084 {
00085 STP_PARAMETER_CLASS_FEATURE,
00086 STP_PARAMETER_CLASS_OUTPUT,
00087 STP_PARAMETER_CLASS_CORE,
00088 STP_PARAMETER_CLASS_INVALID
00089 } stp_parameter_class_t;
00090
00095 typedef enum
00096 {
00097 STP_PARAMETER_LEVEL_BASIC,
00098 STP_PARAMETER_LEVEL_ADVANCED,
00099 STP_PARAMETER_LEVEL_ADVANCED1,
00100 STP_PARAMETER_LEVEL_ADVANCED2,
00101 STP_PARAMETER_LEVEL_ADVANCED3,
00102 STP_PARAMETER_LEVEL_ADVANCED4,
00103 STP_PARAMETER_LEVEL_INTERNAL,
00104 STP_PARAMETER_LEVEL_EXTERNAL,
00105 STP_PARAMETER_LEVEL_INVALID
00106 } stp_parameter_level_t;
00107
00114 typedef enum
00115 {
00116 STP_PARAMETER_INACTIVE,
00117 STP_PARAMETER_DEFAULTED,
00118 STP_PARAMETER_ACTIVE
00119 } stp_parameter_activity_t;
00120
00121
00122
00123
00124
00126 typedef struct
00127 {
00128 size_t bytes;
00129 const void *data;
00130 } stp_raw_t;
00131
00133 typedef struct
00134 {
00135 double lower;
00136 double upper;
00137 } stp_double_bound_t;
00138
00140 typedef struct
00141 {
00142 int lower;
00143 int upper;
00144 } stp_int_bound_t;
00145
00147 typedef struct
00148 {
00149 const char *name;
00150 const char *text;
00151 const char *category;
00152 const char *help;
00153 stp_parameter_type_t p_type;
00154 stp_parameter_class_t p_class;
00155 stp_parameter_level_t p_level;
00156 unsigned char is_mandatory;
00157 unsigned char is_active;
00158 unsigned char channel;
00159 unsigned char verify_this_parameter;
00160 unsigned char read_only;
00161 union
00162 {
00163 stp_curve_t *curve;
00164 stp_double_bound_t dbl;
00165 stp_int_bound_t integer;
00166 stp_int_bound_t dimension;
00167 stp_string_list_t *str;
00168 stp_array_t *array;
00169 } bounds;
00170 union
00171 {
00172 stp_curve_t *curve;
00173 double dbl;
00174 int dimension;
00175 int integer;
00176 int boolean;
00177 const char *str;
00178 stp_array_t *array;
00179 } deflt;
00180 } stp_parameter_t;
00181
00183 typedef void *stp_parameter_list_t;
00185 typedef const void *stp_const_parameter_list_t;
00186
00196 typedef void (*stp_outfunc_t) (void *data, const char *buffer, size_t bytes);
00197
00198
00199
00200
00201
00202
00203
00204
00209 extern stp_vars_t *stp_vars_create(void);
00210
00218 extern void stp_vars_copy(stp_vars_t *dest, const stp_vars_t *source);
00219
00227 extern stp_vars_t *stp_vars_create_copy(const stp_vars_t *source);
00228
00234 extern void stp_vars_destroy(stp_vars_t *v);
00235
00241 extern void stp_set_driver(stp_vars_t *v, const char *val);
00242
00249 extern void stp_set_driver_n(stp_vars_t *v, const char *val, int bytes);
00250
00255 extern const char *stp_get_driver(const stp_vars_t *v);
00256
00262 extern void stp_set_color_conversion(stp_vars_t *v, const char *val);
00263
00270 extern void stp_set_color_conversion_n(stp_vars_t *v, const char *val, int bytes);
00271
00276 extern const char *stp_get_color_conversion(const stp_vars_t *v);
00277
00278
00279
00280
00281
00287 extern void stp_set_left(stp_vars_t *v, int val);
00288
00293 extern int stp_get_left(const stp_vars_t *v);
00294
00300 extern void stp_set_top(stp_vars_t *v, int val);
00301
00306 extern int stp_get_top(const stp_vars_t *v);
00307
00313 extern void stp_set_width(stp_vars_t *v, int val);
00314
00319 extern int stp_get_width(const stp_vars_t *v);
00320
00326 extern void stp_set_height(stp_vars_t *v, int val);
00327
00332 extern int stp_get_height(const stp_vars_t *v);
00333
00334
00335
00336
00337
00343 extern void stp_set_page_width(stp_vars_t *v, int val);
00344
00349 extern int stp_get_page_width(const stp_vars_t *v);
00350
00356 extern void stp_set_page_height(stp_vars_t *v, int val);
00357
00362 extern int stp_get_page_height(const stp_vars_t *v);
00363
00371 extern void stp_set_outfunc(stp_vars_t *v, stp_outfunc_t val);
00372
00378 extern stp_outfunc_t stp_get_outfunc(const stp_vars_t *v);
00379
00387 extern void stp_set_errfunc(stp_vars_t *v, stp_outfunc_t val);
00388
00394 extern stp_outfunc_t stp_get_errfunc(const stp_vars_t *v);
00395
00403 extern void stp_set_outdata(stp_vars_t *v, void *val);
00404
00410 extern void *stp_get_outdata(const stp_vars_t *v);
00411
00419 extern void stp_set_errdata(stp_vars_t *v, void *val);
00420
00426 extern void *stp_get_errdata(const stp_vars_t *v);
00427
00434 extern void stp_merge_printvars(stp_vars_t *user, const stp_vars_t *print);
00435
00436
00437
00438
00439
00440
00441
00442
00452 extern stp_parameter_list_t stp_get_parameter_list(const stp_vars_t *v);
00453
00460 extern size_t stp_parameter_list_count(stp_const_parameter_list_t list);
00461
00469 extern const stp_parameter_t *
00470 stp_parameter_find(stp_const_parameter_list_t list, const char *name);
00471
00480 extern const stp_parameter_t *
00481 stp_parameter_list_param(stp_const_parameter_list_t list, size_t item);
00482
00488 extern void stp_parameter_list_destroy(stp_parameter_list_t list);
00489
00494 extern stp_parameter_list_t stp_parameter_list_create(void);
00495
00501 extern void stp_parameter_list_add_param(stp_parameter_list_t list,
00502 const stp_parameter_t *item);
00503
00512 extern stp_parameter_list_t
00513 stp_parameter_list_copy(stp_const_parameter_list_t list);
00514
00521 extern void
00522 stp_parameter_list_append(stp_parameter_list_t list,
00523 stp_const_parameter_list_t append);
00524
00533 extern void
00534 stp_describe_parameter(const stp_vars_t *v, const char *name,
00535 stp_parameter_t *description);
00536
00543 extern void stp_parameter_description_destroy(stp_parameter_t *description);
00544
00552 extern const stp_parameter_t *
00553 stp_parameter_find_in_settings(const stp_vars_t *v, const char *name);
00554
00561 extern void stp_set_string_parameter(stp_vars_t *v, const char *parameter,
00562 const char *value);
00563
00571 extern void stp_set_string_parameter_n(stp_vars_t *v, const char *parameter,
00572 const char *value, size_t bytes);
00573
00580 extern void stp_set_file_parameter(stp_vars_t *v, const char *parameter,
00581 const char *value);
00582
00590 extern void stp_set_file_parameter_n(stp_vars_t *v, const char *parameter,
00591 const char *value, size_t bytes);
00592
00599 extern void stp_set_float_parameter(stp_vars_t *v, const char *parameter,
00600 double value);
00601
00608 extern void stp_set_int_parameter(stp_vars_t *v, const char *parameter,
00609 int value);
00610
00617 extern void stp_set_dimension_parameter(stp_vars_t *v, const char *parameter,
00618 int value);
00619
00626 extern void stp_set_boolean_parameter(stp_vars_t *v, const char *parameter,
00627 int value);
00628
00635 extern void stp_set_curve_parameter(stp_vars_t *v, const char *parameter,
00636 const stp_curve_t *value);
00637
00644 extern void stp_set_array_parameter(stp_vars_t *v, const char *parameter,
00645 const stp_array_t *value);
00646
00654 extern void stp_set_raw_parameter(stp_vars_t *v, const char *parameter,
00655 const void *value, size_t bytes);
00656
00663 extern void stp_scale_float_parameter(stp_vars_t *v, const char *parameter,
00664 double scale);
00665
00675 extern void stp_set_default_string_parameter(stp_vars_t *v,
00676 const char *parameter,
00677 const char *value);
00678
00689 extern void stp_set_default_string_parameter_n(stp_vars_t *v,
00690 const char *parameter,
00691 const char *value, size_t bytes);
00692
00702 extern void stp_set_default_file_parameter(stp_vars_t *v,
00703 const char *parameter,
00704 const char *value);
00705
00716 extern void stp_set_default_file_parameter_n(stp_vars_t *v,
00717 const char *parameter,
00718 const char *value, size_t bytes);
00719
00729 extern void stp_set_default_float_parameter(stp_vars_t *v,
00730 const char *parameter,
00731 double value);
00732
00742 extern void stp_set_default_int_parameter(stp_vars_t *v,
00743 const char *parameter,
00744 int value);
00745
00755 extern void stp_set_default_dimension_parameter(stp_vars_t *v,
00756 const char *parameter,
00757 int value);
00758
00768 extern void stp_set_default_boolean_parameter(stp_vars_t *v,
00769 const char *parameter,
00770 int value);
00771
00781 extern void stp_set_default_curve_parameter(stp_vars_t *v,
00782 const char *parameter,
00783 const stp_curve_t *value);
00784
00794 extern void stp_set_default_array_parameter(stp_vars_t *v,
00795 const char *parameter,
00796 const stp_array_t *value);
00797
00808 extern void stp_set_default_raw_parameter(stp_vars_t *v,
00809 const char *parameter,
00810 const void *value, size_t bytes);
00811
00818 extern const char *stp_get_string_parameter(const stp_vars_t *v,
00819 const char *parameter);
00820
00827 extern const char *stp_get_file_parameter(const stp_vars_t *v,
00828 const char *parameter);
00829
00836 extern double stp_get_float_parameter(const stp_vars_t *v,
00837 const char *parameter);
00838
00845 extern int stp_get_int_parameter(const stp_vars_t *v,
00846 const char *parameter);
00847
00854 extern int stp_get_dimension_parameter(const stp_vars_t *v,
00855 const char *parameter);
00856
00863 extern int stp_get_boolean_parameter(const stp_vars_t *v,
00864 const char *parameter);
00865
00872 extern const stp_curve_t *stp_get_curve_parameter(const stp_vars_t *v,
00873 const char *parameter);
00874
00881 extern const stp_array_t *stp_get_array_parameter(const stp_vars_t *v,
00882 const char *parameter);
00883
00890 extern const stp_raw_t *stp_get_raw_parameter(const stp_vars_t *v,
00891 const char *parameter);
00892
00899 extern void stp_clear_string_parameter(stp_vars_t *v, const char *parameter);
00900
00907 extern void stp_clear_file_parameter(stp_vars_t *v, const char *parameter);
00908
00914 extern void stp_clear_float_parameter(stp_vars_t *v, const char *parameter);
00915
00921 extern void stp_clear_int_parameter(stp_vars_t *v, const char *parameter);
00922
00928 extern void stp_clear_dimension_parameter(stp_vars_t *v, const char *parameter);
00929
00935 extern void stp_clear_boolean_parameter(stp_vars_t *v, const char *parameter);
00936
00943 extern void stp_clear_curve_parameter(stp_vars_t *v, const char *parameter);
00944
00951 extern void stp_clear_array_parameter(stp_vars_t *v, const char *parameter);
00952
00959 extern void stp_clear_raw_parameter(stp_vars_t *v, const char *parameter);
00960
00968 extern void stp_set_string_parameter_active(const stp_vars_t *v,
00969 const char *parameter,
00970 stp_parameter_activity_t active);
00971
00979 extern void stp_set_file_parameter_active(const stp_vars_t *v,
00980 const char *parameter,
00981 stp_parameter_activity_t active);
00982
00990 extern void stp_set_float_parameter_active(const stp_vars_t *v,
00991 const char *parameter,
00992 stp_parameter_activity_t active);
00993
01001 extern void stp_set_int_parameter_active(const stp_vars_t *v,
01002 const char *parameter,
01003 stp_parameter_activity_t active);
01004
01012 extern void stp_set_dimension_parameter_active(const stp_vars_t *v,
01013 const char *parameter,
01014 stp_parameter_activity_t active);
01015
01023 extern void stp_set_boolean_parameter_active(const stp_vars_t *v,
01024 const char *parameter,
01025 stp_parameter_activity_t active);
01026
01034 extern void stp_set_curve_parameter_active(const stp_vars_t *v,
01035 const char *parameter,
01036 stp_parameter_activity_t active);
01037
01045 extern void stp_set_array_parameter_active(const stp_vars_t *v,
01046 const char *parameter,
01047 stp_parameter_activity_t active);
01048
01056 extern void stp_set_raw_parameter_active(const stp_vars_t *v,
01057 const char *parameter,
01058 stp_parameter_activity_t active);
01059
01066 extern int stp_check_string_parameter(const stp_vars_t *v, const char *parameter,
01067 stp_parameter_activity_t active);
01068
01075 extern int stp_check_file_parameter(const stp_vars_t *v, const char *parameter,
01076 stp_parameter_activity_t active);
01077
01084 extern int stp_check_float_parameter(const stp_vars_t *v, const char *parameter,
01085 stp_parameter_activity_t active);
01086
01093 extern int stp_check_int_parameter(const stp_vars_t *v, const char *parameter,
01094 stp_parameter_activity_t active);
01095
01102 extern int stp_check_dimension_parameter(const stp_vars_t *v, const char *parameter,
01103 stp_parameter_activity_t active);
01104
01111 extern int stp_check_boolean_parameter(const stp_vars_t *v, const char *parameter,
01112 stp_parameter_activity_t active);
01113
01120 extern int stp_check_curve_parameter(const stp_vars_t *v, const char *parameter,
01121 stp_parameter_activity_t active);
01122
01129 extern int stp_check_array_parameter(const stp_vars_t *v, const char *parameter,
01130 stp_parameter_activity_t active);
01131
01138 extern int stp_check_raw_parameter(const stp_vars_t *v, const char *parameter,
01139 stp_parameter_activity_t active);
01140
01147 extern stp_parameter_activity_t
01148 stp_get_string_parameter_active(const stp_vars_t *v, const char *parameter);
01149
01156 extern stp_parameter_activity_t
01157 stp_get_file_parameter_active(const stp_vars_t *v, const char *parameter);
01158
01165 extern stp_parameter_activity_t
01166 stp_get_float_parameter_active(const stp_vars_t *v, const char *parameter);
01167
01174 extern stp_parameter_activity_t
01175 stp_get_int_parameter_active(const stp_vars_t *v, const char *parameter);
01176
01183 extern stp_parameter_activity_t
01184 stp_get_dimension_parameter_active(const stp_vars_t *v, const char *parameter);
01185
01192 extern stp_parameter_activity_t
01193 stp_get_boolean_parameter_active(const stp_vars_t *v, const char *parameter);
01194
01201 extern stp_parameter_activity_t
01202 stp_get_curve_parameter_active(const stp_vars_t *v, const char *parameter);
01203
01210 extern stp_parameter_activity_t
01211 stp_get_array_parameter_active(const stp_vars_t *v, const char *parameter);
01212
01219 extern stp_parameter_activity_t
01220 stp_get_raw_parameter_active(const stp_vars_t *v, const char *parameter);
01221
01222
01223
01224
01225
01226
01227
01228
01229
01242 extern void stp_get_media_size(const stp_vars_t *v, int *width, int *height);
01243
01267 extern void stp_get_imageable_area(const stp_vars_t *v, int *left, int *right,
01268 int *bottom, int *top);
01269
01280 extern void
01281 stp_get_size_limit(const stp_vars_t *v, int *max_width, int *max_height,
01282 int *min_width, int *min_height);
01283
01284
01292 extern void stp_describe_resolution(const stp_vars_t *v, int *x, int *y);
01293
01302 extern int stp_verify(stp_vars_t *v);
01303
01312 extern const stp_vars_t *stp_default_settings(void);
01313
01314 typedef void *(*stp_copy_data_func_t)(void *);
01315 typedef void (*stp_free_data_func_t)(void *);
01316
01317 typedef enum
01318 {
01319 PARAMETER_BAD,
01320 PARAMETER_OK,
01321 PARAMETER_INACTIVE
01322 } stp_parameter_verify_t;
01323
01324 extern void stp_allocate_component_data(stp_vars_t *v,
01325 const char *name,
01326 stp_copy_data_func_t copyfunc,
01327 stp_free_data_func_t freefunc,
01328 void *data);
01329 extern void stp_destroy_component_data(stp_vars_t *v, const char *name);
01330
01331 struct stp_compdata;
01332 typedef struct stp_compdata compdata_t;
01333
01334 extern void *stp_get_component_data(const stp_vars_t *v, const char *name);
01335
01336 extern stp_parameter_verify_t stp_verify_parameter(const stp_vars_t *v,
01337 const char *parameter,
01338 int quiet);
01339 extern int stp_get_verified(const stp_vars_t *v);
01340 extern void stp_set_verified(stp_vars_t *v, int value);
01341
01342 extern void stp_copy_options(stp_vars_t *vd, const stp_vars_t *vs);
01343
01344 extern void
01345 stp_fill_parameter_settings(stp_parameter_t *desc,
01346 const stp_parameter_t *param);
01347
01350 #ifdef __cplusplus
01351 }
01352 #endif
01353
01354 #endif
01355
01356
01357