Je voudrais connaitre la valeur d'une série de toggle à l'aide de messages.
Comme on peut interroger un canvas avec get_pos, je fais bêtement
|;
|montoggle_rcv get_value (
La console renvoie tgl: no method for 'get_value'
Connaissez-vous une solution?
D'une façon plus générale, existe-t-il un truc pour lister les methodes reconnues par les objets?
Merci
Hors ligne
oui
tu fais help sur l'objet toogle et après tu ouvre le sous-patch pd edit
et la tu auras tous les messages.
Hors ligne
?????!! Je sais faire clic-droit-help mais je ne vois pas ici de message qui pourrait faire ce dont j'ai besoin.
Hors ligne
Il n'y a rien dans edit qui permette de connaitre la valeur du toggle.
non-zero permette d'éditer la valeur du toggle mais pas de la lire. c'est un alias de |set(
La seule solution est d'envoyer un double bang au toggle. Ça devient ingérable car les bang déclencheront d'autres calculs.
Hors ligne
Bonjour akatronic,
Pourrais-tu préciser quelle valeur tu veux récupérer?
Si c'est celle que tu donnes via le message non-zero,
il suffit d'un clic (ou bang) sur le [toggle] correspondant...
Si tu as un exemple de patch, cela nous permettrait de
te répondre (peut-être...) plus précisément.
solipse.
Hors ligne
tu peux checker le code source de toggle pour voir a quel message il repond mais sinon je crois que tu va etre obliger de creer un objet renvoyant la valeur ( genre un float et un send ) lors d'un bang et le placer juste apres le toggle.
HK
Hors ligne
Solipse, C'est bien la valeur nonzero que je voudrais récupérer. Celle qui s'affiche dans la boite propriétés dans la case "value".
J'essaie de faire un patch s'inspirant du monome et du tenori. Rien de précis pour l'instant, c'est un objet d'étude; mais cette valeur peut être intéressante pour mémoriser des motifs graphiques, des pondérations, etc. Je voudrais faire une fonction pour lire, et mémoriser dans des banques tout ou partie de la grille.
Comme dit human.koala, on peut créer des objets derrière les toggles pour mémoriser. Ça revient à créer une image de l'interface dans une autre structure. C'est vraiment ballot.
human.koala, je n'ai pas encore jeté un oeil aux sources. L'envie ne manque pas mais j'ai peur de me perdre. Existe-t-il une documentation des sources?
Hors ligne
voila ce que j'ai trouvé dans g_toggle.c
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); }
HK
Hors ligne