summaryrefslogtreecommitdiff
path: root/apps/codecs/libfaad/codebook/hcb_6.h
blob: 4df2380ad2cd6db0030549e85e2030ba20737119 (plain)
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
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com
**  
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
** 
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
** GNU General Public License for more details.
** 
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software 
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
** forbidden.
**
** Commercial non-GPL licensing of this software is possible.
** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
**
** $Id$
**/

/* 2-step huffman table HCB_6 */


/* 1st step: 5 bits
 *           2^5 = 32 entries
 *
 * Used to find offset into 2nd step table and number of extra bits to get
 */
static hcb hcb6_1[] = {
    /* 4 bit codewords */
    { /* 00000 */ 0, 0 },
    { /*       */ 0, 0 },
    { /* 00010 */ 1, 0 },
    { /*       */ 1, 0 },
    { /* 00100 */ 2, 0 },
    { /*       */ 2, 0 },
    { /* 00110 */ 3, 0 },
    { /*       */ 3, 0 },
    { /* 01000 */ 4, 0 },
    { /*       */ 4, 0 },
    { /* 01010 */ 5, 0 },
    { /*       */ 5, 0 },
    { /* 01100 */ 6, 0 },
    { /*       */ 6, 0 },
    { /* 01110 */ 7, 0 },
    { /*       */ 7, 0 },
    { /* 10000 */ 8, 0 },
    { /*       */ 8, 0 },

    /* 6 bit codewords */
    { /* 10010 */ 9, 1 },
    { /* 10011 */ 11, 1 },
    { /* 10100 */ 13, 1 },
    { /* 10101 */ 15, 1 },
    { /* 10110 */ 17, 1 },
    { /* 10111 */ 19, 1 },
    { /* 11000 */ 21, 1 },
    { /* 11001 */ 23, 1 },

    /* 7 bit codewords */
    { /* 11010 */ 25, 2 },
    { /* 11011 */ 29, 2 },
    { /* 11100 */ 33, 2 },

    /* 7/8 bit codewords */
    { /* 11101 */ 37, 3 },

    /* 8/9 bit codewords */
    { /* 11110 */ 45, 4 },

    /* 9/10/11 bit codewords */
    { /* 11111 */ 61, 6 }
};

/* 2nd step table
 *
 * Gives size of codeword and actual data (x,y,v,w)
 */
static hcb_2_pair hcb6_2[] = {
    /* 4 bit codewords */
    { 4,  0,  0 },
    { 4,  1,  0 },
    { 4,  0, -1 },
    { 4,  0,  1 },
    { 4, -1,  0 },
    { 4,  1,  1 },
    { 4, -1,  1 },
    { 4,  1, -1 },
    { 4, -1, -1 },

    /* 6 bit codewords */
    { 6,  2, -1 },
    { 6,  2,  1 },
    { 6, -2,  1 },
    { 6, -2, -1 },
    { 6, -2,  0 },
    { 6, -1,  2 },
    { 6,  2,  0 },
    { 6,  1, -2 },
    { 6,  1,  2 },
    { 6,  0, -2 },
    { 6, -1, -2 },
    { 6,  0,  2 },
    { 6,  2, -2 },
    { 6, -2,  2 },
    { 6, -2, -2 },
    { 6,  2,  2 },

    /* 7 bit codewords */
    { 7, -3,  1 },
    { 7,  3,  1 },
    { 7,  3, -1 },
    { 7, -1,  3 },
    { 7, -3, -1 },
    { 7,  1,  3 },
    { 7,  1, -3 },
    { 7, -1, -3 },
    { 7,  3,  0 },
    { 7, -3,  0 },
    { 7,  0, -3 },
    { 7,  0,  3 },

    /* 7/8 bit codewords */
    { 7,  3,  2 }, { 7,  3,  2 },
    { 8, -3, -2 },
    { 8, -2,  3 },
    { 8,  2,  3 },
    { 8,  3, -2 },
    { 8,  2, -3 },
    { 8, -2, -3 },

    /* 8 bit codewords */
    { 8, -3,  2 }, { 8, -3,  2 },
    { 8,  3,  3 }, { 8,  3,  3 },
    { 9,  3, -3 },
    { 9, -3, -3 },
    { 9, -3,  3 },
    { 9,  1, -4 },
    { 9, -1, -4 },
    { 9,  4,  1 },
    { 9, -4,  1 },
    { 9, -4, -1 },
    { 9,  1,  4 },
    { 9,  4, -1 },
    { 9, -1,  4 },
    { 9,  0, -4 },

    /* 9/10/11 bit codewords */
    { 9, -4,  2 }, { 9, -4,  2 }, { 9, -4,  2 }, { 9, -4,  2 },
    { 9, -4, -2 }, { 9, -4, -2 }, { 9, -4, -2 }, { 9, -4, -2 },
    { 9,  2,  4 }, { 9,  2,  4 }, { 9,  2,  4 }, { 9,  2,  4 },
    { 9, -2, -4 }, { 9, -2, -4 }, { 9, -2, -4 }, { 9, -2, -4 },
    { 9, -4,  0 }, { 9, -4,  0 }, { 9, -4,  0 }, { 9, -4,  0 },
    { 9,  4,  2 }, { 9,  4,  2 }, { 9,  4,  2 }, { 9,  4,  2 },
    { 9,  4, -2 }, { 9,  4, -2 }, { 9,  4, -2 }, { 9,  4, -2 },
    { 9, -2,  4 }, { 9, -2,  4 }, { 9, -2,  4 }, { 9, -2,  4 },
    { 9,  4,  0 }, { 9,  4,  0 }, { 9,  4,  0 }, { 9,  4,  0 },
    { 9,  2, -4 }, { 9,  2, -4 }, { 9,  2, -4 }, { 9,  2, -4 },
    { 9,  0,  4 }, { 9,  0,  4 }, { 9,  0,  4 }, { 9,  0,  4 },
    { 10, -3, -4 }, { 10, -3, -4 },
    { 10, -3,  4 }, { 10, -3,  4 },
    { 10,  3, -4 }, { 10,  3, -4 },
    { 10,  4, -3 }, { 10,  4, -3 },
    { 10,  3,  4 }, { 10,  3,  4 },
    { 10,  4,  3 }, { 10,  4,  3 },
    { 10, -4,  3 }, { 10, -4,  3 },
    { 10, -4, -3 }, { 10, -4, -3 },
    { 11,  4,  4 },
    { 11, -4,  4 },
    { 11, -4, -4 },
    { 11,  4, -4 }
};
ass="hl opt">; (void) glist; #else /* ROCKBOX */ t_canvas *canvas=glist_getcanvas(glist); sys_vgui(".x%x.c delete %xBASE\n", canvas, x); sys_vgui(".x%x.c delete %xX1\n", canvas, x); sys_vgui(".x%x.c delete %xX2\n", canvas, x); sys_vgui(".x%x.c delete %xLABEL\n", canvas, x); if(!x->x_gui.x_fsf.x_snd_able) sys_vgui(".x%x.c delete %xOUT%d\n", canvas, x, 0); if(!x->x_gui.x_fsf.x_rcv_able) sys_vgui(".x%x.c delete %xIN%d\n", canvas, x, 0); #endif /* ROCKBOX */ } void toggle_draw_config(t_toggle* x, t_glist* glist) { #ifdef ROCKBOX (void) x; (void) glist; #else /* ROCKBOX */ t_canvas *canvas=glist_getcanvas(glist); sys_vgui(".x%x.c itemconfigure %xLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n", canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); sys_vgui(".x%x.c itemconfigure %xBASE -fill #%6.6x\n", canvas, x, x->x_gui.x_bcol); sys_vgui(".x%x.c itemconfigure %xX1 -fill #%6.6x\n", canvas, x, x->x_on?x->x_gui.x_fcol:x->x_gui.x_bcol); sys_vgui(".x%x.c itemconfigure %xX2 -fill #%6.6x\n", canvas, x, x->x_on?x->x_gui.x_fcol:x->x_gui.x_bcol); #endif /* ROCKBOX */ } void toggle_draw_io(t_toggle* x, t_glist* glist, int old_snd_rcv_flags) { #ifdef ROCKBOX (void) x; (void) glist; (void) old_snd_rcv_flags; #else /* ROCKBOX */ int xpos=text_xpix(&x->x_gui.x_obj, glist); int ypos=text_ypix(&x->x_gui.x_obj, glist); t_canvas *canvas=glist_getcanvas(glist); if((old_snd_rcv_flags & IEM_GUI_OLD_SND_FLAG) && !x->x_gui.x_fsf.x_snd_able) sys_vgui(".x%x.c create rectangle %d %d %d %d -tags %xOUT%d\n", canvas, xpos, ypos + x->x_gui.x_h-1, xpos + IOWIDTH, ypos + x->x_gui.x_h, x, 0); if(!(old_snd_rcv_flags & IEM_GUI_OLD_SND_FLAG) && x->x_gui.x_fsf.x_snd_able) sys_vgui(".x%x.c delete %xOUT%d\n", canvas, x, 0); if((old_snd_rcv_flags & IEM_GUI_OLD_RCV_FLAG) && !x->x_gui.x_fsf.x_rcv_able) sys_vgui(".x%x.c create rectangle %d %d %d %d -tags %xIN%d\n", canvas, xpos, ypos, xpos + IOWIDTH, ypos+1, x, 0); if(!(old_snd_rcv_flags & IEM_GUI_OLD_RCV_FLAG) && x->x_gui.x_fsf.x_rcv_able) sys_vgui(".x%x.c delete %xIN%d\n", canvas, x, 0); #endif /* ROCKBOX */ } void toggle_draw_select(t_toggle* x, t_glist* glist) { #ifdef ROCKBOX (void) x; (void) glist; #else /* ROCKBOX */ t_canvas *canvas=glist_getcanvas(glist); if(x->x_gui.x_fsf.x_selected) { sys_vgui(".x%x.c itemconfigure %xBASE -outline #%6.6x\n", canvas, x, IEM_GUI_COLOR_SELECTED); sys_vgui(".x%x.c itemconfigure %xLABEL -fill #%6.6x\n", canvas, x, IEM_GUI_COLOR_SELECTED); } else { sys_vgui(".x%x.c itemconfigure %xBASE -outline #%6.6x\n", canvas, x, IEM_GUI_COLOR_NORMAL); sys_vgui(".x%x.c itemconfigure %xLABEL -fill #%6.6x\n", canvas, x, x->x_gui.x_lcol); } #endif /* ROCKBOX */ } void toggle_draw(t_toggle *x, t_glist *glist, int mode) { if(mode == IEM_GUI_DRAW_MODE_UPDATE) toggle_draw_update(x, glist); else if(mode == IEM_GUI_DRAW_MODE_MOVE) toggle_draw_move(x, glist); else if(mode == IEM_GUI_DRAW_MODE_NEW) toggle_draw_new(x, glist); else if(mode == IEM_GUI_DRAW_MODE_SELECT) toggle_draw_select(x, glist); else if(mode == IEM_GUI_DRAW_MODE_ERASE) toggle_draw_erase(x, glist); else if(mode == IEM_GUI_DRAW_MODE_CONFIG) toggle_draw_config(x, glist); else if(mode >= IEM_GUI_DRAW_MODE_IO) toggle_draw_io(x, glist, mode - IEM_GUI_DRAW_MODE_IO); } /* ------------------------ tgl widgetbehaviour----------------------------- */ static void toggle_getrect(t_gobj *z, t_glist *glist, int *xp1, int *yp1, int *xp2, int *yp2) { t_toggle *x = (t_toggle *)z; *xp1 = text_xpix(&x->x_gui.x_obj, glist); *yp1 = text_ypix(&x->x_gui.x_obj, glist); *xp2 = *xp1 + x->x_gui.x_w; *yp2 = *yp1 + x->x_gui.x_h; } static void toggle_save(t_gobj *z, t_binbuf *b) { t_toggle *x = (t_toggle *)z; int bflcol[3]; t_symbol *srl[3]; iemgui_save(&x->x_gui, srl, bflcol); binbuf_addv(b, "ssiisiisssiiiiiiiff", gensym("#X"),gensym("obj"), (t_int)x->x_gui.x_obj.te_xpix, (t_int)x->x_gui.x_obj.te_ypix, gensym("tgl"), x->x_gui.x_w, iem_symargstoint(&x->x_gui.x_isa), srl[0], srl[1], srl[2], x->x_gui.x_ldx, x->x_gui.x_ldy, iem_fstyletoint(&x->x_gui.x_fsf), x->x_gui.x_fontsize, bflcol[0], bflcol[1], bflcol[2], x->x_on, x->x_nonzero); binbuf_addv(b, ";"); } static void toggle_properties(t_gobj *z, t_glist *owner) { #ifdef ROCKBOX (void) z; (void) owner; #else /* ROCKBOX */ t_toggle *x = (t_toggle *)z; char buf[800]; t_symbol *srl[3]; iemgui_properties(&x->x_gui, srl); sprintf(buf, "pdtk_iemgui_dialog %%s TOGGLE \ ----------dimensions(pix):----------- %d %d size: 0 0 empty \ -----------non-zero-value:----------- %g value: 0.0 empty %g \ -1 lin log %d %d empty %d \ %s %s \ %s %d %d \ %d %d \ %d %d %d\n", x->x_gui.x_w, IEM_GUI_MINSIZE, x->x_nonzero, 1.0,/*non_zero-schedule*/ x->x_gui.x_isa.x_loadinit, -1, -1,/*no multi*/ srl[0]->s_name, srl[1]->s_name, srl[2]->s_name, x->x_gui.x_ldx, x->x_gui.x_ldy, x->x_gui.x_fsf.x_font_style, x->x_gui.x_fontsize, 0xffffff & x->x_gui.x_bcol, 0xffffff & x->x_gui.x_fcol, 0xffffff & x->x_gui.x_lcol); gfxstub_new(&x->x_gui.x_obj.ob_pd, x, buf); #endif } static void toggle_bang(t_toggle *x) { x->x_on = (x->x_on==0.0)?x->x_nonzero:0.0; (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE); outlet_float(x->x_gui.x_obj.ob_outlet, x->x_on); if(x->x_gui.x_fsf.x_snd_able && x->x_gui.x_snd->s_thing) pd_float(x->x_gui.x_snd->s_thing, x->x_on); } static void toggle_dialog(t_toggle *x, t_symbol *s, int argc, t_atom *argv) { t_symbol *srl[3]; int a = (int)atom_getintarg(0, argc, argv); float nonzero = (float)atom_getfloatarg(2, argc, argv); int sr_flags; #ifdef ROCKBOX (void) s; #endif if(nonzero == 0.0) nonzero = 1.0; x->x_nonzero = nonzero; if(x->x_on != 0.0) x->x_on = x->x_nonzero; sr_flags = iemgui_dialog(&x->x_gui, srl, argc, argv); x->x_gui.x_w = iemgui_clip_size(a); x->x_gui.x_h = x->x_gui.x_w; (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_CONFIG); (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_IO + sr_flags); (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_MOVE); canvas_fixlinesfor(glist_getcanvas(x->x_gui.x_glist), (t_text*)x); } static void toggle_click(t_toggle *x, t_floatarg xpos, t_floatarg ypos, t_floatarg shift, t_floatarg ctrl, t_floatarg alt) #ifdef ROCKBOX { (void) xpos; (void) ypos; (void) shift; (void) alt; (void) ctrl; toggle_bang(x); } #else /* ROCKBOX */ {toggle_bang(x);} #endif /* ROCKBOX */ static int toggle_newclick(t_gobj *z, struct _glist *glist, int xpix, int ypix, int shift, int alt, int dbl, int doit) { #ifdef ROCKBOX (void) glist; (void) dbl; #endif if(doit) toggle_click((t_toggle *)z, (t_floatarg)xpix, (t_floatarg)ypix, (t_floatarg)shift, 0, (t_floatarg)alt); return (1); } static void toggle_set(t_toggle *x, t_floatarg f) { x->x_on = f; if(f != 0.0) x->x_nonzero = f; (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE); } static void toggle_float(t_toggle *x, t_floatarg f) { toggle_set(x, f); if(x->x_gui.x_fsf.x_put_in2out) { outlet_float(x->x_gui.x_obj.ob_outlet, x->x_on); if(x->x_gui.x_fsf.x_snd_able && x->x_gui.x_snd->s_thing) pd_float(x->x_gui.x_snd->s_thing, x->x_on); } } static void toggle_fout(t_toggle *x, t_floatarg f) { toggle_set(x, f); outlet_float(x->x_gui.x_obj.ob_outlet, x->x_on); if(x->x_gui.x_fsf.x_snd_able && x->x_gui.x_snd->s_thing) pd_float(x->x_gui.x_snd->s_thing, x->x_on); } static void toggle_loadbang(t_toggle *x) { if(!sys_noloadbang && x->x_gui.x_isa.x_loadinit) toggle_fout(x, (float)x->x_on); } static void toggle_size(t_toggle *x, t_symbol *s, int ac, t_atom *av) { #ifdef ROCKBOX (void) s; #endif x->x_gui.x_w = iemgui_clip_size((int)atom_getintarg(0, ac, av)); x->x_gui.x_h = x->x_gui.x_w; iemgui_size((void *)x, &x->x_gui); } static void toggle_delta(t_toggle *x, t_symbol *s, int ac, t_atom *av) {iemgui_delta((void *)x, &x->x_gui, s, ac, av);} static void toggle_pos(t_toggle *x, t_symbol *s, int ac, t_atom *av) {iemgui_pos((void *)x, &x->x_gui, s, ac, av);} static void toggle_color(t_toggle *x, t_symbol *s, int ac, t_atom *av) {iemgui_color((void *)x, &x->x_gui, s, ac, av);} static void toggle_send(t_toggle *x, t_symbol *s) {iemgui_send(x, &x->x_gui, s);} static void toggle_receive(t_toggle *x, t_symbol *s) {iemgui_receive(x, &x->x_gui, s);} static void toggle_label(t_toggle *x, t_symbol *s) {iemgui_label((void *)x, &x->x_gui, s);} static void toggle_label_font(t_toggle *x, t_symbol *s, int ac, t_atom *av) {iemgui_label_font((void *)x, &x->x_gui, s, ac, av);} static void toggle_label_pos(t_toggle *x, t_symbol *s, int ac, t_atom *av) {iemgui_label_pos((void *)x, &x->x_gui, s, ac, av);} static void toggle_init(t_toggle *x, t_floatarg f) { x->x_gui.x_isa.x_loadinit = (f==0.0)?0:1; } static void toggle_nonzero(t_toggle *x, t_floatarg f) { if(f != 0.0) x->x_nonzero = f; } static void *toggle_new(t_symbol *s, int argc, t_atom *argv) { t_toggle *x = (t_toggle *)pd_new(toggle_class); int bflcol[]={-262144, -1, -1}; #ifdef ROCKBOX int a=IEM_GUI_DEFAULTSIZE; #else int a=IEM_GUI_DEFAULTSIZE, f=0; #endif int ldx=0, ldy=-6; int fs=8; float on=0.0, nonzero=1.0; #ifndef ROCKBOX char str[144]; #endif #ifdef ROCKBOX (void) s; #endif iem_inttosymargs(&x->x_gui.x_isa, 0); iem_inttofstyle(&x->x_gui.x_fsf, 0); if(((argc == 13)||(argc == 14))&&IS_A_FLOAT(argv,0) &&IS_A_FLOAT(argv,1) &&(IS_A_SYMBOL(argv,2)||IS_A_FLOAT(argv,2)) &&(IS_A_SYMBOL(argv,3)||IS_A_FLOAT(argv,3)) &&(IS_A_SYMBOL(argv,4)||IS_A_FLOAT(argv,4)) &&IS_A_FLOAT(argv,5)&&IS_A_FLOAT(argv,6) &&IS_A_FLOAT(argv,7)&&IS_A_FLOAT(argv,8)&&IS_A_FLOAT(argv,9) &&IS_A_FLOAT(argv,10)&&IS_A_FLOAT(argv,11)&&IS_A_FLOAT(argv,12)) { a = (int)atom_getintarg(0, argc, argv); iem_inttosymargs(&x->x_gui.x_isa, atom_getintarg(1, argc, argv)); iemgui_new_getnames(&x->x_gui, 2, argv); ldx = (int)atom_getintarg(5, argc, argv); ldy = (int)atom_getintarg(6, argc, argv); iem_inttofstyle(&x->x_gui.x_fsf, atom_getintarg(7, argc, argv)); fs = (int)atom_getintarg(8, argc, argv); bflcol[0] = (int)atom_getintarg(9, argc, argv); bflcol[1] = (int)atom_getintarg(10, argc, argv); bflcol[2] = (int)atom_getintarg(11, argc, argv); on = (float)atom_getfloatarg(12, argc, argv); } else iemgui_new_getnames(&x->x_gui, 2, 0); if((argc == 14)&&IS_A_FLOAT(argv,13)) nonzero = (float)atom_getfloatarg(13, argc, argv); x->x_gui.x_draw = (t_iemfunptr)toggle_draw; x->x_gui.x_fsf.x_snd_able = 1; x->x_gui.x_fsf.x_rcv_able = 1; x->x_gui.x_glist = (t_glist *)canvas_getcurrent(); if (!strcmp(x->x_gui.x_snd->s_name, "empty")) x->x_gui.x_fsf.x_snd_able = 0; if (!strcmp(x->x_gui.x_rcv->s_name, "empty")) x->x_gui.x_fsf.x_rcv_able = 0; if(x->x_gui.x_fsf.x_font_style == 1) strcpy(x->x_gui.x_font, "helvetica"); else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times"); else { x->x_gui.x_fsf.x_font_style = 0; strcpy(x->x_gui.x_font, "courier"); } x->x_nonzero = (nonzero!=0.0)?nonzero:1.0; if(x->x_gui.x_isa.x_loadinit) x->x_on = (on!=0.0)?nonzero:0.0; else x->x_on = 0.0; if (x->x_gui.x_fsf.x_rcv_able) pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv); x->x_gui.x_ldx = ldx; x->x_gui.x_ldy = ldy; if(fs < 4) fs = 4; x->x_gui.x_fontsize = fs; x->x_gui.x_w = iemgui_clip_size(a); x->x_gui.x_h = x->x_gui.x_w; iemgui_all_colfromload(&x->x_gui, bflcol); iemgui_verify_snd_ne_rcv(&x->x_gui); outlet_new(&x->x_gui.x_obj, &s_float); return (x); } static void toggle_ff(t_toggle *x) { if(x->x_gui.x_fsf.x_rcv_able) pd_unbind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv); #ifndef ROCKBOX gfxstub_deleteforkey(x); #endif } void g_toggle_setup(void) { toggle_class = class_new(gensym("tgl"), (t_newmethod)toggle_new, (t_method)toggle_ff, sizeof(t_toggle), 0, A_GIMME, 0); class_addcreator((t_newmethod)toggle_new, gensym("toggle"), A_GIMME, 0); class_addbang(toggle_class, toggle_bang); class_addfloat(toggle_class, toggle_float); class_addmethod(toggle_class, (t_method)toggle_click, gensym("click"), A_FLOAT, A_FLOAT, A_FLOAT, A_FLOAT, A_FLOAT, 0); class_addmethod(toggle_class, (t_method)toggle_dialog, gensym("dialog"), A_GIMME, 0); class_addmethod(toggle_class, (t_method)toggle_loadbang, gensym("loadbang"), 0); class_addmethod(toggle_class, (t_method)toggle_set, gensym("set"), A_FLOAT, 0); class_addmethod(toggle_class, (t_method)toggle_size, gensym("size"), A_GIMME, 0); class_addmethod(toggle_class, (t_method)toggle_delta, gensym("delta"), A_GIMME, 0); class_addmethod(toggle_class, (t_method)toggle_pos, gensym("pos"), A_GIMME, 0); class_addmethod(toggle_class, (t_method)toggle_color, gensym("color"), A_GIMME, 0); class_addmethod(toggle_class, (t_method)toggle_send, gensym("send"), A_DEFSYM, 0); class_addmethod(toggle_class, (t_method)toggle_receive, gensym("receive"), A_DEFSYM, 0); class_addmethod(toggle_class, (t_method)toggle_label, gensym("label"), A_DEFSYM, 0); class_addmethod(toggle_class, (t_method)toggle_label_pos, gensym("label_pos"), A_GIMME, 0); class_addmethod(toggle_class, (t_method)toggle_label_font, gensym("label_font"), A_GIMME, 0); class_addmethod(toggle_class, (t_method)toggle_init, gensym("init"), A_FLOAT, 0); class_addmethod(toggle_class, (t_method)toggle_nonzero, gensym("nonzero"), A_FLOAT, 0); toggle_widgetbehavior.w_getrectfn = toggle_getrect; toggle_widgetbehavior.w_displacefn = iemgui_displace; toggle_widgetbehavior.w_selectfn = iemgui_select; toggle_widgetbehavior.w_activatefn = NULL; toggle_widgetbehavior.w_deletefn = iemgui_delete; toggle_widgetbehavior.w_visfn = iemgui_vis; toggle_widgetbehavior.w_clickfn = toggle_newclick; class_setwidget(toggle_class, &toggle_widgetbehavior); class_sethelpsymbol(toggle_class, gensym("toggle")); class_setsavefn(toggle_class, toggle_save); class_setpropertiesfn(toggle_class, toggle_properties); }