diff --git a/src/common/serialization/vst3/plugin-factory.cpp b/src/common/serialization/vst3/plugin-factory.cpp index b08abaad..cb1534fa 100644 --- a/src/common/serialization/vst3/plugin-factory.cpp +++ b/src/common/serialization/vst3/plugin-factory.cpp @@ -30,6 +30,7 @@ YaPluginFactory::YaPluginFactory( factory->getFactoryInfo(&info) == Steinberg::kResultOk) { factory_info = info; } + num_classes = factory->countClasses(); auto factory2 = Steinberg::FUnknownPtr(factory); if (!factory2) { @@ -89,8 +90,7 @@ YaPluginFactory::getFactoryInfo(Steinberg::PFactoryInfo* info) { } int32 PLUGIN_API YaPluginFactory::countClasses() { - // TODO: Implement - return 0; + return num_classes; } tresult PLUGIN_API diff --git a/src/common/serialization/vst3/plugin-factory.h b/src/common/serialization/vst3/plugin-factory.h index 74c8fec0..3a6ef4a5 100644 --- a/src/common/serialization/vst3/plugin-factory.h +++ b/src/common/serialization/vst3/plugin-factory.h @@ -88,6 +88,8 @@ class YaPluginFactory : public Steinberg::IPluginFactory3 { // For `IPluginFactory::getFactoryInfo` std::optional factory_info; + // For `IPluginFactory::countClasses` + int num_classes; template void serialize(S& s) { @@ -97,6 +99,7 @@ class YaPluginFactory : public Steinberg::IPluginFactory3 { }); s.ext(factory_info, bitsery::ext::StdOptional{}, [](S& s, Steinberg::PFactoryInfo& info) { s.object(info); }); + s.value4b(num_classes); } };