diff options
Diffstat (limited to 'test/plugin/PluginMock.c')
| -rw-r--r-- | test/plugin/PluginMock.c | 95 |
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; +} |
