A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd
at master 116 lines 2.9 kB view raw
1--[[ 2 __________ __ ___. 3 Open \______ \ ____ ____ | | _\_ |__ _______ ___ 4 Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / 5 Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < 6 Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ 7 \/ \/ \/ \/ \/ 8 $Id$ 9 10 Port of test_viewports.c to Lua 11 12 Copyright (C) 2009 by Maurus Cuelenaere 13 14 This program is free software; you can redistribute it and/or 15 modify it under the terms of the GNU General Public License 16 as published by the Free Software Foundation; either version 2 17 of the License, or (at your option) any later version. 18 19 This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 20 KIND, either express or implied. 21 22]]-- 23 24-- TODO: outsource this 25rb.DRMODE_SOLID = 3 26rb.LCD_BLACK = rb.lcd_rgbpack(0, 0, 0) 27rb.LCD_WHITE = rb.lcd_rgbpack(255, 255, 255) 28rb.LCD_DEFAULT_FG = rb.LCD_WHITE 29rb.LCD_DEFAULT_BG = rb.LCD_BLACK 30 31BGCOLOR_1 = rb.lcd_rgbpack(255,255,0) 32BGCOLOR_2 = rb.lcd_rgbpack(0,255,0) 33FGCOLOR_1 = rb.lcd_rgbpack(0,0,255) 34 35local vp0 = 36{ 37 x = 0, 38 y = 0, 39 width = rb.LCD_WIDTH, 40 height = 20, 41 font = rb.FONT_UI, 42 drawmode = rb.DRMODE_SOLID, 43 fg_pattern = rb.LCD_DEFAULT_FG, 44 bg_pattern = BGCOLOR_1 45} 46 47local vp1 = 48{ 49 x = rb.LCD_WIDTH / 10, 50 y = 20, 51 width = rb.LCD_WIDTH / 3, 52 height = rb.LCD_HEIGHT / 2, 53 font = rb.FONT_SYSFIXED, 54 drawmode = rb.DRMODE_SOLID, 55 fg_pattern = rb.LCD_DEFAULT_FG, 56 bg_pattern = rb.LCD_DEFAULT_BG 57}; 58 59local vp2 = 60{ 61 x = rb.LCD_WIDTH / 2, 62 y = 40, 63 width = rb.LCD_WIDTH / 3, 64 height = (rb.LCD_HEIGHT / 2), 65 font = rb.FONT_UI, 66 drawmode = rb.DRMODE_SOLID, 67 fg_pattern = FGCOLOR_1, 68 bg_pattern = BGCOLOR_2 69}; 70 71 72local vp3 = 73{ 74 x = rb.LCD_WIDTH / 4, 75 y = (5 * rb.LCD_HEIGHT) / 8, 76 width = rb.LCD_WIDTH / 2, 77 height = (rb.LCD_HEIGHT / 4), 78 font = rb.FONT_SYSFIXED, 79 drawmode = rb.DRMODE_SOLID, 80 fg_pattern = rb.LCD_BLACK, 81 bg_pattern = rb.LCD_WHITE 82}; 83 84rb.set_viewport(vp0) 85rb.clear_viewport() 86rb.lcd_puts_scroll(0,0,"Viewport testing plugin - this is a scrolling title") 87 88rb.set_viewport(vp1); 89rb.clear_viewport(); 90 91for i = 0, 3 do 92 rb.lcd_puts_scroll(0,i,string.format("Left text, scrolling_line %d",i)); 93end 94 95rb.set_viewport(vp2); 96rb.clear_viewport(); 97for i = 0, 3 do 98 rb.lcd_puts_scroll(1,i,string.format("Right text, scrolling line %d",i)); 99end 100 101local y = -10 102for i = -10, vp2.width + 10, 5 do 103 rb.lcd_drawline(i, y, i, vp2.height - y); 104end 105 106rb.set_viewport(vp3); 107rb.clear_viewport(); 108for i = 1, 2 do 109 rb.lcd_puts_scroll(2,i,string.format("Bottom text, a scrolling line %d",i)); 110end 111rb.lcd_puts_scroll(4,3,"Short line") 112rb.lcd_update() 113 114rb.button_get(true) 115 116rb.set_viewport(nil)