summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/plugins/lua/rocklib.c65
1 files changed, 65 insertions, 0 deletions
diff --git a/apps/plugins/lua/rocklib.c b/apps/plugins/lua/rocklib.c
index 6a6be388d1..5aadfd2210 100644
--- a/apps/plugins/lua/rocklib.c
+++ b/apps/plugins/lua/rocklib.c
@@ -593,6 +593,59 @@ RB_WRAP(do_menu)
593 return 1; 593 return 1;
594} 594}
595 595
596RB_WRAP(playlist_sync)
597{
598 /* just pass NULL to work with the current playlist */
599 rb->playlist_sync(NULL);
600 return 1;
601}
602
603RB_WRAP(playlist_remove_all_tracks)
604{
605 /* just pass NULL to work with the current playlist */
606 int result = rb->playlist_remove_all_tracks(NULL);
607 lua_pushinteger(L, result);
608 return 1;
609}
610
611RB_WRAP(playlist_insert_track)
612{
613 const char *filename;
614 int position, queue, sync;
615
616 /* for now don't take a playlist_info pointer, but just pass NULL to use
617 the current playlist. If this changes later, all the other
618 parameters can be shifted back. */
619 filename = luaL_checkstring(L, 1); /* only required parameter */
620 position = luaL_optint(L, 2, PLAYLIST_INSERT);
621 queue = lua_toboolean(L, 3); /* default to false */
622 sync = lua_toboolean(L, 4); /* default to false */
623
624 int result = rb->playlist_insert_track(NULL, filename, position,
625 queue, sync);
626
627 lua_pushinteger(L, result);
628 return 1;
629}
630
631RB_WRAP(playlist_insert_directory)
632{
633 const char* dirname;
634 int position, queue, recurse;
635
636 /* just like in playlist_insert_track, only works with current playlist. */
637 dirname = luaL_checkstring(L, 1); /* only required parameter */
638 position = luaL_optint(L, 2, PLAYLIST_INSERT);
639 queue = lua_toboolean(L, 3); /* default to false */
640 recurse = lua_toboolean(L, 4); /* default to false */
641
642 int result = rb->playlist_insert_directory(NULL, dirname, position,
643 queue, recurse);
644
645 lua_pushinteger(L, result);
646 return 1;
647}
648
596SIMPLE_VOID_WRAPPER(backlight_force_on); 649SIMPLE_VOID_WRAPPER(backlight_force_on);
597SIMPLE_VOID_WRAPPER(backlight_use_settings); 650SIMPLE_VOID_WRAPPER(backlight_use_settings);
598#ifdef HAVE_REMOTE_LCD 651#ifdef HAVE_REMOTE_LCD
@@ -672,6 +725,10 @@ static const luaL_Reg rocklib[] =
672 R(clear_viewport), 725 R(clear_viewport),
673 R(current_path), 726 R(current_path),
674 R(gui_syncyesno_run), 727 R(gui_syncyesno_run),
728 R(playlist_sync),
729 R(playlist_remove_all_tracks),
730 R(playlist_insert_track),
731 R(playlist_insert_directory),
675 R(do_menu), 732 R(do_menu),
676 733
677 /* Backlight helper */ 734 /* Backlight helper */
@@ -718,6 +775,14 @@ LUALIB_API int luaopen_rock(lua_State *L)
718 RB_CONSTANT(FONT_SYSFIXED); 775 RB_CONSTANT(FONT_SYSFIXED);
719 RB_CONSTANT(FONT_UI); 776 RB_CONSTANT(FONT_UI);
720 777
778 RB_CONSTANT(PLAYLIST_PREPEND);
779 RB_CONSTANT(PLAYLIST_INSERT);
780 RB_CONSTANT(PLAYLIST_INSERT_LAST);
781 RB_CONSTANT(PLAYLIST_INSERT_FIRST);
782 RB_CONSTANT(PLAYLIST_INSERT_SHUFFLED);
783 RB_CONSTANT(PLAYLIST_REPLACE);
784 RB_CONSTANT(PLAYLIST_INSERT_LAST_SHUFFLED);
785
721#ifdef HAVE_TOUCHSCREEN 786#ifdef HAVE_TOUCHSCREEN
722 RB_CONSTANT(TOUCHSCREEN_POINT); 787 RB_CONSTANT(TOUCHSCREEN_POINT);
723 RB_CONSTANT(TOUCHSCREEN_BUTTON); 788 RB_CONSTANT(TOUCHSCREEN_BUTTON);