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 #ifdef __cplusplus
00033 extern "C" {
00034 #endif
00035
00052 typedef void *stp_vars_t;
00054 typedef const void *stp_const_vars_t;
00055
00061 typedef enum
00062 {
00063 STP_PARAMETER_TYPE_STRING_LIST,
00064 STP_PARAMETER_TYPE_INT,
00065 STP_PARAMETER_TYPE_BOOLEAN,
00066 STP_PARAMETER_TYPE_DOUBLE,
00067 STP_PARAMETER_TYPE_CURVE,
00068 STP_PARAMETER_TYPE_FILE,
00069 STP_PARAMETER_TYPE_RAW,
00070 STP_PARAMETER_TYPE_ARRAY,
00071 STP_PARAMETER_TYPE_INVALID
00072 } stp_parameter_type_t;
00073
00079 typedef enum
00080 {
00081 STP_PARAMETER_CLASS_FEATURE,
00082 STP_PARAMETER_CLASS_OUTPUT,
00083 STP_PARAMETER_CLASS_CORE,
00084 STP_PARAMETER_CLASS_INVALID
00085 } stp_parameter_class_t;
00086
00091 typedef enum
00092 {
00093 STP_PARAMETER_LEVEL_BASIC,
00094 STP_PARAMETER_LEVEL_ADVANCED,
00095 STP_PARAMETER_LEVEL_ADVANCED1,
00096 STP_PARAMETER_LEVEL_ADVANCED2,
00097 STP_PARAMETER_LEVEL_ADVANCED3,
00098 STP_PARAMETER_LEVEL_ADVANCED4,
00099 STP_PARAMETER_LEVEL_INTERNAL,
00100 STP_PARAMETER_LEVEL_EXTERNAL,
00101 STP_PARAMETER_LEVEL_INVALID
00102 } stp_parameter_level_t;
00103
00110 typedef enum
00111 {
00112 STP_PARAMETER_INACTIVE,
00113 STP_PARAMETER_DEFAULTED,
00114 STP_PARAMETER_ACTIVE
00115 } stp_parameter_activity_t;
00116
00117
00124 typedef struct
00125 {
00126 const char *name,
00127 *text;
00128 } stp_param_string_t;
00129
00131 typedef void *stp_string_list_t;
00133 typedef const void *stp_const_string_list_t;
00134
00135
00136
00137
00138
00140 typedef struct
00141 {
00142 size_t bytes;
00143 const void *data;
00144 } stp_raw_t;
00145
00147 typedef struct
00148 {
00149 double lower;
00150 double upper;
00151 } stp_double_bound_t;
00152
00154 typedef struct
00155 {
00156 int lower;
00157 int upper;
00158 } stp_int_bound_t;
00159
00161 typedef struct
00162 {
00163 const char *name;
00164 const char *text;
00165 const char *category;
00166 const char *help;
00167 stp_parameter_type_t p_type;
00168 stp_parameter_class_t p_class;
00169 stp_parameter_level_t p_level;
00170 unsigned char is_mandatory;
00171 unsigned char is_active;
00172 unsigned char channel;
00173 unsigned char verify_this_parameter;
00174 unsigned char read_only;
00175 union
00176 {
00177 stp_curve_t curve;
00178 stp_double_bound_t dbl;
00179 stp_int_bound_t integer;
00180 stp_string_list_t str;
00181 stp_array_t array;
00182 } bounds;
00183 union
00184 {
00185 stp_curve_t curve;
00186 double dbl;
00187 int integer;
00188 int boolean;
00189 const char *str;
00190 stp_array_t array;
00191 } deflt;
00192 } stp_parameter_t;
00193
00195 typedef void *stp_parameter_list_t;
00197 typedef const void *stp_const_parameter_list_t;
00198
00208 typedef void (*stp_outfunc_t) (void *data, const char *buffer, size_t bytes);
00209
00210
00211
00212
00213
00214
00215
00216
00221 extern stp_vars_t stp_vars_create(void);
00222
00230 extern void stp_vars_copy(stp_vars_t dest, stp_const_vars_t source);
00231
00239 extern stp_vars_t stp_vars_create_copy(stp_const_vars_t source);
00240
00246 extern void stp_vars_destroy(stp_vars_t v);
00247
00253 extern void stp_set_driver(stp_vars_t v, const char *val);
00254
00261 extern void stp_set_driver_n(stp_vars_t v, const char *val, int bytes);
00262
00267 extern const char *stp_get_driver(stp_const_vars_t v);
00268
00274 extern void stp_set_color_conversion(stp_vars_t v, const char *val);
00275
00282 extern void stp_set_color_conversion_n(stp_vars_t v, const char *val, int bytes);
00283
00288 extern const char *stp_get_color_conversion(stp_const_vars_t v);
00289
00290
00291
00292
00293
00299 extern void stp_set_left(stp_vars_t v, int val);
00300
00305 extern int stp_get_left(stp_const_vars_t v);
00306
00312 extern void stp_set_top(stp_vars_t v, int val);
00313
00318 extern int stp_get_top(stp_const_vars_t v);
00319
00325 extern void stp_set_width(stp_vars_t v, int val);
00326
00331 extern int stp_get_width(stp_const_vars_t v);
00332
00338 extern void stp_set_height(stp_vars_t v, int val);
00339
00344 extern int stp_get_height(stp_const_vars_t v);
00345
00346
00347
00348
00349
00355 extern void stp_set_page_width(stp_vars_t v, int val);
00356
00361 extern int stp_get_page_width(stp_const_vars_t v);
00362
00368 extern void stp_set_page_height(stp_vars_t v, int val);
00369
00374 extern int stp_get_page_height(stp_const_vars_t v);
00375
00383 extern void stp_set_outfunc(stp_vars_t v, stp_outfunc_t val);
00384
00390 extern stp_outfunc_t stp_get_outfunc(stp_const_vars_t v);
00391
00399 extern void stp_set_errfunc(stp_vars_t v, stp_outfunc_t val);
00400
00406 extern stp_outfunc_t stp_get_errfunc(stp_const_vars_t v);
00407
00415 extern void stp_set_outdata(stp_vars_t v, void *val);
00416
00422 extern void *stp_get_outdata(stp_const_vars_t v);
00423
00431 extern void stp_set_errdata(stp_vars_t v, void *val);
00432
00438 extern void *stp_get_errdata(stp_const_vars_t v);
00439
00446 extern void stp_merge_printvars(stp_vars_t user, stp_const_vars_t print);
00447
00448
00449
00450
00451
00452
00453
00454
00464 extern stp_parameter_list_t stp_get_parameter_list(stp_const_vars_t v);
00465
00472 extern size_t stp_parameter_list_count(stp_const_parameter_list_t list);
00473
00481 extern const stp_parameter_t *
00482 stp_parameter_find(stp_const_parameter_list_t list, const char *name);
00483
00492 extern const stp_parameter_t *
00493 stp_parameter_list_param(stp_const_parameter_list_t list, size_t item);
00494
00500 extern void stp_parameter_list_destroy(stp_parameter_list_t list);
00501
00506 extern stp_parameter_list_t stp_parameter_list_create(void);
00507
00513 extern void stp_parameter_list_add_param(stp_parameter_list_t list,
00514 const stp_parameter_t *item);
00515
00524 extern stp_parameter_list_t
00525 stp_parameter_list_copy(stp_const_parameter_list_t list);
00526
00533 extern void
00534 stp_parameter_list_append(stp_parameter_list_t list,
00535 stp_const_parameter_list_t append);
00536
00545 extern void
00546 stp_describe_parameter(stp_const_vars_t v, const char *name,
00547 stp_parameter_t *description);
00548
00555 extern void stp_parameter_description_destroy(stp_parameter_t *description);
00556
00564 extern const stp_parameter_t *
00565 stp_parameter_find_in_settings(stp_const_vars_t v, const char *name);
00566
00573 extern void stp_set_string_parameter(stp_vars_t v, const char *parameter,
00574 const char *value);
00575
00583 extern void stp_set_string_parameter_n(stp_vars_t v, const char *parameter,
00584 const char *value, size_t bytes);
00585
00592 extern void stp_set_file_parameter(stp_vars_t v, const char *parameter,
00593 const char *value);
00594
00602 extern void stp_set_file_parameter_n(stp_vars_t v, const char *parameter,
00603 const char *value, size_t bytes);
00604
00611 extern void stp_set_float_parameter(stp_vars_t v, const char *parameter,
00612 double value);
00613
00620 extern void stp_set_int_parameter(stp_vars_t v, const char *parameter,
00621 int value);
00622
00629 extern void stp_set_boolean_parameter(stp_vars_t v, const char *parameter,
00630 int value);
00631
00638 extern void stp_set_curve_parameter(stp_vars_t v, const char *parameter,
00639 stp_const_curve_t value);
00640
00647 extern void stp_set_array_parameter(stp_vars_t v, const char *parameter,
00648 stp_const_array_t value);
00649
00657 extern void stp_set_raw_parameter(stp_vars_t v, const char *parameter,
00658 const void *value, size_t bytes);
00659
00666 extern void stp_scale_float_parameter(stp_vars_t v, const char *parameter,
00667 double scale);
00668
00678 extern void stp_set_default_string_parameter(stp_vars_t v,
00679 const char *parameter,
00680 const char *value);
00681
00692 extern void stp_set_default_string_parameter_n(stp_vars_t v,
00693 const char *parameter,
00694 const char *value, size_t bytes);
00695
00705 extern void stp_set_default_file_parameter(stp_vars_t v,
00706 const char *parameter,
00707 const char *value);
00708
00719 extern void stp_set_default_file_parameter_n(stp_vars_t v,
00720 const char *parameter,
00721 const char *value, size_t bytes);
00722
00732 extern void stp_set_default_float_parameter(stp_vars_t v,
00733 const char *parameter,
00734 double value);
00735
00745 extern void stp_set_default_int_parameter(stp_vars_t v,
00746 const char *parameter,
00747 int value);
00748
00758 extern void stp_set_default_boolean_parameter(stp_vars_t v,
00759 const char *parameter,
00760 int value);
00761
00771 extern void stp_set_default_curve_parameter(stp_vars_t v,
00772 const char *parameter,
00773 stp_const_curve_t value);
00774
00784 extern void stp_set_default_array_parameter(stp_vars_t v,
00785 const char *parameter,
00786 stp_const_array_t value);
00787
00798 extern void stp_set_default_raw_parameter(stp_vars_t v,
00799 const char *parameter,
00800 const void *value, size_t bytes);
00801
00808 extern const char *stp_get_string_parameter(stp_const_vars_t v,
00809 const char *parameter);
00810
00817 extern const char *stp_get_file_parameter(stp_const_vars_t v,
00818 const char *parameter);
00819
00826 extern double stp_get_float_parameter(stp_const_vars_t v,
00827 const char *parameter);
00828
00835 extern int stp_get_int_parameter(stp_const_vars_t v,
00836 const char *parameter);
00837
00844 extern int stp_get_boolean_parameter(stp_const_vars_t v,
00845 const char *parameter);
00846
00853 extern stp_const_curve_t stp_get_curve_parameter(stp_const_vars_t v,
00854 const char *parameter);
00855
00862 extern stp_const_array_t stp_get_array_parameter(stp_const_vars_t v,
00863 const char *parameter);
00864
00871 extern const stp_raw_t *stp_get_raw_parameter(stp_const_vars_t v,
00872 const char *parameter);
00873
00880 extern void stp_clear_string_parameter(stp_vars_t v, const char *parameter);
00881
00888 extern void stp_clear_file_parameter(stp_vars_t v, const char *parameter);
00889
00895 extern void stp_clear_float_parameter(stp_vars_t v, const char *parameter);
00896
00902 extern void stp_clear_int_parameter(stp_vars_t v, const char *parameter);
00903
00909 extern void stp_clear_boolean_parameter(stp_vars_t v, const char *parameter);
00910
00917 extern void stp_clear_curve_parameter(stp_vars_t v, const char *parameter);
00918
00925 extern void stp_clear_array_parameter(stp_vars_t v, const char *parameter);
00926
00933 extern void stp_clear_raw_parameter(stp_vars_t v, const char *parameter);
00934
00942 extern void stp_set_string_parameter_active(stp_const_vars_t v,
00943 const char *parameter,
00944 stp_parameter_activity_t active);
00945
00953 extern void stp_set_file_parameter_active(stp_const_vars_t v,
00954 const char *parameter,
00955 stp_parameter_activity_t active);
00956
00964 extern void stp_set_float_parameter_active(stp_const_vars_t v,
00965 const char *parameter,
00966 stp_parameter_activity_t active);
00967
00975 extern void stp_set_int_parameter_active(stp_const_vars_t v,
00976 const char *parameter,
00977 stp_parameter_activity_t active);
00978
00986 extern void stp_set_boolean_parameter_active(stp_const_vars_t v,
00987 const char *parameter,
00988 stp_parameter_activity_t active);
00989
00997 extern void stp_set_curve_parameter_active(stp_const_vars_t v,
00998 const char *parameter,
00999 stp_parameter_activity_t active);
01000
01008 extern void stp_set_array_parameter_active(stp_const_vars_t v,
01009 const char *parameter,
01010 stp_parameter_activity_t active);
01011
01019 extern void stp_set_raw_parameter_active(stp_const_vars_t v,
01020 const char *parameter,
01021 stp_parameter_activity_t active);
01022
01029 extern int stp_check_string_parameter(stp_const_vars_t v, const char *parameter,
01030 stp_parameter_activity_t active);
01031
01038 extern int stp_check_file_parameter(stp_const_vars_t v, const char *parameter,
01039 stp_parameter_activity_t active);
01040
01047 extern int stp_check_float_parameter(stp_const_vars_t v, const char *parameter,
01048 stp_parameter_activity_t active);
01049
01056 extern int stp_check_int_parameter(stp_const_vars_t v, const char *parameter,
01057 stp_parameter_activity_t active);
01058
01065 extern int stp_check_boolean_parameter(stp_const_vars_t v, const char *parameter,
01066 stp_parameter_activity_t active);
01067
01074 extern int stp_check_curve_parameter(stp_const_vars_t v, const char *parameter,
01075 stp_parameter_activity_t active);
01076
01083 extern int stp_check_array_parameter(stp_const_vars_t v, const char *parameter,
01084 stp_parameter_activity_t active);
01085
01092 extern int stp_check_raw_parameter(stp_const_vars_t v, const char *parameter,
01093 stp_parameter_activity_t active);
01094
01101 extern stp_parameter_activity_t
01102 stp_get_string_parameter_active(stp_const_vars_t v, const char *parameter);
01103
01110 extern stp_parameter_activity_t
01111 stp_get_file_parameter_active(stp_const_vars_t v, const char *parameter);
01112
01119 extern stp_parameter_activity_t
01120 stp_get_float_parameter_active(stp_const_vars_t v, const char *parameter);
01121
01128 extern stp_parameter_activity_t
01129 stp_get_int_parameter_active(stp_const_vars_t v, const char *parameter);
01130
01137 extern stp_parameter_activity_t
01138 stp_get_boolean_parameter_active(stp_const_vars_t v, const char *parameter);
01139
01146 extern stp_parameter_activity_t
01147 stp_get_curve_parameter_active(stp_const_vars_t v, const char *parameter);
01148
01155 extern stp_parameter_activity_t
01156 stp_get_array_parameter_active(stp_const_vars_t v, const char *parameter);
01157
01164 extern stp_parameter_activity_t
01165 stp_get_raw_parameter_active(stp_const_vars_t v, const char *parameter);
01166
01167
01168
01169
01170
01171
01172
01173
01174
01187 extern void stp_get_media_size(stp_const_vars_t v, int *width, int *height);
01188
01212 extern void stp_get_imageable_area(stp_const_vars_t v, int *left, int *right,
01213 int *bottom, int *top);
01214
01225 extern void
01226 stp_get_size_limit(stp_const_vars_t v, int *max_width, int *max_height,
01227 int *min_width, int *min_height);
01228
01229
01237 extern void stp_describe_resolution(stp_const_vars_t v, int *x, int *y);
01238
01247 extern int stp_verify(stp_vars_t v);
01248
01257 extern stp_const_vars_t stp_default_settings(void);
01258
01261 #ifdef __cplusplus
01262 }
01263 #endif
01264
01265 #endif
01266
01267
01268