From daf8d467f7e68db54439264660a42925b623d7ac Mon Sep 17 00:00:00 2001 From: falkTX Date: Fri, 30 Dec 2022 15:52:52 +0000 Subject: [PATCH] Fix mini variant param message for non-english locales Signed-off-by: falkTX --- src/CardinalPlugin.cpp | 6 +++++- src/CardinalRemote.cpp | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/CardinalPlugin.cpp b/src/CardinalPlugin.cpp index 37cf847..905cc61 100644 --- a/src/CardinalPlugin.cpp +++ b/src/CardinalPlugin.cpp @@ -44,6 +44,7 @@ #include "DistrhoPluginUtils.hpp" #include "PluginContext.hpp" #include "extra/Base64.hpp" +#include "extra/ScopedSafeLocale.hpp" #ifdef DISTRHO_OS_WASM # include @@ -841,7 +842,10 @@ protected: long long moduleId = 0; int paramId = 0; float paramValue = 0.f; - std::sscanf(value, "%lld:%d:%f", &moduleId, ¶mId, ¶mValue); + { + const ScopedSafeLocale cssl; + std::sscanf(value, "%lld:%d:%f", &moduleId, ¶mId, ¶mValue); + } rack::engine::Module* const module = context->engine->getModule(moduleId); DISTRHO_SAFE_ASSERT_RETURN(module != nullptr,); diff --git a/src/CardinalRemote.cpp b/src/CardinalRemote.cpp index 3c2173c..c1313c2 100644 --- a/src/CardinalRemote.cpp +++ b/src/CardinalRemote.cpp @@ -26,6 +26,7 @@ #include "CardinalRemote.hpp" #include "PluginContext.hpp" #include "extra/Base64.hpp" +#include "extra/ScopedSafeLocale.hpp" #if defined(STATIC_BUILD) || CARDINAL_VARIANT_MINI # undef HAVE_LIBLO @@ -139,7 +140,10 @@ void sendParamChangeToRemote(RemoteDetails* const remote, int64_t moduleId, int { #if CARDINAL_VARIANT_MINI char paramBuf[512] = {}; - std::snprintf(paramBuf, sizeof(paramBuf), "%lld:%d:%f", (long long)moduleId, paramId, value); + { + const ScopedSafeLocale cssl; + std::snprintf(paramBuf, sizeof(paramBuf), "%lld:%d:%f", (long long)moduleId, paramId, value); + } static_cast(remote->handle)->setState("param", paramBuf); #elif defined(HAVE_LIBLO) const lo_address addr = lo_address_new_with_proto(LO_UDP, REMOTE_HOST, CARDINAL_DEFAULT_REMOTE_HOST_PORT);