summaryrefslogtreecommitdiffstats
path: root/apps/plugins
AgeCommit message (Collapse)AuthorFilesLines
2018-10-30Lua expand multiple screen supportWilliam Wilgus3-101/+303
Some of the lcd functions had support for multiple screens but this wasn't very safe since the screen number wasn't bounded within the screens[] array This adds support for all the lcd functions along with checking that screen# is bounded properly, adds around 600 bytes to devices with a remote screen devices without a remote screen lock to SCREEN_MAIN Change-Id: I618bbc7b3919c7b0ff375fb2d71949d7cab43c87
2018-10-30Lua rliimage optimize rli_marshal, rli_copy, lcd_xxx_bitmapWilliam Wilgus1-71/+59
rli_marshal and rli_copy allow the use of a custom lua function instead of the built-ins, this custom function can signal to stop before the whole image is iterated. Originally it was checking for a return of 0 which was additional overhead for the built-in functions (which never stop early) as well. Now custom_transform sets the x & y deltas to 0 to indicate early exit removing an extra 'if' per cycle and return from all of the rli_transform functions The lcd_xxx_bitmap functions all require x, y, w, h, screen these calls have been consolidated into a single function get_bmp_bounds() Change-Id: I88de3149c58d1bfb40e9d1a91341fb86cbd63b51
2018-10-28Lua remove gmtime.c use rb_plugin version insteadWilliam Wilgus3-59/+6
Change-Id: Ia6d47a13ec8ae407661a78c56513ac0c164216da
2018-10-25Lua Rlimage metatableWilliam Wilgus1-1/+2
Put rliimage functions into the rb.image metatable instead of the rb. table Change-Id: Iecdc564c2ea9739656e2025b51bb5d5c62e3dbc1
2018-10-25Lua Fix kbd_inputWilliam Wilgus1-1/+1
While luaL_addstring() works perfectly fine for the final buffer once Lual_pushresult() is called kbd_input doesn't display a previous input properly since the buffer hasn't been finalized yet Change-Id: Ic50acaa8b7b17077dec8750dd2b6382624e8a549
2018-10-25Lua cleanup kbd_input, gui_syncyesno_run, do_menuWilliam Wilgus1-24/+25
Removes unneeded functions from kbd_input Consolidates message filling function for gui_syncyesno_run & do_menu Change-Id: If3c3cea3cbf37a8dc52983c0db174de6d54b35f8
2018-10-25lua consolidate playlist_ functionsWilliam Wilgus4-52/+160
The way to call the playlist functions has changed rb.playlist("option", var) rb.playlist_add(filename) = becomes rb.playlist("add", filename) added playlist.lua to the includes for conversion to old functions if your script is broken by this change you simply add `require("playlist")` to the top for the old functionality added rb.playlist_tracks(dir, filename) to playlist.lua this will allow you to add all tracks in a playlist.m3u8 to a lua table Change-Id: I87fcc56be365d8495d214f069331b6ddbfbef1db
2018-10-24lua add audio_play consolidate audio_ functionsWilliam Wilgus4-2/+103
audio_play was removed from the rocklib I assume due to inconsistent behavior I've readded it with a check for audio paused which instead uses rewind/ff and then resumes audio the way to call the audio functions has changed as well rb.audio("option", var) so rb.audio_play(0, 0) becomes rb.audio("play", 0, 0) audio_audio_flush_and_reload_tracks becomes rb.audio("flushandreloadtracks") all functions except audio("getfilepos") return the previous (or still current) status added audio.lua to the includes for conversion to old functions if your script is broken by this change you simply add `require("audio")` to the top for the old functionality Change-Id: I364adf0c85d9c12b98cde29c26fbe5ee05b9d331
2018-10-24Lua fix create_numbered_filenameWilliam Wilgus1-2/+5
I didn't realize that some devices used the *num variable this fixes that oversight Change-Id: I2ecd6f475bebdd6ce745b360be3762a069bfc2b1
2018-10-24Lua fix strip_extension and create_numbered_filenameWilliam Wilgus2-0/+38
Both of these functions modified the string in the lua stack per lua manual: 'When a C function receives a string argument from Lua, there are only two rules that it must observe: Not to pop the string from the stack while accessing it and never to modify the string' strip_extension will still work with old parameters and is thus backwards compatible strip_extension("filename") create_numbered_filename has changed slightly and IS NOT backwards compatible create_numbered_filename(path, prefix, suffix, [number]) (number defaults to -1) Change-Id: I34cf7e2f6f691f33d5ac2b2e995855a171fb99b3
2018-10-22lua move rocklib_img to its own separate loadable moduleWilliam Wilgus5-25/+23
allows rocklib_img to be excluded if needed stops rocklib_aux from generating redundant prototypes for lcd_mono_bitmap[_part] Change-Id: Ie208ad71ab5f9a7deb026dc01a5b0a0631a0d29c
2018-10-15lua optimize current_path functionWilliam Wilgus4-24/+13
frees up around 500 bytes by using the builtin string functionality Change-Id: Icd4ec921d3fec339b8a4b7f80c9c63d51d4c101c
2018-10-12Lua remove unusable/unneeded functions from rocklib_auxWilliam Wilgus1-0/+8
rocklib_aux is auto generated from plugin.h there are a few functions that get added automatically that are unusable without their companion functions or duplicate functionality already supplied by lua Duplicated functionality: rb->rand, rb->srand -- see math.rand math.srand rb->remove, rb->rename -- see os.remove, os.rename Unusable: rb->open_utf8 -- this should be added to the lua file open routines (if at all) rb->codec_run_proc, rb->codec_close -- without rb->codec_load_file these are pointless rb->timer_set_period, timer_unregister -- even with timer_register implemented lua is not -- reentrant and crashes the state when timer fires Shouldn't be used!: rb->strlcpy, rb->strlcat, rb->strcpy, rb->strcat -- lua reuses strings by hashed values you break this contract if -- you change strings behind its back plus lua provides a way to -- do these functions safely within the strings api Change-Id: I2f65704a90930378cbbceb254e52f61e8074471e
2018-10-09mips: fix some compile warnings.Solomon Peachy1-0/+6
Change-Id: Ia5e83702313c1c184480290d3b0e6a66f01b7277
2018-10-08Fix red rocklib_img 32-24 bit targetsWilliam Wilgus5-16/+6
int is an incompatible type for targets that have 32bit fb_data need to use FB_SCALARPACK for them Change-Id: Ib3b5ff19c54d8d1bb76af33d0538a17a71301514
2018-10-09Clean up rocklib_imgWilliam Wilgus7-602/+513
optimize both size and speed fix invert for color screens Change-Id: I7edecae32dcb3daf5b3ed984a0e5b3d463269e60
2018-10-08lua rocklib cleanupWilliam Wilgus2-84/+84
removes tslf allocations from do_menu and gui_syncyesno_run in favor of lua_newuserdata removes some luaL_opt functions in favor of equivalent lua_to functions moves some definitions to the rocklib.h file Change-Id: Iaacc3249b8f1af2c220ce59dead0050c66cb3b04
2018-09-14lua optimize integer and string consts in rocklibWilliam Wilgus1-27/+59
use a table approach for registering integer / string constants Change-Id: Idbccae9c2203de1c694f6dd5a7014a7fccedae9b
2018-09-14lua move RLIMAGE to own fileWilliam Wilgus5-1411/+1503
Change-Id: Icd10e4c348deec7729d4a6e2bf1152e1dfc70243
2018-08-05pacbox: fix screen and buttons for Creative ZenSebastian Leonhardt2-4/+21
* rotate screen counterclockwise * rotate directional buttons Change-Id: Icbdf26fe1e14638eb8b0746a9eea99e0236ac6b1
2018-07-30iPod Classic: disable IRAM1Cástor Muñoz1-2/+3
On Classic, IRAM1 (second 128Kb of a total of 256KB available IRAM) is slower than DRAM. Codecs that actually are using regions of IRAM1 runs faster when DRAM is used, so IRAM1 is disabled and only IRAM0 remains enabled: 48KB for core and 80KB for codecs/plugins. The next test_codec results shows how decode time is decreased: file boosted unboosted *.ra ~1.5% ~0.5% *.mpc ~21% ~4.5% *.ogg ~0.5% ~0% nero_he*.m4a ~8% ~1% nero*.m4a ~25% ~7% wmapro*.wma ~4.5% ~0% wma*.wma ~25% ~7% In addition there is a small power save when IRAM1 HW is disabled. Change-Id: I102adee11458e82037f23076d5d5956e23235de8
2018-07-28Add cleaned-up xDuoo X3 supportSolomon Peachy50-3/+524
Cleaned up, rebased, and forward-ported from the xvortex fork. (original credit to vsoftster@gmail.com) Change-Id: Ibcc023a0271ea81e901450a88317708c2683236d Signed-off-by: Solomon Peachy <pizza@shaftnet.org>
2018-07-27Lua -- Fix device hang when scroll function active on clear_screenWilliam Wilgus2-1/+2
I previously noticed that manually clearing the framebuffer while scroll function was active caused lua to crash I could reproduce in sim and on device but I thought using the plugin supplied rb->lcd_clear_screen was immune to this issue Unfortunately some devices exhibit this behavior with the plugin function as well This patch adds rb->lcd_scroll_stop() before lcd_clear_screen at lua start-up and to the supplied include file lcd.lua Change-Id: I9800145e5c834ea27df5db5f1bca50b0d40faa49
2018-07-24Try #4 for lua makeWilliam Wilgus1-2/+5
Last commit was just a test to see if it work this one cleans it up a bit and should be a bit faster Change-Id: Ifdff5c5b78bcc6889506de607193246beccdde6b
2018-07-24Try # 3 for lua make fileWilliam Wilgus2-7/+7
Change-Id: I888612f3339ffcde28602a4e739b08f630de9c28
2018-07-24Lua Fix image saving for 32 bit targets -- update make fileWilliam Wilgus2-10/+22
Hopefully this will fix the build faliures for a few targets Change-Id: I68f6c85513ef589e5f6a50a8efc7bfae9fd62acd
2018-07-23Rocklua -- Extend / Fix rliImageWilliam Wilgus10-89/+3043
Some devices(1-bit / 2-bit displays) have packed bit formats that need to be unpacked in order to work on them at a pixel level. This caused a few issues on 1 & 2-bit devices: Greatly Oversized data arrays for bitmaps Improper handling of native image data Framebuffer data was near unusable without jumping through hoops Conversion between native addressing and per pixel addressing incurs extra overhead but it is much faster to do it on the 'C' side rather than in lua. Not to mention the advantage of a unified interface for the end programer ------------------------------------------------------------------- Adds a sane way to access each pixel of image data Adds: -------------------------------------------------------------------- img:clear([color],[x1],[y1],[x2],[y2]) (set whole image or a portion to a particular value) -------------------------------------------------------------------- img:invert([x1],[y1],[x2],[y2]) (inverts whole image or a portion) -------------------------------------------------------------------- img:marshal([x1],[y1],[x2],[y2],[funct]) (calls funct for each point defined by rect of x1,y1 x2,y2 returns value and allows setting value of each point return nil to terminate early) -------------------------------------------------------------------- img:points([x1],[y1],[x2],[y2],[dx],[dy]) (returns iterator function that steps delta-x and delta-y pixels each call returns value of pixel each call but doesn't allow setting to a new value compare to lua pairs method) -------------------------------------------------------------------- img:copy(src,[x1],[y1],[x2],[y2],[w],[h],[clip][operation][clr/funct]) (copies all or part of an image -- straight copy or special ops optionally calls funct for each point defined by rect of x1, y1, w, h and x2, y2, w, h for dest and src images returns value of dst and src and allows setting value of each point return nil to terminate early) -------------------------------------------------------------------- img:line(x1, y1, x2, y2, color) -------------------------------------------------------------------- img:ellipse(x1, y1, x2, y2, color, [fillcolor] -------------------------------------------------------------------- Fixed handling of 2-bit vertical integrated screens Added direct element access for saving / restoring native image etc. Added more data to tostring() handler and a way to access individual items Added equals method to see if two variables reference the same image address (doesn't check if two separate images contain the same 'picture') Optimized get and set routines Fixed out of bound x coord access shifting to next line Added lua include files to expose new functionality Finished image saving routine Static allocation of set_viewport struct faster + saves ram over dynamic Cleaned up code Fixed pixel get/set for 1/2 bit devices Fixed handling for 24-bit devices (32?) ------------------------------------------------------------------------- Example lua script to follow on forums ------------------------------------------------------------------------- Change-Id: I8a9ff0ff72aacf4b1662767ccb2b312fc355239c
2018-07-22Revert "Rocklua -- Extend / Fix rliImage"William Wilgus10-3029/+89
This reverts commit 2daec3d3c3d84e7176a22bc073ca5530e8e44c6d. Change-Id: I53ea1f491e3c6d6fb759f426f203f927bd26b1e9
2018-07-22Rocklua -- Extend / Fix rliImageWilliam Wilgus10-89/+3029
Some devices(1-bit / 2-bit displays) have packed bit formats that need to be unpacked in order to work on them at a pixel level. This caused a few issues on 1 & 2-bit devices: Greatly Oversized data arrays for bitmaps Improper handling of native image data Framebuffer data was near unusable without jumping through hoops Conversion between native addressing and per pixel addressing incurs extra overhead but it is much faster to do it on the 'C' side rather than in lua. Not to mention the advantage of a unified interface for the end programer ------------------------------------------------------------------- Adds a sane way to access each pixel of image data Adds: -------------------------------------------------------------------- img:clear([color],[x1],[y1],[x2],[y2]) (set whole image or a portion to a particular value) -------------------------------------------------------------------- img:invert([x1],[y1],[x2],[y2]) (inverts whole image or a portion) -------------------------------------------------------------------- img:marshal([x1],[y1],[x2],[y2],[funct]) (calls funct for each point defined by rect of x1,y1 x2,y2 returns value and allows setting value of each point return nil to terminate early) -------------------------------------------------------------------- img:points([x1],[y1],[x2],[y2],[dx],[dy]) (returns iterator function that steps delta-x and delta-y pixels each call returns value of pixel each call but doesn't allow setting to a new value compare to lua pairs method) -------------------------------------------------------------------- img:copy(src,[x1],[y1],[x2],[y2],[w],[h],[clip][operation][clr/funct]) (copies all or part of an image -- straight copy or special ops optionally calls funct for each point defined by rect of x1, y1, w, h and x2, y2, w, h for dest and src images returns value of dst and src and allows setting value of each point return nil to terminate early) -------------------------------------------------------------------- img:line(x1, y1, x2, y2, color) -------------------------------------------------------------------- img:ellipse(x1, y1, x2, y2, color, [fillcolor] -------------------------------------------------------------------- Fixed handling of 2-bit vertical integrated screens Added direct element access for saving / restoring native image etc. Added more data to tostring() handler and a way to access individual items Added equals method to see if two variables reference the same image address (doesn't check if two separate images contain the same 'picture') Optimized get and set routines Fixed out of bound x coord access shifting to next line Added lua include files to expose new functionality Finished image saving routine Static allocation of set_viewport struct faster + saves ram over dynamic Cleaned up code Fixed pixel get/set for 1/2 bit devices ------------------------------------------------------------------------- Example lua script to follow on forums ------------------------------------------------------------------------- Change-Id: I7b9c1fd699442fb683760f781021091786c18509
2018-07-04Textviewer night modeMoshe Piekarski6-6/+52
Add a night mode to textviewer. Change-Id: I6ddcd9c3c87473cbbffaeacf63a21ef11c0e5f44
2018-06-20puzzles: resync with upstreamFranklin Wei36-31461/+144
This brings the source to upstream commit 506b073 (though I have made some extra commits on top of that). Notably this includes a fix for a double-free bug that I myself introduced upstream. Change-Id: I02671586bbc34d63e05398ee971271fed42538cf
2018-06-20Fix yellow for LCD_DEPTH == 32Marcin Bukat1-0/+7
Change-Id: I59e9ec8720555c17e882a3a8c7ed0ba281b8d7c7
2018-06-14Agptek Rocker: Fix mpegplayer keymapMarcin Bukat1-0/+1
Change-Id: Iba438b49b66dc3bb3fbfc24b74ced9eaab993886
2018-06-12puzzles: minor nitpicks to fbb6a2fFranklin Wei1-2/+2
Just some whitespace changes to maintain stylistic consistency. Change-Id: I50b5d52db2795cfcb4155bdffbfb80c1c3773112
2018-06-12puzzles: fix typo introduced by fbb6a2fFranklin Wei1-1/+1
When zoomed in, the original commit made a mono bitmap (a.k.a. text) always have the red component set to 255. This would cause drawn text to always be red. Fixed. Change-Id: Iec06256a3a783948c60c70557de042b375224448
2018-06-12Agptek Rocker: fix rockboy palleteMarcin Bukat1-1/+1
Contributed by Aapo Tahkola. Change-Id: Ibee14d4f307b2198c5c47f9593734bd5d31d379b
2018-06-12Agptek Rocker: Build pluginsMarcin Bukat51-11/+499
Patch provided by Aapo Tahkola. Change-Id: I37a42a950d78d6b8aa3927ec7aeb30030f7be7a5
2018-06-05Fix lua failure to catch divide by zero and NaN exceptionsWilliam Wilgus2-8/+33
I can only assume in the course of the original conversion to fixed point math in RbLua the fact that division by zero and NaN handling was to be caught as a graceful exception by the floating point handler was overlooked. As a result lua doesn't handle these exceptions and instead results in a panic on the device. This patch fixes this handling in the lexer for compile time Inf and Nan results and in the luavm for runtime division by zero (Inf) I missed the runtime exception of n%0 added checks for that as well.. Change-Id: I7746c087ea93678e5875f15ec6fe3f29f26bdb31
2018-05-31Revert "rocklib -- Fix Red"William Wilgus1-1/+1
This reverts commit 37a20dffb6c285e625f049820a6aaadbbd7952aa. Change-Id: Ibf3a56f2b84e0e4af4c2ed890bc22b3555ab24ae
2018-05-31Revert "Rocklua -- Clean-up source"William Wilgus1-19/+19
This reverts commit 0565f671181f10e6eb38156d9f409825e2513290. Removing Typedef from rliimage Change-Id: Ib14241785c73de8ba6dc18ac76bec35eaed4661d
2018-05-28rocklib -- Fix RedWilliam Wilgus1-1/+1
Change-Id: I83b967a266837ebdf887e0f2c2d169a69af9e287
2018-05-28Rocklua -- Clean-up sourceWilliam Wilgus1-19/+19
Change-Id: I11dad15320f209655fd72c2365fe29afd65057d3
2018-05-28Lua liolibWilliam Wilgus1-1/+1
Add Whitespace to EOF Change-Id: Iac253e7905c59518040d39bb5033e35f0deea948
2018-05-27Fix lua lseek command / io libWilliam Wilgus1-11/+14
lua would not return or set arbitrary file positions file:seek("set", 0) worked file:seek("cur") worked but setting an offset or file:seek("end") failed I tracked this down to a bug checking the return of rb->lseek on error lseek returns a negative number and returns the file position otherwise, the function was checking for if(N) instead of if(N < 0) Fixed - limited size of lseek to size of signed LuaNumber Fixed - io:lines() stopped after first line containing only a newline instead of returning a blank line and continuing till EOF this fixes file:read("*l") as well Fixed - ssize_t for read() with error checking Change-Id: Ie859b288fb8f6814f1b3ae30992ecf78f2669de7
2018-04-24puzzles: update frontend for new upstream, misc. changesFranklin Wei5-23/+22
The upstream code changed a little bit with regard to the request_keys() API. Also, we save some bytes (especially on the c200v2) by compiling with -ffunction-sections and -fdata-sections, which allows Net to fit once again. Change-Id: I3ab30127169c73e4cd8996f0c12e1223ee18d79f
2018-04-24puzzles: update help text, make generation and testing cleanerFranklin Wei42-209/+238
This includes an upstream change to the Galaxies help text. `genhelp.sh' no longer leaves temporary files sitting around, and the self-test feature of lz4tiny.c works again. Change-Id: I787f4cb3c258baade31638d6be18f95b7aa0705e
2018-04-24puzzles: resync with upstreamFranklin Wei61-884/+32740
This brings the upstream version to b3da238 (though some of my own changes are included on top of that). Change-Id: Ida73e8cd86765413147ce891af3cc2b7aeda2b2a
2018-04-24puzzles: silence some warningsFranklin Wei42-89/+84
Change-Id: Id6fd9d8dd3021f5e2cb93565d7e419aaf07f9af0
2018-04-17puzzles: save some bytesFranklin Wei1-39/+24
This should cut just enough size off the binary to let Net still compile for the c200v2. This is probably close to the last time I'll be able to do this; I'm already resorting to dirty hacks like writing super terse error messages. Change-Id: I43344b9a601696d7ca56fc02af4a611fd9d1a150
2018-04-17puzzles: clean up for rockboxFranklin Wei2-13/+13
Disabled vprintf() call in Filling, and reordered vertices in Unequal. Change-Id: Ia3d8cd46ae3a7909b7dc2a8de762aa3173634d1e