summaryrefslogtreecommitdiff
path: root/sndobj/SndObj.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sndobj/SndObj.cpp')
-rw-r--r--sndobj/SndObj.cpp254
1 files changed, 0 insertions, 254 deletions
diff --git a/sndobj/SndObj.cpp b/sndobj/SndObj.cpp
deleted file mode 100644
index a111426..0000000
--- a/sndobj/SndObj.cpp
+++ /dev/null
@@ -1,254 +0,0 @@
-
-////////////////////////////////////////////////////////////////////////
-// This file is part of the SndObj library
-//
-// 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.
-//
-// 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
-//
-// Copyright (c)Victor Lazzarini, 1997-2004
-// See License.txt for a disclaimer of all warranties
-// and licensing information
-
-///////////////////////////////////////
-// SndObj Library Version 2
-// SndObj class
-// a very basic model for all derived classes
-//
-//////////////////////////////////////
-#include "SndObj.h"
-#include "SndIO.h"
-
-SndObj::SndObj(){
- m_output = NULL;
- SetVectorSize(DEF_VECSIZE);
- m_input = 0;
- m_sr = DEF_SR;
- m_error =0;
- for(m_vecpos = 0; m_vecpos < m_vecsize; m_vecpos++)
- m_output[m_vecpos]= 0.f;
- m_msgtable = new msg_link;
- m_msgtable->previous = 0;
- AddMsg("SR", 1);
- AddMsg("vector size", 2);
- AddMsg("input", 3);
- Enable();
-
-}
-
-SndObj::SndObj(SndObj* input, int vecsize, double sr){
- m_output = NULL;
- SetVectorSize(vecsize);
- m_input = input;
- m_sr = sr;
- m_error = 0;
- for(m_vecpos = 0; m_vecpos < m_vecsize; m_vecpos++) m_output[m_vecpos]= 0.f;
-
- m_msgtable = new msg_link;
- m_msgtable->previous = 0;
- AddMsg("SR", 1);
- AddMsg("vector size", 2);
- AddMsg("input", 3);
- Enable();
-
-}
-
-
-SndObj::SndObj(SndObj& obj){
- m_output = NULL;
- SetVectorSize(obj.GetVectorSize());
- SetSr(obj.GetSr());
-
- for(int n=0; n<m_vecsize;n++)m_output[n]=obj.Output(n);
- m_input = obj.GetInput();
- m_error =0;
-
- m_msgtable = new msg_link;
- m_msgtable->previous = 0;
- AddMsg("SR", 1);
- AddMsg("vector size", 2);
- AddMsg("input", 3);
- Enable();
-
-}
-
-
-SndObj::~SndObj(){
-
- delete[] m_output;
-
- msg_link *todestroy = m_msgtable;
- while(m_msgtable->previous){
- m_msgtable = todestroy->previous;
- delete todestroy;
- todestroy = m_msgtable;
- }
- delete m_msgtable;
-
-}
-
-void
-SndObj::GetMsgList(string* list){
- msg_link* tmp = m_msgtable;
- while(tmp->previous){
- list->append(tmp->msg);
- list->append("\n");
- tmp = tmp->previous;
- }
-}
-
-
-void
-SndObj::AddMsg(const char* mess, int ID){
-
- msg_link* newlink = new msg_link;
- msg_link* tmp = m_msgtable;
- newlink->msg = mess;
- newlink->ID = ID;
- m_msgtable = newlink;
- m_msgtable->previous = tmp;
-}
-
-int
-SndObj::Connect(char* mess, void *input){
-
- switch (FindMsg(mess)){
-
- case 3:
- m_input = (SndObj *) input;
- return 1;
-
- default:
- return 0;
-
- }
-}
-
-int
-SndObj::Set(char* mess, double value){
-
- switch (FindMsg(mess)){
-
- case 1:
- SetSr(value);
- return 1;
-
- case 2:
- SetVectorSize((int) value);
- return 1;
-
- default:
- return 0;
-
- }
-
-
-}
-
-
-void
-SndObj::SetVectorSize(int vecsize){
- if(m_output) delete[] m_output;
- if(!(m_output = new double[vecsize])){
- m_error = 1;
-#ifdef DEBUG
- cout << ErrorMessage();
-#endif
- m_vecsize = m_vecsize_max = 0;
- return;
- }
- m_vecsize = vecsize;
- m_vecsize_max = vecsize;
- m_altvecpos = m_vecpos = 0;
-}
-
-short
-SndObj::DoProcess(){
-
- if(!m_error){
- if(m_input){
- for(m_vecpos = 0; m_vecpos < m_vecsize; m_vecpos++) {
- if(m_enable) m_output[m_vecpos] = m_input->Output(m_vecpos);
- else m_output[m_vecpos] = 0.f;
- }
- return 1;
- } else {
- return 0;
- }
- }
- else return 0;
-}
-
-void
-SndObj::operator>>(SndIO& out){
- out.SetOutput(1, this);
- out.Write();
-}
-
-void
-SndObj::operator<<(SndIO& in){
- in.Read();
- for(int n=0;n<m_vecsize;n++) m_output[n]=in.Output(n,1);
-}
-
-
-char* SndObj::ErrorMessage(){
-
- char* message;
-
- switch(m_error){
-
- case 0:
- message = "No error\n";
- break;
-
- case 1:
- message = "Failed to allocate vector memory\n";
- break;
-
- case 3:
- message = "DoProcess() failed: no input object \n";
- break;
-
- default:
- message = "Undefined error\n";
- break;
-
- }
-
- return message;
-
-}
-
-const char* SndObj::CErrorMessage(){
-
- switch(m_error){
-
- case 0:
- return "No error\n";
- break;
-
- case 1:
- return "Failed to allocate vector memory\n";
- break;
-
- case 3:
- return "DoProcess() failed: no input object \n";
- break;
-
- default:
- return "Undefined error\n";
-
- }
-
-}