Zrythm
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
plugin.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: © 2023-2024 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
10#ifndef __IO_SERIALIZATION_PLUGIN_H__
11#define __IO_SERIALIZATION_PLUGIN_H__
12
13#include "utils/types.h"
14
15#include <glib.h>
16
17#include <yyjson.h>
18
19TYPEDEF_STRUCT (PluginIdentifier);
20TYPEDEF_STRUCT (PluginDescriptor);
21TYPEDEF_STRUCT (PluginSetting);
22TYPEDEF_STRUCT (PluginPresetIdentifier);
23TYPEDEF_STRUCT (PluginPreset);
24TYPEDEF_STRUCT (PluginBank);
25TYPEDEF_STRUCT (Plugin);
26TYPEDEF_STRUCT (PluginCollection);
27TYPEDEF_STRUCT (PluginCollections);
28
29bool
30plugin_identifier_serialize_to_json (
31 yyjson_mut_doc * doc,
32 yyjson_mut_val * pid_obj,
33 const PluginIdentifier * pid,
34 GError ** error);
35
36bool
37plugin_descriptor_serialize_to_json (
38 yyjson_mut_doc * doc,
39 yyjson_mut_val * pd_obj,
40 const PluginDescriptor * pd,
41 GError ** error);
42
43bool
44plugin_setting_serialize_to_json (
45 yyjson_mut_doc * doc,
46 yyjson_mut_val * ps_obj,
47 const PluginSetting * ps,
48 GError ** error);
49
50bool
51plugin_preset_identifier_serialize_to_json (
52 yyjson_mut_doc * doc,
53 yyjson_mut_val * pid_obj,
54 const PluginPresetIdentifier * pid,
55 GError ** error);
56
57bool
58plugin_preset_serialize_to_json (
59 yyjson_mut_doc * doc,
60 yyjson_mut_val * pset_obj,
61 const PluginPreset * pset,
62 GError ** error);
63
64bool
65plugin_bank_serialize_to_json (
66 yyjson_mut_doc * doc,
67 yyjson_mut_val * bank_obj,
68 const PluginBank * bank,
69 GError ** error);
70
71bool
72plugin_serialize_to_json (
73 yyjson_mut_doc * doc,
74 yyjson_mut_val * plugin_obj,
75 const Plugin * plugin,
76 GError ** error);
77
78bool
79plugin_collection_serialize_to_json (
80 yyjson_mut_doc * doc,
81 yyjson_mut_val * col_obj,
82 const PluginCollection * col,
83 GError ** error);
84
85bool
86plugin_identifier_deserialize_from_json (
87 yyjson_doc * doc,
88 yyjson_val * pid_obj,
89 PluginIdentifier * pid,
90 GError ** error);
91
92bool
93plugin_descriptor_deserialize_from_json (
94 yyjson_doc * doc,
95 yyjson_val * pd_obj,
97 GError ** error);
98
99bool
100plugin_setting_deserialize_from_json (
101 yyjson_doc * doc,
102 yyjson_val * ps_obj,
103 PluginSetting * ps,
104 GError ** error);
105
106bool
107plugin_preset_identifier_deserialize_from_json (
108 yyjson_doc * doc,
109 yyjson_val * pid_obj,
111 GError ** error);
112
113bool
114plugin_preset_deserialize_from_json (
115 yyjson_doc * doc,
116 yyjson_val * pset_obj,
117 PluginPreset * pset,
118 GError ** error);
119
120bool
121plugin_bank_deserialize_from_json (
122 yyjson_doc * doc,
123 yyjson_val * bank_obj,
124 PluginBank * bank,
125 GError ** error);
126
127bool
128plugin_deserialize_from_json (
129 yyjson_doc * doc,
130 yyjson_val * plugin_obj,
131 Plugin * plugin,
132 GError ** error);
133
134bool
135plugin_collection_deserialize_from_json (
136 yyjson_doc * doc,
137 yyjson_val * col_obj,
138 PluginCollection * col,
139 GError ** error);
140
141#endif // __IO_SERIALIZATION_PLUGIN_H__
A plugin bank containing presets.
Plugin collection used in the plugin browser.
Definition collection.h:28
Serializable plugin collections.
Definition collections.h:30
Plugin identifier.
Preset identifier.
Plugin preset.
A setting for a specific plugin descriptor.
The base plugin Inheriting plugins must have this as a child.
Definition plugin.h:74
Custom types.