本文整理汇总了C++中canvas_getcurrent函数的典型用法代码示例。如果您正苦于以下问题:C++ canvas_getcurrent函数的具体用法?C++ canvas_getcurrent怎么用?C++ canvas_getcurrent使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了canvas_getcurrent函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: new_anything
/* this routine is called when a new "object" is requested whose class Pd
doesn't know. Pd tries to load it as an extern, then as an abstraction. */
void new_anything(void *dummy, t_symbol *s, int argc, t_atom *argv)
{
t_pd *current;
int fd;
char dirbuf[MAXPDSTRING], *nameptr;
if (tryingalready) return;
newest = 0;
class_loadsym = s;
if (sys_load_lib(canvas_getcurrent(), s->s_name))
{
tryingalready = 1;
typedmess(dummy, s, argc, argv);
tryingalready = 0;
return;
}
class_loadsym = 0;
current = s__X.s_thing;
if ((fd = canvas_open(canvas_getcurrent(), s->s_name, ".pd",
dirbuf, &nameptr, MAXPDSTRING, 0)) >= 0 ||
(fd = canvas_open(canvas_getcurrent(), s->s_name, ".pat",
dirbuf, &nameptr, MAXPDSTRING, 0)) >= 0)
{
close (fd);
if (!pd_setloadingabstraction(s))
{
canvas_setargs(argc, argv);
binbuf_evalfile(gensym(nameptr), gensym(dirbuf));
if (s__X.s_thing != current)
canvas_popabstraction((t_canvas *)(s__X.s_thing));
canvas_setargs(0, 0);
}
else error("%s: can't load abstraction within itself\n", s->s_name);
}
else newest = 0;
}
开发者ID:toto,项目名称:ipd,代码行数:37,代码来源:m_class.c
示例2: canvas_getcurrent
void *plustot_var_new(t_symbol *s, int ac, t_atom *av)
{
t_plustot_var *x = 0;
t_glist *glist = canvas_getcurrent();
t_plustin *tin = 0;
t_plusvar *var = 0;
if (ac && av->a_type == A_SYMBOL &&
(tin = plustin_glistprovide(glist, PLUSTIN_GLIST_ANY, 0)) &&
(var = plusvar_new(av->a_w.w_symbol->s_name, 0, tin)))
{
x = (t_plustot_var *)plusobject_new(plustot_var_class, s, ac, av, 0);
plusbob_preserve((t_plusbob *)var);
plusbob_setowner((t_plusbob *)var, (t_pd *)x);
plusvar_setlist(var, ac - 1, av + 1, 1);
x->x_glist = glist;
x->x_var = var;
x->x_proxy = plusproxy_var_new((t_pd *)x);
plusinlet_new(&x->x_plusobject, (t_pd *)x->x_proxy, 0, 0);
plusoutlet_new(&x->x_plusobject, &s_symbol);
}
else
{
if (!ac || av->a_type != A_SYMBOL)
loud_error(0, "+var: missing name of a variable");
else
loud_error(0, "+var: cannot initialize");
if (tin)
{
plusbob_preserve((t_plusbob *)tin);
plusbob_release((t_plusbob *)tin);
}
}
return (x);
}
开发者ID:Git689,项目名称:libpd-cyclone-ios,代码行数:34,代码来源:plustot.var.c
示例3: new_anything
/* this routine is called when a new "object" is requested whose class Pd
doesn't know. Pd tries to load it as an extern, then as an abstraction. */
void new_anything(void *dummy, t_symbol *s, int argc, t_atom *argv)
{
int fd;
char dirbuf[MAXPDSTRING], classslashclass[MAXPDSTRING], *nameptr;
if (tryingalready>MAXOBJDEPTH){
error("maximum object loading depth %d reached", MAXOBJDEPTH);
return;
}
if (s == &s_anything){
error("object name \"%s\" not allowed", s->s_name);
return;
}
pd_this->pd_newest = 0;
class_loadsym = s;
pd_globallock();
if (sys_load_lib(canvas_getcurrent(), s->s_name))
{
tryingalready++;
typedmess(dummy, s, argc, argv);
tryingalready--;
return;
}
class_loadsym = 0;
pd_globalunlock();
}
开发者ID:danomatika,项目名称:ofxPd,代码行数:27,代码来源:m_class.c
示例4: canvas_getcurrent
static void *sfread_new(t_floatarg chan,t_floatarg skip)
{
#ifdef ROCKBOX
(void) skip;
#endif
t_sfread *x = (t_sfread *)pd_new(sfread_class);
t_int c = chan;
x->x_glist = (t_glist*) canvas_getcurrent();
if (c<1 || c > MAX_CHANS) c = 1;
inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1"));
inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft2"));
x->x_fd = -1;
x->x_mapaddr = NULL;
x->x_size = 0;
x->x_loop = 0;
x->x_channels = c;
x->x_mapaddr=NULL;
x->x_pos = 0;
x->x_skip = 0;
x->x_speed = ftofix(1.0);
x->x_play = 0;
while (c--) {
outlet_new(&x->x_obj, gensym("signal"));
}
x->x_bangout = outlet_new(&x->x_obj, &s_float);
return (x);
}
开发者ID:4nykey,项目名称:rockbox,代码行数:35,代码来源:sfread~.c
示例5: canvas_getcurrent
void *plustot_qlist_new(t_symbol *s, int ac, t_atom *av)
{
t_plustot_qlist *x = 0;
t_glist *glist = canvas_getcurrent();
t_plustin *tin = 0;
t_plustob *tob = 0;
if ((tin = plustin_glistprovide(glist, PLUSTIN_GLIST_ANY, 0)) &&
(tob = plustob_new(tin, 0)))
{
x = (t_plustot_qlist *)
plusobject_new(plustot_qlist_class, s, ac, av, 0);
plusbob_preserve((t_plusbob *)tob);
plusbob_setowner((t_plusbob *)tob, (t_pd *)x);
plustob_setlist(tob, ac, av);
x->x_glist = glist;
x->x_tob = tob;
x->x_proxy = plusproxy_qlist_new(x);
plusinlet_new(&x->x_plusobject, (t_pd *)x->x_proxy, 0, 0);
plusoutlet_new(&x->x_plusobject, &s_anything);
x->x_rightout = outlet_new((t_object *)x, &s_symbol);
}
else
{
loud_error(0, "+qlist: cannot initialize");
if (tin)
{
plusbob_preserve((t_plusbob *)tin);
plusbob_release((t_plusbob *)tin);
}
}
return (x);
}
开发者ID:Git689,项目名称:libpd-cyclone-ios,代码行数:32,代码来源:plustot.qlist.c
示例6: inlet_new
static void *matrix_new(t_symbol *s, int argc, t_atom *argv)
{
t_matrix *x = (t_matrix *)pd_new(matrix_class);
int row, col;
inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("matrix"), gensym(""));
outlet_new(&x->x_obj, 0);
x->atombuffer = 0;
x->x_canvas = canvas_getcurrent();
switch (argc) {
case 0:
row = col = 0;
break;
case 1:
if (argv->a_type == A_SYMBOL) {
matrix_read(x, argv->a_w.w_symbol);
return(x);
}
row = col = atom_getfloat(argv);
break;
default:
row = atom_getfloat(argv++);
col = atom_getfloat(argv++);
}
if(row*col) {
adjustsize(x, row, col);
matrix_set(x, 0);
}
return (x);
}
开发者ID:iem-projects,项目名称:pd-iemmatrix,代码行数:35,代码来源:matrix.c
示例7: xeq_newbase
static void xeq_newbase(t_xeq *x, t_binbuf *bb, t_method tickmethod)
{
xeq_window_bind(x);
x->x_tempo = 1;
x->x_canvas = canvas_getcurrent();
x->x_whenclockset = 0;
x->x_clockdelay = 0;
x->x_clock = tickmethod ? clock_new(x, tickmethod) : 0;
xeq_noteons_clear(x);
x->x_ttp = 0;
x->x_transpo = 0;
x->x_autoit.i_owner = x;
x->x_stepit.i_owner = x;
x->x_walkit.i_owner = x;
xeq_setbinbuf(x, bb);
xeqit_sethooks(&x->x_autoit, xeqithook_autodelay, xeqithook_applypp,
xeqithook_playmessage, xeqithook_playfinish,
xeqithook_loopover);
xeqit_sethooks(&x->x_stepit, xeqithook_stepdelay, xeqithook_applypp,
xeqithook_playmessage, xeqithook_stepfinish, 0);
xeqit_sethooks(&x->x_walkit, 0, 0, 0, 0, 0);
xeqit_rewind(&x->x_autoit);
xeqit_rewind(&x->x_stepit);
xeqit_rewind(&x->x_walkit);
}
开发者ID:pure-data,项目名称:xeq,代码行数:25,代码来源:xeq.c
示例8: defined
bool flext_obj::GetParamSym(t_atom &dst,const t_symbol *sym,t_canvas *c)
{
#if FLEXT_SYS == FLEXT_SYS_PD && defined(PD_MINOR_VERSION) && PD_MINOR_VERSION >= 37
if(!c) c = canvas_getcurrent();
const char *s = GetString(sym);
if((s[0] == '$' || s[0] == '#') && isdigit(s[1])) {
const t_symbol *res;
// patcher parameter detected... get value!
if(s[0] != '$') {
char tmp[MAXPDSTRING];
strcpy(tmp,s);
tmp[0] = '$';
res = canvas_realizedollar(c,const_cast<t_symbol *>(MakeSymbol(tmp)));
}
else
res = canvas_realizedollar(c,const_cast<t_symbol *>(sym));
// check for number
const char *c = GetString(res);
while(*c && (isdigit(*c) || *c == '.')) ++c;
if(!*c)
SetFloat(dst,(float)atof(GetString(res)));
else
SetSymbol(dst,res);
return true;
}
else
#else
#pragma message("Not implemented")
#endif
SetSymbol(dst,sym);
return true;
}
开发者ID:EQ4,项目名称:IntegraLive,代码行数:35,代码来源:flbase.cpp
示例9: iemgui_modulo_color
static void *hfadl_scale_new(t_symbol *s, int argc, t_atom *argv)
{
t_hfadl_scale *x = (t_hfadl_scale *)pd_new(hfadl_scale_class);
if((argc >= 1)&&IS_A_FLOAT(argv,0))
{
int j, i = (int)atom_getintarg(0, argc, argv);
if(i >= 0)
{
j = iemgui_modulo_color(i);
x->x_gui.x_lcol = my_iemgui_color_hex[j];
}
else
{
j = -1 - i;
x->x_gui.x_lcol = ((j & 0x3f000) << 6)|((j & 0xfc0) << 4)|((j & 0x3f) << 2);
}
}
else
x->x_gui.x_lcol = 0;
x->x_gui.x_draw = (t_iemfunptr)hfadl_scale_draw;
x->x_gui.x_glist = (t_glist *)canvas_getcurrent();
x->x_gui.x_w = 126;
x->x_gui.x_h = 21;
strcpy(x->x_gif, my_iemgui_black_hlscale_gif);
my_iemgui_change_scale_col(x->x_gif, x->x_gui.x_lcol);
x->x_gui.x_fsf.x_selected = 0;
return(x);
}
开发者ID:Angeldude,项目名称:pd,代码行数:30,代码来源:hfadl_scale.c
示例10: canvas_getcurrent
static void *scalar_define_new(t_symbol *s, int argc, t_atom *argv)
{
t_atom a[9];
t_glist *gl;
t_canvas *x, *z = canvas_getcurrent();
t_symbol *templatesym = &s_float, *asym = gensym("#A");
t_template *template;
开发者ID:Angeldude,项目名称:pd,代码行数:7,代码来源:x_scalar.c
示例11: canvas_getcurrent
static void *voutlet_newsig(t_symbol *s)
{
t_voutlet *x = (t_voutlet *)pd_new(voutlet_class);
x->x_canvas = canvas_getcurrent();
x->x_parentoutlet = canvas_addoutlet(x->x_canvas,
&x->x_obj.ob_pd, &s_signal);
inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_signal, &s_signal);
x->x_endbuf = x->x_buf = (t_sample *)getbytes(0);
x->x_bufsize = 0;
resample_init(&x->x_updown);
/* this should be though over:
* it might prove hard to provide consistency between labeled up- & downsampling methods
* maybe indeces would be better...
*
* up till now we provide several upsampling methods and 1 single downsampling method (no filtering !)
*/
if (s == gensym("hold"))x->x_updown.method=1; /* up: sample and hold */
else if (s == gensym("lin"))x->x_updown.method=2; /* up: linear interpolation */
else if (s == gensym("linear"))x->x_updown.method=2; /* up: linear interpolation */
else if (s == gensym("pad"))x->x_updown.method=0; /* up: zero pad */
else x->x_updown.method=3; /* up: zero-padding; down: ignore samples inbetween */
return (x);
}
开发者ID:Angeldude,项目名称:pure-data,代码行数:26,代码来源:g_io.c
示例12: canvas_getcurrent
static void *capture_new(t_symbol *s, t_floatarg f)
{
t_capture *x = 0;
float *buffer;
int bufsize = (int)f; /* CHECKME */
if (bufsize <= 0) /* CHECKME */
bufsize = CAPTURE_DEFSIZE;
if (buffer = getbytes(bufsize * sizeof(*buffer)))
{
x = (t_capture *)pd_new(capture_class);
x->x_canvas = canvas_getcurrent();
if (s && s != &s_)
{
if (s == gensym("x"))
x->x_intmode = 'x';
else if (s == gensym("m"))
x->x_intmode = 'm';
else
x->x_intmode = 'd'; /* ignore floats */
}
x->x_buffer = buffer;
x->x_bufsize = bufsize;
outlet_new((t_object *)x, &s_float);
x->x_filehandle = hammerfile_new((t_pd *)x, 0, 0, capture_writehook, 0);
capture_clear(x);
}
return (x);
}
开发者ID:ma4u,项目名称:pd-macambira,代码行数:28,代码来源:capture.c
示例13: if
static void *iem_send_kernel_new(void)
{
t_iem_send_kernel *x = (t_iem_send_kernel *)pd_new(iem_send_kernel_class);
t_glist *glist = (t_glist *)canvas_getcurrent();
t_canvas *canvas=glist_getcanvas(glist);
int ac=0;
t_atom *av;
canvas_setcurrent(canvas);
canvas_getargs(&ac, &av);
canvas_unsetcurrent(canvas);
if(ac > 0)
{
if(IS_A_SYMBOL(av,0))
{
x->x_sym = atom_getsymbol(av);
}
else if(IS_A_FLOAT(av,0))
{
char str[100];
sprintf(str, "%g", atom_getfloat(av));
x->x_sym = gensym(str);
}
else
x->x_sym = 0;
}
else
x->x_sym = 0;
return (x);
}
开发者ID:MagdaHertzberg,项目名称:Pure-Data,代码行数:32,代码来源:iem_send_kernel.c
示例14: switch
static void *h_deque_new(t_symbol *s, int argc, t_atom *argv)
{
t_h_deque *x = (t_h_deque *)pd_new(h_deque_class);
t_proxy *inlet = (t_proxy *)pd_new(proxy_class); // for the proxy inlet
inlet->x = x; // make x visible to the proxy inlets
switch(argc)
{
default:
post("h_deque warning: only one argument for namespace is possible!");
case 1:
x->hdeque = new HDeque(atom_getsymbol(argv)->s_name);
break;
case 0:
x->hdeque = new HDeque();
break;
}
// we are going to create a proxy inlet no. 0
// it belongs to the object x but the destination is t_proxy
inlet->index = 0;
inlet_new(&x->x_obj, &inlet->obj.ob_pd, 0,0);
x->out0 = outlet_new(&x->x_obj, 0);
x->out1 = outlet_new(&x->x_obj, &s_float);
x->out2 = outlet_new(&x->x_obj, &s_bang);
x->x_canvas = canvas_getcurrent();
return (void *)x;
}
开发者ID:Angeldude,项目名称:pd,代码行数:31,代码来源:h_deque.cpp
示例15: return
static void *namecanvas_new(t_symbol *s)
{
t_namecanvas *x = (t_namecanvas *)pd_new(namecanvas_class);
x->x_owner = (t_pd *)canvas_getcurrent();
x->x_sym = s;
if (*s->s_name) pd_bind(x->x_owner, s);
return (x);
}
开发者ID:danomatika,项目名称:ofxPd,代码行数:8,代码来源:x_misc.c
示例16: sprintf
static void *lsend_new(t_symbol *s)
{
t_lsend *x = (t_lsend *)pd_new(lsend_class);
char mysym[MAXPDSTRING];
sprintf(mysym,"%s%p",s->s_name,canvas_getcurrent());
x->x_sym = gensym(mysym);
return (x);
}
开发者ID:Angeldude,项目名称:pd,代码行数:9,代码来源:sl.c
示例17: sizeof
static void *soundfile_info_new(void)
{
t_soundfile_info *x = (t_soundfile_info *)pd_new(soundfile_info_class);
x->x_size = 10000;
x->x_begmem = (long *)getbytes(x->x_size * sizeof(long));
x->x_list_out = outlet_new(&x->x_obj, &s_list);
x->x_canvas = canvas_getcurrent();
return (x);
}
开发者ID:BirminghamConservatoire,项目名称:IntegraLive,代码行数:10,代码来源:soundfile_info.c
示例18: new_anything
/* this routine is called when a new "object" is requested whose class Pd
doesn't know. Pd tries to load it as an extern, then as an abstraction. */
void new_anything(void *dummy, t_symbol *s, int argc, t_atom *argv)
{
t_pd *current;
int fd;
char dirbuf[MAXPDSTRING], classslashclass[MAXPDSTRING], *nameptr;
if (tryingalready>MAXOBJDEPTH){
error("maximum object loading depth %d reached", MAXOBJDEPTH);
return;
}
newest = 0;
class_loadsym = s;
if (sys_load_lib(canvas_getcurrent(), s->s_name))
{
tryingalready++;
typedmess(dummy, s, argc, argv);
tryingalready--;
return;
}
class_loadsym = 0;
current = s__X.s_thing;
/* for class/class.pd support, to match class/class.pd_linux */
snprintf(classslashclass, MAXPDSTRING, "%s/%s", s->s_name, s->s_name);
if ((fd = canvas_open(canvas_getcurrent(), s->s_name, ".pd",
dirbuf, &nameptr, MAXPDSTRING, 0)) >= 0 ||
(fd = canvas_open(canvas_getcurrent(), s->s_name, ".pat",
dirbuf, &nameptr, MAXPDSTRING, 0)) >= 0 ||
(fd = canvas_open(canvas_getcurrent(), classslashclass, ".pd",
dirbuf, &nameptr, MAXPDSTRING, 0)) >= 0)
{
close (fd);
if (!pd_setloadingabstraction(s))
{
canvas_setargs(argc, argv);
binbuf_evalfile(gensym(nameptr), gensym(dirbuf));
canvas_initbang((t_canvas *)(s__X.s_thing));/* JMZ*/
if (s__X.s_thing != current)
canvas_popabstraction((t_canvas *)(s__X.s_thing));
canvas_setargs(0, 0);
}
else error("%s: can't load abstraction within itself\n", s->s_name);
}
else newest = 0;
}
开发者ID:ailo,项目名称:pd-mousike,代码行数:45,代码来源:m_class.c
示例19: canvas_getcurrent
static void *bitand_new(t_floatarg f1, t_floatarg f2)
{
t_bitand *x = (t_bitand *)pd_new(bitand_class);
x->x_glist = canvas_getcurrent();
x->x_rightinlet = inlet_new((t_object *)x, (t_pd *)x, &s_signal, &s_signal);
outlet_new((t_object *)x, &s_signal);
x->x_signalscalar = obj_findsignalscalar(x, 1);
bitand_intmask(x, f1);
bitand_mode(x, f2);
return (x);
}
开发者ID:porres,项目名称:pd-cyclone,代码行数:11,代码来源:bitand.c
示例20: outlet_new
static void *freadln_new(void)
{
t_freadln *x = (t_freadln *)pd_new(freadln_class);
x->x_message_outlet = outlet_new(&x->x_ob, &s_list);
x->x_readybang_outlet = outlet_new(&x->x_ob, &s_bang);
x->x_filename=0;
x->x_file=0;
x->x_textbuf=0;
x->x_canvas = canvas_getcurrent();
return (void *)x;
}
开发者ID:jptrkz,项目名称:pd-zexy,代码行数:11,代码来源:freadln.c
注:本文中的canvas_getcurrent函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论