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_INVALID
00075 } stp_parameter_type_t;
00076
00082 typedef enum
00083 {
00084 STP_PARAMETER_CLASS_FEATURE,
00085 STP_PARAMETER_CLASS_OUTPUT,
00086 STP_PARAMETER_CLASS_CORE,
00087 STP_PARAMETER_CLASS_INVALID
00088 } stp_parameter_class_t;
00089
00094 typedef enum
00095 {
00096 STP_PARAMETER_LEVEL_BASIC,
00097 STP_PARAMETER_LEVEL_ADVANCED,
00098 STP_PARAMETER_LEVEL_ADVANCED1,
00099 STP_PARAMETER_LEVEL_ADVANCED2,
00100 STP_PARAMETER_LEVEL_ADVANCED3,
00101 STP_PARAMETER_LEVEL_ADVANCED4,
00102 STP_PARAMETER_LEVEL_INTERNAL,
00103 STP_PARAMETER_LEVEL_EXTERNAL,
00104 STP_PARAMETER_LEVEL_INVALID
00105 } stp_parameter_level_t;
00106
00113 typedef enum
00114 {
00115 STP_PARAMETER_INACTIVE,
00116 STP_PARAMETER_DEFAULTED,
00117 STP_PARAMETER_ACTIVE
00118 } stp_parameter_activity_t;
00119
00120
00121
00122
00123
00125 typedef struct
00126 {
00127 size_t bytes;
00128 const void *data;
00129 } stp_raw_t;
00130
00132 typedef struct
00133 {
00134 double lower;
00135 double upper;
00136 } stp_double_bound_t;
00137
00139 typedef struct
00140 {
00141 int lower;
00142 int upper;
00143 } stp_int_bound_t;
00144
00146 typedef struct
00147 {
00148 const char *name;
00149 const char *text;
00150 const char *category;
00151 const char *help;
00152 stp_parameter_type_t p_type;
00153 stp_parameter_class_t p_class;
00154 stp_parameter_level_t p_level;
00155 unsigned char is_mandatory;
00156 unsigned char is_active;
00157 unsigned char channel;
00158 unsigned char verify_this_parameter;
00159 unsigned char read_only;
00160 union
00161 {
00162 stp_curve_t *curve;
00163 stp_double_bound_t dbl;
00164 stp_int_bound_t integer;
00165 stp_string_list_t *str;
00166 stp_array_t *array;
00167 } bounds;
00168 union
00169 {
00170 stp_curve_t *curve;
00171 double dbl;
00172 int integer;
00173 int boolean;
00174 const char *str;
00175 stp_array_t *array;
00176 } deflt;
00177 } stp_parameter_t;
00178
00180 typedef void *stp_parameter_list_t;
00182 typedef const void *stp_const_parameter_list_t;
00183
00193 typedef void (*stp_outfunc_t) (void *data, const char *buffer, size_t bytes);
00194
00195
00196
00197
00198
00199
00200
00201
00206 extern stp_vars_t *stp_vars_create(void);
00207
00215 extern void stp_vars_copy(stp_vars_t *dest, const stp_vars_t *source);
00216
00224 extern stp_vars_t *stp_vars_create_copy(const stp_vars_t *source);
00225
00231 extern void stp_vars_destroy(stp_vars_t *v);
00232
00238 extern void stp_set_driver(stp_vars_t *v, const char *val);
00239
00246 extern void stp_set_driver_n(stp_vars_t *v, const char *val, int bytes);
00247
00252 extern const char *stp_get_driver(const stp_vars_t *v);
00253
00259 extern void stp_set_color_conversion(stp_vars_t *v, const char *val);
00260
00267 extern void stp_set_color_conversion_n(stp_vars_t *v, const char *val, int bytes);
00268
00273 extern const char *stp_get_color_conversion(const stp_vars_t *v);
00274
00275
00276
00277
00278
00284 extern void stp_set_left(stp_vars_t *v, int val);
00285
00290 extern int stp_get_left(const stp_vars_t *v);
00291
00297 extern void stp_set_top(stp_vars_t *v, int val);
00298
00303 extern int stp_get_top(const stp_vars_t *v);
00304
00310 extern void stp_set_width(stp_vars_t *v, int val);
00311
00316 extern int stp_get_width(const stp_vars_t *v);
00317
00323 extern void stp_set_height(stp_vars_t *v, int val);
00324
00329 extern int stp_get_height(const stp_vars_t *v);
00330
00331
00332
00333
00334
00340 extern void stp_set_page_width(stp_vars_t *v, int val);
00341
00346 extern int stp_get_page_width(const stp_vars_t *v);
00347
00353 extern void stp_set_page_height(stp_vars_t *v, int val);
00354
00359 extern int stp_get_page_height(const stp_vars_t *v);
00360
00368 extern void stp_set_outfunc(stp_vars_t *v, stp_outfunc_t val);
00369
00375 extern stp_outfunc_t stp_get_outfunc(const stp_vars_t *v);
00376
00384 extern void stp_set_errfunc(stp_vars_t *v, stp_outfunc_t val);
00385
00391 extern stp_outfunc_t stp_get_errfunc(const stp_vars_t *v);
00392
00400 extern void stp_set_outdata(stp_vars_t *v, void *val);
00401
00407 extern void *stp_get_outdata(const stp_vars_t *v);
00408
00416 extern void stp_set_errdata(stp_vars_t *v, void *val);
00417
00423 extern void *stp_get_errdata(const stp_vars_t *v);
00424
00431 extern void stp_merge_printvars(stp_vars_t *user, const stp_vars_t *print);
00432
00433
00434
00435
00436
00437
00438
00439
00449 extern stp_parameter_list_t stp_get_parameter_list(const stp_vars_t *v);
00450
00457 extern size_t stp_parameter_list_count(stp_const_parameter_list_t list);
00458
00466 extern const stp_parameter_t *
00467 stp_parameter_find(stp_const_parameter_list_t list, const char *name);
00468
00477 extern const stp_parameter_t *
00478 stp_parameter_list_param(stp_const_parameter_list_t list, size_t item);
00479
00485 extern void stp_parameter_list_destroy(stp_parameter_list_t list);
00486
00491 extern stp_parameter_list_t stp_parameter_list_create(void);
00492
00498 extern void stp_parameter_list_add_param(stp_parameter_list_t list,
00499 const stp_parameter_t *item);
00500
00509 extern stp_parameter_list_t
00510 stp_parameter_list_copy(stp_const_parameter_list_t list);
00511
00518 extern void
00519 stp_parameter_list_append(stp_parameter_list_t list,
00520 stp_const_parameter_list_t append);
00521
00530 extern void
00531 stp_describe_parameter(const stp_vars_t *v, const char *name,
00532 stp_parameter_t *description);
00533
00540 extern void stp_parameter_description_destroy(stp_parameter_t *description);
00541
00549 extern const stp_parameter_t *
00550 stp_parameter_find_in_settings(const stp_vars_t *v, const char *name);
00551
00558 extern void stp_set_string_parameter(stp_vars_t *v, const char *parameter,
00559 const char *value);
00560
00568 extern void stp_set_string_parameter_n(stp_vars_t *v, const char *parameter,
00569 const char *value, size_t bytes);
00570
00577 extern void stp_set_file_parameter(stp_vars_t *v, const char *parameter,
00578 const char *value);
00579
00587 extern void stp_set_file_parameter_n(stp_vars_t *v, const char *parameter,
00588 const char *value, size_t bytes);
00589
00596 extern void stp_set_float_parameter(stp_vars_t *v, const char *parameter,
00597 double value);
00598
00605 extern void stp_set_int_parameter(stp_vars_t *v, const char *parameter,
00606 int value);
00607
00614 extern void stp_set_boolean_parameter(stp_vars_t *v, const char *parameter,
00615 int value);
00616
00623 extern void stp_set_curve_parameter(stp_vars_t *v, const char *parameter,
00624 const stp_curve_t *value);
00625
00632 extern void stp_set_array_parameter(stp_vars_t *v, const char *parameter,
00633 const stp_array_t *value);
00634
00642 extern void stp_set_raw_parameter(stp_vars_t *v, const char *parameter,
00643 const void *value, size_t bytes);
00644
00651 extern void stp_scale_float_parameter(stp_vars_t *v, const char *parameter,
00652 double scale);
00653
00663 extern void stp_set_default_string_parameter(stp_vars_t *v,
00664 const char *parameter,
00665 const char *value);
00666
00677 extern void stp_set_default_string_parameter_n(stp_vars_t *v,
00678 const char *parameter,
00679 const char *value, size_t bytes);
00680
00690 extern void stp_set_default_file_parameter(stp_vars_t *v,
00691 const char *parameter,
00692 const char *value);
00693
00704 extern void stp_set_default_file_parameter_n(stp_vars_t *v,
00705 const char *parameter,
00706 const char *value, size_t bytes);
00707
00717 extern void stp_set_default_float_parameter(stp_vars_t *v,
00718 const char *parameter,
00719 double value);
00720
00730 extern void stp_set_default_int_parameter(stp_vars_t *v,
00731 const char *parameter,
00732 int value);
00733
00743 extern void stp_set_default_boolean_parameter(stp_vars_t *v,
00744 const char *parameter,
00745 int value);
00746
00756 extern void stp_set_default_curve_parameter(stp_vars_t *v,
00757 const char *parameter,
00758 const stp_curve_t *value);
00759
00769 extern void stp_set_default_array_parameter(stp_vars_t *v,
00770 const char *parameter,
00771 const stp_array_t *value);
00772
00783 extern void stp_set_default_raw_parameter(stp_vars_t *v,
00784 const char *parameter,
00785 const void *value, size_t bytes);
00786
00793 extern const char *stp_get_string_parameter(const stp_vars_t *v,
00794 const char *parameter);
00795
00802 extern const char *stp_get_file_parameter(const stp_vars_t *v,
00803 const char *parameter);
00804
00811 extern double stp_get_float_parameter(const stp_vars_t *v,
00812 const char *parameter);
00813
00820 extern int stp_get_int_parameter(const stp_vars_t *v,
00821 const char *parameter);
00822
00829 extern int stp_get_boolean_parameter(const stp_vars_t *v,
00830 const char *parameter);
00831
00838 extern const stp_curve_t *stp_get_curve_parameter(const stp_vars_t *v,
00839 const char *parameter);
00840
00847 extern const stp_array_t *stp_get_array_parameter(const stp_vars_t *v,
00848 const char *parameter);
00849
00856 extern const stp_raw_t *stp_get_raw_parameter(const stp_vars_t *v,
00857 const char *parameter);
00858
00865 extern void stp_clear_string_parameter(stp_vars_t *v, const char *parameter);
00866
00873 extern void stp_clear_file_parameter(stp_vars_t *v, const char *parameter);
00874
00880 extern void stp_clear_float_parameter(stp_vars_t *v, const char *parameter);
00881
00887 extern void stp_clear_int_parameter(stp_vars_t *v, const char *parameter);
00888
00894 extern void stp_clear_boolean_parameter(stp_vars_t *v, const char *parameter);
00895
00902 extern void stp_clear_curve_parameter(stp_vars_t *v, const char *parameter);
00903
00910 extern void stp_clear_array_parameter(stp_vars_t *v, const char *parameter);
00911
00918 extern void stp_clear_raw_parameter(stp_vars_t *v, const char *parameter);
00919
00927 extern void stp_set_string_parameter_active(const stp_vars_t *v,
00928 const char *parameter,
00929 stp_parameter_activity_t active);
00930
00938 extern void stp_set_file_parameter_active(const stp_vars_t *v,
00939 const char *parameter,
00940 stp_parameter_activity_t active);
00941
00949 extern void stp_set_float_parameter_active(const stp_vars_t *v,
00950 const char *parameter,
00951 stp_parameter_activity_t active);
00952
00960 extern void stp_set_int_parameter_active(const stp_vars_t *v,
00961 const char *parameter,
00962 stp_parameter_activity_t active);
00963
00971 extern void stp_set_boolean_parameter_active(const stp_vars_t *v,
00972 const char *parameter,
00973 stp_parameter_activity_t active);
00974
00982 extern void stp_set_curve_parameter_active(const stp_vars_t *v,
00983 const char *parameter,
00984 stp_parameter_activity_t active);
00985
00993 extern void stp_set_array_parameter_active(const stp_vars_t *v,
00994 const char *parameter,
00995 stp_parameter_activity_t active);
00996
01004 extern void stp_set_raw_parameter_active(const stp_vars_t *v,
01005 const char *parameter,
01006 stp_parameter_activity_t active);
01007
01014 extern int stp_check_string_parameter(const stp_vars_t *v, const char *parameter,
01015 stp_parameter_activity_t active);
01016
01023 extern int stp_check_file_parameter(const stp_vars_t *v, const char *parameter,
01024 stp_parameter_activity_t active);
01025
01032 extern int stp_check_float_parameter(const stp_vars_t *v, const char *parameter,
01033 stp_parameter_activity_t active);
01034
01041 extern int stp_check_int_parameter(const stp_vars_t *v, const char *parameter,
01042 stp_parameter_activity_t active);
01043
01050 extern int stp_check_boolean_parameter(const stp_vars_t *v, const char *parameter,
01051 stp_parameter_activity_t active);
01052
01059 extern int stp_check_curve_parameter(const stp_vars_t *v, const char *parameter,
01060 stp_parameter_activity_t active);
01061
01068 extern int stp_check_array_parameter(const stp_vars_t *v, const char *parameter,
01069 stp_parameter_activity_t active);
01070
01077 extern int stp_check_raw_parameter(const stp_vars_t *v, const char *parameter,
01078 stp_parameter_activity_t active);
01079
01086 extern stp_parameter_activity_t
01087 stp_get_string_parameter_active(const stp_vars_t *v, const char *parameter);
01088
01095 extern stp_parameter_activity_t
01096 stp_get_file_parameter_active(const stp_vars_t *v, const char *parameter);
01097
01104 extern stp_parameter_activity_t
01105 stp_get_float_parameter_active(const stp_vars_t *v, const char *parameter);
01106
01113 extern stp_parameter_activity_t
01114 stp_get_int_parameter_active(const stp_vars_t *v, const char *parameter);
01115
01122 extern stp_parameter_activity_t
01123 stp_get_boolean_parameter_active(const stp_vars_t *v, const char *parameter);
01124
01131 extern stp_parameter_activity_t
01132 stp_get_curve_parameter_active(const stp_vars_t *v, const char *parameter);
01133
01140 extern stp_parameter_activity_t
01141 stp_get_array_parameter_active(const stp_vars_t *v, const char *parameter);
01142
01149 extern stp_parameter_activity_t
01150 stp_get_raw_parameter_active(const stp_vars_t *v, const char *parameter);
01151
01152
01153
01154
01155
01156
01157
01158
01159
01172 extern void stp_get_media_size(const stp_vars_t *v, int *width, int *height);
01173
01197 extern void stp_get_imageable_area(const stp_vars_t *v, int *left, int *right,
01198 int *bottom, int *top);
01199
01210 extern void
01211 stp_get_size_limit(const stp_vars_t *v, int *max_width, int *max_height,
01212 int *min_width, int *min_height);
01213
01214
01222 extern void stp_describe_resolution(const stp_vars_t *v, int *x, int *y);
01223
01232 extern int stp_verify(stp_vars_t *v);
01233
01242 extern const stp_vars_t *stp_default_settings(void);
01243
01244 typedef void *(*stp_copy_data_func_t)(void *);
01245 typedef void (*stp_free_data_func_t)(void *);
01246
01247 typedef enum
01248 {
01249 PARAMETER_BAD,
01250 PARAMETER_OK,
01251 PARAMETER_INACTIVE
01252 } stp_parameter_verify_t;
01253
01254 extern void stp_allocate_component_data(stp_vars_t *v,
01255 const char *name,
01256 stp_copy_data_func_t copyfunc,
01257 stp_free_data_func_t freefunc,
01258 void *data);
01259 extern void stp_destroy_component_data(stp_vars_t *v, const char *name);
01260
01261 struct stp_compdata;
01262 typedef struct stp_compdata compdata_t;
01263
01264 extern void *stp_get_component_data(const stp_vars_t *v, const char *name);
01265
01266 extern stp_parameter_verify_t stp_verify_parameter(const stp_vars_t *v,
01267 const char *parameter,
01268 int quiet);
01269 extern int stp_get_verified(const stp_vars_t *v);
01270 extern void stp_set_verified(stp_vars_t *v, int value);
01271
01272 extern void stp_copy_options(stp_vars_t *vd, const stp_vars_t *vs);
01273
01274 extern void
01275 stp_fill_parameter_settings(stp_parameter_t *desc,
01276 const stp_parameter_t *param);
01277
01280 #ifdef __cplusplus
01281 }
01282 #endif
01283
01284 #endif
01285
01286
01287