aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/vasp/source/classes.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'externals/grill/vasp/source/classes.cpp')
-rw-r--r--externals/grill/vasp/source/classes.cpp416
1 files changed, 0 insertions, 416 deletions
diff --git a/externals/grill/vasp/source/classes.cpp b/externals/grill/vasp/source/classes.cpp
deleted file mode 100644
index 195e9e25..00000000
--- a/externals/grill/vasp/source/classes.cpp
+++ /dev/null
@@ -1,416 +0,0 @@
-/*
-
-VASP modular - vector assembling signal processor / objects for Max/MSP and PD
-
-Copyright (c) 2002 Thomas Grill (xovo@gmx.net)
-For information on usage and redistribution, and for a DISCLAIMER OF ALL
-WARRANTIES, see the file, "license.txt," in this distribution.
-
-*/
-
-#include "main.h"
-#include "classes.h"
-//#include <stdarg.h>
-
-
-///////////////////////////////////////////////////////////////////////////
-// vasp_base class
-///////////////////////////////////////////////////////////////////////////
-
-const t_symbol *vasp_base::sym_radio;
-const t_symbol *vasp_base::sym_vasp;
-const t_symbol *vasp_base::sym_env;
-const t_symbol *vasp_base::sym_double;
-const t_symbol *vasp_base::sym_complex;
-const t_symbol *vasp_base::sym_vector;
-
-V vasp_base::Setup(t_classid c)
-{
- sym_radio = MakeSymbol("radio");
- sym_vasp = MakeSymbol("vasp");
- sym_env = MakeSymbol("env");
- sym_double = MakeSymbol("double");
- sym_complex = MakeSymbol("complex");
- sym_vector = MakeSymbol("vector");
-
- FLEXT_CADDMETHOD_(c,0,"radio",m_radio);
- FLEXT_CADDMETHOD_(c,0,"help",m_help);
-
- FLEXT_CADDATTR_VAR1(c,"defer",deferred);
-
-// LATER!
-/*
- FLEXT_CADDATTR_VAR1(c,"argchk",argchk);
- FLEXT_CADDATTR_VAR1(c,"loglvl",loglvl);
- FLEXT_CADDATTR_VAR1_E(c,"unit",unit);
-*/
-}
-
-vasp_base::vasp_base():
- refresh(false),argchk(false),deferred(false),
- unit(xsu_sample),loglvl(0)
-{}
-
-vasp_base::~vasp_base() {}
-
-
-V vasp_base::m_radio(I argc,const t_atom *argv)
-{
- if(argc > 0 && IsSymbol(argv[0])) {
- // send command to self!
- ToSelfAnything(0,GetSymbol(argv[0]),argc-1,argv+1);
-
- // send command to the next objects in line
- ToOutAnything(0,sym_radio,argc,argv);
- }
- else
- post("%s - radio message invalid",thisName());
-}
-
-/*
-V vasp_base::m_unit(xs_unit u) { unit = u; }
-V vasp_base::m_argchk(BL chk) { argchk = chk; }
-V vasp_base::m_loglvl(I lvl) { loglvl = lvl; }
-*/
-
-BL vasp_base::ToOutVasp(I oix,Vasp &v)
-{
- AtomList *lst = v.MakeList(false);
- if(lst) {
- if(deferred)
- ToQueueAnything(oix,sym_vasp,lst->Count(),lst->Atoms());
- else
- ToOutAnything(oix,sym_vasp,lst->Count(),lst->Atoms());
- delete lst;
- return true;
- }
- else return false;
-}
-
-///////////////////////////////////////////////////////////////////////////
-// vasp_op class
-///////////////////////////////////////////////////////////////////////////
-
-vasp_op::vasp_op(BL op)
- :detach(false),prior(-2)
-#ifdef FLEXT_THREADS
-// ,thrid(0)
-#endif
-{
- if(op) FLEXT_ADDATTR_VAR("to",m_getto,m_setto);
-}
-
-V vasp_op::Setup(t_classid c)
-{
- FLEXT_CADDBANG(c,0,m_dobang);
- FLEXT_CADDMETHOD_(c,0,"vasp",m_vasp);
- FLEXT_CADDMETHOD_(c,0,"set",m_set);
-
- FLEXT_CADDATTR_VAR(c,"ref",m_getref,m_setref);
-
- FLEXT_CADDMETHOD_(c,0,"stop",m_stop);
-
- FLEXT_CADDATTR_VAR(c,"update",m_getupd,m_setupd);
-
- FLEXT_CADDATTR_VAR1(c,"detach",detach);
- FLEXT_CADDATTR_VAR1(c,"prior",prior);
-}
-
-V vasp_op::m_dobang()
-{
-#ifdef FLEXT_THREADS
- if(detach)
- FLEXT_CALLMETHOD(m_bang);
- else
-#endif
- m_bang();
-}
-
-I vasp_op::m_set(I argc,const t_atom *argv)
-{
- Vasp arg(argc,argv);
-
- if(argc && !arg.Ok()) {
- ref.Clear();
- post("%s - invalid vasp detected and ignored",thisName());
- }
- else {
- if(arg.Check())
- ref = arg;
- else {
- ref.Clear();
- post("%s - vasp reference is invalid",thisName());
- }
- }
-
- return 0;
-}
-
-V vasp_op::m_vasp(I argc,const t_atom *argv)
-{
- m_set(argc,argv);
- m_dobang();
-}
-
-
-V vasp_op::m_to(I argc,const t_atom *argv)
-{
- Vasp to(argc,argv);
-
- if(argc && !to.Ok()) {
- // empty vasp
- dst.Clear();
- }
- else
- dst = to;
-}
-
-V vasp_op::m_update(I argc,const t_atom *argv)
-{
- if(argc == 0)
- ref.Refresh();
- else {
- if(CanbeInt(argv[0]))
- refresh = GetAInt(argv[0]) != 0;
- else
- post("%s(update) - argument should be omitted or integer",thisName());
- }
-}
-
-V vasp_op::m_stop() {}
-
-///////////////////////////////////////////////////////////////////////////
-// vasp_tx class
-///////////////////////////////////////////////////////////////////////////
-
-vasp_tx::vasp_tx(BL to): vasp_op(to) {}
-
-V vasp_tx::m_bang()
-{
- // Thread has to wait until previous is finished
- Lock();
-
-#ifdef FLEXT_THREADS
- if(!IsSystemThread()) RelPriority(prior);
-#endif
-
- if(ref.Check())
- {
- Vasp *ret = x_work();
- if(ret) {
- if(!ToOutVasp(0,*ret))
- post("%s - empty list",thisName());
- if(refresh) ret->Refresh();
- delete ret;
- }
- else {
-#ifdef FLEXT_DEBUG
- post("%s - no valid return",thisName());
-#endif
- }
- }
- else {
- post("%s - no valid vasp to work with",thisName());
- }
-
-#ifdef FLEXT_THREADS
-// thrid = 0;
-#endif
-
- Unlock();
-}
-
-
-///////////////////////////////////////////////////////////////////////////
-// vasp_unop class
-///////////////////////////////////////////////////////////////////////////
-
-vasp_unop::vasp_unop(BL op,UL outcode):
- vasp_tx(op)
-{
- AddInAnything();
- AddOutAnything(1);
- AddOutlets(outcode);
-}
-
-Vasp *vasp_unop::x_work() { return tx_work(); }
-
-Vasp *vasp_unop::tx_work()
-{
- error("%s - no work method implemented",thisName());
- return NULL;
-}
-
-///////////////////////////////////////////////////////////////////////////
-// vasp_binop class
-///////////////////////////////////////////////////////////////////////////
-
-
-vasp_binop::vasp_binop(I argc,const t_atom *argv,const Argument &def,BL op,UL outcode):
- vasp_tx(op)
-{
- a_list(argc,argv);
- if(arg.IsNone() && !def.IsNone()) arg = def;
-
- AddInAnything(2);
- AddOutAnything(1);
- AddOutlets(outcode);
-}
-
-V vasp_binop::Setup(t_classid c)
-{
- FLEXT_CADDMETHOD(c,1,a_list);
- FLEXT_CADDMETHOD_(c,1,"vasp",a_vasp);
- FLEXT_CADDMETHOD_(c,1,"env",a_env);
- FLEXT_CADDMETHOD_(c,1,"float",a_float);
- FLEXT_CADDMETHOD_(c,1,"double",a_double);
- FLEXT_CADDMETHOD_(c,1,"int",a_int);
- FLEXT_CADDMETHOD_(c,1,"complex",a_complex);
- FLEXT_CADDMETHOD_(c,1,"vector",a_vector);
- FLEXT_CADDMETHOD_(c,1,"radio",a_radio);
-
- FLEXT_CADDATTR_VAR(c,"arg",m_getarg,m_setarg);
-}
-
-V vasp_binop::a_list(I argc,const t_atom *argv)
-{
- if(argc) {
- arg.Parse(argc,argv);
- if(arg.IsNone())
- post("%s - list argument could not be evaluated (ignored)",thisName());
- else if(argchk) {
- // check argument feasibility
- }
- }
- else {
-// post("%s - Empty list argument (ignored)",thisName());
- }
-}
-
-V vasp_binop::a_vasp(I argc,const t_atom *argv)
-{
- Vasp *v = new Vasp(argc,argv);
- if(v->Ok()) {
- arg.SetVasp(v);
- if(argchk) {
- // check argument feasibility
- }
- }
- else {
- post("%s - invalid vasp argument (ignored)",thisName());
- delete v;
- }
-}
-
-V vasp_binop::a_env(I argc,const t_atom *argv)
-{
- Env *bp = new Env(argc,argv);
- if(bp->Ok()) {
- arg.SetEnv(bp);
- if(argchk) {
- // check argument feasibility
- }
- }
- else {
- post("%s - invalid env argument (ignored)",thisName());
- delete bp;
- }
-}
-
-V vasp_binop::a_float(F v) { arg.SetR(v); }
-
-V vasp_binop::a_double(I argc,const t_atom *argv)
-{
- if(
- (argc == 1 && CanbeFloat(argv[0])) ||
- (argc == 2 && CanbeFloat(argv[0]) && CanbeFloat(argv[1]))
- ) {
- arg.SetR((D)GetAFloat(argv[0])+(D)GetAFloat(argv[1]));
- if(argchk) {
- // check argument feasibility
- }
- }
- else
- post("%s - invalid double argument (ignored)",thisName());
-}
-
-V vasp_binop::a_int(I v) { arg.SetI(v); }
-
-V vasp_binop::a_complex(I argc,const t_atom *argv)
-{
- if(
- (argc == 1 && CanbeFloat(argv[0])) ||
- (argc == 2 && CanbeFloat(argv[0]) && CanbeFloat(argv[1]))
- ) {
- arg.SetCX(GetAFloat(argv[0]),GetAFloat(argv[1]));
- if(argchk) {
- // check argument feasibility
- }
- }
- else
- post("%s - invalid complex argument (ignored)",thisName());
-}
-
-V vasp_binop::a_vector(I argc,const t_atom *argv)
-{
- error("%s - vector type not implemented",thisName());
-}
-
-
-Vasp *vasp_binop::x_work() { return tx_work(arg); }
-
-Vasp *vasp_binop::tx_work(const Argument &arg)
-{
- error("%s - no work method implemented",thisName());
- return NULL;
-}
-
-
-///////////////////////////////////////////////////////////////////////////
-// vasp_anyop class
-///////////////////////////////////////////////////////////////////////////
-
-
-vasp_anyop::vasp_anyop(I argc,const t_atom *argv,const Argument &def,BL op,UL outcode):
- vasp_tx(op)
-{
- a_list(argc,argv);
- if(arg.IsNone() && !def.IsNone()) arg = def;
-
- AddInAnything(2);
- AddOutAnything(1);
- AddOutlets(outcode);
-}
-
-V vasp_anyop::Setup(t_classid c)
-{
- FLEXT_CADDMETHOD(c,1,a_list);
- FLEXT_CADDMETHOD_(c,1,"vasp",a_list);
- FLEXT_CADDMETHOD_(c,1,"radio",a_radio);
-
- FLEXT_CADDATTR_VAR(c,"arg",m_getarg,m_setarg);
-}
-
-V vasp_anyop::a_list(I argc,const t_atom *argv)
-{
- if(argc) {
- arg.SetList(argc,argv);
- if(arg.IsNone())
- post("%s - argument could not be evaluated (ignored)",thisName());
- else if(argchk) {
- // check argument feasibility
- }
- }
- else {
-// post("%s - Empty list argument (ignored)",thisName());
- }
-}
-
-Vasp *vasp_anyop::x_work() { return tx_work(arg); }
-
-Vasp *vasp_anyop::tx_work(const Argument &arg)
-{
- error("%s - no work method implemented",thisName());
- return NULL;
-}
-