commit 290df2b2fb0cb99e18ba70b977b0ff7d71805594
parent 87e9b0f8441229815c1cc8b0eb518ae760f9bf47
Author: falkTX <falktx@falktx.com>
Date: Sun, 30 Oct 2022 15:58:46 +0000
Reorganize TODO items
Signed-off-by: falkTX <falktx@falktx.com>
Diffstat:
2 files changed, 36 insertions(+), 28 deletions(-)
diff --git a/distrho/src/DistrhoPluginCLAP.cpp b/distrho/src/DistrhoPluginCLAP.cpp
@@ -14,6 +14,14 @@
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
+/* TODO items:
+ * CV: write a specification
+ * INFO: define url, manual url, support url and string version
+ * PARAMETERS: test parameter triggers
+ * States: skip DSP/UI only states as appropriate
+ * UI: expose external-only UIs
+ */
+
#include "DistrhoPluginInternal.hpp"
#include "extra/ScopedPointer.hpp"
@@ -1070,8 +1078,7 @@ public:
fPlugin.run(audioInputs, audioOutputs, frames);
#endif
- // TODO set last frame
- flushParameters(nullptr, process->out_events);
+ flushParameters(nullptr, process->out_events, frames - 1);
fOutputEvents = nullptr;
}
@@ -1210,7 +1217,9 @@ public:
return true;
}
- void flushParameters(const clap_input_events_t* const in, const clap_output_events_t* const out)
+ void flushParameters(const clap_input_events_t* const in,
+ const clap_output_events_t* const out,
+ const uint32_t frameOffset)
{
if (const uint32_t len = in != nullptr ? in->size(in) : 0)
{
@@ -1231,7 +1240,7 @@ public:
if (out != nullptr)
{
clap_event_param_value_t clapEvent = {
- { sizeof(clap_event_param_value_t), 0, 0, CLAP_EVENT_PARAM_VALUE, CLAP_EVENT_IS_LIVE },
+ { sizeof(clap_event_param_value_t), frameOffset, 0, CLAP_EVENT_PARAM_VALUE, CLAP_EVENT_IS_LIVE },
0, nullptr, 0, 0, 0, 0, 0.0
};
@@ -2336,7 +2345,7 @@ static CLAP_ABI bool clap_plugin_params_text_to_value(const clap_plugin_t* plugi
static CLAP_ABI void clap_plugin_params_flush(const clap_plugin_t* plugin, const clap_input_events_t* in, const clap_output_events_t* out)
{
PluginCLAP* const instance = static_cast<PluginCLAP*>(plugin->plugin_data);
- return instance->flushParameters(in, out);
+ return instance->flushParameters(in, out, 0);
}
static const clap_plugin_params_t clap_plugin_params = {
diff --git a/distrho/src/DistrhoPluginVST3.cpp b/distrho/src/DistrhoPluginVST3.cpp
@@ -14,28 +14,6 @@
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-#include "DistrhoPluginInternal.hpp"
-#include "../DistrhoPluginUtils.hpp"
-#include "../extra/ScopedPointer.hpp"
-
-#define DPF_VST3_MAX_BUFFER_SIZE 32768
-#define DPF_VST3_MAX_SAMPLE_RATE 384000
-#define DPF_VST3_MAX_LATENCY DPF_VST3_MAX_SAMPLE_RATE * 10
-
-#if DISTRHO_PLUGIN_HAS_UI
-# include "../extra/RingBuffer.hpp"
-#endif
-
-#include "travesty/audio_processor.h"
-#include "travesty/component.h"
-#include "travesty/edit_controller.h"
-#include "travesty/factory.h"
-#include "travesty/host.h"
-
-#include <map>
-#include <string>
-#include <vector>
-
/* TODO items:
* == parameters
* - test parameter triggers
@@ -43,7 +21,6 @@
* - parameter groups via unit ids
* - test parameter changes from DSP (aka requestParameterValueChange)
* - implement getParameterNormalized/setParameterNormalized for MIDI CC params ?
- * - fully implemented parameter stuff and verify
* - float to int safe casting
* - verify that latency changes works (with and without DPF_VST3_USES_SEPARATE_CONTROLLER)
* == MIDI
@@ -60,6 +37,28 @@
* - do something with set_io_mode?
*/
+#include "DistrhoPluginInternal.hpp"
+#include "../DistrhoPluginUtils.hpp"
+#include "../extra/ScopedPointer.hpp"
+
+#define DPF_VST3_MAX_BUFFER_SIZE 32768
+#define DPF_VST3_MAX_SAMPLE_RATE 384000
+#define DPF_VST3_MAX_LATENCY DPF_VST3_MAX_SAMPLE_RATE * 10
+
+#if DISTRHO_PLUGIN_HAS_UI
+# include "../extra/RingBuffer.hpp"
+#endif
+
+#include "travesty/audio_processor.h"
+#include "travesty/component.h"
+#include "travesty/edit_controller.h"
+#include "travesty/factory.h"
+#include "travesty/host.h"
+
+#include <map>
+#include <string>
+#include <vector>
+
START_NAMESPACE_DISTRHO
// --------------------------------------------------------------------------------------------------------------------