@@ -17,6 +17,7 @@ endif | |||||
plugins: libs | plugins: libs | ||||
$(MAKE) all -C plugins/AmplitudeImposer | $(MAKE) all -C plugins/AmplitudeImposer | ||||
$(MAKE) all -C plugins/CycleShifter | |||||
$(MAKE) all -C plugins/SoulForce | $(MAKE) all -C plugins/SoulForce | ||||
gen: plugins dpf/utils/lv2_ttl_generator | gen: plugins dpf/utils/lv2_ttl_generator | ||||
@@ -36,6 +37,7 @@ ifeq ($(HAVE_DGL),true) | |||||
endif | endif | ||||
$(MAKE) clean -C dpf/utils/lv2-ttl-generator | $(MAKE) clean -C dpf/utils/lv2-ttl-generator | ||||
$(MAKE) clean -C plugins/AmplitudeImposer | $(MAKE) clean -C plugins/AmplitudeImposer | ||||
$(MAKE) clean -C plugins/CycleShifter | |||||
$(MAKE) clean -C plugins/SoulForce | $(MAKE) clean -C plugins/SoulForce | ||||
# -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
@@ -11,5 +11,8 @@ This collection currently includes:<br/> | |||||
Amplitude Imposer:<br/> | Amplitude Imposer:<br/> | ||||
<br/> | <br/> | ||||
CycleShifter<br/> | |||||
<br/> | |||||
Soul Force:<br/> | Soul Force:<br/> | ||||
<br/> | <br/> |
@@ -0,0 +1,20 @@ | |||||
/* (Auto-generated binary data file). */ | |||||
#ifndef BINARY_DISTRHOARTWORKCYCLESHIFTER_HPP | |||||
#define BINARY_DISTRHOARTWORKCYCLESHIFTER_HPP | |||||
namespace DistrhoArtworkCycleShifter | |||||
{ | |||||
extern const char* backData; | |||||
const unsigned int backDataSize = 57352; | |||||
const unsigned int backWidth = 268; | |||||
const unsigned int backHeight = 107; | |||||
extern const char* sliderData; | |||||
const unsigned int sliderDataSize = 392; | |||||
const unsigned int sliderWidth = 14; | |||||
const unsigned int sliderHeight = 14; | |||||
} | |||||
#endif // BINARY_DISTRHOARTWORKCYCLESHIFTER_HPP | |||||
@@ -0,0 +1,197 @@ | |||||
/* | |||||
* DISTRHO CycleShifter, a DPF'ied CycleShifter. | |||||
* Copyright (C) 2004 Niall Moody | |||||
* Copyright (C) 2015 Filipe Coelho <falktx@falktx.com> | |||||
* | |||||
* Permission is hereby granted, free of charge, to any person obtaining a | |||||
* copy of this software and associated documentation files (the "Software"), | |||||
* to deal in the Software without restriction, including without limitation | |||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense, | |||||
* and/or sell copies of the Software, and to permit persons to whom the | |||||
* Software is furnished to do so, subject to the following conditions: | |||||
* | |||||
* The above copyright notice and this permission notice shall be included in | |||||
* all copies or substantial portions of the Software. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | |||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | |||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | |||||
* DEALINGS IN THE SOFTWARE. | |||||
*/ | |||||
#include "DistrhoPluginCycleShifter.hpp" | |||||
START_NAMESPACE_DISTRHO | |||||
// ----------------------------------------------------------------------- | |||||
DistrhoPluginCycleShifter::DistrhoPluginCycleShifter() | |||||
: Plugin(kParameterCount, 1, 0), // 1 program, 0 states | |||||
fNewCycleVolume(1.0f), | |||||
fInputVolume(1.0f), | |||||
OutIndex(0), | |||||
InCount(0), | |||||
ReadWrite(false), | |||||
EnvOld(0.0f) | |||||
{ | |||||
std::memset(CycleBuffer, 0, sizeof(float)*BUFFER_SIZE); | |||||
} | |||||
// ----------------------------------------------------------------------- | |||||
// Init | |||||
void DistrhoPluginCycleShifter::d_initParameter(uint32_t index, Parameter& parameter) | |||||
{ | |||||
parameter.hints = kParameterIsAutomable; | |||||
parameter.ranges.min = 0.0f; | |||||
parameter.ranges.max = 1.0f; | |||||
switch (index) | |||||
{ | |||||
case kParameterNewCycleVolume: | |||||
parameter.name = "New Cycle Vol"; | |||||
parameter.symbol = "ncvolume"; | |||||
parameter.ranges.def = 1.0f; | |||||
break; | |||||
case kParameterInputVolume: | |||||
parameter.name = "Input Vol"; | |||||
parameter.symbol = "ipvolume"; | |||||
parameter.ranges.def = 1.0f; | |||||
break; | |||||
} | |||||
} | |||||
void DistrhoPluginCycleShifter::d_initProgramName(uint32_t index, d_string& programName) | |||||
{ | |||||
switch(index) | |||||
{ | |||||
case 0: | |||||
programName = "Default"; | |||||
break; | |||||
} | |||||
} | |||||
// ----------------------------------------------------------------------- | |||||
// Internal data | |||||
float DistrhoPluginCycleShifter::d_getParameterValue(uint32_t index) const | |||||
{ | |||||
switch(index) | |||||
{ | |||||
case kParameterNewCycleVolume: | |||||
return fNewCycleVolume; | |||||
case kParameterInputVolume: | |||||
return fInputVolume; | |||||
default: | |||||
return 0.0f; | |||||
} | |||||
} | |||||
void DistrhoPluginCycleShifter::d_setParameterValue(uint32_t index, float value) | |||||
{ | |||||
switch(index) | |||||
{ | |||||
case kParameterNewCycleVolume: | |||||
fNewCycleVolume = value; | |||||
break; | |||||
case kParameterInputVolume: | |||||
fInputVolume = value; | |||||
break; | |||||
} | |||||
} | |||||
void DistrhoPluginCycleShifter::d_setProgram(uint32_t index) | |||||
{ | |||||
switch(index) | |||||
{ | |||||
case 0: | |||||
fNewCycleVolume = 1.0f; | |||||
fInputVolume = 1.0f; | |||||
break; | |||||
} | |||||
} | |||||
// ----------------------------------------------------------------------- | |||||
// Process | |||||
void DistrhoPluginCycleShifter::d_activate() | |||||
{ | |||||
std::memset(CycleBuffer, 0, sizeof(float)*BUFFER_SIZE); | |||||
OutIndex = 0; | |||||
InCount = 0; | |||||
ReadWrite = false; | |||||
EnvOld = 0.0f; | |||||
} | |||||
void DistrhoPluginCycleShifter::d_run(const float** inputs, float** outputs, uint32_t frames) | |||||
{ | |||||
const float* in = inputs[0]; | |||||
/**/ float* out = outputs[0]; | |||||
for (uint32_t i=0; i<frames; ++i) | |||||
*out++ = DoProcess(*in++); | |||||
} | |||||
// ----------------------------------------------------------------------- | |||||
// Borrowed this from Toby Bear's Delphi template - it maybe adds a bit to cpu | |||||
// usage, but it makes things simpler... | |||||
// ----------------------------------------------------------------------- | |||||
float DistrhoPluginCycleShifter::DoProcess(float a) | |||||
{ | |||||
const float tempval = a; | |||||
if (! ReadWrite) // if we're in read mode | |||||
{ | |||||
if (InCount == 0) // if we're waiting for the start of a new cycle to read | |||||
{ | |||||
if (EnvOld < 0.0f && tempval >= 0.0f) // as soon as the input goes past 0 we start reading | |||||
{ | |||||
CycleBuffer[InCount++] = tempval; | |||||
} | |||||
} | |||||
else if (! (EnvOld < 0.0f && tempval >= 0.0f)) // if we've not reached the end of the cycle yet | |||||
{ | |||||
CycleBuffer[InCount] = tempval; | |||||
if (++InCount >= BUFFER_SIZE) // if we've reached the end of the buffer | |||||
{ | |||||
InCount = BUFFER_SIZE; | |||||
ReadWrite = true; // we're in write mode now | |||||
} | |||||
} | |||||
else // we've reached the end of the cycle | |||||
{ | |||||
CycleBuffer[InCount++] = 0.0f; | |||||
ReadWrite = true; | |||||
} | |||||
a *= fInputVolume; | |||||
} | |||||
else // we're in write mode | |||||
{ | |||||
a = (a*fInputVolume) + (CycleBuffer[OutIndex]*fNewCycleVolume); | |||||
if (++OutIndex == InCount) // we've reached the end of our stored cycle | |||||
{ | |||||
InCount = 0; | |||||
OutIndex = 0; | |||||
ReadWrite = false; | |||||
} | |||||
} | |||||
EnvOld = tempval; | |||||
return a; | |||||
} | |||||
// ----------------------------------------------------------------------- | |||||
Plugin* createPlugin() | |||||
{ | |||||
return new DistrhoPluginCycleShifter(); | |||||
} | |||||
// ----------------------------------------------------------------------- | |||||
END_NAMESPACE_DISTRHO |
@@ -0,0 +1,116 @@ | |||||
/* | |||||
* DISTRHO CycleShifter, a DPF'ied CycleShifter. | |||||
* Copyright (C) 2004 Niall Moody | |||||
* Copyright (C) 2015 Filipe Coelho <falktx@falktx.com> | |||||
* | |||||
* Permission is hereby granted, free of charge, to any person obtaining a | |||||
* copy of this software and associated documentation files (the "Software"), | |||||
* to deal in the Software without restriction, including without limitation | |||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense, | |||||
* and/or sell copies of the Software, and to permit persons to whom the | |||||
* Software is furnished to do so, subject to the following conditions: | |||||
* | |||||
* The above copyright notice and this permission notice shall be included in | |||||
* all copies or substantial portions of the Software. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | |||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | |||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | |||||
* DEALINGS IN THE SOFTWARE. | |||||
*/ | |||||
#ifndef DISTRHO_PLUGIN_CYCLE_SHIFTER_HPP_INCLUDED | |||||
#define DISTRHO_PLUGIN_CYCLE_SHIFTER_HPP_INCLUDED | |||||
#include "DistrhoPlugin.hpp" | |||||
#define BUFFER_SIZE 11025 | |||||
START_NAMESPACE_DISTRHO | |||||
// ----------------------------------------------------------------------- | |||||
class DistrhoPluginCycleShifter : public Plugin | |||||
{ | |||||
public: | |||||
enum Parameters { | |||||
kParameterNewCycleVolume, | |||||
kParameterInputVolume, | |||||
kParameterCount | |||||
}; | |||||
DistrhoPluginCycleShifter(); | |||||
protected: | |||||
// ------------------------------------------------------------------- | |||||
// Information | |||||
const char* d_getLabel() const noexcept override | |||||
{ | |||||
return "CycleShifter"; | |||||
} | |||||
const char* d_getMaker() const noexcept override | |||||
{ | |||||
return "ndc Plugs"; | |||||
} | |||||
const char* d_getLicense() const noexcept override | |||||
{ | |||||
return "MIT"; | |||||
} | |||||
uint32_t d_getVersion() const noexcept override | |||||
{ | |||||
return 0x1000; | |||||
} | |||||
int64_t d_getUniqueId() const noexcept override | |||||
{ | |||||
return d_cconst('C', 'S', 'f', 't'); | |||||
} | |||||
// ------------------------------------------------------------------- | |||||
// Init | |||||
void d_initParameter(uint32_t index, Parameter& parameter) override; | |||||
void d_initProgramName(uint32_t index, d_string& programName) override; | |||||
// ------------------------------------------------------------------- | |||||
// Internal data | |||||
float d_getParameterValue(uint32_t index) const override; | |||||
void d_setParameterValue(uint32_t index, float value) override; | |||||
void d_setProgram(uint32_t index) override; | |||||
// ------------------------------------------------------------------- | |||||
// Process | |||||
void d_activate() override; | |||||
void d_run(const float** inputs, float** outputs, uint32_t frames) override; | |||||
// ------------------------------------------------------------------- | |||||
private: | |||||
float fNewCycleVolume; | |||||
float fInputVolume; | |||||
float CycleBuffer[BUFFER_SIZE]; // buffer to store the cycle in | |||||
int OutIndex; // index for playing the buffer | |||||
int InCount; // counts how many samples we've recorded | |||||
bool ReadWrite; // 0=read, 1=write | |||||
float EnvOld; // last (input) sample - used to determine zero-crossings | |||||
float DoProcess(float a); | |||||
DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(DistrhoPluginCycleShifter) | |||||
}; | |||||
// ----------------------------------------------------------------------- | |||||
END_NAMESPACE_DISTRHO | |||||
#endif // DISTRHO_PLUGIN_CYCLE_SHIFTER_HPP_INCLUDED |
@@ -0,0 +1,37 @@ | |||||
/* | |||||
* DISTRHO CycleShifter, a DPF'ied CycleShifter. | |||||
* Copyright (C) 2004 Niall Moody | |||||
* Copyright (C) 2015 Filipe Coelho <falktx@falktx.com> | |||||
* | |||||
* Permission is hereby granted, free of charge, to any person obtaining a | |||||
* copy of this software and associated documentation files (the "Software"), | |||||
* to deal in the Software without restriction, including without limitation | |||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense, | |||||
* and/or sell copies of the Software, and to permit persons to whom the | |||||
* Software is furnished to do so, subject to the following conditions: | |||||
* | |||||
* The above copyright notice and this permission notice shall be included in | |||||
* all copies or substantial portions of the Software. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | |||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | |||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | |||||
* DEALINGS IN THE SOFTWARE. | |||||
*/ | |||||
#ifndef DISTRHO_PLUGIN_INFO_H_INCLUDED | |||||
#define DISTRHO_PLUGIN_INFO_H_INCLUDED | |||||
#define DISTRHO_PLUGIN_NAME "Cycle Shifter" | |||||
#define DISTRHO_PLUGIN_URI "http://www.niallmoody.com/ndcplugs/cycleshifter.htm" | |||||
#define DISTRHO_PLUGIN_HAS_UI 1 | |||||
#define DISTRHO_PLUGIN_IS_RT_SAFE 1 | |||||
#define DISTRHO_PLUGIN_NUM_INPUTS 1 | |||||
#define DISTRHO_PLUGIN_NUM_OUTPUTS 1 | |||||
#define DISTRHO_PLUGIN_WANT_PROGRAMS 1 | |||||
#endif // DISTRHO_PLUGIN_INFO_H_INCLUDED |
@@ -0,0 +1,118 @@ | |||||
/* | |||||
* DISTRHO CycleShifter, a DPF'ied CycleShifter. | |||||
* Copyright (C) 2004 Niall Moody | |||||
* Copyright (C) 2015 Filipe Coelho <falktx@falktx.com> | |||||
* | |||||
* Permission is hereby granted, free of charge, to any person obtaining a | |||||
* copy of this software and associated documentation files (the "Software"), | |||||
* to deal in the Software without restriction, including without limitation | |||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense, | |||||
* and/or sell copies of the Software, and to permit persons to whom the | |||||
* Software is furnished to do so, subject to the following conditions: | |||||
* | |||||
* The above copyright notice and this permission notice shall be included in | |||||
* all copies or substantial portions of the Software. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | |||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | |||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | |||||
* DEALINGS IN THE SOFTWARE. | |||||
*/ | |||||
#include "DistrhoUICycleShifter.hpp" | |||||
#include "DistrhoPluginCycleShifter.hpp" | |||||
START_NAMESPACE_DISTRHO | |||||
namespace Art = DistrhoArtworkCycleShifter; | |||||
// ----------------------------------------------------------------------- | |||||
DistrhoUICycleShifter::DistrhoUICycleShifter() | |||||
: UI(Art::backWidth, Art::backHeight), | |||||
fImgBackground(Art::backData, Art::backWidth, Art::backHeight, GL_LUMINANCE) | |||||
{ | |||||
// sliders | |||||
Image sliderImage(Art::sliderData, Art::sliderWidth, Art::sliderHeight, GL_LUMINANCE); | |||||
fSliderNewCycleVol = new ImageSlider(this, sliderImage); | |||||
fSliderNewCycleVol->setId(DistrhoPluginCycleShifter::kParameterNewCycleVolume); | |||||
fSliderNewCycleVol->setStartPos(6, 49); | |||||
fSliderNewCycleVol->setEndPos(247, 49); | |||||
fSliderNewCycleVol->setRange(0.0f, 1.0f); | |||||
fSliderNewCycleVol->setCallback(this); | |||||
fSliderInputVol = new ImageSlider(this, sliderImage); | |||||
fSliderInputVol->setId(DistrhoPluginCycleShifter::kParameterInputVolume); | |||||
fSliderInputVol->setStartPos(6, 80); | |||||
fSliderInputVol->setEndPos(247, 80); | |||||
fSliderInputVol->setRange(0.0f, 1.0f); | |||||
fSliderInputVol->setCallback(this); | |||||
// set initial values | |||||
d_programChanged(0); | |||||
} | |||||
// ----------------------------------------------------------------------- | |||||
// DSP Callbacks | |||||
void DistrhoUICycleShifter::d_parameterChanged(uint32_t index, float value) | |||||
{ | |||||
switch (index) | |||||
{ | |||||
case DistrhoPluginCycleShifter::kParameterNewCycleVolume: | |||||
fSliderNewCycleVol->setValue(value); | |||||
break; | |||||
case DistrhoPluginCycleShifter::kParameterInputVolume: | |||||
fSliderInputVol->setValue(value); | |||||
break; | |||||
} | |||||
} | |||||
void DistrhoUICycleShifter::d_programChanged(uint32_t index) | |||||
{ | |||||
switch(index) | |||||
{ | |||||
case 0: | |||||
fSliderNewCycleVol->setValue(1.0f); | |||||
fSliderInputVol->setValue(1.0f); | |||||
break; | |||||
} | |||||
} | |||||
// ----------------------------------------------------------------------- | |||||
// Widget Callbacks | |||||
void DistrhoUICycleShifter::imageSliderDragStarted(ImageSlider* slider) | |||||
{ | |||||
d_editParameter(slider->getId(), true); | |||||
} | |||||
void DistrhoUICycleShifter::imageSliderDragFinished(ImageSlider* slider) | |||||
{ | |||||
d_editParameter(slider->getId(), false); | |||||
} | |||||
void DistrhoUICycleShifter::imageSliderValueChanged(ImageSlider* slider, float value) | |||||
{ | |||||
d_setParameterValue(slider->getId(), value); | |||||
} | |||||
void DistrhoUICycleShifter::onDisplay() | |||||
{ | |||||
fImgBackground.draw(); | |||||
} | |||||
// ----------------------------------------------------------------------- | |||||
UI* createUI() | |||||
{ | |||||
return new DistrhoUICycleShifter(); | |||||
} | |||||
// ----------------------------------------------------------------------- | |||||
END_NAMESPACE_DISTRHO |
@@ -0,0 +1,74 @@ | |||||
/* | |||||
* DISTRHO CycleShifter, a DPF'ied CycleShifter. | |||||
* Copyright (C) 2004 Niall Moody | |||||
* Copyright (C) 2015 Filipe Coelho <falktx@falktx.com> | |||||
* | |||||
* Permission is hereby granted, free of charge, to any person obtaining a | |||||
* copy of this software and associated documentation files (the "Software"), | |||||
* to deal in the Software without restriction, including without limitation | |||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense, | |||||
* and/or sell copies of the Software, and to permit persons to whom the | |||||
* Software is furnished to do so, subject to the following conditions: | |||||
* | |||||
* The above copyright notice and this permission notice shall be included in | |||||
* all copies or substantial portions of the Software. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | |||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | |||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | |||||
* DEALINGS IN THE SOFTWARE. | |||||
*/ | |||||
#ifndef DISTRHO_UI_CYCLE_SHIFTER_HPP_INCLUDED | |||||
#define DISTRHO_UI_CYCLE_SHIFTER_HPP_INCLUDED | |||||
#include "DistrhoUI.hpp" | |||||
#include "ImageSlider.hpp" | |||||
#include "DistrhoArtworkCycleShifter.hpp" | |||||
using DGL::Image; | |||||
using DGL::ImageSlider; | |||||
START_NAMESPACE_DISTRHO | |||||
// ----------------------------------------------------------------------- | |||||
class DistrhoUICycleShifter : public UI, | |||||
public ImageSlider::Callback | |||||
{ | |||||
public: | |||||
DistrhoUICycleShifter(); | |||||
protected: | |||||
// ------------------------------------------------------------------- | |||||
// DSP Callbacks | |||||
void d_parameterChanged(uint32_t index, float value) override; | |||||
void d_programChanged(uint32_t index) override; | |||||
// ------------------------------------------------------------------- | |||||
// Widget Callbacks | |||||
void imageSliderDragStarted(ImageSlider* slider) override; | |||||
void imageSliderDragFinished(ImageSlider* slider) override; | |||||
void imageSliderValueChanged(ImageSlider* slider, float value) override; | |||||
void onDisplay() override; | |||||
private: | |||||
Image fImgBackground; | |||||
ScopedPointer<ImageSlider> fSliderNewCycleVol, fSliderInputVol; | |||||
DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(DistrhoUICycleShifter) | |||||
}; | |||||
// ----------------------------------------------------------------------- | |||||
END_NAMESPACE_DISTRHO | |||||
#endif // DISTRHO_UI_CYCLE_SHIFTER_HPP_INCLUDED |
@@ -0,0 +1,53 @@ | |||||
#!/usr/bin/make -f | |||||
# Makefile for DISTRHO Plugins # | |||||
# ---------------------------- # | |||||
# Created by falkTX | |||||
# | |||||
# -------------------------------------------------------------- | |||||
# Project name, used for binaries | |||||
NAME = CycleShifter | |||||
# -------------------------------------------------------------- | |||||
# Files to build | |||||
OBJS_DSP = \ | |||||
DistrhoPluginCycleShifter.cpp.o | |||||
OBJS_UI = \ | |||||
DistrhoArtworkCycleShifter.cpp.o \ | |||||
DistrhoUICycleShifter.cpp.o | |||||
# -------------------------------------------------------------- | |||||
# Do some magic | |||||
include ../Makefile.mk | |||||
# -------------------------------------------------------------- | |||||
# Enable all possible plugin types | |||||
ifeq ($(HAVE_JACK),true) | |||||
TARGETS += jack | |||||
endif | |||||
ifeq ($(LINUX),true) | |||||
TARGETS += ladspa | |||||
ifeq ($(HAVE_DGL),true) | |||||
ifeq ($(HAVE_LIBLO),true) | |||||
TARGETS += dssi | |||||
endif | |||||
endif | |||||
endif | |||||
ifeq ($(HAVE_DGL),true) | |||||
TARGETS += lv2_sep | |||||
else | |||||
TARGETS += lv2_dsp | |||||
endif | |||||
TARGETS += vst | |||||
all: $(TARGETS) | |||||
# -------------------------------------------------------------- |