Implement IEditController::getParameterCount()

This commit is contained in:
Robbert van der Helm
2020-12-17 21:54:27 +01:00
parent 7eb7e87953
commit 4cc24f74d1
6 changed files with 34 additions and 3 deletions
+9
View File
@@ -274,6 +274,15 @@ void Vst3Logger::log_request(
});
}
void Vst3Logger::log_request(
bool is_host_vst,
const YaEditController2::GetParameterCount& request) {
log_request_base(is_host_vst, [&](auto& message) {
message << "<IEditController* #" << request.instance_id
<< ">::getParameterCount()";
});
}
void Vst3Logger::log_request(bool is_host_vst,
const YaPluginBase::Initialize& request) {
log_request_base(is_host_vst, [&](auto& message) {
+2
View File
@@ -81,6 +81,8 @@ class Vst3Logger {
void log_request(bool is_host_vst, const YaComponent::SetActive&);
void log_request(bool is_host_vst,
const YaEditController2::SetComponentState&);
void log_request(bool is_host_vst,
const YaEditController2::GetParameterCount&);
void log_request(bool is_host_vst, const YaPluginBase::Initialize&);
void log_request(bool is_host_vst, const YaPluginBase::Terminate&);
void log_request(bool is_host_vst, const YaPluginFactory::Construct&);
+1
View File
@@ -76,6 +76,7 @@ using ControlRequest = std::variant<Vst3PluginProxy::Construct,
YaComponent::ActivateBus,
YaComponent::SetActive,
YaEditController2::SetComponentState,
YaEditController2::GetParameterCount,
YaPluginBase::Initialize,
YaPluginBase::Terminate,
YaPluginFactory::Construct,
@@ -108,6 +108,21 @@ class YaEditController2 : public Steinberg::Vst::IEditController,
virtual tresult PLUGIN_API
getState(Steinberg::IBStream* state) override = 0;
/**
* Message to pass through a call to `IEditController::getParameterCount()`
* to the Wine plugin host.
*/
struct GetParameterCount {
using Response = PrimitiveWrapper<int32>;
native_size_t instance_id;
template <typename S>
void serialize(S& s) {
s.value8b(instance_id);
}
};
virtual int32 PLUGIN_API getParameterCount() override = 0;
virtual tresult PLUGIN_API
getParameterInfo(int32 paramIndex,