pl-nk v0.4.5
Plonk|Plink|Plank are a set of cross-platform C/C++ frameworks for audio software development
plonk_IOKey.h
00001 /*
00002  -------------------------------------------------------------------------------
00003  This file is part of the Plink, Plonk, Plank libraries
00004   by Martin Robinson
00005  
00006  http://code.google.com/p/pl-nk/
00007  
00008  Copyright University of the West of England, Bristol 2011-14
00009  All rights reserved.
00010  
00011  Redistribution and use in source and binary forms, with or without
00012  modification, are permitted provided that the following conditions are met:
00013  
00014  * Redistributions of source code must retain the above copyright
00015    notice, this list of conditions and the following disclaimer.
00016  * Redistributions in binary form must reproduce the above copyright
00017    notice, this list of conditions and the following disclaimer in the
00018    documentation and/or other materials provided with the distribution.
00019  * Neither the name of University of the West of England, Bristol nor 
00020    the names of its contributors may be used to endorse or promote products
00021    derived from this software without specific prior written permission.
00022  
00023  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
00024  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
00025  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
00026  DISCLAIMED. IN NO EVENT SHALL UNIVERSITY OF THE WEST OF ENGLAND, BRISTOL BE 
00027  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
00028  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 
00029  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
00030  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
00031  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 
00032  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
00033  
00034  This software makes use of third party libraries. For more information see:
00035  doc/license.txt included in the distribution.
00036  -------------------------------------------------------------------------------
00037  */
00038 
00039 #ifndef PLONK_IOKEY_H
00040 #define PLONK_IOKEY_H
00041 
00042 #include "plonk_InfoHeaders.h"
00043 
00044 
00045 
00046 class IOKey
00047 {
00048 public:
00049     enum IOType
00050     {
00051         TypeUnknown = 0,
00052         TypeNumerical,
00053         TypeVariable,
00054         TypeAtomicVariable,
00055         TypeUnit,
00056         TypeUnits,
00057         TypeBus,
00058         TypeBusses,
00059         TypeBuffer,
00060         TypeWavetable,
00061         TypeSignal,
00062         TypeBreakpoints,
00063         TypeUnitVariable,
00064         TypeUnitsVariable,
00065         TypeBusVariable,
00066         TypeBussesVariable,
00067         TypeBufferVariable,
00068         TypeWavetableVariable,
00069         TypeSignalVariable,
00070         TypeBreakpointsVariable,
00071         TypeAudioFileReader,
00072         TypeUnitQueue,
00073         TypeBlockSize,
00074         TypeSampleRate,
00075 //        TypeBlockSizes,
00076 //        TypeSampleRates,
00077         TypeBool,
00078         
00079         NumIOTypes
00080     };
00081     
00082     
00083     enum Name
00084     {
00085         End = -2,       
00086         Invalid = -1,   
00087         Unknown = 0,
00088         Constant,       
00089         Variable,       
00090         AtomicVariable, 
00091         Multiply,       
00092         Add,            
00093         Generic,        
00094         Control,        
00095         LeftOperand,    
00096         RightOperand,   
00097         Position,       
00098         Frequency,      
00099         Rate,           
00100         Q,              
00101         S,              
00102         Gain,           
00103         Bandwidth,      
00104         Time,           
00105         Duration,       
00106         Decay,          
00107         Feedback,       
00108         Feedforward,    
00109         Coeffs,         
00110         FFTPacked,      
00111         FFTUnacked,     
00112         Real,           
00113         Imaginary,      
00114         Gate,           
00115         Loop,           
00116         Minimum,        
00117         Maximum,        
00118         
00119         BlockSize,          
00120         SampleRate,         
00121         FilterSampleRate,   
00122         OverlapMake,
00123         OverlapMix,
00124         LoopCount,
00125         
00126         Units,          
00127         Bus,            
00128         Busses,         
00129         Buffer,         
00130         Wavetable,      
00131         Signal,         
00132         Breakpoints,    
00133         
00134         UnitVariable,           
00135         UnitsVariable,          
00136         BusVariable,            
00137         BussesVariable,         
00138         BufferVariable,         
00139         WavetableVariable,      
00140         SignalVariable,         
00141         BreakpointsVariable,    
00142         
00143         AudioFileReader,        
00144         UnitQueue,              
00145 
00146         AutoDeleteFlag, 
00147         PurgeExpiredUnitsFlag,
00148         HarmonicCount,
00149         BufferCount,
00150         Priority,
00151         MaximumDuration,
00152         PreferredNumChannels,
00153 
00154         NumNames
00155     };
00156 
00157     static IOKey::Name fromInt (const int value) throw();
00158 
00159     static Text getName (const int keyIndex) throw();
00160     static IOKey::IOType getType (const int keyIndex) throw();
00161     static Text getTypeName (const int keyIndex) throw();
00162     
00163     static TextArray collectNames (IntArray const& keys) throw();
00164     static IntArray collectTypes (IntArray const& keys) throw();
00165     static TextArray collectTypeNames (IntArray const& keys) throw();
00166         
00167 private:
00168 };
00169 
00170 
00171 
00172 #endif // PLONK_IOKEY_H
 All Classes Functions Typedefs Enumerations Enumerator Properties