1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
|
/* Copyright (c) 1997-1999 Miller Puckette.
* For information on usage and redistribution, and for a DISCLAIMER OF ALL
* WARRANTIES, see the file, "LICENSE.txt," in this distribution. */
/* g_7_guis.h written by Thomas Musil (c) IEM KUG Graz Austria 2000-2001 */
#define IEM_GUI_COLNR_WHITE 0
#define IEM_GUI_COLNR_ML_GREY 1
#define IEM_GUI_COLNR_D_GREY 2
#define IEM_GUI_COLNR_L_RED 3
#define IEM_GUI_COLNR_L_ORANGE 4
#define IEM_GUI_COLNR_L_YELLOW 5
#define IEM_GUI_COLNR_L_GREEN 6
#define IEM_GUI_COLNR_L_CYAN 7
#define IEM_GUI_COLNR_L_BLUE 8
#define IEM_GUI_COLNR_L_MAGENTA 9
#define IEM_GUI_COLNR_LL_GREY 10
#define IEM_GUI_COLNR_M_GREY 11
#define IEM_GUI_COLNR_DD_GREY 12
#define IEM_GUI_COLNR_RED 13
#define IEM_GUI_COLNR_ORANGE 14
#define IEM_GUI_COLNR_YELLOW 15
#define IEM_GUI_COLNR_GREEN 16
#define IEM_GUI_COLNR_CYAN 17
#define IEM_GUI_COLNR_BLUE 18
#define IEM_GUI_COLNR_MAGENTA 19
#define IEM_GUI_COLNR_L_GREY 20
#define IEM_GUI_COLNR_MD_GREY 21
#define IEM_GUI_COLNR_BLACK 22
#define IEM_GUI_COLNR_D_RED 23
#define IEM_GUI_COLNR_D_ORANGE 24
#define IEM_GUI_COLNR_D_YELLOW 25
#define IEM_GUI_COLNR_D_GREEN 26
#define IEM_GUI_COLNR_D_CYAN 27
#define IEM_GUI_COLNR_D_BLUE 28
#define IEM_GUI_COLNR_D_MAGENTA 29
#define IEM_GUI_COLOR_SELECTED 255
#define IEM_GUI_COLOR_NORMAL 0
#define IEM_GUI_MAX_COLOR 30
#define IEM_GUI_DEFAULTSIZE 15
#define IEM_GUI_MINSIZE 8
#define IEM_GUI_MAXSIZE 1000
#define IEM_SL_DEFAULTSIZE 128
#define IEM_SL_MINSIZE 2
#define IEM_FONT_MINSIZE 4
#define IEM_BNG_DEFAULTHOLDFLASHTIME 250
#define IEM_BNG_DEFAULTBREAKFLASHTIME 50
#define IEM_BNG_MINHOLDFLASHTIME 50
#define IEM_BNG_MINBREAKFLASHTIME 10
#define IEM_VU_DEFAULTSIZE 3
#define IEM_VU_LARGESMALL 2
#define IEM_VU_MINSIZE 2
#define IEM_VU_MAXSIZE 25
#define IEM_VU_STEPS 40
#define IEM_VU_MINDB -99.9
#define IEM_VU_MAXDB 12.0
#define IEM_VU_OFFSET 100.0
#define IEM_RADIO_MAX 128
#define IEM_SYM_UNIQUE_SND 256
#define IEM_SYM_UNIQUE_RCV 512
#define IEM_SYM_UNIQUE_LAB 1024
#define IEM_SYM_UNIQUE_ALL 1792
#define IEM_FONT_STYLE_ALL 255
#define IEM_MAX_SYM_LEN 127
#define IEM_GUI_DRAW_MODE_UPDATE 0
#define IEM_GUI_DRAW_MODE_MOVE 1
#define IEM_GUI_DRAW_MODE_NEW 2
#define IEM_GUI_DRAW_MODE_SELECT 3
#define IEM_GUI_DRAW_MODE_ERASE 4
#define IEM_GUI_DRAW_MODE_CONFIG 5
#define IEM_GUI_DRAW_MODE_IO 6
#define IS_A_POINTER(atom,index) ((atom+index)->a_type == A_POINTER)
#define IS_A_FLOAT(atom,index) ((atom+index)->a_type == A_FLOAT)
#define IS_A_SYMBOL(atom,index) ((atom+index)->a_type == A_SYMBOL)
#define IS_A_DOLLAR(atom,index) ((atom+index)->a_type == A_DOLLAR)
#define IS_A_DOLLSYM(atom,index) ((atom+index)->a_type == A_DOLLSYM)
#define IEM_FSTYLE_FLAGS_ALL 0x007fffff
#define IEM_INIT_ARGS_ALL 0x01ffffff
#define IEM_GUI_OLD_SND_FLAG 1
#define IEM_GUI_OLD_RCV_FLAG 2
#define IEM_GUI_COLOR_EDITED 16711680
#define IEMGUI_MAX_NUM_LEN 32
typedef struct _iem_fstyle_flags
{
unsigned int x_font_style:6;
unsigned int x_rcv_able:1;
unsigned int x_snd_able:1;
unsigned int x_lab_is_unique:1;
unsigned int x_rcv_is_unique:1;
unsigned int x_snd_is_unique:1;
unsigned int x_lab_arg_tail_len:6;
unsigned int x_lab_is_arg_num:6;
unsigned int x_shiftdown:1;
unsigned int x_selected:1;
unsigned int x_finemoved:1;
unsigned int x_put_in2out:1;
unsigned int x_change:1;
unsigned int x_thick:1;
unsigned int x_lin0_log1:1;
unsigned int x_steady:1;
unsigned int dummy:1;
} t_iem_fstyle_flags;
typedef struct _iem_init_symargs
{
unsigned int x_loadinit:1;
unsigned int x_rcv_arg_tail_len:6;
unsigned int x_snd_arg_tail_len:6;
unsigned int x_rcv_is_arg_num:6;
unsigned int x_snd_is_arg_num:6;
unsigned int x_scale:1;
unsigned int x_flashed:1;
unsigned int x_locked:1;
unsigned int x_reverse:1; /* bugfix */
unsigned int dummy:3;
} t_iem_init_symargs;
typedef void (*t_iemfunptr)(void *x, t_glist *glist, int mode);
typedef struct _iemgui
{
t_object x_obj;
t_glist *x_glist;
t_iemfunptr x_draw;
int x_h;
int x_w;
int x_ldx;
int x_ldy;
char x_font[MAXPDSTRING]; /* font names can be long! */
t_iem_fstyle_flags x_fsf;
int x_fontsize;
t_iem_init_symargs x_isa;
int x_fcol;
int x_bcol;
int x_lcol;
t_symbol *x_snd; /* send symbol */
t_symbol *x_rcv; /* receive */
t_symbol *x_lab; /* label */
t_symbol *x_snd_unexpanded; /* same 3, with '$' unexpanded */
t_symbol *x_rcv_unexpanded;
t_symbol *x_lab_unexpanded;
int x_binbufindex; /* where in binbuf to find these */
int x_labelbindex; /* where in binbuf to find label */
} t_iemgui;
typedef struct _iemguidummy
{
t_iemgui x_gui;
int x_dum1;
int x_dum2;
int x_dum3;
} t_iemguidummy;
typedef struct _bng
{
t_iemgui x_gui;
int x_flashed;
int x_flashtime_break;
int x_flashtime_hold;
t_clock *x_clock_hld;
t_clock *x_clock_brk;
t_clock *x_clock_lck;
} t_bng;
typedef struct _hslider
{
t_iemgui x_gui;
int x_pos;
int x_val;
int x_center;
int x_thick;
int x_lin0_log1;
int x_steady;
double x_min;
double x_max;
double x_k;
} t_hslider;
typedef struct _hdial
{
t_iemgui x_gui;
int x_on;
int x_on_old; /* LATER delete this; it's used for old version */
int x_change;
int x_number;
int x_drawn;
t_atom x_at[2];
} t_hdial;
typedef struct _toggle
{
t_iemgui x_gui;
t_float x_on;
t_float x_nonzero;
} t_toggle;
typedef struct _my_canvas
{
t_iemgui x_gui;
t_atom x_at[3];
int x_vis_w;
int x_vis_h;
} t_my_canvas;
typedef struct _vslider
{
t_iemgui x_gui;
int x_pos;
int x_val;
int x_lin0_log1;
int x_steady;
double x_min;
double x_max;
double x_k;
} t_vslider;
typedef struct _vu
{
t_iemgui x_gui;
int x_led_size;
int x_peak;
int x_rms;
t_float x_fp;
t_float x_fr;
int x_scale;
void *x_out_rms;
void *x_out_peak;
unsigned int x_updaterms:1;
unsigned int x_updatepeak:1;
} t_vu;
typedef struct _my_numbox
{
t_iemgui x_gui;
t_clock *x_clock_reset;
t_clock *x_clock_wait;
double x_val;
double x_min;
double x_max;
double x_k;
int x_lin0_log1;
char x_buf[IEMGUI_MAX_NUM_LEN];
int x_numwidth;
int x_log_height;
} t_my_numbox;
typedef struct _vdial
{
t_iemgui x_gui;
int x_on;
int x_on_old;
int x_change;
int x_number;
int x_drawn;
t_atom x_at[2];
} t_vdial;
#define t_vradio t_vdial
#define t_hradio t_hdial
extern int sys_noloadbang;
extern int iemgui_color_hex[];
extern int iemgui_vu_db2i[];
extern int iemgui_vu_col[];
extern char *iemgui_vu_scale_str[];
EXTERN int iemgui_clip_size(int size);
EXTERN int iemgui_clip_font(int size);
EXTERN int iemgui_modulo_color(int col);
EXTERN t_symbol *iemgui_unique2dollarzero(t_symbol *s, int unique_num, int and_unique_flag);
EXTERN t_symbol *iemgui_sym2dollararg(t_symbol *s, int nth_arg, int tail_len);
EXTERN t_symbol *iemgui_dollarzero2unique(t_symbol *s, int unique_num);
EXTERN t_symbol *iemgui_dollararg2sym(t_symbol *s, int nth_arg, int tail_len, int pargc, t_atom *pargv);
EXTERN int iemgui_is_dollarzero(t_symbol *s);
EXTERN int iemgui_is_dollararg(t_symbol *s, int *tail_len);
EXTERN void iemgui_fetch_unique(t_iemgui *iemgui);
EXTERN void iemgui_fetch_parent_args(t_iemgui *iemgui, int *pargc, t_atom **pargv);
EXTERN void iemgui_verify_snd_ne_rcv(t_iemgui *iemgui);
EXTERN void iemgui_all_unique2dollarzero(t_iemgui *iemgui, t_symbol **srlsym);
EXTERN void iemgui_all_sym2dollararg(t_iemgui *iemgui, t_symbol **srlsym);
EXTERN void iemgui_all_dollarzero2unique(t_iemgui *iemgui, t_symbol **srlsym);
EXTERN t_symbol *iemgui_new_dogetname(t_iemgui *iemgui, int indx, t_atom *argv);
EXTERN void iemgui_new_getnames(t_iemgui *iemgui, int indx, t_atom *argv);
EXTERN void iemgui_all_dollararg2sym(t_iemgui *iemgui, t_symbol **srlsym);
EXTERN void iemgui_first_dollararg2sym(t_iemgui *iemgui, t_symbol **srlsym);
EXTERN void iemgui_all_col2save(t_iemgui *iemgui, int *bflcol);
EXTERN void iemgui_all_colfromload(t_iemgui *iemgui, int *bflcol);
EXTERN int iemgui_compatible_col(int i);
EXTERN void iemgui_all_dollar2raute(t_symbol **srlsym);
EXTERN void iemgui_all_raute2dollar(t_symbol **srlsym);
EXTERN void iemgui_send(void *x, t_iemgui *iemgui, t_symbol *s);
EXTERN void iemgui_receive(void *x, t_iemgui *iemgui, t_symbol *s);
EXTERN void iemgui_label(void *x, t_iemgui *iemgui, t_symbol *s);
EXTERN void iemgui_label_pos(void *x, t_iemgui *iemgui, t_symbol *s, int ac, t_atom *av);
EXTERN void iemgui_label_font(void *x, t_iemgui *iemgui, t_symbol *s, int ac, t_atom *av);
EXTERN void iemgui_size(void *x, t_iemgui *iemgui);
EXTERN void iemgui_delta(void *x, t_iemgui *iemgui, t_symbol *s, int ac, t_atom *av);
EXTERN void iemgui_pos(void *x, t_iemgui *iemgui, t_symbol *s, int ac, t_atom *av);
EXTERN void iemgui_color(void *x, t_iemgui *iemgui, t_symbol *s, int ac, t_atom *av);
EXTERN int iemgui_list(void *x, t_iemgui *iemgui, t_symbol *s, int ac, t_atom *av);
EXTERN void iemgui_displace(t_gobj *z, t_glist *glist, int dx, int dy);
EXTERN void iemgui_select(t_gobj *z, t_glist *glist, int selected);
EXTERN void iemgui_delete(t_gobj *z, t_glist *glist);
EXTERN void iemgui_vis(t_gobj *z, t_glist *glist, int vis);
EXTERN void iemgui_save(t_iemgui *iemgui, t_symbol **srl, int *bflcol);
EXTERN void iemgui_properties(t_iemgui *iemgui, t_symbol **srl);
EXTERN int iemgui_dialog(t_iemgui *iemgui, t_symbol **srl, int argc, t_atom *argv);
EXTERN int canvas_getdollarzero(void);
EXTERN void canvas_getargs(int *argcp, t_atom **argvp);
EXTERN void iem_inttosymargs(t_iem_init_symargs *symargp, int n);
EXTERN int iem_symargstoint(t_iem_init_symargs *symargp);
EXTERN void iem_inttofstyle(t_iem_fstyle_flags *fstylep, int n);
EXTERN int iem_fstyletoint(t_iem_fstyle_flags *fstylep);
|