diff --git a/lua.cpp b/lua.cpp index 58c9dea..857a95a 100644 --- a/lua.cpp +++ b/lua.cpp @@ -754,10 +754,21 @@ extern "C" { } static int cpp_stopmusic(lua_State *L) { - stopmusic(); + const int time = luaL_optinteger(L, 1, 1000); + stopmusic(time); return 0; } + static int cpp_musicpos(lua_State *L) { + if (lua_gettop(L) >= 1) { + musicpos(luaL_checknumber(L, 1)); + return 0; + } else { + lua_pushnumber(L, musicpos()); + return 1; + } + } + static int cpp_loadsound(lua_State *L) { const char* str = luaL_checkstring(L, 1); lua_pushinteger(L,loadsound(str)); @@ -980,6 +991,7 @@ void push_lua_funcs() { lua_pushcfunction(L,cpp_pausemusic); lua_setglobal(L, "pausemusic"); lua_pushcfunction(L,cpp_resumemusic); lua_setglobal(L, "resumemusic"); lua_pushcfunction(L,cpp_stopmusic); lua_setglobal(L, "stopmusic"); + lua_pushcfunction(L,cpp_musicpos); lua_setglobal(L, "musicpos"); lua_pushcfunction(L,cpp_loadsound); lua_setglobal(L, "loadsound"); lua_pushcfunction(L,cpp_freesound); lua_setglobal(L, "freesound"); lua_pushcfunction(L,cpp_playsound); lua_setglobal(L, "playsound"); diff --git a/mini.cpp b/mini.cpp index fbb5b1a..c3ebd9e 100644 --- a/mini.cpp +++ b/mini.cpp @@ -1271,9 +1271,19 @@ void resumemusic() { Mix_ResumeMusic(); } -void stopmusic() { +void stopmusic(const int t) { //Mix_HaltMusic(); - Mix_FadeOutMusic(1000); + Mix_FadeOutMusic(t); +} + +void musicpos(float value) +{ + Mix_SetMusicPosition(value); +} + +float musicpos() +{ + return Mix_GetMusicPosition(music); } int loadsound(const char *filename) { diff --git a/mini.h b/mini.h index d5d23aa..2f364c8 100644 --- a/mini.h +++ b/mini.h @@ -271,7 +271,9 @@ bool freadb(); void playmusic(const char *filename, const int loop=-1); void pausemusic(); void resumemusic(); -void stopmusic(); +void stopmusic(const int t=1000); +void musicpos(float value); +float musicpos(); int loadsound(const char *filename); void freesound(int soundfile); diff --git a/version.h b/version.h index c932b28..5b01d48 100644 --- a/version.h +++ b/version.h @@ -1,3 +1,3 @@ #pragma once -#define MINI_VERSION "0.9.89d" +#define MINI_VERSION "0.9.90d"