move color_to_rgba to LuaAPI for consistency
This commit is contained in:
parent
c40ccd5aae
commit
4755c703f4
@ -166,6 +166,22 @@ namespace ARDOUR { namespace LuaAPI {
|
||||
*/
|
||||
int hsla_to_rgba (lua_State *lua);
|
||||
|
||||
/**
|
||||
* A convenience function to expand RGBA parameters from an integer
|
||||
*
|
||||
* convert a Canvas::Color (uint32_t 0xRRGGBBAA) into
|
||||
* double RGBA values which can be passed as parameters to
|
||||
* Cairo::Context::set_source_rgba
|
||||
*
|
||||
* Example:
|
||||
* @code
|
||||
* local r, g, b, a = ARDOUR.LuaAPI.color_to_rgba (0x88aa44ff)
|
||||
* cairo_ctx:set_source_rgba (ARDOUR.LuaAPI.color_to_rgba (0x11336699)
|
||||
* @endcode
|
||||
* @returns 4 parameters: red, green, blue, alpha (in range 0..1)
|
||||
*/
|
||||
int color_to_rgba (lua_State *lua);
|
||||
|
||||
/**
|
||||
* Creates a filename from a series of elements using the correct separator for filenames.
|
||||
*
|
||||
|
@ -502,6 +502,32 @@ ARDOUR::LuaAPI::hsla_to_rgba (lua_State *L)
|
||||
return 4;
|
||||
}
|
||||
|
||||
int
|
||||
ARDOUR::LuaAPI::color_to_rgba (lua_State *L)
|
||||
{
|
||||
int top = lua_gettop (L);
|
||||
if (top < 1) {
|
||||
return luaL_argerror (L, 1, "invalid number of arguments, color_to_rgba (uint32_t)");
|
||||
}
|
||||
uint32_t color = luabridge::Stack<uint32_t>::get (L, 1);
|
||||
double r, g, b, a;
|
||||
|
||||
/* libardour is no user of libcanvas, otherwise
|
||||
* we could just call
|
||||
* ArdourCanvas::color_to_rgba (color, r, g, b, a);
|
||||
*/
|
||||
r = ((color >> 24) & 0xff) / 255.0;
|
||||
g = ((color >> 16) & 0xff) / 255.0;
|
||||
b = ((color >> 8) & 0xff) / 255.0;
|
||||
a = ((color >> 0) & 0xff) / 255.0;
|
||||
|
||||
luabridge::Stack <double>::push (L, r);
|
||||
luabridge::Stack <double>::push (L, g);
|
||||
luabridge::Stack <double>::push (L, b);
|
||||
luabridge::Stack <double>::push (L, a);
|
||||
return 4;
|
||||
}
|
||||
|
||||
int
|
||||
ARDOUR::LuaAPI::build_filename (lua_State *L)
|
||||
{
|
||||
|
@ -1930,6 +1930,7 @@ LuaBindings::common (lua_State* L)
|
||||
.addRefFunction ("get_plugin_insert_param", ARDOUR::LuaAPI::get_plugin_insert_param)
|
||||
.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 ("usleep", Glib::usleep)
|
||||
.addCFunction ("build_filename", ARDOUR::LuaAPI::build_filename)
|
||||
.addFunction ("new_noteptr", ARDOUR::LuaAPI::new_noteptr)
|
||||
|
Loading…
Reference in New Issue
Block a user