summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
83a0b1e)
Signed-off-by: Christopher Arndt <chris@chrisarndt.de>
void *user;
// Id 48-4b
int32_t uniqueID;
void *user;
// Id 48-4b
int32_t uniqueID;
- // Don't know 4c-4f
- char unknown1[4];
+ // Version 4c-4f
+ int32_t version;
// processReplacing 50-53
void (* processReplacing) (struct _AEffect *, float **, float **, int);
};
// processReplacing 50-53
void (* processReplacing) (struct _AEffect *, float **, float **, int);
};
const char * label () const;
const char * name () const;
const char * maker () const;
const char * label () const;
const char * name () const;
const char * maker () const;
+ int32_t version () const;
uint32_t parameter_count () const;
uint32_t parameter_count () const;
- void print_parameter (uint32_t, char*, uint32_t len) const;
+ void print_parameter (uint32_t, char*, uint32_t len) const;
bool has_editor () const;
bool has_editor () const;
sha1_result_hash (&s, hash);
string const uri = string_compose (X_("VST:%1:x%2"), unique_id (), hash);
sha1_result_hash (&s, hash);
string const uri = string_compose (X_("VST:%1:x%2"), unique_id (), hash);
+ string const str_ver = std::to_string (version ());
+ string const num_params = std::to_string (parameter_count ());
if (_plugin->flags & 32 /* effFlagsProgramsChunks */) {
if (_plugin->flags & 32 /* effFlagsProgramsChunks */) {
p = new XMLNode (X_("ChunkPreset"));
p = new XMLNode (X_("ChunkPreset"));
- p->set_property (X_("uri"), uri);
- p->set_property (X_("label"), name);
+ } else {
+ p = new XMLNode (X_("Preset"));
+ }
+
+ p->set_property (X_("uri"), uri);
+ p->set_property (X_("version"), str_ver);
+ p->set_property (X_("label"), name);
+ p->set_property (X_("numParams"), num_params);
+
+ if (_plugin->flags & 32) {
+
gchar* data = get_chunk (true);
p->add_content (string (data));
g_free (data);
} else {
gchar* data = get_chunk (true);
p->add_content (string (data));
g_free (data);
} else {
- p = new XMLNode (X_("Preset"));
- p->set_property (X_("uri"), uri);
- p->set_property (X_("label"), name);
-
for (uint32_t i = 0; i < parameter_count(); ++i) {
if (parameter_is_input (i)) {
XMLNode* c = new XMLNode (X_("Parameter"));
for (uint32_t i = 0; i < parameter_count(); ++i) {
if (parameter_is_input (i)) {
XMLNode* c = new XMLNode (X_("Parameter"));
+int32_t
+VSTPlugin::version () const
+{
+ return _plugin->version;
+}
+
uint32_t
VSTPlugin::parameter_count () const
{
uint32_t
VSTPlugin::parameter_count () const
{