forked from len0rd/rockbox
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
This commit is contained in:
parent
2e1ca20097
commit
74fe5203d0
4 changed files with 108 additions and 2 deletions
36
apps/plugins/lua/include_lua/pcm.lua
Normal file
36
apps/plugins/lua/include_lua/pcm.lua
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
--[[ Lua RB pcm Operations
|
||||||
|
/***************************************************************************
|
||||||
|
* __________ __ ___.
|
||||||
|
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||||
|
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||||
|
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||||
|
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||||
|
* \/ \/ \/ \/ \/
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* Copyright (C) 2018 William Wilgus
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||||
|
* KIND, either express or implied.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
]]
|
||||||
|
|
||||||
|
-- [[ conversion to old style pcm_ functions ]]
|
||||||
|
if not rb.pcm then rb.splash(rb.HZ, "No Support!") return nil end
|
||||||
|
|
||||||
|
rb.pcm_apply_settings = function() rb.pcm("applysettings") end
|
||||||
|
rb.pcm_set_frequency = function(freq) rb.pcm("setfrequency", freq) end
|
||||||
|
rb.pcm_play_pause = function(bplay) rb.pcm("playpause", bplay) end
|
||||||
|
rb.pcm_play_stop = function() rb.pcm("playstop") end
|
||||||
|
rb.pcm_play_lock = function() rb.pcm("playlock") end
|
||||||
|
rb.pcm_play_unlock = function() rb.pcm("playunlock") end
|
||||||
|
rb.pcm_is_playing = function() return rb.pcm("isplaying") end
|
||||||
|
rb.pcm_is_paused = function() return rb.pcm("ispaused") end
|
||||||
|
rb.pcm_calculate_peaks = function() return rb.pcm("calculatepeaks") end
|
||||||
|
rb.pcm_get_bytes_waiting = function() return rb.pcm("getbyteswaiting") end
|
|
@ -16,7 +16,9 @@ LUA_OBJ := $(call c2obj, $(LUA_SRC))
|
||||||
OTHER_SRC += $(LUA_SRC)
|
OTHER_SRC += $(LUA_SRC)
|
||||||
|
|
||||||
LUA_INCLUDEDIR := $(LUA_SRCDIR)/include_lua
|
LUA_INCLUDEDIR := $(LUA_SRCDIR)/include_lua
|
||||||
LUA_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)
|
LUA_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 pcm.lua)
|
||||||
|
|
||||||
|
|
||||||
ifndef APP_TYPE
|
ifndef APP_TYPE
|
||||||
|
|
|
@ -334,6 +334,68 @@ RB_WRAP(audio)
|
||||||
return 1;
|
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_force_on);
|
||||||
SIMPLE_VOID_WRAPPER(backlight_use_settings);
|
SIMPLE_VOID_WRAPPER(backlight_use_settings);
|
||||||
|
|
||||||
|
@ -458,7 +520,9 @@ static const luaL_Reg rocklib[] =
|
||||||
|
|
||||||
RB_FUNC(audio),
|
RB_FUNC(audio),
|
||||||
RB_FUNC(playlist),
|
RB_FUNC(playlist),
|
||||||
|
#if CONFIG_CODEC == SWCODEC
|
||||||
|
RB_FUNC(pcm),
|
||||||
|
#endif
|
||||||
{NULL, NULL}
|
{NULL, NULL}
|
||||||
};
|
};
|
||||||
#undef RB_FUNC
|
#undef RB_FUNC
|
||||||
|
|
|
@ -88,6 +88,10 @@ my @forbidden_functions = ('^open$',
|
||||||
'^playlist_(amount|add|create|start|resume|shuffle)$',
|
'^playlist_(amount|add|create|start|resume|shuffle)$',
|
||||||
'^playlist_(sync|resume_track|remove_all_tracks)$',
|
'^playlist_(sync|resume_track|remove_all_tracks)$',
|
||||||
'^playlist_(insert_track|insert_directory)$',
|
'^playlist_(insert_track|insert_directory)$',
|
||||||
|
'^pcm_is_(playing|paused)$',
|
||||||
|
'^pcm_play_(stop|pause|lock|unlock)$',
|
||||||
|
'^pcm_(apply_settings|get_bytes_waiting)$',
|
||||||
|
'^pcm_(set_frequency|calculate_peaks)$',
|
||||||
'^round_value_to_list32$');
|
'^round_value_to_list32$');
|
||||||
|
|
||||||
my $rocklib = sprintf("%s/rocklib.c", $ARGV[0]);
|
my $rocklib = sprintf("%s/rocklib.c", $ARGV[0]);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue