diff options
author | Thomas Grill <xovo@users.sourceforge.net> | 2009-04-01 21:13:09 +0000 |
---|---|---|
committer | Thomas Grill <xovo@users.sourceforge.net> | 2009-04-01 21:13:09 +0000 |
commit | 0ed7a8b68dd73e2b0473b8127aeca99f3bac9061 (patch) | |
tree | 5c67818b38a5cc2f9caa5ca7f8640ca356adf02b /externals/grill/vasp/source/obj_sync.cpp | |
parent | bb4c7f6a245394d09dac9adfb2efb093d3d98452 (diff) |
cleaned up grill externals - replaced with svn:externals to svn.grrrr.org/ext/trunk/
svn path=/trunk/; revision=10951
Diffstat (limited to 'externals/grill/vasp/source/obj_sync.cpp')
-rw-r--r-- | externals/grill/vasp/source/obj_sync.cpp | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/externals/grill/vasp/source/obj_sync.cpp b/externals/grill/vasp/source/obj_sync.cpp deleted file mode 100644 index b6ad0963..00000000 --- a/externals/grill/vasp/source/obj_sync.cpp +++ /dev/null @@ -1,130 +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 "util.h" - - -/*! \class vasp_sync - \remark \b vasp.sync - \brief Waits for all inlets to be hit (by vasps/anything) to trigger output. - \since 0.0.1 - \param cmdln.1 int - number of sync inlets - \param inlet.1 vasp - is stored - \param inlet.1 bang - triggers output - \param inlet.1 set - vasp to be stored - \param inlet.1 reset - clear all hit flags - \param inlet.+n vasp/anything - sets hit flag - \retval outlet.* vasp - stored vasps - - \todo Message for selection if only vasp input triggers (or any one). - \todo Message for selection of manual or auto reset upon trigger -*/ -class vasp_sync: - public vasp_op -{ - FLEXT_HEADER_S(vasp_sync,vasp_op,Setup) - -public: - vasp_sync(I argc,const t_atom *argv): - autoreset(true),vasponly(false) - { - I cnt = -1; - if(argc) { - if(CanbeInt(argv[0])) cnt = GetAInt(argv[0]); - if(cnt <= 1) { - post("%s - integer argument invalid: set to 2",thisName()); - cnt = 2; - } - } - else cnt = 2; - - flags = new BL[cnt]; - stored = new Vasp[cnt-1]; - - AddInAnything(cnt); - AddOutAnything(cnt); - } - - static V Setup(t_classid c) - { - FLEXT_CADDMETHOD_(c,0,"reset",m_reset); - } - - virtual BL Init() - { - BL ret = vasp_op::Init(); - m_reset(); - return ret; - } - - ~vasp_sync() - { - if(flags) delete[] flags; - if(stored) delete[] stored; - } - - V chkbang(I n,Vasp *a = NULL) - { - if(a && n > 0) { - stored[n-1] = *a; - delete a; - } - - BL f = flags[n]; - flags[n] = true; - if(!f) { // flags have changed - - BL all = true; - for(I i = 0; i < CntIn(); ++i) all = all && flags[i]; - - if(all) { - if(ref.Ok()) { - for(I i = CntIn()-1; i > 0; --i) ToOutVasp(i,stored[i-1]); - ToOutVasp(0,ref); - } - else ToOutBang(0); - - if(autoreset) m_reset(); - } - } - } - - virtual V m_bang() { chkbang(0); } - - V m_reset() - { - for(I i = 0; i < CntIn(); ++i) flags[i] = false; - } - - virtual bool m_method_(I inlet,const t_symbol *s,I argc,const t_atom *argv) - { - if(inlet > 0 && (!vasponly || s == sym_vasp)) { - Vasp *a = new Vasp(argc,argv); - chkbang(inlet,a); - return true; - } - else - return vasp_op::m_method_(inlet,s,argc,argv); - } - - virtual V m_help() { post("%s - Synchronize a number of vasps (default 2)",thisName()); } -private: - BL autoreset,vasponly; - BL *flags; - Vasp *stored; - - FLEXT_CALLBACK(m_reset) -}; - -VASP_LIB_V("vasp.sync",vasp_sync) - - |