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.tar.gz rockbox-74fe5203d06aee3ad3498fa9164762cfa1efa3d5.zip |
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 c9242d99bd..ed76122118 100644 --- a/apps/plugins/lua/rocklib.c +++ b/apps/plugins/lua/rocklib.c | |||
@@ -334,6 +334,68 @@ RB_WRAP(audio) | |||
334 | return 1; | 334 | return 1; |
335 | } | 335 | } |
336 | 336 | ||
337 | #if CONFIG_CODEC == SWCODEC | ||
338 | RB_WRAP(pcm) | ||
339 | { | ||
340 | enum e_pcm {PCM_APPLYSETTINGS = 0, PCM_ISPLAYING, PCM_ISPAUSED, | ||
341 | PCM_PLAYSTOP, PCM_PLAYPAUSE, PCM_PLAYLOCK, PCM_PLAYUNLOCK, | ||
342 | PCM_CALCULATEPEAKS, PCM_SETFREQUENCY, PCM_GETBYTESWAITING, PCM_ECOUNT}; | ||
343 | |||
344 | const char *pcm_option[] = {"applysettings", "isplaying", "ispaused", | ||
345 | "playstop", "playpause", "playlock", "playunlock", | ||
346 | "calculatepeaks", "setfrequency", "getbyteswaiting", NULL}; | ||
347 | bool b_result; | ||
348 | int left, right; | ||
349 | size_t byteswait; | ||
350 | |||
351 | lua_pushnil(L); /*push nil so options w/o return have something to return */ | ||
352 | |||
353 | int option = luaL_checkoption (L, 1, NULL, pcm_option); | ||
354 | switch(option) | ||
355 | { | ||
356 | default: | ||
357 | case PCM_APPLYSETTINGS: | ||
358 | rb->pcm_apply_settings(); | ||
359 | break; | ||
360 | case PCM_ISPLAYING: | ||
361 | b_result = rb->pcm_is_playing(); | ||
362 | lua_pushboolean(L, b_result); | ||
363 | break; | ||
364 | case PCM_ISPAUSED: | ||
365 | b_result = rb->pcm_is_paused(); | ||
366 | lua_pushboolean(L, b_result); | ||
367 | break; | ||
368 | case PCM_PLAYPAUSE: | ||
369 | rb->pcm_play_pause(luaL_checkboolean(L, 1)); | ||
370 | break; | ||
371 | case PCM_PLAYSTOP: | ||
372 | rb->pcm_play_stop(); | ||
373 | break; | ||
374 | case PCM_PLAYLOCK: | ||
375 | rb->pcm_play_lock(); | ||
376 | break; | ||
377 | case PCM_PLAYUNLOCK: | ||
378 | rb->pcm_play_unlock(); | ||
379 | break; | ||
380 | case PCM_CALCULATEPEAKS: | ||
381 | rb->pcm_calculate_peaks(&left, &right); | ||
382 | lua_pushinteger(L, left); | ||
383 | lua_pushinteger(L, right); | ||
384 | return 2; | ||
385 | case PCM_SETFREQUENCY: | ||
386 | rb->pcm_set_frequency((unsigned int) luaL_checkint(L, 1)); | ||
387 | break; | ||
388 | case PCM_GETBYTESWAITING: | ||
389 | byteswait = rb->pcm_get_bytes_waiting(); | ||
390 | lua_pushinteger(L, byteswait); | ||
391 | break; | ||
392 | } | ||
393 | |||
394 | rb->yield(); | ||
395 | return 1; | ||
396 | } | ||
397 | #endif /*CONFIG_CODEC == SWCODEC*/ | ||
398 | |||
337 | SIMPLE_VOID_WRAPPER(backlight_force_on); | 399 | SIMPLE_VOID_WRAPPER(backlight_force_on); |
338 | SIMPLE_VOID_WRAPPER(backlight_use_settings); | 400 | SIMPLE_VOID_WRAPPER(backlight_use_settings); |
339 | 401 | ||
@@ -458,7 +520,9 @@ static const luaL_Reg rocklib[] = | |||
458 | 520 | ||
459 | RB_FUNC(audio), | 521 | RB_FUNC(audio), |
460 | RB_FUNC(playlist), | 522 | RB_FUNC(playlist), |
461 | 523 | #if CONFIG_CODEC == SWCODEC | |
524 | RB_FUNC(pcm), | ||
525 | #endif | ||
462 | {NULL, NULL} | 526 | {NULL, NULL} |
463 | }; | 527 | }; |
464 | #undef RB_FUNC | 528 | #undef RB_FUNC |