116 Q_PROPERTY (QString name READ getName CONSTANT FINAL)
122 bool is_instrument ()
const;
123 bool is_effect ()
const;
124 bool is_modulator ()
const;
125 bool is_midi_modifier ()
const;
166 [[nodiscard]] QString getName ()
const {
return name_.to_qstring (); }
173 static constexpr auto kAuthorKey =
"author"sv;
174 static constexpr auto kNameKey =
"name"sv;
175 static constexpr auto kWebsiteKey =
"website"sv;
176 static constexpr auto kCategoryKey =
"category"sv;
177 static constexpr auto kCategoryStringKey =
"categoryString"sv;
178 static constexpr auto kNumAudioInsKey =
"numAudioIns"sv;
179 static constexpr auto kNumAudioOutsKey =
"numAudioOuts"sv;
180 static constexpr auto kNumMidiInsKey =
"numMidiIns"sv;
181 static constexpr auto kNumMidiOutsKey =
"numMidiOuts"sv;
182 static constexpr auto kNumCtrlInsKey =
"numCtrlIns"sv;
183 static constexpr auto kNumCtrlOutsKey =
"numCtrlOuts"sv;
184 static constexpr auto kNumCvInsKey =
"numCvIns"sv;
185 static constexpr auto kNumCvOutsKey =
"numCvOuts"sv;
186 static constexpr auto kUniqueIdKey =
"uniqueId"sv;
187 static constexpr auto kArchitectureKey =
"architecture"sv;
188 static constexpr auto kProtocolKey =
"protocol"sv;
189 static constexpr auto kPathKey =
"path"sv;
190 static constexpr auto kUriKey =
"uri"sv;
191 static constexpr auto kMinBridgeModeKey =
"minBridgeMode"sv;
192 static constexpr auto kHasCustomUIKey =
"hasCustomUI"sv;
193 static constexpr auto kGHashKey =
"ghash"sv;
194 static constexpr auto kSha1Key =
"sha1"sv;
198 { kAuthorKey, p.author_ },
199 { kNameKey, p.name_ },
200 { kWebsiteKey, p.website_ },
201 { kCategoryKey, p.category_ },
212 { kArchitectureKey, p.
arch_ },
214 { kPathKey, p.
path_ },
217 { kHasCustomUIKey, p.has_custom_ui_ },
219 { kSha1Key, p.
sha1_ },
222 friend void from_json (
const nlohmann::json &j, PluginDescriptor &p)
224 j.at (kAuthorKey).get_to (p.author_);
225 j.at (kNameKey).get_to (p.name_);
226 j.at (kWebsiteKey).get_to (p.website_);
227 j.at (kCategoryKey).get_to (p.category_);
228 j.at (kCategoryStringKey).get_to (p.category_str_);
229 j.at (kNumAudioInsKey).get_to (p.num_audio_ins_);
230 j.at (kNumAudioOutsKey).get_to (p.num_audio_outs_);
231 j.at (kNumMidiInsKey).get_to (p.num_midi_ins_);
232 j.at (kNumMidiOutsKey).get_to (p.num_midi_outs_);
233 j.at (kNumCtrlInsKey).get_to (p.num_ctrl_ins_);
234 j.at (kNumCtrlOutsKey).get_to (p.num_ctrl_outs_);
235 j.at (kNumCvInsKey).get_to (p.num_cv_ins_);
236 j.at (kNumCvOutsKey).get_to (p.num_cv_outs_);
237 j.at (kUniqueIdKey).get_to (p.unique_id_);
238 j.at (kArchitectureKey).get_to (p.arch_);
239 j.at (kProtocolKey).get_to (p.protocol_);
240 j.at (kPathKey).get_to (p.path_);
241 j.at (kUriKey).get_to (p.uri_);
242 j.at (kMinBridgeModeKey).get_to (p.min_bridge_mode_);
243 j.at (kHasCustomUIKey).get_to (p.has_custom_ui_);
244 j.at (kGHashKey).get_to (p.ghash_);
245 j.at (kSha1Key).get_to (p.sha1_);
249 utils::Utf8String author_;
250 utils::Utf8String name_;
251 utils::Utf8String website_;
252 ZPluginCategory category_ = ZPluginCategory::NONE;
272 PluginArchitecture
arch_ = PluginArchitecture::ARCH_32_BIT;
286 bool has_custom_ui_ =
false;