ASPiK SDK
plugincore.h
1 // -----------------------------------------------------------------------------
2 // ASPiK Plugin Kernel File: plugincore.h
3 //
12 // -----------------------------------------------------------------------------
13 #ifndef __pluginCore_h__
14 #define __pluginCore_h__
15 
16 #include "pluginbase.h"
17 
18 // **--0x7F1F--**
19 // --- Plugin Variables controlID Enumeration
20 
21 enum controlID {
22  volume_dB = 0,
23  enableMute = 1,
24  channels = 2,
25  vuMeter = 3
26 };
27 
28 
29 // **--0x0F1F--**
30 
51 class PluginCore : public PluginBase
52 {
53 public:
54  PluginCore();
55 
57  virtual ~PluginCore(){}
58 
59  // --- PluginBase Overrides ---
60  //
62  bool initPluginParameters();
63 
65  virtual bool reset(ResetInfo& resetInfo);
66 
68  virtual bool initialize(PluginInfo& _pluginInfo);
69 
70  // --- preProcess: sync GUI parameters here; override if you don't want to use automatic variable-binding
71  virtual bool preProcessAudioBuffers(ProcessBufferInfo& processInfo);
72 
74  virtual bool processAudioFrame(ProcessFrameInfo& processFrameInfo);
75 
76  // --- uncomment and override this for buffer processing; see base class implementation for
77  // help on breaking up buffers and getting info from processBufferInfo
78  //virtual bool processAudioBuffers(ProcessBufferInfo& processBufferInfo);
79 
81  virtual bool postProcessAudioBuffers(ProcessBufferInfo& processInfo);
82 
84  virtual bool updatePluginParameter(int32_t controlID, double controlValue, ParameterUpdateInfo& paramInfo);
85 
87  virtual bool updatePluginParameterNormalized(int32_t controlID, double normalizedValue, ParameterUpdateInfo& paramInfo);
88 
90  virtual bool postUpdatePluginParameter(int32_t controlID, double controlValue, ParameterUpdateInfo& paramInfo);
91 
93  virtual bool guiParameterChanged(int32_t controlID, double actualValue);
94 
96  virtual bool processMessage(MessageInfo& messageInfo);
97 
99  virtual bool processMIDIEvent(midiEvent& event);
100 
102  virtual bool setVectorJoystickParameters(const VectorJoystickData& vectorJoysickData);
103 
105  bool initPluginPresets();
106 
107  // --- BEGIN USER VARIABLES AND FUNCTIONS -------------------------------------- //
108  // Add your variables and methods here
109 
110 
111 
112  // --- END USER VARIABLES AND FUNCTIONS -------------------------------------- //
113 
114 private:
115  // **--0x07FD--**
116  // --- Continuous Plugin Variables
117  double volume_dB = 0.0;
118 
119  // --- Discrete Plugin Variables
120  int enableMute = 0;
121  enum class enableMuteEnum { SWITCH_OFF,SWITCH_ON }; // to compare: if(compareEnumToInt(enableMuteEnum::SWITCH_OFF, enableMute)) etc...
122 
123  int channels = 0;
124  enum class channelsEnum { stereo,left,right }; // to compare: if(compareEnumToInt(channelsEnum::stereo, channels)) etc...
125 
126  // --- Meter Plugin Variables
127  float vuMeter = 0.f;
128 
129  // **--0x1A7F--**
130  // --- end member variables
131 
132 public:
137  static const char* getPluginBundleName();
138 
143  static const char* getPluginName();
144 
149  static const char* getShortPluginName();
150 
155  static const char* getVendorName();
156 
161  static const char* getVendorURL();
162 
167  static const char* getVendorEmail();
168 
173  static const char* getAUCocoaViewFactoryName();
174 
179  static pluginType getPluginType();
180 
185  static const char* getVSTFUID();
186 
191  static int32_t getFourCharCode();
192 
194  bool initPluginDescriptors();
195 
196 };
197 
198 
199 
200 
201 #endif /* defined(__pluginCore_h__) */
Information that includes the message code as well as the message data.
Definition: pluginstructures.h:705
static const char * getShortPluginName()
Definition: plugincore.cpp:499
bool initPluginDescriptors()
setup the plugin description strings, flags and codes; this is ordinarily done through the ASPiKreato...
Definition: plugincore.cpp:460
static int32_t getFourCharCode()
Definition: plugincore.cpp:506
Information package that arrives with each new audio frame; called internally from the buffer process...
Definition: pluginstructures.h:1110
static const char * getAUCocoaViewFactoryName()
Definition: plugincore.cpp:503
bool initPluginPresets()
use this method to add new presets to the list
Definition: plugincore.cpp:446
virtual bool processMIDIEvent(midiEvent &event)
process a MIDI event
Definition: plugincore.cpp:415
virtual bool setVectorJoystickParameters(const VectorJoystickData &vectorJoysickData)
(for future use)
Definition: plugincore.cpp:431
virtual bool processAudioFrame(ProcessFrameInfo &processFrameInfo)
frame-processing method
Definition: plugincore.cpp:152
The PluginBase object is the base class for the Plugin Core object.
Definition: pluginbase.h:221
virtual bool processMessage(MessageInfo &messageInfo)
For Custom View and Custom Sub-Controller Operations.
Definition: plugincore.cpp:355
Information about a paraemeter being updated. Used when bound variables are updated. Multiple advanced uses.
Definition: pluginstructures.h:834
static const char * getPluginName()
Definition: plugincore.cpp:498
Sample rate and bit-depth information that is passed during the reset( ) function.
Definition: pluginstructures.h:180
virtual bool updatePluginParameterNormalized(int32_t controlID, double normalizedValue, ParameterUpdateInfo &paramInfo)
update the PluginParameter's value based on normlaized GUI control, preset, or data smoothing (thread...
Definition: plugincore.cpp:266
bool initPluginParameters()
create all of your plugin parameters here
Definition: plugincore.cpp:60
PluginCore()
PluginCore constructor is launching pad for object initialization.
Definition: plugincore.cpp:25
pluginType
Use this enum to identify the plugin category.
Definition: pluginstructures.h:61
Information package that arrives with each new audio buffer process cycle. Contains everything needed...
Definition: pluginstructures.h:1056
virtual bool updatePluginParameter(int32_t controlID, double controlValue, ParameterUpdateInfo &paramInfo)
update the PluginParameter's value based on GUI control, preset, or data smoothing (thread-safe) ...
Definition: plugincore.cpp:242
Incoming data from a vector joystick.
Definition: pluginstructures.h:276
virtual bool guiParameterChanged(int32_t controlID, double actualValue)
has nothing to do with actual variable or updated variable (binding)
Definition: plugincore.cpp:326
virtual ~PluginCore()
Definition: plugincore.h:57
virtual bool preProcessAudioBuffers(ProcessBufferInfo &processInfo)
do anything needed prior to arrival of audio buffers
Definition: plugincore.cpp:131
virtual bool initialize(PluginInfo &_pluginInfo)
one-time initialize function called after object creation and before the first reset( ) call ...
Definition: plugincore.cpp:110
virtual bool postUpdatePluginParameter(int32_t controlID, double controlValue, ParameterUpdateInfo &paramInfo)
perform any operations after the plugin parameter has been updated; this is one paradigm for transfer...
Definition: plugincore.cpp:290
static const char * getPluginBundleName()
Definition: plugincore.cpp:497
The PluginCore object is the default PluginBase derived object for ASPiK projects. Note that you are fre to change the name of this object (as long as you change it in the compiler settings, etc...)
Definition: plugincore.h:43
static const char * getVendorEmail()
Definition: plugincore.cpp:502
static pluginType getPluginType()
Definition: plugincore.cpp:504
virtual bool postProcessAudioBuffers(ProcessBufferInfo &processInfo)
do anything needed prior to arrival of audio buffers
Definition: plugincore.cpp:220
static const char * getVSTFUID()
Definition: plugincore.cpp:505
Structure that is used during the base class initilize( ) funciton call, after object instantiation i...
Definition: pluginstructures.h:753
static const char * getVendorURL()
Definition: plugincore.cpp:501
virtual bool reset(ResetInfo &resetInfo)
initialize object for a new run of audio; called just before audio streams
Definition: plugincore.cpp:94
static const char * getVendorName()
Definition: plugincore.cpp:500
Information about a MIDI event.
Definition: pluginstructures.h:561