mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-09 20:29:10 +02:00
Use a getter for a proxy object's instance ID
We also need this to get some random other object's instance ID, so might as well use it everywhere.
This commit is contained in:
@@ -212,7 +212,7 @@ class Vst3PluginProxy : public YaAudioProcessor,
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
protected:
|
private:
|
||||||
ConstructArgs arguments;
|
ConstructArgs arguments;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -24,8 +24,8 @@ Vst3PluginProxyImpl::Vst3PluginProxyImpl(Vst3PluginBridge& bridge,
|
|||||||
|
|
||||||
Vst3PluginProxyImpl::~Vst3PluginProxyImpl() {
|
Vst3PluginProxyImpl::~Vst3PluginProxyImpl() {
|
||||||
bridge.send_message(
|
bridge.send_message(
|
||||||
Vst3PluginProxy::Destruct{.instance_id = arguments.instance_id});
|
Vst3PluginProxy::Destruct{.instance_id = instance_id()});
|
||||||
bridge.unregister_plugin_proxy(arguments.instance_id);
|
bridge.unregister_plugin_proxy(instance_id());
|
||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API
|
tresult PLUGIN_API
|
||||||
@@ -47,7 +47,7 @@ tresult PLUGIN_API Vst3PluginProxyImpl::setBusArrangements(
|
|||||||
int32 numOuts) {
|
int32 numOuts) {
|
||||||
assert(inputs && outputs);
|
assert(inputs && outputs);
|
||||||
return bridge.send_message(YaAudioProcessor::SetBusArrangements{
|
return bridge.send_message(YaAudioProcessor::SetBusArrangements{
|
||||||
.instance_id = arguments.instance_id,
|
.instance_id = instance_id(),
|
||||||
.inputs = std::vector<Steinberg::Vst::SpeakerArrangement>(
|
.inputs = std::vector<Steinberg::Vst::SpeakerArrangement>(
|
||||||
inputs, &inputs[numIns]),
|
inputs, &inputs[numIns]),
|
||||||
.num_ins = numIns,
|
.num_ins = numIns,
|
||||||
@@ -61,12 +61,11 @@ tresult PLUGIN_API Vst3PluginProxyImpl::getBusArrangement(
|
|||||||
Steinberg::Vst::BusDirection dir,
|
Steinberg::Vst::BusDirection dir,
|
||||||
int32 index,
|
int32 index,
|
||||||
Steinberg::Vst::SpeakerArrangement& arr) {
|
Steinberg::Vst::SpeakerArrangement& arr) {
|
||||||
const GetBusArrangementResponse response =
|
const GetBusArrangementResponse response = bridge.send_message(
|
||||||
bridge.send_message(YaAudioProcessor::GetBusArrangement{
|
YaAudioProcessor::GetBusArrangement{.instance_id = instance_id(),
|
||||||
.instance_id = arguments.instance_id,
|
.dir = dir,
|
||||||
.dir = dir,
|
.index = index,
|
||||||
.index = index,
|
.arr = arr});
|
||||||
.arr = arr});
|
|
||||||
|
|
||||||
arr = response.updated_arr;
|
arr = response.updated_arr;
|
||||||
|
|
||||||
@@ -76,30 +75,30 @@ tresult PLUGIN_API Vst3PluginProxyImpl::getBusArrangement(
|
|||||||
tresult PLUGIN_API
|
tresult PLUGIN_API
|
||||||
Vst3PluginProxyImpl::canProcessSampleSize(int32 symbolicSampleSize) {
|
Vst3PluginProxyImpl::canProcessSampleSize(int32 symbolicSampleSize) {
|
||||||
return bridge.send_message(YaAudioProcessor::CanProcessSampleSize{
|
return bridge.send_message(YaAudioProcessor::CanProcessSampleSize{
|
||||||
.instance_id = arguments.instance_id,
|
.instance_id = instance_id(),
|
||||||
.symbolic_sample_size = symbolicSampleSize});
|
.symbolic_sample_size = symbolicSampleSize});
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 PLUGIN_API Vst3PluginProxyImpl::getLatencySamples() {
|
uint32 PLUGIN_API Vst3PluginProxyImpl::getLatencySamples() {
|
||||||
return bridge.send_message(YaAudioProcessor::GetLatencySamples{
|
return bridge.send_message(
|
||||||
.instance_id = arguments.instance_id});
|
YaAudioProcessor::GetLatencySamples{.instance_id = instance_id()});
|
||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API
|
tresult PLUGIN_API
|
||||||
Vst3PluginProxyImpl::setupProcessing(Steinberg::Vst::ProcessSetup& setup) {
|
Vst3PluginProxyImpl::setupProcessing(Steinberg::Vst::ProcessSetup& setup) {
|
||||||
return bridge.send_message(YaAudioProcessor::SetupProcessing{
|
return bridge.send_message(YaAudioProcessor::SetupProcessing{
|
||||||
.instance_id = arguments.instance_id, .setup = setup});
|
.instance_id = instance_id(), .setup = setup});
|
||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API Vst3PluginProxyImpl::setProcessing(TBool state) {
|
tresult PLUGIN_API Vst3PluginProxyImpl::setProcessing(TBool state) {
|
||||||
return bridge.send_message(YaAudioProcessor::SetProcessing{
|
return bridge.send_message(YaAudioProcessor::SetProcessing{
|
||||||
.instance_id = arguments.instance_id, .state = state});
|
.instance_id = instance_id(), .state = state});
|
||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API
|
tresult PLUGIN_API
|
||||||
Vst3PluginProxyImpl::process(Steinberg::Vst::ProcessData& data) {
|
Vst3PluginProxyImpl::process(Steinberg::Vst::ProcessData& data) {
|
||||||
ProcessResponse response = bridge.send_message(YaAudioProcessor::Process{
|
ProcessResponse response = bridge.send_message(
|
||||||
.instance_id = arguments.instance_id, .data = data});
|
YaAudioProcessor::Process{.instance_id = instance_id(), .data = data});
|
||||||
|
|
||||||
response.output_data.write_back_outputs(data);
|
response.output_data.write_back_outputs(data);
|
||||||
|
|
||||||
@@ -108,19 +107,19 @@ Vst3PluginProxyImpl::process(Steinberg::Vst::ProcessData& data) {
|
|||||||
|
|
||||||
uint32 PLUGIN_API Vst3PluginProxyImpl::getTailSamples() {
|
uint32 PLUGIN_API Vst3PluginProxyImpl::getTailSamples() {
|
||||||
return bridge.send_message(
|
return bridge.send_message(
|
||||||
YaAudioProcessor::GetTailSamples{.instance_id = arguments.instance_id});
|
YaAudioProcessor::GetTailSamples{.instance_id = instance_id()});
|
||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API Vst3PluginProxyImpl::setIoMode(Steinberg::Vst::IoMode mode) {
|
tresult PLUGIN_API Vst3PluginProxyImpl::setIoMode(Steinberg::Vst::IoMode mode) {
|
||||||
return bridge.send_message(YaComponent::SetIoMode{
|
return bridge.send_message(
|
||||||
.instance_id = arguments.instance_id, .mode = mode});
|
YaComponent::SetIoMode{.instance_id = instance_id(), .mode = mode});
|
||||||
}
|
}
|
||||||
|
|
||||||
int32 PLUGIN_API
|
int32 PLUGIN_API
|
||||||
Vst3PluginProxyImpl::getBusCount(Steinberg::Vst::MediaType type,
|
Vst3PluginProxyImpl::getBusCount(Steinberg::Vst::MediaType type,
|
||||||
Steinberg::Vst::BusDirection dir) {
|
Steinberg::Vst::BusDirection dir) {
|
||||||
return bridge.send_message(YaComponent::GetBusCount{
|
return bridge.send_message(YaComponent::GetBusCount{
|
||||||
.instance_id = arguments.instance_id, .type = type, .dir = dir});
|
.instance_id = instance_id(), .type = type, .dir = dir});
|
||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API
|
tresult PLUGIN_API
|
||||||
@@ -129,7 +128,7 @@ Vst3PluginProxyImpl::getBusInfo(Steinberg::Vst::MediaType type,
|
|||||||
int32 index,
|
int32 index,
|
||||||
Steinberg::Vst::BusInfo& bus /*out*/) {
|
Steinberg::Vst::BusInfo& bus /*out*/) {
|
||||||
const GetBusInfoResponse response = bridge.send_message(
|
const GetBusInfoResponse response = bridge.send_message(
|
||||||
YaComponent::GetBusInfo{.instance_id = arguments.instance_id,
|
YaComponent::GetBusInfo{.instance_id = instance_id(),
|
||||||
.type = type,
|
.type = type,
|
||||||
.dir = dir,
|
.dir = dir,
|
||||||
.index = index,
|
.index = index,
|
||||||
@@ -143,7 +142,7 @@ tresult PLUGIN_API Vst3PluginProxyImpl::getRoutingInfo(
|
|||||||
Steinberg::Vst::RoutingInfo& inInfo,
|
Steinberg::Vst::RoutingInfo& inInfo,
|
||||||
Steinberg::Vst::RoutingInfo& outInfo /*out*/) {
|
Steinberg::Vst::RoutingInfo& outInfo /*out*/) {
|
||||||
const GetRoutingInfoResponse response = bridge.send_message(
|
const GetRoutingInfoResponse response = bridge.send_message(
|
||||||
YaComponent::GetRoutingInfo{.instance_id = arguments.instance_id,
|
YaComponent::GetRoutingInfo{.instance_id = instance_id(),
|
||||||
.in_info = inInfo,
|
.in_info = inInfo,
|
||||||
.out_info = outInfo});
|
.out_info = outInfo});
|
||||||
|
|
||||||
@@ -158,7 +157,7 @@ Vst3PluginProxyImpl::activateBus(Steinberg::Vst::MediaType type,
|
|||||||
int32 index,
|
int32 index,
|
||||||
TBool state) {
|
TBool state) {
|
||||||
return bridge.send_message(
|
return bridge.send_message(
|
||||||
YaComponent::ActivateBus{.instance_id = arguments.instance_id,
|
YaComponent::ActivateBus{.instance_id = instance_id(),
|
||||||
.type = type,
|
.type = type,
|
||||||
.dir = dir,
|
.dir = dir,
|
||||||
.index = index,
|
.index = index,
|
||||||
@@ -166,22 +165,22 @@ Vst3PluginProxyImpl::activateBus(Steinberg::Vst::MediaType type,
|
|||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API Vst3PluginProxyImpl::setActive(TBool state) {
|
tresult PLUGIN_API Vst3PluginProxyImpl::setActive(TBool state) {
|
||||||
return bridge.send_message(YaComponent::SetActive{
|
return bridge.send_message(
|
||||||
.instance_id = arguments.instance_id, .state = state});
|
YaComponent::SetActive{.instance_id = instance_id(), .state = state});
|
||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API Vst3PluginProxyImpl::setState(Steinberg::IBStream* state) {
|
tresult PLUGIN_API Vst3PluginProxyImpl::setState(Steinberg::IBStream* state) {
|
||||||
// Since both interfaces contain this function, this is used for both
|
// Since both interfaces contain this function, this is used for both
|
||||||
// `IComponent::setState()` as well as `IEditController::setState()`
|
// `IComponent::setState()` as well as `IEditController::setState()`
|
||||||
return bridge.send_message(Vst3PluginProxy::SetState{
|
return bridge.send_message(Vst3PluginProxy::SetState{
|
||||||
.instance_id = arguments.instance_id, .state = state});
|
.instance_id = instance_id(), .state = state});
|
||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API Vst3PluginProxyImpl::getState(Steinberg::IBStream* state) {
|
tresult PLUGIN_API Vst3PluginProxyImpl::getState(Steinberg::IBStream* state) {
|
||||||
// Since both interfaces contain this function, this is used for both
|
// Since both interfaces contain this function, this is used for both
|
||||||
// `IComponent::getState()` as well as `IEditController::getState()`
|
// `IComponent::getState()` as well as `IEditController::getState()`
|
||||||
const GetStateResponse response = bridge.send_message(
|
const GetStateResponse response = bridge.send_message(
|
||||||
Vst3PluginProxy::GetState{.instance_id = arguments.instance_id});
|
Vst3PluginProxy::GetState{.instance_id = instance_id()});
|
||||||
|
|
||||||
assert(response.updated_state.write_back(state) == Steinberg::kResultOk);
|
assert(response.updated_state.write_back(state) == Steinberg::kResultOk);
|
||||||
|
|
||||||
@@ -194,7 +193,7 @@ tresult PLUGIN_API Vst3PluginProxyImpl::connect(IConnectionPoint* other) {
|
|||||||
// objects in the Wine plugin host directly
|
// objects in the Wine plugin host directly
|
||||||
if (auto other_proxy = dynamic_cast<Vst3PluginProxy*>(other)) {
|
if (auto other_proxy = dynamic_cast<Vst3PluginProxy*>(other)) {
|
||||||
return bridge.send_message(YaConnectionPoint::Connect{
|
return bridge.send_message(YaConnectionPoint::Connect{
|
||||||
.instance_id = arguments.instance_id,
|
.instance_id = instance_id(),
|
||||||
.other_instance_id = other_proxy->instance_id()});
|
.other_instance_id = other_proxy->instance_id()});
|
||||||
} else {
|
} else {
|
||||||
// TODO: Add support for `ConnectionProxy` and similar objects
|
// TODO: Add support for `ConnectionProxy` and similar objects
|
||||||
@@ -221,22 +220,21 @@ Vst3PluginProxyImpl::notify(Steinberg::Vst::IMessage* message) {
|
|||||||
tresult PLUGIN_API
|
tresult PLUGIN_API
|
||||||
Vst3PluginProxyImpl::setComponentState(Steinberg::IBStream* state) {
|
Vst3PluginProxyImpl::setComponentState(Steinberg::IBStream* state) {
|
||||||
return bridge.send_message(YaEditController2::SetComponentState{
|
return bridge.send_message(YaEditController2::SetComponentState{
|
||||||
.instance_id = arguments.instance_id, .state = state});
|
.instance_id = instance_id(), .state = state});
|
||||||
}
|
}
|
||||||
|
|
||||||
int32 PLUGIN_API Vst3PluginProxyImpl::getParameterCount() {
|
int32 PLUGIN_API Vst3PluginProxyImpl::getParameterCount() {
|
||||||
return bridge.send_message(YaEditController2::GetParameterCount{
|
return bridge.send_message(
|
||||||
.instance_id = arguments.instance_id});
|
YaEditController2::GetParameterCount{.instance_id = instance_id()});
|
||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API Vst3PluginProxyImpl::getParameterInfo(
|
tresult PLUGIN_API Vst3PluginProxyImpl::getParameterInfo(
|
||||||
int32 paramIndex,
|
int32 paramIndex,
|
||||||
Steinberg::Vst::ParameterInfo& info /*out*/) {
|
Steinberg::Vst::ParameterInfo& info /*out*/) {
|
||||||
const GetParameterInfoResponse response =
|
const GetParameterInfoResponse response = bridge.send_message(
|
||||||
bridge.send_message(YaEditController2::GetParameterInfo{
|
YaEditController2::GetParameterInfo{.instance_id = instance_id(),
|
||||||
.instance_id = arguments.instance_id,
|
.param_index = paramIndex,
|
||||||
.param_index = paramIndex,
|
.info = info});
|
||||||
.info = info});
|
|
||||||
|
|
||||||
info = response.updated_info;
|
info = response.updated_info;
|
||||||
|
|
||||||
@@ -249,7 +247,7 @@ tresult PLUGIN_API Vst3PluginProxyImpl::getParamStringByValue(
|
|||||||
Steinberg::Vst::String128 string /*out*/) {
|
Steinberg::Vst::String128 string /*out*/) {
|
||||||
const GetParamStringByValueResponse response =
|
const GetParamStringByValueResponse response =
|
||||||
bridge.send_message(YaEditController2::GetParamStringByValue{
|
bridge.send_message(YaEditController2::GetParamStringByValue{
|
||||||
.instance_id = arguments.instance_id,
|
.instance_id = instance_id(),
|
||||||
.id = id,
|
.id = id,
|
||||||
.value_normalized = valueNormalized});
|
.value_normalized = valueNormalized});
|
||||||
|
|
||||||
@@ -345,7 +343,7 @@ tresult PLUGIN_API Vst3PluginProxyImpl::initialize(FUnknown* context) {
|
|||||||
host_application_context_args = std::nullopt;
|
host_application_context_args = std::nullopt;
|
||||||
if (host_application_context) {
|
if (host_application_context) {
|
||||||
host_application_context_args = YaHostApplication::ConstructArgs(
|
host_application_context_args = YaHostApplication::ConstructArgs(
|
||||||
host_application_context, arguments.instance_id);
|
host_application_context, instance_id());
|
||||||
} else {
|
} else {
|
||||||
bridge.logger.log_unknown_interface(
|
bridge.logger.log_unknown_interface(
|
||||||
"In IPluginBase::initialize()",
|
"In IPluginBase::initialize()",
|
||||||
@@ -353,12 +351,12 @@ tresult PLUGIN_API Vst3PluginProxyImpl::initialize(FUnknown* context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return bridge.send_message(
|
return bridge.send_message(
|
||||||
YaPluginBase::Initialize{.instance_id = arguments.instance_id,
|
YaPluginBase::Initialize{.instance_id = instance_id(),
|
||||||
.host_application_context_args =
|
.host_application_context_args =
|
||||||
std::move(host_application_context_args)});
|
std::move(host_application_context_args)});
|
||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API Vst3PluginProxyImpl::terminate() {
|
tresult PLUGIN_API Vst3PluginProxyImpl::terminate() {
|
||||||
return bridge.send_message(
|
return bridge.send_message(
|
||||||
YaPluginBase::Terminate{.instance_id = arguments.instance_id});
|
YaPluginBase::Terminate{.instance_id = instance_id()});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,8 +39,6 @@ class Vst3PluginProxyImpl : public Vst3PluginProxy {
|
|||||||
tresult PLUGIN_API queryInterface(const Steinberg::TUID _iid,
|
tresult PLUGIN_API queryInterface(const Steinberg::TUID _iid,
|
||||||
void** obj) override;
|
void** obj) override;
|
||||||
|
|
||||||
inline size_t instance_id() { return arguments.instance_id; }
|
|
||||||
|
|
||||||
// From `IAudioProcessor`
|
// From `IAudioProcessor`
|
||||||
tresult PLUGIN_API
|
tresult PLUGIN_API
|
||||||
setBusArrangements(Steinberg::Vst::SpeakerArrangement* inputs,
|
setBusArrangements(Steinberg::Vst::SpeakerArrangement* inputs,
|
||||||
|
|||||||
Reference in New Issue
Block a user