24 #ifndef __GENERICPROCESSOR_H_1F469DAF__
25 #define __GENERICPROCESSOR_H_1F469DAF__
28 #include "../../JuceLibraryCode/JuceHeader.h"
29 #include "Editors/GenericEditor.h"
30 #include "Parameter.h"
31 #include "../AccessClass.h"
68 const String getName()
const {
return name;}
70 virtual void prepareToPlay (
double sampleRate,
int estimatedSamplesPerBlock);
71 void releaseResources();
73 virtual void setParameter (
int parameterIndex,
float newValue);
75 virtual AudioProcessorEditor* createEditor();
76 bool hasEditor()
const {
return true;}
79 void setCurrentProgramStateInformation(
const void* data,
int sizeInBytes) {}
80 void setStateInformation(
const void* data,
int sizeInBytes) {}
81 void getCurrentProgramStateInformation(MemoryBlock &destData) {}
82 void getStateInformation (MemoryBlock &destData) {}
83 void changeProgramName (
int index,
const String &newName) {}
84 void setCurrentProgram (
int index) {}
86 const String getInputChannelName (
int channelIndex)
const {
return settings.inputChannelNames[channelIndex];}
87 const String getOutputChannelName (
int channelIndex)
const {
return settings.outputChannelNames[channelIndex];}
88 const String getParameterName (
int parameterIndex);
89 const String getParameterText (
int parameterIndex);
90 const String getProgramName (
int index) {
return "";}
92 bool isInputChannelStereoPair (
int index)
const {
return true;}
93 bool isOutputChannelStereoPair (
int index)
const {
return true;}
94 bool acceptsMidi ()
const {
return true;}
95 bool producesMidi ()
const {
return true;}
97 bool isParameterAutomatable(
int parameterIndex) {
return false;}
98 bool isMetaParameter(
int parameterIndex) {
return false;}
100 int getNumParameters() {
return parameters.size();}
101 int getNumPrograms() {
return 0;}
102 int getCurrentProgram() {
return 0;}
104 float getParameter (
int parameterIndex) {
return 1.0;}
105 Parameter& getParameterByName(String parameterName);
106 Parameter& getParameterReference(
int parameterIndex);
112 virtual void process(AudioSampleBuffer& ,
119 virtual float getSampleRate() {
return settings.sampleRate;}
120 virtual float getDefaultSampleRate() {
return 44100.0;}
122 virtual int getNumInputs() {
return settings.numInputs;}
123 virtual int getNumOutputs() {
return settings.numOutputs;}
124 virtual int getDefaultNumOutputs() {
return 2;}
127 virtual float getDefaultBitVolts() {
return 1.0;}
129 virtual int getNextChannel(
bool);
130 virtual void resetConnections();
132 virtual void setCurrentChannel(
int chan) {currentChannel = chan;}
134 int getNodeId() {
return nodeId;}
135 void setNodeId(
int id) {nodeId = id;}
141 virtual void switchIO(
int) { }
142 virtual void switchIO() { }
150 virtual bool isSource() {
return false;}
151 virtual bool isSink() {
return false;}
152 virtual bool isSplitter() {
return false;}
153 virtual bool isMerger() {
return false;}
157 virtual bool isReady() {
return isEnabled;}
158 virtual bool enable() {
return isEnabled;}
159 virtual bool disable() {
return true;}
161 virtual bool enabledState() {
return isEnabled;}
162 virtual void enabledState(
bool t) {isEnabled = t;}
164 virtual void enableCurrentChannel(
bool) {}
166 virtual bool stillHasSource() {
return true;}
171 virtual AudioSampleBuffer* getContinuousBuffer() {
return 0;}
172 virtual MidiBuffer* getEventBuffer() {
return 0;}
174 int nextAvailableChannel;
177 virtual int checkForEvents(MidiBuffer& mb);
178 virtual void addEvent(MidiBuffer& mb,
182 uint8 eventChannel = 0,
186 virtual void handleEvent(
int eventType, MidiMessage& event) {}
192 PARAMETER_CHANGE = 2,
199 enum eventChannelTypes
202 SINGLE_ELECTRODE = 1,
213 ScopedPointer<GenericEditor> editor;
221 StringArray inputChannelNames;
222 StringArray outputChannelNames;
225 Array<float> bitVolts;
227 Array<int> eventChannelIds;
228 StringArray eventChannelNames;
229 Array<int> eventChannelTypes;
235 virtual bool isAudioOrRecordNode() {
return false;}
237 virtual bool recordStatus (
int chan);
238 virtual bool audioStatus (
int chan);
240 virtual void clearSettings();
242 virtual void generateDefaultChannelNames(StringArray&);
244 virtual void update();
245 virtual void updateSettings() {}
250 Array<Parameter> parameters;
251 StringArray parameterNames;
255 void setStartChannel(
int i) {audioAndRecordNodeStartChannel = i;}
256 int getStartChannel() {
return audioAndRecordNodeStartChannel;}
260 int audioAndRecordNodeStartChannel;
262 void processBlock (AudioSampleBuffer &buffer, MidiBuffer &midiMessages);
266 int getNumSamples(MidiBuffer&);
267 void setNumSamples(MidiBuffer&,
int);
276 #endif // __GENERICPROCESSOR_H_1F469DAF__