mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-10 04:30:12 +02:00
Don't log responses for filtered out requests
This commit is contained in:
@@ -106,9 +106,13 @@ class Vst3MessageHandler : public AdHocSocketHandler<Thread> {
|
|||||||
std::optional<std::pair<Vst3Logger&, bool>> logging) {
|
std::optional<std::pair<Vst3Logger&, bool>> logging) {
|
||||||
using TResponse = typename T::Response;
|
using TResponse = typename T::Response;
|
||||||
|
|
||||||
|
// Since a lot of messages just return a `tresult`, we can't filter out
|
||||||
|
// responses based on the response message type. Instead, we'll just
|
||||||
|
// only print the responses when the request was not filtered out.
|
||||||
|
bool should_log_response = false;
|
||||||
if (logging) {
|
if (logging) {
|
||||||
auto [logger, is_host_vst] = *logging;
|
auto [logger, is_host_vst] = *logging;
|
||||||
logger.log_request(is_host_vst, object);
|
should_log_response = logger.log_request(is_host_vst, object);
|
||||||
}
|
}
|
||||||
|
|
||||||
// A socket only handles a single request at a time as to prevent
|
// A socket only handles a single request at a time as to prevent
|
||||||
@@ -125,7 +129,7 @@ class Vst3MessageHandler : public AdHocSocketHandler<Thread> {
|
|||||||
return std::monostate{};
|
return std::monostate{};
|
||||||
});
|
});
|
||||||
|
|
||||||
if (logging) {
|
if (should_log_response) {
|
||||||
auto [logger, is_host_vst] = *logging;
|
auto [logger, is_host_vst] = *logging;
|
||||||
logger.log_response(!is_host_vst, response_object);
|
logger.log_response(!is_host_vst, response_object);
|
||||||
}
|
}
|
||||||
@@ -165,11 +169,14 @@ class Vst3MessageHandler : public AdHocSocketHandler<Thread> {
|
|||||||
const auto process_message =
|
const auto process_message =
|
||||||
[&](boost::asio::local::stream_protocol::socket& socket) {
|
[&](boost::asio::local::stream_protocol::socket& socket) {
|
||||||
auto request = read_object<Request>(socket);
|
auto request = read_object<Request>(socket);
|
||||||
|
|
||||||
|
// See the comment in `receive_into()` for more information
|
||||||
|
bool should_log_response = false;
|
||||||
if (logging) {
|
if (logging) {
|
||||||
std::visit(
|
should_log_response = std::visit(
|
||||||
[&](const auto& object) {
|
[&](const auto& object) {
|
||||||
auto [logger, is_host_vst] = *logging;
|
auto [logger, is_host_vst] = *logging;
|
||||||
logger.log_request(is_host_vst, object);
|
return logger.log_request(is_host_vst, object);
|
||||||
},
|
},
|
||||||
request);
|
request);
|
||||||
}
|
}
|
||||||
@@ -181,7 +188,7 @@ class Vst3MessageHandler : public AdHocSocketHandler<Thread> {
|
|||||||
[&]<typename T>(T object) {
|
[&]<typename T>(T object) {
|
||||||
typename T::Response response = callback(object);
|
typename T::Response response = callback(object);
|
||||||
|
|
||||||
if (logging) {
|
if (should_log_response) {
|
||||||
auto [logger, is_host_vst] = *logging;
|
auto [logger, is_host_vst] = *logging;
|
||||||
logger.log_response(!is_host_vst, response);
|
logger.log_response(!is_host_vst, response);
|
||||||
}
|
}
|
||||||
|
|||||||
+74
-76
@@ -35,9 +35,9 @@ void Vst3Logger::log_unknown_interface(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(bool is_host_vst,
|
bool Vst3Logger::log_request(bool is_host_vst,
|
||||||
const Vst3PluginProxy::Construct& request) {
|
const Vst3PluginProxy::Construct& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message << "IPluginFactory::createComponent(cid = "
|
message << "IPluginFactory::createComponent(cid = "
|
||||||
<< format_uid(Steinberg::FUID::fromTUID(request.cid.data()))
|
<< format_uid(Steinberg::FUID::fromTUID(request.cid.data()))
|
||||||
<< ", _iid = ";
|
<< ", _iid = ";
|
||||||
@@ -53,18 +53,18 @@ void Vst3Logger::log_request(bool is_host_vst,
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(bool is_host_vst,
|
bool Vst3Logger::log_request(bool is_host_vst,
|
||||||
const Vst3PluginProxy::Destruct& request) {
|
const Vst3PluginProxy::Destruct& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
// We don't know what class this instance was originally instantiated
|
// We don't know what class this instance was originally instantiated
|
||||||
// as, but it also doesn't really matter
|
// as, but it also doesn't really matter
|
||||||
message << request.instance_id << ": FUnknown::~FUnknown()";
|
message << request.instance_id << ": FUnknown::~FUnknown()";
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(bool is_host_vst,
|
bool Vst3Logger::log_request(bool is_host_vst,
|
||||||
const Vst3PluginProxy::SetState& request) {
|
const Vst3PluginProxy::SetState& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message << request.instance_id
|
message << request.instance_id
|
||||||
<< ": {IComponent,IEditController}::setState(state = "
|
<< ": {IComponent,IEditController}::setState(state = "
|
||||||
"<IBStream* containing "
|
"<IBStream* containing "
|
||||||
@@ -72,19 +72,19 @@ void Vst3Logger::log_request(bool is_host_vst,
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(bool is_host_vst,
|
bool Vst3Logger::log_request(bool is_host_vst,
|
||||||
const Vst3PluginProxy::GetState& request) {
|
const Vst3PluginProxy::GetState& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message
|
message
|
||||||
<< request.instance_id
|
<< request.instance_id
|
||||||
<< ": {IComponent,IEditController}::getState(state = <IBStream*>)";
|
<< ": {IComponent,IEditController}::getState(state = <IBStream*>)";
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(
|
bool Vst3Logger::log_request(
|
||||||
bool is_host_vst,
|
bool is_host_vst,
|
||||||
const YaAudioProcessor::SetBusArrangements& request) {
|
const YaAudioProcessor::SetBusArrangements& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message << request.instance_id
|
message << request.instance_id
|
||||||
<< ": IAudioProcessor::setBusArrangements(inputs = "
|
<< ": IAudioProcessor::setBusArrangements(inputs = "
|
||||||
"[SpeakerArrangement; "
|
"[SpeakerArrangement; "
|
||||||
@@ -94,20 +94,20 @@ void Vst3Logger::log_request(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(
|
bool Vst3Logger::log_request(
|
||||||
bool is_host_vst,
|
bool is_host_vst,
|
||||||
const YaAudioProcessor::GetBusArrangement& request) {
|
const YaAudioProcessor::GetBusArrangement& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message << request.instance_id
|
message << request.instance_id
|
||||||
<< ": IAudioProcessor::getBusArrangement(dir = " << request.dir
|
<< ": IAudioProcessor::getBusArrangement(dir = " << request.dir
|
||||||
<< ", index = " << request.index << ", &arr)";
|
<< ", index = " << request.index << ", &arr)";
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(
|
bool Vst3Logger::log_request(
|
||||||
bool is_host_vst,
|
bool is_host_vst,
|
||||||
const YaAudioProcessor::CanProcessSampleSize& request) {
|
const YaAudioProcessor::CanProcessSampleSize& request) {
|
||||||
log_request_base(
|
return log_request_base(
|
||||||
is_host_vst, Logger::Verbosity::all_events, [&](auto& message) {
|
is_host_vst, Logger::Verbosity::all_events, [&](auto& message) {
|
||||||
message
|
message
|
||||||
<< request.instance_id
|
<< request.instance_id
|
||||||
@@ -117,18 +117,18 @@ void Vst3Logger::log_request(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(
|
bool Vst3Logger::log_request(
|
||||||
bool is_host_vst,
|
bool is_host_vst,
|
||||||
const YaAudioProcessor::GetLatencySamples& request) {
|
const YaAudioProcessor::GetLatencySamples& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message << request.instance_id
|
message << request.instance_id
|
||||||
<< ": IAudioProcessor::getLatencySamples()";
|
<< ": IAudioProcessor::getLatencySamples()";
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(bool is_host_vst,
|
bool Vst3Logger::log_request(bool is_host_vst,
|
||||||
const YaAudioProcessor::SetupProcessing& request) {
|
const YaAudioProcessor::SetupProcessing& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message << request.instance_id
|
message << request.instance_id
|
||||||
<< ": IAudioProcessor::setupProcessing(setup = "
|
<< ": IAudioProcessor::setupProcessing(setup = "
|
||||||
"<SetupProcessing with mode = "
|
"<SetupProcessing with mode = "
|
||||||
@@ -139,18 +139,18 @@ void Vst3Logger::log_request(bool is_host_vst,
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(bool is_host_vst,
|
bool Vst3Logger::log_request(bool is_host_vst,
|
||||||
const YaAudioProcessor::SetProcessing& request) {
|
const YaAudioProcessor::SetProcessing& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message << request.instance_id
|
message << request.instance_id
|
||||||
<< ": IAudioProcessor::setProcessing(state = "
|
<< ": IAudioProcessor::setProcessing(state = "
|
||||||
<< (request.state ? "true" : "false") << ")";
|
<< (request.state ? "true" : "false") << ")";
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(bool is_host_vst,
|
bool Vst3Logger::log_request(bool is_host_vst,
|
||||||
const YaAudioProcessor::Process& request) {
|
const YaAudioProcessor::Process& request) {
|
||||||
log_request_base(
|
return log_request_base(
|
||||||
is_host_vst, Logger::Verbosity::all_events, [&](auto& message) {
|
is_host_vst, Logger::Verbosity::all_events, [&](auto& message) {
|
||||||
// This is incredibly verbose, but if you're really a plugin that
|
// This is incredibly verbose, but if you're really a plugin that
|
||||||
// handles processing in a weird way you're going to need all of
|
// handles processing in a weird way you're going to need all of
|
||||||
@@ -207,35 +207,35 @@ void Vst3Logger::log_request(bool is_host_vst,
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(bool is_host_vst,
|
bool Vst3Logger::log_request(bool is_host_vst,
|
||||||
const YaAudioProcessor::GetTailSamples& request) {
|
const YaAudioProcessor::GetTailSamples& request) {
|
||||||
log_request_base(is_host_vst, Logger::Verbosity::all_events,
|
return log_request_base(
|
||||||
[&](auto& message) {
|
is_host_vst, Logger::Verbosity::all_events, [&](auto& message) {
|
||||||
message << request.instance_id
|
message << request.instance_id
|
||||||
<< ": IAudioProcessor::getTailSamples()";
|
<< ": IAudioProcessor::getTailSamples()";
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(bool is_host_vst,
|
bool Vst3Logger::log_request(bool is_host_vst,
|
||||||
const YaComponent::SetIoMode& request) {
|
const YaComponent::SetIoMode& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message << request.instance_id
|
message << request.instance_id
|
||||||
<< ": IComponent::setIoMode(mode = " << request.mode << ")";
|
<< ": IComponent::setIoMode(mode = " << request.mode << ")";
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(bool is_host_vst,
|
bool Vst3Logger::log_request(bool is_host_vst,
|
||||||
const YaComponent::GetBusCount& request) {
|
const YaComponent::GetBusCount& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message << request.instance_id
|
message << request.instance_id
|
||||||
<< ": IComponent::getBusCount(type = " << request.type
|
<< ": IComponent::getBusCount(type = " << request.type
|
||||||
<< ", dir = " << request.dir << ")";
|
<< ", dir = " << request.dir << ")";
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(bool is_host_vst,
|
bool Vst3Logger::log_request(bool is_host_vst,
|
||||||
const YaComponent::GetBusInfo& request) {
|
const YaComponent::GetBusInfo& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message << request.instance_id
|
message << request.instance_id
|
||||||
<< ": IComponent::getBusInfo(type = " << request.type
|
<< ": IComponent::getBusInfo(type = " << request.type
|
||||||
<< ", dir = " << request.dir << ", index = " << request.index
|
<< ", dir = " << request.dir << ", index = " << request.index
|
||||||
@@ -243,9 +243,9 @@ void Vst3Logger::log_request(bool is_host_vst,
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(bool is_host_vst,
|
bool Vst3Logger::log_request(bool is_host_vst,
|
||||||
const YaComponent::GetRoutingInfo& request) {
|
const YaComponent::GetRoutingInfo& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message
|
message
|
||||||
<< request.instance_id
|
<< request.instance_id
|
||||||
<< ": IComponent::getRoutingInfo(inInfo = <RoutingInfo& for bus "
|
<< ": IComponent::getRoutingInfo(inInfo = <RoutingInfo& for bus "
|
||||||
@@ -256,9 +256,9 @@ void Vst3Logger::log_request(bool is_host_vst,
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(bool is_host_vst,
|
bool Vst3Logger::log_request(bool is_host_vst,
|
||||||
const YaComponent::ActivateBus& request) {
|
const YaComponent::ActivateBus& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message << request.instance_id
|
message << request.instance_id
|
||||||
<< ": IComponent::activateBus(type = " << request.type
|
<< ": IComponent::activateBus(type = " << request.type
|
||||||
<< ", dir = " << request.dir << ", index = " << request.index
|
<< ", dir = " << request.dir << ", index = " << request.index
|
||||||
@@ -266,36 +266,36 @@ void Vst3Logger::log_request(bool is_host_vst,
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(bool is_host_vst,
|
bool Vst3Logger::log_request(bool is_host_vst,
|
||||||
const YaComponent::SetActive& request) {
|
const YaComponent::SetActive& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message << request.instance_id << ": IComponent::setActive(state = "
|
message << request.instance_id << ": IComponent::setActive(state = "
|
||||||
<< (request.state ? "true" : "false") << ")";
|
<< (request.state ? "true" : "false") << ")";
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(bool is_host_vst,
|
bool Vst3Logger::log_request(bool is_host_vst,
|
||||||
const YaConnectionPoint::Connect& request) {
|
const YaConnectionPoint::Connect& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message << request.instance_id
|
message << request.instance_id
|
||||||
<< ": IConnectionPoint::connect(other = <IConnectionPoint* #"
|
<< ": IConnectionPoint::connect(other = <IConnectionPoint* #"
|
||||||
<< request.other_instance_id << ">)";
|
<< request.other_instance_id << ">)";
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(bool is_host_vst,
|
bool Vst3Logger::log_request(bool is_host_vst,
|
||||||
const YaConnectionPoint::Disconnect& request) {
|
const YaConnectionPoint::Disconnect& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message << request.instance_id
|
message << request.instance_id
|
||||||
<< ": IConnectionPoint::disconnect(other = <IConnectionPoint* #"
|
<< ": IConnectionPoint::disconnect(other = <IConnectionPoint* #"
|
||||||
<< request.other_instance_id << ">)";
|
<< request.other_instance_id << ">)";
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(
|
bool Vst3Logger::log_request(
|
||||||
bool is_host_vst,
|
bool is_host_vst,
|
||||||
const YaEditController2::SetComponentState& request) {
|
const YaEditController2::SetComponentState& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message << request.instance_id
|
message << request.instance_id
|
||||||
<< ": IEditController::setComponentState(state = <IBStream* "
|
<< ": IEditController::setComponentState(state = <IBStream* "
|
||||||
"containing "
|
"containing "
|
||||||
@@ -303,29 +303,29 @@ void Vst3Logger::log_request(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(
|
bool Vst3Logger::log_request(
|
||||||
bool is_host_vst,
|
bool is_host_vst,
|
||||||
const YaEditController2::GetParameterCount& request) {
|
const YaEditController2::GetParameterCount& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message << request.instance_id
|
message << request.instance_id
|
||||||
<< ": IEditController::getParameterCount()";
|
<< ": IEditController::getParameterCount()";
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(
|
bool Vst3Logger::log_request(
|
||||||
bool is_host_vst,
|
bool is_host_vst,
|
||||||
const YaEditController2::GetParameterInfo& request) {
|
const YaEditController2::GetParameterInfo& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message << request.instance_id
|
message << request.instance_id
|
||||||
<< ": IEditController::getParameterInfo(paramIndex = "
|
<< ": IEditController::getParameterInfo(paramIndex = "
|
||||||
<< request.param_index << ", &info)";
|
<< request.param_index << ", &info)";
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(
|
bool Vst3Logger::log_request(
|
||||||
bool is_host_vst,
|
bool is_host_vst,
|
||||||
const YaEditController2::GetParamStringByValue& request) {
|
const YaEditController2::GetParamStringByValue& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message << request.instance_id
|
message << request.instance_id
|
||||||
<< ": IEditController::getParamStringByValue(id = "
|
<< ": IEditController::getParamStringByValue(id = "
|
||||||
<< request.id
|
<< request.id
|
||||||
@@ -334,10 +334,10 @@ void Vst3Logger::log_request(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(
|
bool Vst3Logger::log_request(
|
||||||
bool is_host_vst,
|
bool is_host_vst,
|
||||||
const YaEditController2::GetParamValueByString& request) {
|
const YaEditController2::GetParamValueByString& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
std::string param_title = VST3::StringConvert::convert(request.string);
|
std::string param_title = VST3::StringConvert::convert(request.string);
|
||||||
message << request.instance_id
|
message << request.instance_id
|
||||||
<< ": IEditController::getParamValueByString(id = "
|
<< ": IEditController::getParamValueByString(id = "
|
||||||
@@ -346,10 +346,10 @@ void Vst3Logger::log_request(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(
|
bool Vst3Logger::log_request(
|
||||||
bool is_host_vst,
|
bool is_host_vst,
|
||||||
const YaEditController2::NormalizedParamToPlain& request) {
|
const YaEditController2::NormalizedParamToPlain& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message << request.instance_id
|
message << request.instance_id
|
||||||
<< ": IEditController::normalizedParamToPlain(id = "
|
<< ": IEditController::normalizedParamToPlain(id = "
|
||||||
<< request.id
|
<< request.id
|
||||||
@@ -357,10 +357,10 @@ void Vst3Logger::log_request(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(
|
bool Vst3Logger::log_request(
|
||||||
bool is_host_vst,
|
bool is_host_vst,
|
||||||
const YaEditController2::PlainParamToNormalized& request) {
|
const YaEditController2::PlainParamToNormalized& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message << request.instance_id
|
message << request.instance_id
|
||||||
<< ": IEditController::plainParamToNormalized(id = "
|
<< ": IEditController::plainParamToNormalized(id = "
|
||||||
<< request.id << ", plainValue = " << request.plain_value
|
<< request.id << ", plainValue = " << request.plain_value
|
||||||
@@ -368,29 +368,29 @@ void Vst3Logger::log_request(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(
|
bool Vst3Logger::log_request(
|
||||||
bool is_host_vst,
|
bool is_host_vst,
|
||||||
const YaEditController2::GetParamNormalized& request) {
|
const YaEditController2::GetParamNormalized& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message << request.instance_id
|
message << request.instance_id
|
||||||
<< ": IEditController::getParamNormalized(id = " << request.id
|
<< ": IEditController::getParamNormalized(id = " << request.id
|
||||||
<< ")";
|
<< ")";
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(
|
bool Vst3Logger::log_request(
|
||||||
bool is_host_vst,
|
bool is_host_vst,
|
||||||
const YaEditController2::SetParamNormalized& request) {
|
const YaEditController2::SetParamNormalized& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message << request.instance_id
|
message << request.instance_id
|
||||||
<< ": IEditController::setParamNormalized(id = " << request.id
|
<< ": IEditController::setParamNormalized(id = " << request.id
|
||||||
<< ", value = " << request.value << ")";
|
<< ", value = " << request.value << ")";
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(bool is_host_vst,
|
bool Vst3Logger::log_request(bool is_host_vst,
|
||||||
const YaPluginBase::Initialize& request) {
|
const YaPluginBase::Initialize& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message << request.instance_id
|
message << request.instance_id
|
||||||
<< ": IPluginBase::initialize(context = ";
|
<< ": IPluginBase::initialize(context = ";
|
||||||
if (request.host_application_context_args) {
|
if (request.host_application_context_args) {
|
||||||
@@ -402,28 +402,28 @@ void Vst3Logger::log_request(bool is_host_vst,
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(bool is_host_vst,
|
bool Vst3Logger::log_request(bool is_host_vst,
|
||||||
const YaPluginBase::Terminate& request) {
|
const YaPluginBase::Terminate& request) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message << request.instance_id << ": IPluginBase::terminate()";
|
message << request.instance_id << ": IPluginBase::terminate()";
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(bool is_host_vst,
|
bool Vst3Logger::log_request(bool is_host_vst,
|
||||||
const YaPluginFactory::Construct&) {
|
const YaPluginFactory::Construct&) {
|
||||||
log_request_base(is_host_vst,
|
return log_request_base(
|
||||||
[&](auto& message) { message << "GetPluginFactory()"; });
|
is_host_vst, [&](auto& message) { message << "GetPluginFactory()"; });
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(bool is_host_vst,
|
bool Vst3Logger::log_request(bool is_host_vst,
|
||||||
const YaPluginFactory::SetHostContext&) {
|
const YaPluginFactory::SetHostContext&) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message << "IPluginFactory3::setHostContext(IHostApplication*)";
|
message << "IPluginFactory3::setHostContext(IHostApplication*)";
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vst3Logger::log_request(bool is_host_vst, const WantsConfiguration&) {
|
bool Vst3Logger::log_request(bool is_host_vst, const WantsConfiguration&) {
|
||||||
log_request_base(is_host_vst, [&](auto& message) {
|
return log_request_base(is_host_vst, [&](auto& message) {
|
||||||
message << "Requesting <Configuration>";
|
message << "Requesting <Configuration>";
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -473,13 +473,11 @@ void Vst3Logger::log_response(
|
|||||||
void Vst3Logger::log_response(
|
void Vst3Logger::log_response(
|
||||||
bool is_host_vst,
|
bool is_host_vst,
|
||||||
const YaAudioProcessor::ProcessResponse& response) {
|
const YaAudioProcessor::ProcessResponse& response) {
|
||||||
log_response_base(
|
log_response_base(is_host_vst, [&](auto& message) {
|
||||||
is_host_vst, Logger::Verbosity::all_events, [&](auto& message) {
|
|
||||||
message << response.result.string();
|
message << response.result.string();
|
||||||
|
|
||||||
// This is incredibly verbose, but if you're really a plugin that
|
// This is incredibly verbose, but if you're really a plugin that
|
||||||
// handles processing in a weird way you're going to need all of
|
// handles processing in a weird way you're going to need all of this
|
||||||
// this
|
|
||||||
|
|
||||||
std::ostringstream num_output_channels;
|
std::ostringstream num_output_channels;
|
||||||
num_output_channels << "[";
|
num_output_channels << "[";
|
||||||
@@ -491,8 +489,8 @@ void Vst3Logger::log_response(
|
|||||||
}
|
}
|
||||||
num_output_channels << "]";
|
num_output_channels << "]";
|
||||||
|
|
||||||
message << ", <AudioBusBuffers array with "
|
message << ", <AudioBusBuffers array with " << num_output_channels.str()
|
||||||
<< num_output_channels.str() << " channels>";
|
<< " channels>";
|
||||||
|
|
||||||
if (response.output_data.output_parameter_changes) {
|
if (response.output_data.output_parameter_changes) {
|
||||||
message << ", <IParameterChanges* for "
|
message << ", <IParameterChanges* for "
|
||||||
|
|||||||
+51
-51
@@ -55,55 +55,58 @@ class Vst3Logger {
|
|||||||
// that print information about the request and the response. The boolean
|
// that print information about the request and the response. The boolean
|
||||||
// flag here indicates whether the request was initiated on the host side
|
// flag here indicates whether the request was initiated on the host side
|
||||||
// (what we'll call a control message).
|
// (what we'll call a control message).
|
||||||
|
// `log_response()` should only be called if the corresponding
|
||||||
|
// `log_request()` call returned `true`. This way we can filter out the
|
||||||
|
// log message for the response together with the request.
|
||||||
|
|
||||||
void log_request(bool is_host_vst, const Vst3PluginProxy::Construct&);
|
bool log_request(bool is_host_vst, const Vst3PluginProxy::Construct&);
|
||||||
void log_request(bool is_host_vst, const Vst3PluginProxy::Destruct&);
|
bool log_request(bool is_host_vst, const Vst3PluginProxy::Destruct&);
|
||||||
void log_request(bool is_host_vst, const Vst3PluginProxy::SetState&);
|
bool log_request(bool is_host_vst, const Vst3PluginProxy::SetState&);
|
||||||
void log_request(bool is_host_vst, const Vst3PluginProxy::GetState&);
|
bool log_request(bool is_host_vst, const Vst3PluginProxy::GetState&);
|
||||||
void log_request(bool is_host_vst,
|
bool log_request(bool is_host_vst,
|
||||||
const YaAudioProcessor::SetBusArrangements&);
|
const YaAudioProcessor::SetBusArrangements&);
|
||||||
void log_request(bool is_host_vst,
|
bool log_request(bool is_host_vst,
|
||||||
const YaAudioProcessor::GetBusArrangement&);
|
const YaAudioProcessor::GetBusArrangement&);
|
||||||
void log_request(bool is_host_vst,
|
bool log_request(bool is_host_vst,
|
||||||
const YaAudioProcessor::CanProcessSampleSize&);
|
const YaAudioProcessor::CanProcessSampleSize&);
|
||||||
void log_request(bool is_host_vst,
|
bool log_request(bool is_host_vst,
|
||||||
const YaAudioProcessor::GetLatencySamples&);
|
const YaAudioProcessor::GetLatencySamples&);
|
||||||
void log_request(bool is_host_vst,
|
bool log_request(bool is_host_vst,
|
||||||
const YaAudioProcessor::SetupProcessing&);
|
const YaAudioProcessor::SetupProcessing&);
|
||||||
void log_request(bool is_host_vst, const YaAudioProcessor::SetProcessing&);
|
bool log_request(bool is_host_vst, const YaAudioProcessor::SetProcessing&);
|
||||||
void log_request(bool is_host_vst, const YaAudioProcessor::Process&);
|
bool log_request(bool is_host_vst, const YaAudioProcessor::Process&);
|
||||||
void log_request(bool is_host_vst, const YaAudioProcessor::GetTailSamples&);
|
bool log_request(bool is_host_vst, const YaAudioProcessor::GetTailSamples&);
|
||||||
void log_request(bool is_host_vst, const YaComponent::SetIoMode&);
|
bool log_request(bool is_host_vst, const YaComponent::SetIoMode&);
|
||||||
void log_request(bool is_host_vst, const YaComponent::GetBusCount&);
|
bool log_request(bool is_host_vst, const YaComponent::GetBusCount&);
|
||||||
void log_request(bool is_host_vst, const YaComponent::GetBusInfo&);
|
bool log_request(bool is_host_vst, const YaComponent::GetBusInfo&);
|
||||||
void log_request(bool is_host_vst, const YaComponent::GetRoutingInfo&);
|
bool log_request(bool is_host_vst, const YaComponent::GetRoutingInfo&);
|
||||||
void log_request(bool is_host_vst, const YaComponent::ActivateBus&);
|
bool log_request(bool is_host_vst, const YaComponent::ActivateBus&);
|
||||||
void log_request(bool is_host_vst, const YaComponent::SetActive&);
|
bool log_request(bool is_host_vst, const YaComponent::SetActive&);
|
||||||
void log_request(bool is_host_vst, const YaConnectionPoint::Connect&);
|
bool log_request(bool is_host_vst, const YaConnectionPoint::Connect&);
|
||||||
void log_request(bool is_host_vst, const YaConnectionPoint::Disconnect&);
|
bool log_request(bool is_host_vst, const YaConnectionPoint::Disconnect&);
|
||||||
void log_request(bool is_host_vst,
|
bool log_request(bool is_host_vst,
|
||||||
const YaEditController2::SetComponentState&);
|
const YaEditController2::SetComponentState&);
|
||||||
void log_request(bool is_host_vst,
|
bool log_request(bool is_host_vst,
|
||||||
const YaEditController2::GetParameterCount&);
|
const YaEditController2::GetParameterCount&);
|
||||||
void log_request(bool is_host_vst,
|
bool log_request(bool is_host_vst,
|
||||||
const YaEditController2::GetParameterInfo&);
|
const YaEditController2::GetParameterInfo&);
|
||||||
void log_request(bool is_host_vst,
|
bool log_request(bool is_host_vst,
|
||||||
const YaEditController2::GetParamStringByValue&);
|
const YaEditController2::GetParamStringByValue&);
|
||||||
void log_request(bool is_host_vst,
|
bool log_request(bool is_host_vst,
|
||||||
const YaEditController2::GetParamValueByString&);
|
const YaEditController2::GetParamValueByString&);
|
||||||
void log_request(bool is_host_vst,
|
bool log_request(bool is_host_vst,
|
||||||
const YaEditController2::NormalizedParamToPlain&);
|
const YaEditController2::NormalizedParamToPlain&);
|
||||||
void log_request(bool is_host_vst,
|
bool log_request(bool is_host_vst,
|
||||||
const YaEditController2::PlainParamToNormalized&);
|
const YaEditController2::PlainParamToNormalized&);
|
||||||
void log_request(bool is_host_vst,
|
bool log_request(bool is_host_vst,
|
||||||
const YaEditController2::GetParamNormalized&);
|
const YaEditController2::GetParamNormalized&);
|
||||||
void log_request(bool is_host_vst,
|
bool log_request(bool is_host_vst,
|
||||||
const YaEditController2::SetParamNormalized&);
|
const YaEditController2::SetParamNormalized&);
|
||||||
void log_request(bool is_host_vst, const YaPluginBase::Initialize&);
|
bool log_request(bool is_host_vst, const YaPluginBase::Initialize&);
|
||||||
void log_request(bool is_host_vst, const YaPluginBase::Terminate&);
|
bool log_request(bool is_host_vst, const YaPluginBase::Terminate&);
|
||||||
void log_request(bool is_host_vst, const YaPluginFactory::Construct&);
|
bool log_request(bool is_host_vst, const YaPluginFactory::Construct&);
|
||||||
void log_request(bool is_host_vst, const YaPluginFactory::SetHostContext&);
|
bool log_request(bool is_host_vst, const YaPluginFactory::SetHostContext&);
|
||||||
void log_request(bool is_host_vst, const WantsConfiguration&);
|
bool log_request(bool is_host_vst, const WantsConfiguration&);
|
||||||
|
|
||||||
void log_response(bool is_host_vst, const Ack&);
|
void log_response(bool is_host_vst, const Ack&);
|
||||||
void log_response(
|
void log_response(
|
||||||
@@ -141,12 +144,11 @@ class Vst3Logger {
|
|||||||
* Log a request with a standard prefix based on the boolean flag we pass to
|
* Log a request with a standard prefix based on the boolean flag we pass to
|
||||||
* every logging function so we don't have to repeat it everywhere.
|
* every logging function so we don't have to repeat it everywhere.
|
||||||
*
|
*
|
||||||
* TODO: Make these logging messages return a boolean based on whether or
|
* Returns `true` if the log message was displayed, and the response should
|
||||||
* not it was filtered out. Don't show the responses for filtered out
|
* thus also be logged.
|
||||||
* messages.
|
|
||||||
*/
|
*/
|
||||||
template <std::invocable<std::ostringstream&> F>
|
template <std::invocable<std::ostringstream&> F>
|
||||||
void log_request_base(bool is_host_vst,
|
bool log_request_base(bool is_host_vst,
|
||||||
Logger::Verbosity min_verbosity,
|
Logger::Verbosity min_verbosity,
|
||||||
F callback) {
|
F callback) {
|
||||||
if (BOOST_UNLIKELY(logger.verbosity >= min_verbosity)) {
|
if (BOOST_UNLIKELY(logger.verbosity >= min_verbosity)) {
|
||||||
@@ -159,23 +161,28 @@ class Vst3Logger {
|
|||||||
|
|
||||||
callback(message);
|
callback(message);
|
||||||
log(message.str());
|
log(message.str());
|
||||||
|
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template <std::invocable<std::ostringstream&> F>
|
template <std::invocable<std::ostringstream&> F>
|
||||||
void log_request_base(bool is_host_vst, F callback) {
|
bool log_request_base(bool is_host_vst, F callback) {
|
||||||
log_request_base(is_host_vst, Logger::Verbosity::most_events, callback);
|
return log_request_base(is_host_vst, Logger::Verbosity::most_events,
|
||||||
|
callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Log a response with a standard prefix based on the boolean flag we pass
|
* Log a response with a standard prefix based on the boolean flag we pass
|
||||||
* to every logging function so we don't have to repeat it everywhere.
|
* to every logging function so we don't have to repeat it everywhere.
|
||||||
|
*
|
||||||
|
* This should only be called when the corresonding `log_request()` returned
|
||||||
|
* `true`.
|
||||||
*/
|
*/
|
||||||
template <std::invocable<std::ostringstream&> F>
|
template <std::invocable<std::ostringstream&> F>
|
||||||
void log_response_base(bool is_host_vst,
|
void log_response_base(bool is_host_vst, F callback) {
|
||||||
Logger::Verbosity min_verbosity,
|
|
||||||
F callback) {
|
|
||||||
if (BOOST_UNLIKELY(logger.verbosity >= min_verbosity)) {
|
|
||||||
std::ostringstream message;
|
std::ostringstream message;
|
||||||
if (is_host_vst) {
|
if (is_host_vst) {
|
||||||
message << "[host -> vst] ";
|
message << "[host -> vst] ";
|
||||||
@@ -186,11 +193,4 @@ class Vst3Logger {
|
|||||||
callback(message);
|
callback(message);
|
||||||
log(message.str());
|
log(message.str());
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
template <std::invocable<std::ostringstream&> F>
|
|
||||||
void log_response_base(bool is_host_vst, F callback) {
|
|
||||||
log_response_base(is_host_vst, Logger::Verbosity::most_events,
|
|
||||||
callback);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user