diff options
author | Thomas Grill <xovo@users.sourceforge.net> | 2002-12-28 04:37:42 +0000 |
---|---|---|
committer | Thomas Grill <xovo@users.sourceforge.net> | 2002-12-28 04:37:42 +0000 |
commit | 562dcc336797951b2a8707413aa44177484c9f2a (patch) | |
tree | 162adc736d99b6edf4c03e50061831006ac0f5c4 /externals/grill/flext/source/flatom_app.cpp | |
parent | 7b0d76e0a6c7b58f6a7a373755c46bde52ebea79 (diff) |
""
svn path=/trunk/; revision=309
Diffstat (limited to 'externals/grill/flext/source/flatom_app.cpp')
-rwxr-xr-x | externals/grill/flext/source/flatom_app.cpp | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/externals/grill/flext/source/flatom_app.cpp b/externals/grill/flext/source/flatom_app.cpp new file mode 100755 index 00000000..aedaadcd --- /dev/null +++ b/externals/grill/flext/source/flatom_app.cpp @@ -0,0 +1,76 @@ +/* + +flext - C++ layer for Max/MSP and pd (pure data) externals + +Copyright (c) 2001,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. + +*/ + +/*! \file flatom_app.cpp + \brief Definitions for handling the t_atom type and lists thereof. +*/ + +#include "flext.h" + + +flext::AtomList &flext::AtomList::Append(const t_atom &a) +{ + t_atom *nlst = new t_atom[cnt+1]; + for(int i = 0; i < cnt; ++i) SetAtom(nlst[i],lst[i]); + SetAtom(nlst[cnt],a); + + if(lst) delete[] lst; + lst = nlst; + ++cnt; + + return *this; +} + +flext::AtomList &flext::AtomList::Append(int argc,const t_atom *argv) +{ + if(argc) { + t_atom *nlst = new t_atom[cnt+argc]; + int i; + for(i = 0; i < cnt; ++i) SetAtom(nlst[i],lst[i]); + if(argv) + for(i = 0; i < argc; ++i) SetAtom(nlst[cnt+i],argv[i]); + + if(lst) delete[] lst; + lst = nlst; + cnt += argc; + } + return *this; +} + +flext::AtomList &flext::AtomList::Prepend(const t_atom &a) +{ + t_atom *nlst = new t_atom[cnt+1]; + for(int i = 0; i < cnt; ++i) SetAtom(nlst[i+1],lst[i]); + SetAtom(nlst[0],a); + + if(lst) delete[] lst; + lst = nlst; + ++cnt; + + return *this; +} + +flext::AtomList &flext::AtomList::Prepend(int argc,const t_atom *argv) +{ + if(argc) { + t_atom *nlst = new t_atom[cnt+argc]; + int i; + + if(argv) + for(i = 0; i < argc; ++i) SetAtom(nlst[i],argv[i]); + for(i = 0; i < cnt; ++i) SetAtom(nlst[argc+i],lst[i]); + + if(lst) delete[] lst; + lst = nlst; + cnt += argc; + } + return *this; +} + |