From d9a3866299bc43c5139e8812ba8c2dbfc4ece343 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Tue, 14 Aug 2018 23:49:43 +0200 Subject: [PATCH] Add a locale-independent float/double format Lua method print(ARDOUR.LuaAPI.ascii_dtostr(1.5)) --- libs/ardour/ardour/lua_api.h | 4 ++++ libs/ardour/lua_api.cc | 8 ++++++++ libs/ardour/luabindings.cc | 1 + 3 files changed, 13 insertions(+) diff --git a/libs/ardour/ardour/lua_api.h b/libs/ardour/ardour/lua_api.h index fe956c6b43..7c2c309982 100644 --- a/libs/ardour/ardour/lua_api.h +++ b/libs/ardour/ardour/lua_api.h @@ -187,6 +187,10 @@ namespace ARDOUR { namespace LuaAPI { */ int color_to_rgba (lua_State *lua); + /** + */ + std::string ascii_dtostr (const double d); + /** * Creates a filename from a series of elements using the correct separator for filenames. * diff --git a/libs/ardour/lua_api.cc b/libs/ardour/lua_api.cc index 59d2749399..82ff2fd651 100644 --- a/libs/ardour/lua_api.cc +++ b/libs/ardour/lua_api.cc @@ -527,6 +527,14 @@ ARDOUR::LuaAPI::hsla_to_rgba (lua_State *L) return 4; } +std::string +ARDOUR::LuaAPI::ascii_dtostr (const double d) +{ + gchar buf[G_ASCII_DTOSTR_BUF_SIZE]; + g_ascii_dtostr (buf, sizeof(buf), d); + return std::string (buf); +} + int ARDOUR::LuaAPI::color_to_rgba (lua_State *L) { diff --git a/libs/ardour/luabindings.cc b/libs/ardour/luabindings.cc index d82fb38bc6..90c8b8ad90 100644 --- a/libs/ardour/luabindings.cc +++ b/libs/ardour/luabindings.cc @@ -2330,6 +2330,7 @@ LuaBindings::common (lua_State* L) .addCFunction ("plugin_automation", ARDOUR::LuaAPI::plugin_automation) .addCFunction ("hsla_to_rgba", ARDOUR::LuaAPI::hsla_to_rgba) .addCFunction ("color_to_rgba", ARDOUR::LuaAPI::color_to_rgba) + .addFunction ("ascii_dtostr", ARDOUR::LuaAPI::ascii_dtostr) .addFunction ("usleep", Glib::usleep) .addFunction ("monotonic_time", ::g_get_monotonic_time) .addCFunction ("build_filename", ARDOUR::LuaAPI::build_filename)