Browse Source

VST3 Client: Return correct programListId for root unit

This change fixes an issue where the program list was not populated in
Cubase 12.
v7.0.9
reuk 2 years ago
parent
commit
ddfceb12b2
No known key found for this signature in database GPG Key ID: FCB43929F012EE5C
1 changed files with 9 additions and 7 deletions
  1. +9
    -7
      modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp

+ 9
- 7
modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp View File

@@ -431,9 +431,11 @@ public:
{ {
info.id = Vst::kRootUnitId; info.id = Vst::kRootUnitId;
info.parentUnitId = Vst::kNoParentUnitId; info.parentUnitId = Vst::kNoParentUnitId;
info.programListId = Vst::kNoProgramListId;
info.programListId = getProgramListCount() > 0
? static_cast<Vst::ProgramListID> (programParamID)
: Vst::kNoProgramListId;
toString128 (info.name, TRANS("Root Unit"));
toString128 (info.name, TRANS ("Root Unit"));
return kResultTrue; return kResultTrue;
} }
@@ -467,7 +469,7 @@ public:
info.id = static_cast<Vst::ProgramListID> (programParamID); info.id = static_cast<Vst::ProgramListID> (programParamID);
info.programCount = static_cast<Steinberg::int32> (audioProcessor->getNumPrograms()); info.programCount = static_cast<Steinberg::int32> (audioProcessor->getNumPrograms());
toString128 (info.name, TRANS("Factory Presets"));
toString128 (info.name, TRANS ("Factory Presets"));
return kResultTrue; return kResultTrue;
} }
@@ -500,8 +502,8 @@ public:
tresult PLUGIN_API getUnitByBus (Vst::MediaType, Vst::BusDirection, Steinberg::int32, Steinberg::int32, Vst::UnitID& unitId) override tresult PLUGIN_API getUnitByBus (Vst::MediaType, Vst::BusDirection, Steinberg::int32, Steinberg::int32, Vst::UnitID& unitId) override
{ {
zerostruct (unitId);
return kNotImplemented;
unitId = Vst::kRootUnitId;
return kResultOk;
} }
//============================================================================== //==============================================================================
@@ -1127,18 +1129,18 @@ public:
if (audioProcessor != nullptr) if (audioProcessor != nullptr)
return audioProcessor->getUnitInfo (unitIndex, info); return audioProcessor->getUnitInfo (unitIndex, info);
jassertfalse;
if (unitIndex == 0) if (unitIndex == 0)
{ {
info.id = Vst::kRootUnitId; info.id = Vst::kRootUnitId;
info.parentUnitId = Vst::kNoParentUnitId; info.parentUnitId = Vst::kNoParentUnitId;
info.programListId = Vst::kNoProgramListId; info.programListId = Vst::kNoProgramListId;
toString128 (info.name, TRANS("Root Unit"));
toString128 (info.name, TRANS ("Root Unit"));
return kResultTrue; return kResultTrue;
} }
jassertfalse;
zerostruct (info); zerostruct (info);
return kResultFalse; return kResultFalse;
} }


Loading…
Cancel
Save