Implement IAudioProcessor::setProcessing()

This commit is contained in:
Robbert van der Helm
2020-12-14 21:31:50 +01:00
parent b1bcfd3873
commit 007aa1e707
6 changed files with 37 additions and 3 deletions
+9
View File
@@ -200,6 +200,15 @@ void Vst3Logger::log_request(bool is_host_vst,
});
}
void Vst3Logger::log_request(bool is_host_vst,
const YaComponent::SetProcessing& request) {
log_request_base(is_host_vst, [&](auto& message) {
message << "<IAudioProcessor* #" << request.instance_id
<< ">::setProcessing(state = "
<< (request.state ? "true" : "false") << ")";
});
}
void Vst3Logger::log_request(bool is_host_vst,
const YaPluginFactory::Construct&) {
log_request_base(is_host_vst,
+1
View File
@@ -74,6 +74,7 @@ class Vst3Logger {
const YaComponent::CanProcessSampleSize&);
void log_request(bool is_host_vst, const YaComponent::GetLatencySamples&);
void log_request(bool is_host_vst, const YaComponent::SetupProcessing&);
void log_request(bool is_host_vst, const YaComponent::SetProcessing&);
void log_request(bool is_host_vst, const YaPluginFactory::Construct&);
void log_request(bool is_host_vst, const YaPluginFactory::SetHostContext&);
void log_request(bool is_host_vst, const WantsConfiguration&);
+1
View File
@@ -74,6 +74,7 @@ using ControlRequest = std::variant<YaComponent::Construct,
YaComponent::CanProcessSampleSize,
YaComponent::GetLatencySamples,
YaComponent::SetupProcessing,
YaComponent::SetProcessing,
YaPluginFactory::Construct,
YaPluginFactory::SetHostContext>;
+19
View File
@@ -560,6 +560,25 @@ class YaComponent : public Steinberg::Vst::IComponent,
virtual tresult PLUGIN_API
setupProcessing(Steinberg::Vst::ProcessSetup& setup) override = 0;
/**
* Message to pass through a call to `IAudioProcessor::setProcessing(state)`
* to the Wine plugin host.
*/
struct SetProcessing {
using Response = UniversalTResult;
native_size_t instance_id;
TBool state;
template <typename S>
void serialize(S& s) {
s.value8b(instance_id);
s.value1b(state);
}
};
virtual tresult PLUGIN_API setProcessing(TBool state) override = 0;
virtual tresult PLUGIN_API
process(Steinberg::Vst::ProcessData& data) override = 0;