LMMS
Loading...
Searching...
No Matches
edit_controller.h
Go to the documentation of this file.
1/*
2 * travesty, pure C VST3-compatible interface
3 * Copyright (C) 2021-2023 Filipe Coelho <falktx@falktx.com>
4 *
5 * Permission to use, copy, modify, and/or distribute this software for any purpose with
6 * or without fee is hereby granted, provided that the above copyright notice and this
7 * permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD
10 * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN
11 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
12 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
13 * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
14 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 */
16
17#pragma once
18
19#include "base.h"
20#include "bstream.h"
21#include "view.h"
22
23#include "align_push.h"
24
28
29enum {
40};
41
43#ifndef __cplusplus
44 struct v3_funknown;
45#endif
46 v3_result (V3_API* begin_edit)(void* self, v3_param_id);
47 v3_result (V3_API* perform_edit)(void* self, v3_param_id, double value_normalised);
48 v3_result (V3_API* end_edit)(void* self, v3_param_id);
49 v3_result (V3_API* restart_component)(void* self, int32_t flags);
50};
51
52static constexpr const v3_tuid v3_component_handler_iid =
53 V3_ID(0x93A0BEA3, 0x0BD045DB, 0x8E890B0C, 0xC1E46AC6);
54
56#ifndef __cplusplus
57 struct v3_funknown;
58#endif
59 v3_result (V3_API* set_dirty)(void* self, v3_bool state);
60 v3_result (V3_API* request_open_editor)(void* self, const char* name);
61 v3_result (V3_API* start_group_edit)(void* self);
62 v3_result (V3_API* finish_group_edit)(void* self);
63};
64
65static constexpr const v3_tuid v3_component_handler2_iid =
66 V3_ID(0xF040B4B3, 0xA36045EC, 0xABCDC045, 0xB4D5A2CC);
67
71
72enum {
80};
81
92
94#ifndef __cplusplus
95 struct v3_plugin_base;
96#endif
97 v3_result (V3_API* set_component_state)(void* self, struct v3_bstream**);
98 v3_result (V3_API* set_state)(void* self, struct v3_bstream**);
99 v3_result (V3_API* get_state)(void* self, struct v3_bstream**);
100 int32_t (V3_API* get_parameter_count)(void* self);
101 v3_result (V3_API* get_parameter_info)(void* self, int32_t param_idx, struct v3_param_info*);
102 v3_result (V3_API* get_parameter_string_for_value)(void* self, v3_param_id, double normalised, v3_str_128 output);
103 v3_result (V3_API* get_parameter_value_for_string)(void* self, v3_param_id, int16_t* input, double* output);
104 double (V3_API* normalised_parameter_to_plain)(void* self, v3_param_id, double normalised);
105 double (V3_API* plain_parameter_to_normalised)(void* self, v3_param_id, double plain);
106 double (V3_API* get_parameter_normalised)(void* self, v3_param_id);
107 v3_result (V3_API* set_parameter_normalised)(void* self, v3_param_id, double normalised);
108 v3_result (V3_API* set_component_handler)(void* self, struct v3_component_handler**);
109 struct v3_plugin_view** (V3_API* create_view)(void* self, const char* name);
110};
111
112static constexpr const v3_tuid v3_edit_controller_iid =
113 V3_ID(0xDCD7BBE3, 0x7742448D, 0xA874AACC, 0x979C759E);
114
118
120#ifndef __cplusplus
121 struct v3_funknown;
122#endif
123 v3_result (V3_API* get_midi_controller_assignment)(void* self, int32_t bus, int16_t channel, int16_t cc, v3_param_id* id);
124};
125
126static constexpr const v3_tuid v3_midi_mapping_iid =
127 V3_ID(0xDF0FF9F7, 0x49B74669, 0xB63AB732, 0x7ADBF5E5);
128
129#ifdef __cplusplus
130
134
135struct v3_component_handler_cpp : v3_funknown {
137};
138
139struct v3_component_handler2_cpp : v3_funknown {
140 v3_component_handler2 comp2;
141};
142
143struct v3_edit_controller_cpp : v3_funknown {
144 v3_plugin_base base;
145 v3_edit_controller ctrl;
146};
147
148struct v3_midi_mapping_cpp : v3_funknown {
149 v3_midi_mapping map;
150};
151
152template<> inline
153constexpr v3_edit_controller* v3_cpp_obj(v3_edit_controller** obj)
154{
159 return static_cast<v3_edit_controller*>(
160 static_cast<void*>(static_cast<uint8_t*>(static_cast<void*>(*obj)) + sizeof(void*)*5));
161}
162
163#endif
164
165#include "align_pop.h"
#define V3_ID(a, b, c, d)
Definition base.h:111
uint32_t v3_param_id
Definition base.h:40
#define V3_API
Definition base.h:59
int16_t v3_str_128[128]
Definition base.h:37
int32_t v3_result
Definition base.h:35
uint8_t v3_bool
Definition base.h:38
uint8_t v3_tuid[16]
Definition base.h:46
static constexpr const v3_tuid v3_component_handler_iid
Definition edit_controller.h:52
static constexpr const v3_tuid v3_component_handler2_iid
Definition edit_controller.h:65
@ V3_PARAM_CAN_AUTOMATE
Definition edit_controller.h:73
@ V3_PARAM_IS_LIST
Definition edit_controller.h:76
@ V3_PARAM_IS_HIDDEN
Definition edit_controller.h:77
@ V3_PARAM_WRAP_AROUND
Definition edit_controller.h:75
@ V3_PARAM_IS_BYPASS
Definition edit_controller.h:79
@ V3_PARAM_PROGRAM_CHANGE
Definition edit_controller.h:78
@ V3_PARAM_READ_ONLY
Definition edit_controller.h:74
static constexpr const v3_tuid v3_edit_controller_iid
Definition edit_controller.h:112
static constexpr const v3_tuid v3_midi_mapping_iid
Definition edit_controller.h:126
@ V3_RESTART_PARAM_VALUES_CHANGED
Definition edit_controller.h:32
@ V3_RESTART_RELOAD_COMPONENT
Definition edit_controller.h:30
@ V3_RESTART_MIDI_CC_ASSIGNMENT_CHANGED
Definition edit_controller.h:35
@ V3_RESTART_IO_TITLES_CHANGED
Definition edit_controller.h:37
@ V3_RESTART_NOTE_EXPRESSION_CHANGED
Definition edit_controller.h:36
@ V3_RESTART_PREFETCHABLE_SUPPORT_CHANGED
Definition edit_controller.h:38
@ V3_RESTART_PARAM_TITLES_CHANGED
Definition edit_controller.h:34
@ V3_RESTART_LATENCY_CHANGED
Definition edit_controller.h:33
@ V3_RESTART_ROUTING_INFO_CHANGED
Definition edit_controller.h:39
@ V3_RESTART_IO_CHANGED
Definition edit_controller.h:31
static const char * name
Definition pugl.h:1582
static int JUCE_CDECL comp(const void *a, const void *b)
Definition lsp.c:298
int int32_t
Definition mid.cpp:97
short int16_t
Definition mid.cpp:96
unsigned char uint8_t
Definition mid.cpp:98
Definition bstream.h:27
Definition edit_controller.h:55
v3_bool state
Definition edit_controller.h:59
const char * name
Definition edit_controller.h:60
v3_result(V3_API *finish_group_edit)(void *self)
v3_result(V3_API *start_group_edit)(void *self)
Definition edit_controller.h:42
int32_t flags
Definition edit_controller.h:49
double value_normalised
Definition edit_controller.h:47
v3_result(V3_API *end_edit)(void *self
v3_param_id
Definition edit_controller.h:46
v3_result(V3_API *perform_edit)(void *self
Definition edit_controller.h:93
double(V3_API *get_parameter_normalised)(void *self
struct v3_bstream struct v3_bstream ** v3_result(V3_API *get_state)(void *self
int32_t param_idx
Definition edit_controller.h:101
double plain
Definition edit_controller.h:105
double(V3_API *normalised_parameter_to_plain)(void *self
struct v3_bstream struct v3_bstream struct v3_bstream ** int32_t(V3_API *get_parameter_count)(void *self)
v3_result(V3_API *set_component_state)(void *self
int32_t struct v3_param_info double normalised
Definition edit_controller.h:102
v3_result(V3_API *set_parameter_normalised)(void *self
int32_t struct v3_param_info double v3_str_128 output
Definition edit_controller.h:102
int32_t struct v3_param_info v3_param_id
Definition edit_controller.h:102
int16_t * input
Definition edit_controller.h:103
double(V3_API *plain_parameter_to_normalised)(void *self
struct v3_component_handler **struct v3_plugin_view **V3_API * create_view(void *self, const char *name)
struct v3_bstream ** v3_result(V3_API *set_state)(void *self
v3_result(V3_API *set_component_handler)(void *self
Definition base.h:142
Definition edit_controller.h:119
int32_t int16_t channel
Definition edit_controller.h:123
int32_t int16_t int16_t cc
Definition edit_controller.h:123
int32_t bus
Definition edit_controller.h:123
int32_t int16_t int16_t v3_param_id * id
Definition edit_controller.h:123
Definition edit_controller.h:82
v3_str_128 title
Definition edit_controller.h:84
int32_t flags
Definition edit_controller.h:90
int32_t unit_id
Definition edit_controller.h:89
double default_normalised_value
Definition edit_controller.h:88
v3_str_128 short_title
Definition edit_controller.h:85
v3_str_128 units
Definition edit_controller.h:86
int32_t step_count
Definition edit_controller.h:87
v3_param_id param_id
Definition edit_controller.h:83
Definition base.h:155
Definition view.h:50