commit 0fcd0a2a95562a232c4997cff9f4535ccba5d0c2
parent 88c01c8781a5b68c933b988ce388162fbc918d06
Author: Alexandre BIQUE <bique.alexandre@gmail.com>
Date: Thu, 29 Apr 2021 10:04:16 +0200
Backup latest work on program
Diffstat:
2 files changed, 47 insertions(+), 4 deletions(-)
diff --git a/include/clap/events.h b/include/clap/events.h
@@ -116,10 +116,9 @@ typedef struct clap_event_midi_sysex {
* memory, and can be set instantly (no loading time).
*/
typedef struct clap_event_program {
- int32_t channel; // 0..15, -1 unspecified
- int32_t bank_msb; // 0..0x7FFFFFFF, -1 unspecified
- int32_t bank_lsb; // 0..0x7FFFFFFF, -1 unspecified
- int32_t program; // 0..0x7FFFFFFF
+ int32_t channel; // 0..15, -1 unspecified
+ int32_t bank; // 0..0x7FFFFFFF, -1 unspecified
+ int32_t program; // 0..0x7FFFFFFF
} clap_event_program;
typedef struct clap_event {
diff --git a/include/clap/ext/draft/program.h b/include/clap/ext/draft/program.h
@@ -0,0 +1,43 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "../../clap.h"
+
+#define CLAP_EXT_PROGRAM "clap/draft/program"
+
+typedef struct clap_program_info {
+ int32_t bank;
+ int32_t number;
+ char name[CLAP_NAME_SIZE];
+} clap_program_info;
+
+//
+typedef struct clap_plugin_program {
+ int32_t (*count)(clap_plugin *plugin);
+ bool (*get_info)(clap_plugin *plugin, int32_t index, clap_program_info *info);
+ bool (*clear_program)(clap_plugin *plugin, int32_t bank, int32_t program);
+
+ // Stores the current state into a program
+ bool (*store_program)(clap_plugin *plugin, int32_t bank, int32_t program, const char *name);
+
+ bool (*rename_program)(clap_plugin *plugin, int32_t bank, int32_t program, const char *name);
+
+ bool (*copy_program)(clap_plugin *plugin,
+ int32_t src_bank,
+ int32_t src_program,
+ int32_t dst_bank,
+ int32_t dst_program);
+
+ bool (*move_program)(clap_plugin *plugin,
+ int32_t src_bank,
+ int32_t src_program,
+ int32_t dst_bank,
+ int32_t dst_program);
+} clap_plugin_program;
+
+#ifdef __cplusplus
+}
+#endif
+\ No newline at end of file