summaryrefslogtreecommitdiff
path: root/test/plugin/PluginMock.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/plugin/PluginMock.c')
-rw-r--r--test/plugin/PluginMock.c95
1 files changed, 95 insertions, 0 deletions
diff --git a/test/plugin/PluginMock.c b/test/plugin/PluginMock.c
new file mode 100644
index 0000000..249a722
--- /dev/null
+++ b/test/plugin/PluginMock.c
@@ -0,0 +1,95 @@
+#include "PluginMock.h"
+
+
+static void _pluginMockEmpty(void *pluginPtr)
+{
+ // Nothing to do here
+}
+
+static boolByte _pluginMockOpen(void *pluginPtr)
+{
+ Plugin self = (Plugin)pluginPtr;
+ PluginMockData extraData = (PluginMockData)self->extraData;
+ extraData->isOpen = true;
+ return true;
+}
+
+static int _pluginMockGetSetting(void *pluginPtr, PluginSetting pluginSetting)
+{
+ switch (pluginSetting) {
+ case PLUGIN_SETTING_TAIL_TIME_IN_MS:
+ return kPluginMockTailTime;
+
+ case PLUGIN_NUM_INPUTS:
+ return 2;
+
+ case PLUGIN_NUM_OUTPUTS:
+ return 2;
+
+ case PLUGIN_INITIAL_DELAY:
+ return 0;
+
+ default:
+ return 0;
+ }
+}
+
+static void _pluginMockPrepareForProcessing(void *pluginPtr)
+{
+ Plugin self = (Plugin)pluginPtr;
+ PluginMockData extraData = (PluginMockData)self->extraData;
+ extraData->isPrepared = true;
+}
+
+static void _pluginMockProcessAudio(void *pluginPtr, SampleBuffer inputs, SampleBuffer outputs)
+{
+ Plugin self = (Plugin)pluginPtr;
+ PluginMockData extraData = (PluginMockData)self->extraData;
+ extraData->processAudioCalled = true;
+ sampleBufferClear(outputs);
+}
+
+static void _pluginMockProcessMidiEvents(void *pluginPtr, LinkedList midiEvents)
+{
+ Plugin self = (Plugin)pluginPtr;
+ PluginMockData extraData = (PluginMockData)self->extraData;
+ extraData->processMidiCalled = true;
+}
+
+static boolByte _pluginMockSetParameter(void *pluginPtr, unsigned int i, float value)
+{
+ return false;
+}
+
+static void _pluginMockClose(void *pluginPtr)
+{
+ Plugin self = (Plugin)pluginPtr;
+ PluginMockData extraData = (PluginMockData)self->extraData;
+ extraData->isOpen = false;
+}
+
+Plugin newPluginMock(void)
+{
+ Plugin plugin = _newPlugin(PLUGIN_TYPE_INTERNAL, PLUGIN_TYPE_INSTRUMENT);
+ charStringCopyCString(plugin->pluginName, "Mock");
+ charStringCopyCString(plugin->pluginLocation, "Internal");
+
+ plugin->openPlugin = _pluginMockOpen;
+ plugin->displayInfo = _pluginMockEmpty;
+ plugin->getSetting = _pluginMockGetSetting;
+ plugin->prepareForProcessing = _pluginMockPrepareForProcessing;
+ plugin->processAudio = _pluginMockProcessAudio;
+ plugin->processMidiEvents = _pluginMockProcessMidiEvents;
+ plugin->setParameter = _pluginMockSetParameter;
+ plugin->closePlugin = _pluginMockClose;
+ plugin->freePluginData = _pluginMockEmpty;
+
+ PluginMockData extraData = (PluginMockData)malloc(sizeof(PluginMockDataMembers));
+ extraData->isOpen = false;
+ extraData->isPrepared = false;
+ extraData->processAudioCalled = false;
+ extraData->processMidiCalled = false;
+ plugin->extraData = extraData;
+
+ return plugin;
+}