From 6d72639c7de652d08a2c9154b4eefc96e3a49b6f Mon Sep 17 00:00:00 2001 From: Alexander Lantsev Date: Sun, 6 Dec 2015 20:06:30 +0000 Subject: MirLua: added sound module git-svn-id: http://svn.miranda-ng.org/main/trunk@15823 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/MirLua/src/m_sound.cpp | 48 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 plugins/MirLua/src/m_sound.cpp (limited to 'plugins/MirLua/src/m_sound.cpp') diff --git a/plugins/MirLua/src/m_sound.cpp b/plugins/MirLua/src/m_sound.cpp new file mode 100644 index 0000000000..00b3bdf963 --- /dev/null +++ b/plugins/MirLua/src/m_sound.cpp @@ -0,0 +1,48 @@ +#include "stdafx.h" + +static int lua_Add(lua_State *L) +{ + ptrA name(mir_utf8decodeA(luaL_checkstring(L, 1))); + ptrT description(mir_utf8decodeT(luaL_checkstring(L, 2))); + ptrT section(mir_utf8decodeT(luaL_optstring(L, 3, MODULE))); + + TCHAR filePath[MAX_PATH]; + GetModuleFileName(g_hInstance, filePath, _countof(filePath)); + + SKINSOUNDDESCEX ssd = { sizeof(SKINSOUNDDESCEX) }; + ssd.pszName = name; + ssd.dwFlags = SSDF_TCHAR; + ssd.ptszDescription = description; + ssd.ptszSection = section; + ssd.ptszDefaultFile = filePath; + + INT_PTR res = ::CallService("Skin/Sounds/AddNew", hLangpack, (LPARAM)&ssd); + lua_pushnumber(L, res); + + return 1; +} + +static int lua_Play(lua_State *L) +{ + const char *name = luaL_checkstring(L, 1); + + INT_PTR res = SkinPlaySound(name); + lua_pushnumber(L, res); + + return 1; +} + +static luaL_Reg soundApi[] = +{ + { "Add", lua_Add }, + { "Play", lua_Play }, + + { NULL, NULL } +}; + +LUAMOD_API int luaopen_m_sound(lua_State *L) +{ + luaL_newlib(L, soundApi); + + return 1; +} -- cgit v1.2.3