Blob Blame Raw
#if !defined(TOONZ_PARAMS_H__)
#define TOONZ_PARAMS_H__

#include <toonz_plugin.h>
//#include <toonz_hostif.h>

#if defined(_MSC_VER)
#pragma pack(push, 1)
#endif

#if defined(DEFAULT)
/* remove creepy macro in tcommon.h */
#undef DEFAULT
#endif

struct toonz_param_traits_double_t_ {
#if defined(__cplusplus)
	static const int E = TOONZ_PARAM_TYPE_DOUBLE;
	static const int RANGED = 1;
	static const int DEFAULT = 1;
	typedef double valuetype;
	typedef double iovaluetype;
#endif
	double def;
	double min, max;
	double reserved_;
} TOONZ_PACK;

typedef toonz_param_traits_double_t_ toonz_param_traits_double_t;

struct toonz_param_traits_int_t_ {
#if defined(__cplusplus)
	static const int E = TOONZ_PARAM_TYPE_INT;
	static const int RANGED = 1;
	static const int DEFAULT = 1;
	typedef int valuetype;
	typedef int iovaluetype;
#endif
	int def;
	int min, max;
	int reserved_;
} TOONZ_PACK;

typedef toonz_param_traits_int_t_ toonz_param_traits_int_t;

struct toonz_param_range_t_ {
	double a, b;
} TOONZ_PACK;
typedef toonz_param_range_t_ toonz_param_range_t;

struct toonz_param_traits_range_t_ {
#if defined(__cplusplus)
	static const int E = TOONZ_PARAM_TYPE_RANGE;
	static const int RANGED = 1;
	static const int DEFAULT = 1;
	typedef toonz_param_range_t valuetype;
	typedef toonz_param_range_t iovaluetype;
#endif
	toonz_param_range_t def;
	toonz_param_range_t minmax;
	double reserved_;
} TOONZ_PACK;

typedef toonz_param_traits_range_t_ toonz_param_traits_range_t;

struct toonz_param_color_t_ {
	int c0, c1, c2, m;
} TOONZ_PACK;
typedef toonz_param_color_t_ toonz_param_color_t;

struct toonz_param_traits_color_t_ {
#if defined(__cplusplus)
	static const int E = TOONZ_PARAM_TYPE_PIXEL;
	static const int RANGED = 0;
	static const int DEFAULT = 1;
	typedef toonz_param_color_t valuetype;
	typedef toonz_param_color_t iovaluetype;
#endif
	toonz_param_color_t def;
	double reserved_;
} TOONZ_PACK;

typedef toonz_param_traits_color_t_ toonz_param_traits_color_t;

struct toonz_param_point_t_ {
	double x, y;
} TOONZ_PACK;
typedef toonz_param_point_t_ toonz_param_point_t;

struct toonz_param_traits_point_t_ {
#if defined(__cplusplus)
	static const int E = TOONZ_PARAM_TYPE_POINT;
	static const int RANGED = 1;
	static const int DEFAULT = 1;
	typedef toonz_param_point_t valuetype;
	typedef toonz_param_point_t iovaluetype;
#endif
	toonz_param_point_t def;
	toonz_param_point_t min;
	toonz_param_point_t max;
	double reserved_;
} TOONZ_PACK;

typedef toonz_param_traits_point_t_ toonz_param_traits_point_t;

struct toonz_param_traits_enum_t_ {
#if defined(__cplusplus)
	static const int E = TOONZ_PARAM_TYPE_ENUM;
	static const int RANGED = 0;
	static const int DEFAULT = 1;
	typedef int valuetype;
	typedef int iovaluetype;
#endif
	int def;
	int enums;
	const char **array;
	double reserved_;
} TOONZ_PACK;

typedef toonz_param_traits_enum_t_ toonz_param_traits_enum_t;

struct toonz_param_traits_bool_t_ {
#if defined(__cplusplus)
	static const int E = TOONZ_PARAM_TYPE_BOOL;
	static const int RANGED = 0;
	static const int DEFAULT = 1;
	typedef int valuetype;
	typedef int iovaluetype;
#endif
	int def;
	int reserved_;
} TOONZ_PACK;
typedef toonz_param_traits_bool_t_ toonz_param_traits_bool_t;

struct toonz_param_spectrum_t_ {
	double w;
	double c0, c1, c2, m;
} TOONZ_PACK;
typedef toonz_param_spectrum_t_ toonz_param_spectrum_t;

struct toonz_param_traits_spectrum_t_ {
#if defined(__cplusplus)
	static const int E = TOONZ_PARAM_TYPE_SPECTRUM;
	static const int RANGED = 0;
	static const int DEFAULT = 1;
	typedef toonz_param_spectrum_t valuetype;
	typedef toonz_param_spectrum_t iovaluetype;
#endif
	double def;
	int points;
	toonz_param_spectrum_t *array;
	int reserved_;
} TOONZ_PACK;
typedef toonz_param_traits_spectrum_t_ toonz_param_traits_spectrum_t;

struct toonz_param_traits_string_t_ {
#if defined(__cplusplus)
	static const int E = TOONZ_PARAM_TYPE_STRING;
	static const int RANGED = 0;
	static const int DEFAULT = 1;
	typedef const char *valuetype;
	typedef char iovaluetype;
#endif
	const char *def;
	double reserved_;
} TOONZ_PACK;

typedef toonz_param_traits_string_t_ toonz_param_traits_string_t;

struct toonz_param_tonecurve_point_t_ {
	double x, y;
	double c0, c1, c2, c3;
} TOONZ_PACK;
typedef toonz_param_tonecurve_point_t_ toonz_param_tonecurve_point_t;

struct toonz_param_tonecurve_value_t_ {
	double x;
	double y;
	int channel;
	int interp;
} TOONZ_PACK;
typedef toonz_param_tonecurve_value_t_ toonz_param_tonecurve_value_t;

struct toonz_param_traits_tonecurve_t_ {
#if defined(__cplusplus)
	static const int E = TOONZ_PARAM_TYPE_TONECURVE;
	static const int RANGED = 0;
	static const int DEFAULT = 0;
	typedef toonz_param_tonecurve_point_t valuetype;
	typedef toonz_param_tonecurve_value_t iovaluetype;
#endif
	double reserved_;
} TOONZ_PACK;

typedef toonz_param_traits_tonecurve_t_ toonz_param_traits_tonecurve_t;

#define TOONZ_PARAM_DESC_TYPE_PARAM (0)
#define TOONZ_PARAM_DESC_TYPE_PAGE (1)
#define TOONZ_PARAM_DESC_TYPE_GROUP (2)

struct toonz_param_base_t_ {
	toonz_if_version_t ver;
	int type;
	const char *label;
} TOONZ_PACK;

struct toonz_param_desc_t_ {
	struct toonz_param_base_t_ base;
	const char *key;
	const char *note;
	void *reserved_[2];
	int traits_tag;
	union {
		toonz_param_traits_double_t d;
		toonz_param_traits_int_t i;
		toonz_param_traits_enum_t e;
		toonz_param_traits_range_t rd;
		toonz_param_traits_bool_t b;
		toonz_param_traits_color_t c;
		toonz_param_traits_point_t p;
		toonz_param_traits_spectrum_t g;
		toonz_param_traits_string_t s;
		toonz_param_traits_tonecurve_t t;
	} traits;
} TOONZ_PACK;

typedef struct toonz_param_desc_t_ toonz_param_desc_t;

struct toonz_param_group_t_ {
	struct toonz_param_base_t_ base;
	int num;
	toonz_param_desc_t *array;
} TOONZ_PACK;

typedef struct toonz_param_group_t_ toonz_param_group_t;

struct toonz_param_page_t_ {
	struct toonz_param_base_t_ base;
	int num;
	toonz_param_group_t *array;
} TOONZ_PACK;

typedef struct toonz_param_page_t_ toonz_param_page_t;

#if defined(_MSC_VER)
#pragma pack(pop)
#endif

#endif