1
0
Fork 0
mirror of https://github.com/bjornbytes/lovr.git synced 2024-07-22 05:33:35 +00:00
lovr/src/api/l_soundData.c

66 lines
2 KiB
C
Raw Normal View History

2018-07-06 03:23:46 +00:00
#include "api.h"
#include "data/soundData.h"
2019-02-17 22:52:22 +00:00
static int l_lovrSoundDataGetBitDepth(lua_State* L) {
2018-07-06 03:23:46 +00:00
SoundData* soundData = luax_checktype(L, 1, SoundData);
lua_pushinteger(L, soundData->bitDepth);
return 1;
}
2019-02-17 22:52:22 +00:00
static int l_lovrSoundDataGetChannelCount(lua_State* L) {
2018-07-06 03:23:46 +00:00
SoundData* soundData = luax_checktype(L, 1, SoundData);
lua_pushinteger(L, soundData->channelCount);
return 1;
}
2019-02-17 22:52:22 +00:00
static int l_lovrSoundDataGetDuration(lua_State* L) {
2018-07-06 03:23:46 +00:00
SoundData* soundData = luax_checktype(L, 1, SoundData);
lua_pushnumber(L, soundData->samples / (float) soundData->sampleRate);
return 1;
}
2019-02-17 22:52:22 +00:00
static int l_lovrSoundDataGetSample(lua_State* L) {
SoundData* soundData = luax_checktype(L, 1, SoundData);
int index = luaL_checkinteger(L, 2);
lua_pushnumber(L, lovrSoundDataGetSample(soundData, index));
return 1;
}
2019-02-17 22:52:22 +00:00
static int l_lovrSoundDataGetSampleCount(lua_State* L) {
2018-07-06 03:23:46 +00:00
SoundData* soundData = luax_checktype(L, 1, SoundData);
lua_pushinteger(L, soundData->samples);
return 1;
}
2019-02-17 22:52:22 +00:00
static int l_lovrSoundDataGetSampleRate(lua_State* L) {
2018-07-06 03:23:46 +00:00
SoundData* soundData = luax_checktype(L, 1, SoundData);
lua_pushinteger(L, soundData->sampleRate);
return 1;
}
2019-02-17 22:52:22 +00:00
static int l_lovrSoundDataSetSample(lua_State* L) {
SoundData* soundData = luax_checktype(L, 1, SoundData);
int index = luaL_checkinteger(L, 2);
float value = luax_checkfloat(L, 3);
lovrSoundDataSetSample(soundData, index, value);
return 0;
}
static int l_lovrSoundDataGetPointer(lua_State* L) {
SoundData* soundData = luax_checktype(L, 1, SoundData);
lua_pushlightuserdata(L, soundData->blob.data);
return 1;
}
2018-07-06 03:23:46 +00:00
const luaL_Reg lovrSoundData[] = {
{ "getBitDepth", l_lovrSoundDataGetBitDepth },
{ "getChannelCount", l_lovrSoundDataGetChannelCount },
{ "getDuration", l_lovrSoundDataGetDuration },
{ "getSample", l_lovrSoundDataGetSample },
2018-07-06 03:23:46 +00:00
{ "getSampleCount", l_lovrSoundDataGetSampleCount },
{ "getSampleRate", l_lovrSoundDataGetSampleRate },
{ "setSample", l_lovrSoundDataSetSample },
{ "getPointer", l_lovrSoundDataGetPointer },
2018-07-06 03:23:46 +00:00
{ NULL, NULL }
};