/* Copyright 2010-2025 Christian Veit */ #include "jit.common.h" #include "max.jit.mop.h" typedef struct _max_testexternal { t_object ob; void * obex; } t_max_testexternal; t_jit_err testexternal_init(void); void* max_testexternal_new(t_symbol* s, long argc, t_atom* argv); void max_testexternal_free(t_max_testexternal* x); t_messlist* max_testexternal_class; t_symbol* ps_rows, * ps_cols; C74_EXPORT void ext_main(void* r) { void *p, *q; testexternal_init(); setup(&max_testexternal_class, (method)max_testexternal_new, (method)max_testexternal_free, (short)sizeof(t_max_testexternal), 0L, A_GIMME, 0); p = max_jit_classex_setup(calcoffset(t_max_testexternal, obex)); q = jit_class_findbyname(gensym("testexternal")); max_jit_classex_mop_wrap(p, q, MAX_JIT_MOP_FLAGS_NONE); max_jit_classex_standard_wrap(p, q, 0); addmess((method)max_jit_mop_assist, "assist", A_CANT, 0); ps_rows = gensym("rows"); ps_cols = gensym("cols"); } void max_testexternal_free(t_max_testexternal* x) { max_jit_mop_free(x); jit_object_free(max_jit_obex_jitob_get(x)); max_jit_obex_free(x); } void* max_testexternal_new(t_symbol* s, long argc, t_atom* argv) { t_max_testexternal* x; void* o, * m; if (x = (t_max_testexternal*)max_jit_obex_new(max_testexternal_class, gensym("testexternal"))) { if (o = jit_object_new(gensym("testexternal"))) { max_jit_mop_setup_simple(x, o, argc, argv); max_jit_attr_args(x, argc, argv); } else { jit_object_error((t_object*)x, "schaum.analysis: could not allocate object"); freeobject(x); x = NULL; } } return (x); }