00001 00002 /****************** <SYN heading BEGIN do not edit this line> ***************** 00003 * 00004 * subsynth - modular audio synthesizer 00005 * subsynth is (C) Copyright 2001-2002 by Kevin Meinert 00006 * 00007 * Original Author: Kevin Meinert 00008 * 00009 * This library is free software; you can redistribute it and/or 00010 * modify it under the terms of the GNU Library General Public 00011 * License as published by the Free Software Foundation; either 00012 * version 2 of the License, or (at your option) any later version. 00013 * 00014 * This library is distributed in the hope that it will be useful, 00015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00017 * Library General Public License for more details. 00018 * 00019 * You should have received a copy of the GNU Library General Public 00020 * License along with this library; if not, write to the 00021 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00022 * Boston, MA 02111-1307, USA. 00023 * 00024 * ----------------------------------------------------------------- 00025 * File: $RCSfile: AdsrIStream.h,v $ 00026 * Date modified: $Date: 2002/04/15 07:17:38 $ 00027 * Version: $Revision: 1.13 $ 00028 * ----------------------------------------------------------------- 00029 * 00030 ****************** <SYN heading END do not edit this line> ******************/ 00031 #ifndef ATTACK_DECAY_SUSTAIN_RELEASE_ISTREAM 00032 #define ATTACK_DECAY_SUSTAIN_RELEASE_ISTREAM 00033 00034 00035 #include <vector> 00036 #include "syn/Util/Generator.h" 00037 #include "syn/Stream/OscIStream.h" 00038 00039 namespace syn 00040 { 00046 class AdsrIStream : public OscIStream<AdsrEnvOsc> 00047 { 00048 public: 00049 AdsrIStream() : OscIStream<AdsrEnvOsc>() 00050 { 00051 } 00052 virtual ~AdsrIStream(){} 00053 00060 void setAttackTime( float time ) 00061 { 00062 mOsc.setAttackTime( time ); 00063 } 00064 00071 void setDecayTime( float time ) 00072 { 00073 mOsc.setDecayTime( time ); 00074 } 00075 00082 void setSustainLevel( float level ) 00083 { 00084 mOsc.setSustainLevel( level ); 00085 } 00086 00093 void setReleaseTime( float time ) 00094 { 00095 mOsc.setReleaseTime( time ); 00096 } 00097 00098 void trigger() 00099 { 00100 mOsc.trigger(); 00101 } 00102 00103 void release() 00104 { 00105 mOsc.release(); 00106 } 00107 }; 00108 } 00109 00110 #endif