var.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _GEL_VAR_H
00023 #define _GEL_VAR_H
00024
00025 #include <stddef.h>
00026
00027 union var_value
00028 {
00029 unsigned char u8;
00030 unsigned short u16;
00031 unsigned long u32;
00032 };
00033
00034 enum var_type
00035 {
00036 V_UINT8,
00037 V_UINT16,
00038 V_UINT32
00039 };
00040
00041 enum var_format
00042 {
00043 F_INTEGER,
00044 F_ONOFF
00045 };
00046
00047 struct var_def
00048 {
00049 const char *title;
00050 enum var_type type : 8;
00051 enum var_format format : 8;
00052 unsigned long min_value;
00053 unsigned long max_value;
00054 unsigned long def_value;
00055 union
00056 {
00057 unsigned char *uint8;
00058 unsigned short *uint16;
00059 unsigned long *uint32;
00060 } u;
00061 };
00062
00067 extern unsigned long var_value (const struct var_def *var);
00068
00077 extern void var_format (char *buf, const struct var_def *var,
00078 unsigned long value);
00079
00090 extern void var_set_integer (const struct var_def *var, unsigned long value);
00091
00096 extern void var_register (const struct var_def *var);
00097
00098 extern unsigned var_count;
00099 extern const struct var_def *var_list[];
00100
00101 #endif
|