clap

CLAP Audio Plugin API
Log | Files | Refs | README | LICENSE

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:
Minclude/clap/events.h | 7+++----
Ainclude/clap/ext/draft/program.h | 44++++++++++++++++++++++++++++++++++++++++++++
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