- [NEW] stopmusic() accepta com a paràmetre els milisegons que tardarà en fadechar out (per defecte 1000ms).

- [NEW] musicpos() per a obtindre o especificar la posició de la música.
This commit is contained in:
2024-02-14 14:11:45 +01:00
parent 9e08a693c7
commit 4b6a9d8188
4 changed files with 29 additions and 5 deletions

14
lua.cpp
View File

@@ -754,10 +754,21 @@ extern "C" {
} }
static int cpp_stopmusic(lua_State *L) { static int cpp_stopmusic(lua_State *L) {
stopmusic(); const int time = luaL_optinteger(L, 1, 1000);
stopmusic(time);
return 0; 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) { static int cpp_loadsound(lua_State *L) {
const char* str = luaL_checkstring(L, 1); const char* str = luaL_checkstring(L, 1);
lua_pushinteger(L,loadsound(str)); 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_pausemusic); lua_setglobal(L, "pausemusic");
lua_pushcfunction(L,cpp_resumemusic); lua_setglobal(L, "resumemusic"); lua_pushcfunction(L,cpp_resumemusic); lua_setglobal(L, "resumemusic");
lua_pushcfunction(L,cpp_stopmusic); lua_setglobal(L, "stopmusic"); 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_loadsound); lua_setglobal(L, "loadsound");
lua_pushcfunction(L,cpp_freesound); lua_setglobal(L, "freesound"); lua_pushcfunction(L,cpp_freesound); lua_setglobal(L, "freesound");
lua_pushcfunction(L,cpp_playsound); lua_setglobal(L, "playsound"); lua_pushcfunction(L,cpp_playsound); lua_setglobal(L, "playsound");

View File

@@ -1271,9 +1271,19 @@ void resumemusic() {
Mix_ResumeMusic(); Mix_ResumeMusic();
} }
void stopmusic() { void stopmusic(const int t) {
//Mix_HaltMusic(); //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) { int loadsound(const char *filename) {

4
mini.h
View File

@@ -271,7 +271,9 @@ bool freadb();
void playmusic(const char *filename, const int loop=-1); void playmusic(const char *filename, const int loop=-1);
void pausemusic(); void pausemusic();
void resumemusic(); void resumemusic();
void stopmusic(); void stopmusic(const int t=1000);
void musicpos(float value);
float musicpos();
int loadsound(const char *filename); int loadsound(const char *filename);
void freesound(int soundfile); void freesound(int soundfile);

View File

@@ -1,3 +1,3 @@
#pragma once #pragma once
#define MINI_VERSION "0.9.89d" #define MINI_VERSION "0.9.90d"