summaryrefslogtreecommitdiff
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
parent2e1ca200974ca4c60e651c199ec5883b308ac38b (diff)
downloadrockbox-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
-rw-r--r--apps/plugins/lua/include_lua/pcm.lua36
-rw-r--r--apps/plugins/lua/lua.make4
-rw-r--r--apps/plugins/lua/rocklib.c66
-rwxr-xr-xapps/plugins/lua/rocklib_aux.pl4
4 files changed, 108 insertions, 2 deletions
diff --git a/apps/plugins/lua/include_lua/pcm.lua b/apps/plugins/lua/include_lua/pcm.lua
new file mode 100644
index 0000000000..318669bd67
--- /dev/null
+++ b/apps/plugins/lua/include_lua/pcm.lua
@@ -0,0 +1,36 @@
1--[[ Lua RB pcm Operations
2/***************************************************************************
3 * __________ __ ___.
4 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
5 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
6 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
7 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
8 * \/ \/ \/ \/ \/
9 * $Id$
10 *
11 * Copyright (C) 2018 William Wilgus
12 *
13 * This program is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU General Public License
15 * as published by the Free Software Foundation; either version 2
16 * of the License, or (at your option) any later version.
17 *
18 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
19 * KIND, either express or implied.
20 *
21 ****************************************************************************/
22]]
23
24-- [[ conversion to old style pcm_ functions ]]
25if not rb.pcm then rb.splash(rb.HZ, "No Support!") return nil end
26
27rb.pcm_apply_settings = function() rb.pcm("applysettings") end
28rb.pcm_set_frequency = function(freq) rb.pcm("setfrequency", freq) end
29rb.pcm_play_pause = function(bplay) rb.pcm("playpause", bplay) end
30rb.pcm_play_stop = function() rb.pcm("playstop") end
31rb.pcm_play_lock = function() rb.pcm("playlock") end
32rb.pcm_play_unlock = function() rb.pcm("playunlock") end
33rb.pcm_is_playing = function() return rb.pcm("isplaying") end
34rb.pcm_is_paused = function() return rb.pcm("ispaused") end
35rb.pcm_calculate_peaks = function() return rb.pcm("calculatepeaks") end
36rb.pcm_get_bytes_waiting = function() return rb.pcm("getbyteswaiting") end
diff --git a/apps/plugins/lua/lua.make b/apps/plugins/lua/lua.make
index ece71cc4d6..56df860545 100644
--- a/apps/plugins/lua/lua.make
+++ b/apps/plugins/lua/lua.make
@@ -16,7 +16,9 @@ LUA_OBJ := $(call c2obj, $(LUA_SRC))
16OTHER_SRC += $(LUA_SRC) 16OTHER_SRC += $(LUA_SRC)
17 17
18LUA_INCLUDEDIR := $(LUA_SRCDIR)/include_lua 18LUA_INCLUDEDIR := $(LUA_SRCDIR)/include_lua
19LUA_INCLUDELIST := $(addprefix $(LUA_BUILDDIR)/,audio.lua blit.lua color.lua draw.lua image.lua lcd.lua math_ex.lua print.lua timer.lua playlist.lua) 19LUA_INCLUDELIST := $(addprefix $(LUA_BUILDDIR)/,audio.lua blit.lua color.lua draw.lua \
20 image.lua lcd.lua math_ex.lua print.lua \
21 timer.lua playlist.lua pcm.lua)
20 22
21 23
22ifndef APP_TYPE 24ifndef APP_TYPE
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
338RB_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
337SIMPLE_VOID_WRAPPER(backlight_force_on); 399SIMPLE_VOID_WRAPPER(backlight_force_on);
338SIMPLE_VOID_WRAPPER(backlight_use_settings); 400SIMPLE_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
diff --git a/apps/plugins/lua/rocklib_aux.pl b/apps/plugins/lua/rocklib_aux.pl
index d16351ac77..f52c64e98b 100755
--- a/apps/plugins/lua/rocklib_aux.pl
+++ b/apps/plugins/lua/rocklib_aux.pl
@@ -88,6 +88,10 @@ my @forbidden_functions = ('^open$',
88 '^playlist_(amount|add|create|start|resume|shuffle)$', 88 '^playlist_(amount|add|create|start|resume|shuffle)$',
89 '^playlist_(sync|resume_track|remove_all_tracks)$', 89 '^playlist_(sync|resume_track|remove_all_tracks)$',
90 '^playlist_(insert_track|insert_directory)$', 90 '^playlist_(insert_track|insert_directory)$',
91 '^pcm_is_(playing|paused)$',
92 '^pcm_play_(stop|pause|lock|unlock)$',
93 '^pcm_(apply_settings|get_bytes_waiting)$',
94 '^pcm_(set_frequency|calculate_peaks)$',
91 '^round_value_to_list32$'); 95 '^round_value_to_list32$');
92 96
93my $rocklib = sprintf("%s/rocklib.c", $ARGV[0]); 97my $rocklib = sprintf("%s/rocklib.c", $ARGV[0]);