diff options
author | Chris Johnson <jinx6568@sover.net> | 2018-06-03 21:19:24 -0400 |
---|---|---|
committer | Chris Johnson <jinx6568@sover.net> | 2018-06-03 21:19:24 -0400 |
commit | 3a3c2dde62b7c28950898c469c376ad32ac63f39 (patch) | |
tree | ffb5f43117d42b7c65d33d01969d931ff5c8d527 /plugins/MacAU/Channel4/Channel4.h | |
parent | 4e96c7400c70a1e7bc67e2241727bcc74315c574 (diff) | |
download | airwindows-lv2-port-3a3c2dde62b7c28950898c469c376ad32ac63f39.tar.gz airwindows-lv2-port-3a3c2dde62b7c28950898c469c376ad32ac63f39.tar.bz2 airwindows-lv2-port-3a3c2dde62b7c28950898c469c376ad32ac63f39.zip |
Righteous4 && Channel4
Diffstat (limited to 'plugins/MacAU/Channel4/Channel4.h')
-rwxr-xr-x | plugins/MacAU/Channel4/Channel4.h | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/plugins/MacAU/Channel4/Channel4.h b/plugins/MacAU/Channel4/Channel4.h new file mode 100755 index 0000000..982c1cb --- /dev/null +++ b/plugins/MacAU/Channel4/Channel4.h @@ -0,0 +1,152 @@ +/* +* File: Channel4.h +* +* Version: 1.0 +* +* Created: 12/3/14 +* +* Copyright: Copyright © 2014 Airwindows, All Rights Reserved +* +* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in +* consideration of your agreement to the following terms, and your use, installation, modification +* or redistribution of this Apple software constitutes acceptance of these terms. If you do +* not agree with these terms, please do not use, install, modify or redistribute this Apple +* software. +* +* In consideration of your agreement to abide by the following terms, and subject to these terms, +* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this +* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the +* Apple Software, with or without modifications, in source and/or binary forms; provided that if you +* redistribute the Apple Software in its entirety and without modifications, you must retain this +* notice and the following text and disclaimers in all such redistributions of the Apple Software. +* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to +* endorse or promote products derived from the Apple Software without specific prior written +* permission from Apple. Except as expressly stated in this notice, no other rights or +* licenses, express or implied, are granted by Apple herein, including but not limited to any +* patent rights that may be infringed by your derivative works or by other works in which the +* Apple Software may be incorporated. +* +* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR +* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY +* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE +* OR IN COMBINATION WITH YOUR PRODUCTS. +* +* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL +* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, +* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER +* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN +* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ +#include "AUEffectBase.h" +#include "Channel4Version.h" + +#if AU_DEBUG_DISPATCHER +#include "AUDebugDispatcher.h" +#endif + + +#ifndef __Channel4_h__ +#define __Channel4_h__ + + +#pragma mark ____Channel4 Parameters + +// parameters +static CFStringRef kParameterOneName = CFSTR("Console Type"); +static const int kNeve = 1; +static const int kAPI = 2; +static const int kSSL = 3; +static const int kDefaultValue_ParamOne = kNeve; +//fourth value is pick-attack + +static CFStringRef kParameterTwoName = CFSTR("Drive"); +static const float kDefaultValue_ParamTwo = 0.0; + + +static CFStringRef kMenuItem_Neve = CFSTR ("Neve"); +static CFStringRef kMenuItem_API = CFSTR ("API"); +static CFStringRef kMenuItem_SSL = CFSTR ("SSL"); + + +enum { + kParam_One = 0, + kParam_Two = 1, + //Add your parameters here... + kNumberOfParameters=2 +}; + +#pragma mark ____Channel4 +class Channel4 : public AUEffectBase +{ +public: + Channel4(AudioUnit component); +#if AU_DEBUG_DISPATCHER + virtual ~Channel4 () { delete mDebugDispatcher; } +#endif + + virtual AUKernelBase * NewKernel() { return new Channel4Kernel(this); } + + virtual ComponentResult GetParameterValueStrings(AudioUnitScope inScope, + AudioUnitParameterID inParameterID, + CFArrayRef * outStrings); + + virtual ComponentResult GetParameterInfo(AudioUnitScope inScope, + AudioUnitParameterID inParameterID, + AudioUnitParameterInfo &outParameterInfo); + + virtual ComponentResult GetPropertyInfo(AudioUnitPropertyID inID, + AudioUnitScope inScope, + AudioUnitElement inElement, + UInt32 & outDataSize, + Boolean & outWritable ); + + virtual ComponentResult GetProperty(AudioUnitPropertyID inID, + AudioUnitScope inScope, + AudioUnitElement inElement, + void * outData); + + virtual ComponentResult Initialize(); + virtual bool SupportsTail() { return true; } + virtual Float64 GetTailTime() {return 0.0;} //in SECONDS! + virtual Float64 GetLatency() {return 0.0;} // in SECONDS! + + /*! @method Version */ + virtual ComponentResult Version() { return kChannel4Version; } + + + +protected: + class Channel4Kernel : public AUKernelBase // most of the real work happens here + { + public: + Channel4Kernel(AUEffectBase *inAudioUnit ) + : AUKernelBase(inAudioUnit) + { + } + + // *Required* overides for the process method for this effect + // processes one channel of interleaved samples + virtual void Process( const Float32 *inSourceP, + Float32 *inDestP, + UInt32 inFramesToProcess, + UInt32 inNumChannels, + bool &ioSilence); + + virtual void Reset(); + + private: + Float64 fpNShapeA; + Float64 fpNShapeB; + Float64 iirSampleA; + Float64 iirSampleB; + bool flip; + Float64 lastSample; + }; +}; + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +#endif
\ No newline at end of file |