diff options
| author | William Wilgus <me.theuser@yahoo.com> | 2018-10-30 13:56:36 -0400 |
|---|---|---|
| committer | William Wilgus <me.theuser@yahoo.com> | 2018-10-30 14:16:01 -0400 |
| commit | 74fe5203d06aee3ad3498fa9164762cfa1efa3d5 (patch) | |
| tree | f153b31312cd5d3a3863f013d2908064fb244ca1 /apps/plugins/lua/rocklib.c | |
| parent | 2e1ca200974ca4c60e651c199ec5883b308ac38b (diff) | |
| download | rockbox-74fe5203d06aee3ad3498fa9164762cfa1efa3d5.zip rockbox-74fe5203d06aee3ad3498fa9164762cfa1efa3d5.tar.gz rockbox-74fe5203d06aee3ad3498fa9164762cfa1efa3d5.tar.bz2 rockbox-74fe5203d06aee3ad3498fa9164762cfa1efa3d5.tar.xz | |
lua consolidate pcm_ functions
The way to call the pcm functions has changed
rb.pcm("option", var)
rb.pcm_set_frequency(freq) = becomes rb.pcm("pcmsetfrequency", freq)
added pcm.lua to the includes for conversion to old functions
if your script is broken by this change you simply add
`require("pcm")` to the top for the old functionality
added rb.pcm("calculatepeaks")
Change-Id: I092057b0c0b5575e567862661f122da1ca2680e8
Diffstat (limited to 'apps/plugins/lua/rocklib.c')
| -rw-r--r-- | apps/plugins/lua/rocklib.c | 66 |
1 files changed, 65 insertions, 1 deletions
diff --git a/apps/plugins/lua/rocklib.c b/apps/plugins/lua/rocklib.c index c9242d9..ed76122 100644 --- a/apps/plugins/lua/rocklib.c +++ b/apps/plugins/lua/rocklib.c @@ -334,6 +334,68 @@ RB_WRAP(audio) return 1; } +#if CONFIG_CODEC == SWCODEC +RB_WRAP(pcm) +{ + enum e_pcm {PCM_APPLYSETTINGS = 0, PCM_ISPLAYING, PCM_ISPAUSED, + PCM_PLAYSTOP, PCM_PLAYPAUSE, PCM_PLAYLOCK, PCM_PLAYUNLOCK, + PCM_CALCULATEPEAKS, PCM_SETFREQUENCY, PCM_GETBYTESWAITING, PCM_ECOUNT}; + + const char *pcm_option[] = {"applysettings", "isplaying", "ispaused", + "playstop", "playpause", "playlock", "playunlock", + "calculatepeaks", "setfrequency", "getbyteswaiting", NULL}; + bool b_result; + int left, right; + size_t byteswait; + + lua_pushnil(L); /*push nil so options w/o return have something to return */ + + int option = luaL_checkoption (L, 1, NULL, pcm_option); + switch(option) + { + default: + case PCM_APPLYSETTINGS: + rb->pcm_apply_settings(); + break; + case PCM_ISPLAYING: + b_result = rb->pcm_is_playing(); + lua_pushboolean(L, b_result); + break; + case PCM_ISPAUSED: + b_result = rb->pcm_is_paused(); + lua_pushboolean(L, b_result); + break; + case PCM_PLAYPAUSE: + rb->pcm_play_pause(luaL_checkboolean(L, 1)); + break; + case PCM_PLAYSTOP: + rb->pcm_play_stop(); + break; + case PCM_PLAYLOCK: + rb->pcm_play_lock(); + break; + case PCM_PLAYUNLOCK: + rb->pcm_play_unlock(); + break; + case PCM_CALCULATEPEAKS: + rb->pcm_calculate_peaks(&left, &right); + lua_pushinteger(L, left); + lua_pushinteger(L, right); + return 2; + case PCM_SETFREQUENCY: + rb->pcm_set_frequency((unsigned int) luaL_checkint(L, 1)); + break; + case PCM_GETBYTESWAITING: + byteswait = rb->pcm_get_bytes_waiting(); + lua_pushinteger(L, byteswait); + break; + } + + rb->yield(); + return 1; +} +#endif /*CONFIG_CODEC == SWCODEC*/ + SIMPLE_VOID_WRAPPER(backlight_force_on); SIMPLE_VOID_WRAPPER(backlight_use_settings); @@ -458,7 +520,9 @@ static const luaL_Reg rocklib[] = RB_FUNC(audio), RB_FUNC(playlist), - +#if CONFIG_CODEC == SWCODEC + RB_FUNC(pcm), +#endif {NULL, NULL} }; #undef RB_FUNC |