path: root/apps/plugins/lib
AgeCommit message (Collapse)AuthorFilesLines
2021-08-31lib/argparse fix redWilliam Wilgus2-6/+7
Change-Id: I7bbac6de6319bf86189f079b7330d650ea95de3c
2021-08-31lib/argparse scale decimals to int for return to userWilliam Wilgus2-8/+37
scales the fractional portion of the parsed number by ARGPARSE_FRAC_DEC_MULTIPLIER Example ARGPARSE_FRAC_DEC_MULTIPLIER = 10 000 meaning .0009 returns 9 , 9 / 10000 = .0009 .009 returns 90 .099 returns 990 .09 returns 900 .9 returns 9000 .9999 returns 9999 Change-Id: I38573dbc1877760b0d52df8686a6647894d76196
2021-08-27plugin lib/arg_helper parse 'command line' argsWilliam Wilgus3-0/+341
add a helper function to allow plugins to parse the parameter string passed into plugins support included for bool, char, string and numbers+decimals Change-Id: I39f35c8bd3c21b83097a538c19f46d362c468fa4
2021-08-26Plugin Api add core bitmapsWilliam Wilgus3-0/+75
share all the core icons with plugins these are all small mono icons like usb plug icon or play, fast forward, rewind icons --include the icon_helper function Change-Id: I385028815a4dd368515f491a9e19dee3d500252d
2021-08-18lib/helper add talk_val()William Wilgus2-0/+8
talk_value_decimal() replaced talk_value() Change-Id: Ibb7c738d6f3b399fab2e771d8ab85967e3af96d1
2021-07-20Small fixes to kbd_create_layoutAidan MacDonald2-3/+7
- Make the argument const since it's not actually mutated - Actually return the size of the buffer used since this is what it was supposed to do (although no existing callers cared anyway) Change-Id: I0802071cf63d4af419f427ff54adca50b14918ad
2021-07-13New port: Shanling Q1 nativeAidan MacDonald2-1/+13
- Audio playback works - Touchscreen and buttons work - Bootloader works and is capable of dual boot - Plugins are working - Cabbiev2 theme has been ported - Stable for general usage Thanks to Marc Aarts for porting Cabbiev2 and plugin bitmaps. There's a few minor known issues: - Bootloader must be installed manually using 'usbboot' as there is no support in jztool yet. - Keymaps may be lacking, need further testing and feedback. - Some plugins may not be fully adapted to the screen size and could benefit from further tweaking. - LCD shows abnormal effects under some circumstances: for example, after viewing a mostly black screen an afterimage appears briefly when going back to a brightly-lit screen. Sudden power-off without proper shutdown of the backlight causes a "dissolving" effect. - CW2015 battery reporting driver is buggy, and disabled for now. Battery reporting is currently voltage-based using the AXP192. Change-Id: I635e83f02a880192c5a82cb0861ad3a61c137c3a
2021-04-26Nuke the never-functional iriver ifp-7xx portSolomon Peachy2-8/+0
It never worked, and hasn't compiled in something like a decade, Given the HW capabilities (limited onboard flash, no expandability) there's really no point in trying to fix/complete it. Change-Id: I7d175089840396f8891645bd10010d730dd5bfdc
2021-04-26Nuke all TCC77x targets: iAudio 7, Sansa C100, M200(v1-3), Logik DAXSolomon Peachy1-15/+0
They were never finished, never saw any release ever, and haven't compiled for the better part of a decade. Given their HW capabilities [1], they are not worth trying to fix. [1] 1-2MB RAM, ~256MB onboard flash, no expandability Change-Id: I7b2a5806d687114c22156bb0458d4a10a9734190
2021-03-28New port: FiiO M3K on bare metalAidan MacDonald2-0/+23
Change-Id: I7517e7d5459e129dcfc9465c6fbd708619888fbe
2021-02-27Rename symbols of FiiO M3K Linux-based portAidan MacDonald2-3/+3
Mainly a straight replacement of FIIO_M3K -> FIIO_M3K_LINUX. Change-Id: Id07c84f8150991d1b6851540c2c3f8f67e3f12c2
2020-10-26Whitespace cleanup on fb_viewport RewriteWilliam Wilgus2-14/+14
Change-Id: I24aac41c8abecf7b78a44d7f59e842b791be4563
2020-10-26LCD core move buf ptr and address look up function viewport structWilliam Wilgus8-39/+139
I'm currently running up against the limitations of the lcd_draw functions I want these functions to be able to be used on any size buffer not just buffers with a stride matching the underlying device [DONE] allow the framebuffer to be decoupled from the device framebuffer [DONE need examples] allow for some simple blit like transformations [DONE] remove the device framebuffer from the plugin api [DONE}ditto remote framebuffer [DONE] remove _viewport_get_framebuffer you can call struct *vp = lcd_set_viewport(NULL) and vp->buffer->fb_ptr while remote lcds may compile (and work in the sim) its not been tested on targets [FIXED] backdrops need work to be screen agnostic [FIXED] screen statusbar is not being combined into the main viewport correctly yet [FIXED] screen elements are displayed incorrectly after switch to void* [FIXED] core didn't restore proper viewport on splash etc. [NEEDS TESTING] remote lcd garbled data [FIXED] osd lib garbled screen on bmp_part [FIXED] grey_set_vp needs to return old viewport like lcd_set_viewport [FIXED] Viewport update now handles viewports with differing buffers/strides by copying to the main buffer [FIXED] splash on top of WPS leaves old framebuffer data (doesn't redraw) [UPDATE] refined this a bit more to have clear_viewport set the clean bit and have skin_render do its own screen clear scrolling viewports no longer trigger wps refresh also fixed a bug where guisyncyesno was displaying and then disappearing [ADDED!] New LCD macros that allow you to create properly size frame buffers in you desired size without wasting bytes (LCD_ and LCD_REMOTE_) LCD_STRIDE(w, h) same as STRIDE_MAIN LCD_FBSTRIDE(w, h) returns target specific stride for a buffer W x H LCD_NBELEMS(w, h) returns the number of fb_data sized elemenst needed for a buffer W x H LCD_NATIVE_STRIDE(s) conversion between rockbox native vertical and lcd native stride (2bitH) test_viewports.c has an example of usage [FIXED!!] 2bit targets don't respect non-native strides [FIXED] Few define snags Change-Id: I0d04c3834e464eca84a5a715743a297a0cefd0af
2020-10-26make the plugin API frambuffer agnosticMoshe Piekarski4-32/+32
Change-Id: I5abdc231093054c517ff53b9a456997e440e3f6e
2020-10-13Fix compile warnings (set-but-not-used) on big endian targetsSolomon Peachy1-14/+18
Change-Id: Ia433122d6c0af68a47d2f4a531a0787a9d3d9f72
2020-10-11New port: AIGO EROS Q / EROS KSolomon Peachy2-27/+26
The Q and K have a slightly different case, but the hardware under the shell is completely identical. These models are rebadged versions: * Hifiwalker H2 (== Q) * AGPTek H3 (== K) * Surfans F20 (== K) Other notes: * Significant improvements in the shared Hiby-platform launcher/loader * SD card can theoretically be hot-swapped now * Support external USB mass storage! * Some consolidation of Hiby-platform targets * Some consolidation of plugin keymaps Todo/known issues: * Keymaps need to be gone over properly * Convert to HAVE_SCROLLWHEEL? Change-Id: I5a8a4f22c38a5b69392ca7c0a8ad8c4e07d9523c
2020-10-09New port: FiiO M3KSolomon Peachy2-0/+23
Most credit goes to: Roman Skylarov Additional integration and refactoring by myself. *** COMPLETELY UNTESTED *** Change-Id: Ia64c36d92e0214c6b15f7a868df286f8113ea27b
2020-10-09plugins: Enable overlay features for all targetsSolomon Peachy1-2/+0
Change-Id: I8dfbdf903c1fb82541382709a50e411f1bcdaa5d
2020-10-09Fix red, hopefully.Solomon Peachy1-2/+0
Change-Id: I4ee6b9793260ac7dec9d72f27bfe242cd4adbf38
2020-08-09plugins: Make 'struct configdata' argument to the configfile helper constSolomon Peachy2-12/+12
So plugins can use const structures, possibly saving a little bit of RAM. Change-Id: I15b0ef20e7554caf5f6d1c12f6ab109ddf3c0dbd
2020-07-27kbd_helper fix yellowWilliam Wilgus1-1/+1
Change-Id: Ib54b36760678e88d3857ba70b0f4d1e1661bb0ad
2020-07-28kyb_helper small 'bug' fixWilliam Wilgus1-1/+1
Change-Id: Ia91a662262497c1a93ce8f26902aab5921ee7185
2020-07-24plugins: Fix the builds for targets lacking HAVE_BACKLIGHTSolomon Peachy1-0/+2
Change-Id: Ifdb1501834b7ea63ca6f731bbd6414305d7e0001
2020-07-24[4/4] Remove HAVE_LCD_BITMAP, as it's now the only choice.Solomon Peachy11-110/+8
Note: I left behind lcd_bitmap in features.txt, because removing it would require considerable work in the manual and the translations. Change-Id: Ia8ca7761f610d9332a0d22a7d189775fb15ec88a
2020-07-24[2/4] get rid of HAVE_LCD_CHARCELLSSolomon Peachy7-605/+2
HAVE_LCD_BITMAP is now redundant. lcd_bitmap is always-on in features.txt so manual and lang strings don't have to change Change-Id: I08eeb20de48099ffc2dc23782711af368c2ec794
2020-07-24[1/4] Remove SH support and all archos targetsSolomon Peachy7-364/+4
This removes all code specific to SH targets Change-Id: I7980523785d2596e65c06430f4638eec74a06061
2020-07-22keyboard add ability to specify temporary custom layoutsWilliam Wilgus3-0/+92
rb core allows you to load custom keyboard layouts this patch adds the ability to load a keyboard layout in a buffer the custom layout is temporary and does not overwrite the current layout use like so: unsigned short kbd[64]; unsigned short *kbd_p = kbd; if (!kbd_create_layout("ABCD1234\n", kbd, sizeof(kbd))) kbd_p = NULL; rb->kbd_input(buf,sizeof(buf), kbd_p); Change-Id: I7be2bd4a1b4797a147fa70228a9749dc56ac052a
2020-06-27button: allow disabling software poweroffFranklin Wei2-0/+25
On some devices, the button driver allows a "software poweroff" by long- pressing a certain key. This behavior is inconvnient when that button needs to be held down for other purposes, such as moving the cursor in rockpaint or sgt-untangle. This patch allows selectively disabling the software poweroff (enabled by default) from both core and plugin code. Change-Id: I7580752888ae5c7c7c5eb1be5966e3d67f17d4b4
2020-04-13av300: Continue cleaning out keymaps.Solomon Peachy1-7/+0
(A lot of work was done on this thing, for a target that hasn't been compileable at least since we moved to git..) Change-Id: Ibface9392f3251b5be4bf1e0c4d12639c4f1662d
2020-04-06xDuoo X3II and X20 portMarcin Bukat2-0/+46
Provided by Roman Stolyarov Integration, Refactoring, and Upstreaming by Solomon Peachy X3II confirmed working by forum tester, X20 is nearly identical. This includes bootloader, main firmware, and the flash image patcher. Eventual Todo: * Further refactor AGPTek Rocker & xduoo hiby bootloaders * Further refactor AGPTek Rocker & xduoo hosted platform code Change-Id: I34a674051d368efcc75d1d18c725971fe46c3eee
2019-07-20FS#7704 - Talk support for pluginsSolomon Peachy1-8/+8
Original patch by Mario Lang Heavily updated by Igor Poretsky Further updated by myself This patch breaks binary API compatibility by placing the new functions where they make the most logical sense. IMO this is the better approach to take given the scope of the changes needed for talk support. Since binary API is changing, the patch also moves some other functions around to more logical locations. As well as voice support in plugins, this patch voice-enables several simple plugins. There will be follow-up patches for many plugins that build on this one. Change-Id: I18070c06e77e8a3c016c2eb6b6c5dbe6633b9b54
2019-07-19Silence warning in stdio_compat.hFranklin Wei1-1/+1
Change-Id: I5aecaf6fcf42fbaf2deb933e590dcda6d01ac212
2019-07-19Quake!Franklin Wei1-0/+2
This ports id Software's Quake to run on the SDL plugin runtime. The source code originated from id under the GPLv2 license. I used as the base of my port. Performance is, unsurprisingly, not on par with what you're probably used to on PC. I average about 10FPS on ipod6g, but it's still playable. Sound works well enough, but in-game music is not supported. I've written ARM assembly routines for the inner sound loop. Make sure you turn the "brightness" all the way down, or colors will look funky. To run, extract Quake's data files to /.rockbox/quake. Have fun! Change-Id: I4285036e967d7f0722802d43cf2096c808ca5799
2019-01-02Add Xuelin iHIFI 770/770C/800 supportSolomon Peachy2-7/+52
Taken from the xvortex fork (Roman Stolyarov) Ported, rebased, and cleaned up by myself. Change-Id: I7b2bca2d29502f2e4544e42f3d122786dd4b7978
2018-07-28Add cleaned-up xDuoo X3 supportSolomon Peachy2-0/+23
Cleaned up, rebased, and forward-ported from the xvortex fork. (original credit to Change-Id: Ibcc023a0271ea81e901450a88317708c2683236d Signed-off-by: Solomon Peachy <>
2018-06-12Agptek Rocker: Build pluginsMarcin Bukat3-2/+17
Patch provided by Aapo Tahkola. Change-Id: I37a42a950d78d6b8aa3927ec7aeb30030f7be7a5
2018-04-03Zen XFi2: Enable PluginsSebastian Leonhardt1-3/+6
Keymaps aren't tested, there may be room for improvement. Change-Id: I6b8fe697899b241ea6e96f4fe446d88671ad7818
2017-12-24fix red once moreFranklin Wei1-5/+0
Change-Id: I6290cc6cca468c197656236d3dd31c3f72c53842
2017-12-24Undef potentially conflicting macros in stdio_compat.hFranklin Wei1-0/+3
Change-Id: If4af3e3cc16a947127e6253d0b81b684b5abb0c9
2017-12-24fix redFranklin Wei2-4/+5
Change-Id: Ib28cfd9037901c7b8bc9b2960ad2c1c9a1e25a69
2017-12-23Port of Duke Nukem 3DFranklin Wei2-12/+44
This ports Fabien Sanglard's Chocolate Duke to run on a version of SDL for Rockbox. Change-Id: I8f2c4c78af19de10c1633ed7bb7a997b43256dd9
2017-12-23stdio compat layer for pluginsMarcin Bukat3-0/+299
This is attempt to simplify porting programs to rockbox (as plugins). Currently this compat layer implements: fopen(), fclose(), fflush(), fread(), fwrite(), fseek(), fseeko(), ftell(), ftello(), fgetc(), ungetc(), fputc(), fgets(), clearerr(), ferror(), feof(), fprintf() In order to use it you need to include in ported sources "lib/stdio_compat.h" Change-Id: I5add615dd19c5af9c767ccbfb1bd5a4e466741cb
2017-12-16Fix last commitFranklin Wei1-3/+6
Change-Id: Ie3b3fad702e8c03d33b4a264139b6de74736e058
2017-12-16Change button mappings in plugins/lib/keymaps.hFranklin Wei1-4/+4
Some of the previous mappings didn't make much sense. Change-Id: If373e7d5f28b572523856763c999eb7c5180aced
2017-09-30xworld: support diagonal buttons on Zen X-FiFranklin Wei1-0/+11
Change-Id: Ia738ecd2a39c0c0772d6f939d549dd5d0eda055e
2017-09-30Harmonize plugin keymapsFranklin Wei1-0/+222
Aims to provide a lib/keymaps.h for plugins needing simple button functionality beyond that provided by PLA. Currently used by puzzles and xworld. Change-Id: Icb3493aaf176d401762de834dd48fc76a3824c5a
2017-02-04Fix dangerous castsAmaury Pouly2-2/+3
On Windows 64-bit, the size of long is 32-bit, thus any pointer to long cast is not valid. In any case, one should use intptr_t and ptrdiff_t when casting to integers. This commit attempts to fix all instances reported by GCC. When relevant, I replaced code by the macros PTR_ADD, ALIGN_UP from system.h Change-Id: I2273b0e8465d3c4689824717ed5afa5ed238a2dc
2017-01-15Renamed defines UNALIGNED to ROCKBOX_UNALIGNED - UNALIGNED is alreadyMatthias Mohr1-2/+2
defined in mingw environments. Renamed defines of UNALIGNED to ROCKBOX_UNALIGNED so that they don't conflict with definitions in mingw32 cross-compiling environments (defined in _mingw.h). Change-Id: I369848c0f507e6bf5ff9ab4a60663bbbda6edc52
2016-12-18Add circle drawing/filling to xlcdFranklin Wei2-0/+105
Change-Id: I5d28ade42145d9d82babcf62c0db7948927cafec
2016-06-28Fix endianness handling for sha1 (used by the otp plugin)Frank Gevaerts1-1/+1
Change-Id: I408d88d984f9026539c2d1bc2a9608243802c152