mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-09 20:29:10 +02:00
Add implicit conversion for UniversalTResult
This commit is contained in:
@@ -230,7 +230,7 @@ void Vst3Logger::log_response(bool is_host_vst,
|
|||||||
const YaComponent::GetBusInfoResponse& response) {
|
const YaComponent::GetBusInfoResponse& response) {
|
||||||
log_response_base(is_host_vst, [&](auto& message) {
|
log_response_base(is_host_vst, [&](auto& message) {
|
||||||
message << response.result.string();
|
message << response.result.string();
|
||||||
if (response.result.native() == Steinberg::kResultOk) {
|
if (response.result == Steinberg::kResultOk) {
|
||||||
message << ", <BusInfo>";
|
message << ", <BusInfo>";
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -241,7 +241,7 @@ void Vst3Logger::log_response(
|
|||||||
const YaComponent::GetRoutingInfoResponse& response) {
|
const YaComponent::GetRoutingInfoResponse& response) {
|
||||||
log_response_base(is_host_vst, [&](auto& message) {
|
log_response_base(is_host_vst, [&](auto& message) {
|
||||||
message << response.result.string();
|
message << response.result.string();
|
||||||
if (response.result.native() == Steinberg::kResultOk) {
|
if (response.result == Steinberg::kResultOk) {
|
||||||
message << ", <RoutingInfo& for bus "
|
message << ", <RoutingInfo& for bus "
|
||||||
<< response.updated_in_info.busIndex << " and channel "
|
<< response.updated_in_info.busIndex << " and channel "
|
||||||
<< response.updated_in_info.channel
|
<< response.updated_in_info.channel
|
||||||
@@ -256,7 +256,7 @@ void Vst3Logger::log_response(bool is_host_vst,
|
|||||||
const YaComponent::GetStateResponse& response) {
|
const YaComponent::GetStateResponse& response) {
|
||||||
log_response_base(is_host_vst, [&](auto& message) {
|
log_response_base(is_host_vst, [&](auto& message) {
|
||||||
message << response.result.string();
|
message << response.result.string();
|
||||||
if (response.result.native() == Steinberg::kResultOk) {
|
if (response.result == Steinberg::kResultOk) {
|
||||||
message << ", <IBStream* containing "
|
message << ", <IBStream* containing "
|
||||||
<< response.updated_state.size() << " bytes>";
|
<< response.updated_state.size() << " bytes>";
|
||||||
}
|
}
|
||||||
@@ -268,7 +268,7 @@ void Vst3Logger::log_response(
|
|||||||
const YaComponent::GetBusArrangementResponse& response) {
|
const YaComponent::GetBusArrangementResponse& response) {
|
||||||
log_response_base(is_host_vst, [&](auto& message) {
|
log_response_base(is_host_vst, [&](auto& message) {
|
||||||
message << response.result.string();
|
message << response.result.string();
|
||||||
if (response.result.native() == Steinberg::kResultOk) {
|
if (response.result == Steinberg::kResultOk) {
|
||||||
message << ", <SpeakerArrangement>";
|
message << ", <SpeakerArrangement>";
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ UniversalTResult::UniversalTResult() : universal_result(Value::kResultFalse) {}
|
|||||||
UniversalTResult::UniversalTResult(tresult native_result)
|
UniversalTResult::UniversalTResult(tresult native_result)
|
||||||
: universal_result(to_universal_result(native_result)) {}
|
: universal_result(to_universal_result(native_result)) {}
|
||||||
|
|
||||||
tresult UniversalTResult::native() const {
|
UniversalTResult::operator tresult() const {
|
||||||
static_assert(Steinberg::kResultOk == Steinberg::kResultTrue);
|
static_assert(Steinberg::kResultOk == Steinberg::kResultTrue);
|
||||||
switch (universal_result) {
|
switch (universal_result) {
|
||||||
case Value::kNoInterface:
|
case Value::kNoInterface:
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ class UniversalTResult {
|
|||||||
/**
|
/**
|
||||||
* Get the native equivalent for the wrapped `tresult` value.
|
* Get the native equivalent for the wrapped `tresult` value.
|
||||||
*/
|
*/
|
||||||
tresult native() const;
|
operator tresult() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the original name for the result, e.g. `kResultOk`.
|
* Get the original name for the result, e.g. `kResultOk`.
|
||||||
|
|||||||
@@ -58,27 +58,21 @@ tresult PLUGIN_API YaComponentPluginImpl::initialize(FUnknown* context) {
|
|||||||
context ? std::optional(context->iid) : std::nullopt);
|
context ? std::optional(context->iid) : std::nullopt);
|
||||||
}
|
}
|
||||||
|
|
||||||
return bridge
|
return bridge.send_message(
|
||||||
.send_message(YaComponent::Initialize{
|
YaComponent::Initialize{.instance_id = arguments.instance_id,
|
||||||
.instance_id = arguments.instance_id,
|
.host_application_context_args =
|
||||||
.host_application_context_args =
|
std::move(host_application_context_args)});
|
||||||
std::move(host_application_context_args)})
|
|
||||||
.native();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API YaComponentPluginImpl::terminate() {
|
tresult PLUGIN_API YaComponentPluginImpl::terminate() {
|
||||||
return bridge
|
return bridge.send_message(
|
||||||
.send_message(
|
YaComponent::Terminate{.instance_id = arguments.instance_id});
|
||||||
YaComponent::Terminate{.instance_id = arguments.instance_id})
|
|
||||||
.native();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API
|
tresult PLUGIN_API
|
||||||
YaComponentPluginImpl::setIoMode(Steinberg::Vst::IoMode mode) {
|
YaComponentPluginImpl::setIoMode(Steinberg::Vst::IoMode mode) {
|
||||||
return bridge
|
return bridge.send_message(YaComponent::SetIoMode{
|
||||||
.send_message(YaComponent::SetIoMode{
|
.instance_id = arguments.instance_id, .mode = mode});
|
||||||
.instance_id = arguments.instance_id, .mode = mode})
|
|
||||||
.native();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int32 PLUGIN_API
|
int32 PLUGIN_API
|
||||||
@@ -101,7 +95,7 @@ YaComponentPluginImpl::getBusInfo(Steinberg::Vst::MediaType type,
|
|||||||
.bus = bus});
|
.bus = bus});
|
||||||
|
|
||||||
bus = response.updated_bus;
|
bus = response.updated_bus;
|
||||||
return response.result.native();
|
return response.result;
|
||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API YaComponentPluginImpl::getRoutingInfo(
|
tresult PLUGIN_API YaComponentPluginImpl::getRoutingInfo(
|
||||||
@@ -114,7 +108,7 @@ tresult PLUGIN_API YaComponentPluginImpl::getRoutingInfo(
|
|||||||
|
|
||||||
inInfo = response.updated_in_info;
|
inInfo = response.updated_in_info;
|
||||||
outInfo = response.updated_out_info;
|
outInfo = response.updated_out_info;
|
||||||
return response.result.native();
|
return response.result;
|
||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API
|
tresult PLUGIN_API
|
||||||
@@ -122,28 +116,22 @@ YaComponentPluginImpl::activateBus(Steinberg::Vst::MediaType type,
|
|||||||
Steinberg::Vst::BusDirection dir,
|
Steinberg::Vst::BusDirection dir,
|
||||||
int32 index,
|
int32 index,
|
||||||
TBool state) {
|
TBool state) {
|
||||||
return bridge
|
return bridge.send_message(
|
||||||
.send_message(
|
YaComponent::ActivateBus{.instance_id = arguments.instance_id,
|
||||||
YaComponent::ActivateBus{.instance_id = arguments.instance_id,
|
.type = type,
|
||||||
.type = type,
|
.dir = dir,
|
||||||
.dir = dir,
|
.index = index,
|
||||||
.index = index,
|
.state = state});
|
||||||
.state = state})
|
|
||||||
.native();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API YaComponentPluginImpl::setActive(TBool state) {
|
tresult PLUGIN_API YaComponentPluginImpl::setActive(TBool state) {
|
||||||
return bridge
|
return bridge.send_message(YaComponent::SetActive{
|
||||||
.send_message(YaComponent::SetActive{
|
.instance_id = arguments.instance_id, .state = state});
|
||||||
.instance_id = arguments.instance_id, .state = state})
|
|
||||||
.native();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API YaComponentPluginImpl::setState(Steinberg::IBStream* state) {
|
tresult PLUGIN_API YaComponentPluginImpl::setState(Steinberg::IBStream* state) {
|
||||||
return bridge
|
return bridge.send_message(YaComponent::SetState{
|
||||||
.send_message(YaComponent::SetState{
|
.instance_id = arguments.instance_id, .state = state});
|
||||||
.instance_id = arguments.instance_id, .state = state})
|
|
||||||
.native();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API YaComponentPluginImpl::getState(Steinberg::IBStream* state) {
|
tresult PLUGIN_API YaComponentPluginImpl::getState(Steinberg::IBStream* state) {
|
||||||
@@ -152,7 +140,7 @@ tresult PLUGIN_API YaComponentPluginImpl::getState(Steinberg::IBStream* state) {
|
|||||||
|
|
||||||
assert(response.updated_state.write_back(state) == Steinberg::kResultOk);
|
assert(response.updated_state.write_back(state) == Steinberg::kResultOk);
|
||||||
|
|
||||||
return response.result.native();
|
return response.result;
|
||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API YaComponentPluginImpl::setBusArrangements(
|
tresult PLUGIN_API YaComponentPluginImpl::setBusArrangements(
|
||||||
@@ -161,17 +149,15 @@ tresult PLUGIN_API YaComponentPluginImpl::setBusArrangements(
|
|||||||
Steinberg::Vst::SpeakerArrangement* outputs,
|
Steinberg::Vst::SpeakerArrangement* outputs,
|
||||||
int32 numOuts) {
|
int32 numOuts) {
|
||||||
assert(inputs && outputs);
|
assert(inputs && outputs);
|
||||||
return bridge
|
return bridge.send_message(YaComponent::SetBusArrangements{
|
||||||
.send_message(YaComponent::SetBusArrangements{
|
.instance_id = arguments.instance_id,
|
||||||
.instance_id = arguments.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,
|
.outputs = std::vector<Steinberg::Vst::SpeakerArrangement>(
|
||||||
.outputs = std::vector<Steinberg::Vst::SpeakerArrangement>(
|
outputs, &outputs[numOuts]),
|
||||||
outputs, &outputs[numOuts]),
|
.num_outs = numOuts,
|
||||||
.num_outs = numOuts,
|
});
|
||||||
})
|
|
||||||
.native();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API YaComponentPluginImpl::getBusArrangement(
|
tresult PLUGIN_API YaComponentPluginImpl::getBusArrangement(
|
||||||
@@ -186,16 +172,14 @@ tresult PLUGIN_API YaComponentPluginImpl::getBusArrangement(
|
|||||||
|
|
||||||
arr = response.updated_arr;
|
arr = response.updated_arr;
|
||||||
|
|
||||||
return response.result.native();
|
return response.result;
|
||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API
|
tresult PLUGIN_API
|
||||||
YaComponentPluginImpl::canProcessSampleSize(int32 symbolicSampleSize) {
|
YaComponentPluginImpl::canProcessSampleSize(int32 symbolicSampleSize) {
|
||||||
return bridge
|
return bridge.send_message(YaComponent::CanProcessSampleSize{
|
||||||
.send_message(YaComponent::CanProcessSampleSize{
|
.instance_id = arguments.instance_id,
|
||||||
.instance_id = arguments.instance_id,
|
.symbolic_sample_size = symbolicSampleSize});
|
||||||
.symbolic_sample_size = symbolicSampleSize})
|
|
||||||
.native();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 PLUGIN_API YaComponentPluginImpl::getLatencySamples() {
|
uint32 PLUGIN_API YaComponentPluginImpl::getLatencySamples() {
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ YaPluginFactoryPluginImpl::createInstance(Steinberg::FIDString cid,
|
|||||||
new YaComponentPluginImpl(bridge, std::move(args)));
|
new YaComponentPluginImpl(bridge, std::move(args)));
|
||||||
return Steinberg::kResultOk;
|
return Steinberg::kResultOk;
|
||||||
},
|
},
|
||||||
[&](const UniversalTResult& code) { return code.native(); }},
|
[&](const UniversalTResult& code) -> tresult { return code; }},
|
||||||
std::move(result));
|
std::move(result));
|
||||||
} else {
|
} else {
|
||||||
// When the host requests an interface we do not (yet) implement, we'll
|
// When the host requests an interface we do not (yet) implement, we'll
|
||||||
@@ -81,11 +81,9 @@ YaPluginFactoryPluginImpl::setHostContext(Steinberg::FUnknown* context) {
|
|||||||
YaHostApplication::ConstructArgs host_application_context_args(
|
YaHostApplication::ConstructArgs host_application_context_args(
|
||||||
host_application_context, std::nullopt);
|
host_application_context, std::nullopt);
|
||||||
|
|
||||||
return bridge
|
return bridge.send_message(YaPluginFactory::SetHostContext{
|
||||||
.send_message(YaPluginFactory::SetHostContext{
|
.host_application_context_args =
|
||||||
.host_application_context_args =
|
std::move(host_application_context_args)});
|
||||||
std::move(host_application_context_args)})
|
|
||||||
.native();
|
|
||||||
} else {
|
} else {
|
||||||
bridge.logger.log_unknown_interface(
|
bridge.logger.log_unknown_interface(
|
||||||
"In IPluginFactory3::setHostContext(), ignoring",
|
"In IPluginFactory3::setHostContext(), ignoring",
|
||||||
|
|||||||
Reference in New Issue
Block a user