diff options
author | Tim Blechmann <timblech@users.sourceforge.net> | 2004-09-07 09:32:44 +0000 |
---|---|---|
committer | IOhannes m zmölnig <zmoelnig@iem.at> | 2015-10-14 15:11:57 +0200 |
commit | 1a1d31d95b241dff59a11311b70be603742eeb32 (patch) | |
tree | e14209db3ee68ed03aafa657205a0595e6f62f96 /tbext/source | |
parent | 17bd73bf9c9da670727345b00e639398a8f3d296 (diff) |
*** empty log message ***
svn path=/trunk/externals/tb/; revision=2016
Diffstat (limited to 'tbext/source')
-rw-r--r-- | tbext/source/main.cpp | 3 | ||||
-rw-r--r-- | tbext/source/sym2num.cpp | 90 |
2 files changed, 92 insertions, 1 deletions
diff --git a/tbext/source/main.cpp b/tbext/source/main.cpp index 39ac8b2..0c9285d 100644 --- a/tbext/source/main.cpp +++ b/tbext/source/main.cpp @@ -52,7 +52,7 @@ void ttbext_setup() post("version "TBEXT_VERSION); post("compiled on "__DATE__); post("contains: tbroute(~), tbfft1~, tbfft2~, bufline~, fftgrrev~"); - post(" fftgrsort~, fftgrshuf~, him~\n"); + post(" fftgrsort~, fftgrshuf~, him~, sym2num\n"); FLEXT_SETUP(tbroute); FLEXT_DSP_SETUP(tbsroute); @@ -65,6 +65,7 @@ void ttbext_setup() FLEXT_DSP_SETUP(fftgrshuf); FLEXT_DSP_SETUP(fftgrrev); FLEXT_DSP_SETUP(him); + FLEXT_SETUP(sym2num); diff --git a/tbext/source/sym2num.cpp b/tbext/source/sym2num.cpp new file mode 100644 index 0000000..8f7bece --- /dev/null +++ b/tbext/source/sym2num.cpp @@ -0,0 +1,90 @@ +/* Copyright (c) 2004 Tim Blechmann. */ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL */ +/* WARRANTIES, see the file, "COPYING" in this distribution. */ +/* */ +/* sym2num interpretes a symbol as decimal number that is related to the ascii */ +/* representation. */ +/* */ +/* */ +/* sym2num uses the flext C++ layer for Max/MSP and PD externals. */ +/* get it at http://www.parasitaere-kapazitaeten.de/PD/ext */ +/* thanks to Thomas Grill */ +/* */ +/* */ +/* */ +/* This program is free software; you can redistribute it and/or */ +/* modify it under the terms of the GNU General Public License */ +/* as published by the Free Software Foundation; either version 2 */ +/* of the License, or (at your option) any later version. */ +/* */ +/* See file LICENSE for further informations on licensing terms. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU General Public License for more details. */ +/* */ +/* You should have received a copy of the GNU General Public License */ +/* along with this program; if not, write to the Free Software */ +/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +/* */ +/* Based on PureData by Miller Puckette and others. */ +/* */ +/* */ +/* */ +/* coded while listening to: Phil Minton & Veryan Weston: Ways */ +/* */ +/* */ +/* */ + + + +#include <flext.h> + +#include <cstring> +#include <cmath> + + +#if !defined(FLEXT_VERSION) || (FLEXT_VERSION < 400) +#error upgrade your flext version!!!!!! +#endif + +class sym2num: public flext_base +{ + FLEXT_HEADER(sym2num,flext_base); + +public: + sym2num(); + +protected: + void m_symbol(t_symbol *s); + +private: + + FLEXT_CALLBACK_S(m_symbol); +}; + +FLEXT_LIB("sym2num",sym2num); + +sym2num::sym2num() +{ + AddInSymbol(); + + FLEXT_ADDMETHOD(0,m_symbol); + + AddOutFloat(); +} + +void sym2num::m_symbol(t_symbol * s) +{ + const char* str = GetString(s); + + int length = strlen(str); + + int ret(0); + while (length--) + { + ret+=str[length]*pow(2,length); + } + ToOutFloat(0,ret); +} |