summaryrefslogtreecommitdiff
path: root/apps/plugins/lua/rocklib.c
diff options
context:
space:
mode:
authorWilliam Wilgus <me.theuser@yahoo.com>2018-10-30 13:56:36 -0400
committerWilliam Wilgus <me.theuser@yahoo.com>2018-10-30 14:16:01 -0400
commit74fe5203d06aee3ad3498fa9164762cfa1efa3d5 (patch)
treef153b31312cd5d3a3863f013d2908064fb244ca1 /apps/plugins/lua/rocklib.c
parent2e1ca200974ca4c60e651c199ec5883b308ac38b (diff)
downloadrockbox-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.c66
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