path: root/apps/gui
AgeCommit message (Collapse)AuthorFilesLines
2020-07-24[3/4] Completely remove HWCODEC supportSolomon Peachy8-304/+5
'swcodec' is now always set (and recording_swcodec for recording-capable units) in feature.txt so the manual and language strings don't need to all be fixed up. Change-Id: Ib2c9d5d157af8d33653e2d4b4a12881b9aa6ddb0
2020-07-24[2/4] get rid of HAVE_LCD_CHARCELLSSolomon Peachy15-427/+1
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-236/+4
This removes all code specific to SH targets Change-Id: I7980523785d2596e65c06430f4638eec74a06061
2020-07-16statusbar: explicitly #include <button.h>Solomon Peachy1-0/+1
This header relies on stuff that might get defined in button.h, and was reliant upon being implicitly included. The last thing we want is a struct to change layout underneath us! Change-Id: If96451bc5e2219031a592ab82c56045188dbe645
2019-09-24Bug fix icon.c crashes with negative icon indexWilliam Wilgus1-1/+1
The index for Icon_NOICON is -1 which is caught properly as is icon > Icon_Last_Themeable But if you pass an index lower than Icon_NOICON screen_put_iconxy() tries to read memory prior to the iconset resulting in a crash Change-Id: I415e650932d65214d883a1595e22261f22e776b6
2019-08-05Speech Feedback improvements on the QuickscreenSolomon Peachy2-7/+8
Patch by Igor Poretsky Change-Id: I1bb94965cb18efaa0787d7780f6cf22814231144
2019-07-28Show time, date, and recording directory in the info screenSolomon Peachy2-0/+9
Patch by Igor Poretsky Change-Id: I5db0d018742c11dd9bf3ca4c9539cd91f94d4c2e
2019-07-10Fix truncation warning color_picker.c->draw_screenWilliam Wilgus1-2/+2
Change-Id: I72f16163684aba6c9c3fcf4ade6f2906d80b3899
2019-07-10Fix possible truncation statusbar.c->gui_statusbar_icon_batteryWilliam Wilgus1-3/+4
limit percent range to 0 - 100% Change-Id: I46477cdfe954fb1ea3e6158949c920769447762e
2019-02-26Fix skin_engine.c Album Art never dealloc'd on theme changeWilliam Wilgus1-0/+7
Patch from forum user Chris_s,52708.0.html Change-Id: I29f8702ced300d1dc90dfa0e8baa609b9051903e
2019-02-04pitchscreen: Fix compile on HWCODEC players.Solomon Peachy1-1/+5
Change-Id: Iffb7018e935e017baf84ddc8e742270f82b996ab
2019-02-03Add speech feedback in pitchscreenSolomon Peachy1-0/+75
Patch by Igor Poretsky Change-Id: I8828cefdb3346a25071fba0afff2c9d3bca440a1
2019-01-31FS#10311 -- Add beep when navigating to beginning or end of list.Solomon Peachy1-15/+59
Originally by Stephane Doyon. Updated by Alex Wallis, Igor Poretsky, and myself. Change-Id: I996f18043bd3377d5aeaf65f4290250ea2a6832b
2018-12-22Auto-Ranging Time Formatting For Menus (hh:mm:ss:mss)William Wilgus1-18/+23
Unifies time formatting in settings_list.c allows time format to display as HH:MM:SS.MSS or any consecutive combination thereof (hh:mm:ss, mm:ss, mm:ss.mss, ss.mss, hh, mm, ss ,mss) works in INT and TABLE settings with the addition of flag 'F_TIME_SETTING' Time is auto-ranged dependent on value Adds talk_time_intervals to allow time values to be spoken similar to display format: x Hours, x Minutes, x Seconds, x Milliseconds Table lookups merged or removed from recording, clip meter and lcd timeout -String_Choice replaced with TABLE_SETTING or INT_SETTING for these functions as well, cleaned-up cfg_vals that get saved to cfgfile RTL Languages ARE supported Negative values ARE supported Backlight on/off are now Always and Never to share formatter with LCD Timeout Added flag to allow ranged units to be locked to a minimum index Added flag to allow leading zero to be supressed from the largest unit merged talk_time_unit() and talk_time_intervals() optimized time_split() optimized format_time_auto() Backlight time-out list same as original Change-Id: I59027c62d3f2956bd16fdcc1a48b2ac32c084abd
2018-06-20Volume adjustment in WPS ignored AUDIOHW_SETTING valuesMarcin Bukat1-2/+2
AUDIOHW_SETTING() defines number of decimals and step size. This is taken into account in sound menu but ignored in WPS. This was not a problem so far since all drivers used 0 decimal places and step size equal 1. Change-Id: I3466d6651c46a24cb5114eae1e1747293a76a1a6
2017-11-24Do playback restarts the proper wayMichael Sevakis1-16/+7
It isn't necessary to explicitly stop and restart playback to force it to update something that must cause rebuffering. Change-Id: I6ff5394fcafc7374af67ef9fbf9022bb4a79b773
2017-11-21Undo hacks to meant to get around string formatting limitationsMichael Sevakis2-33/+8
The new vuprintf makes unnecessary workarounds due to formatting limitations. I checked grep output for whatever appeared to fit but it's possible I missed some instances because they weren't so obvious. Also, this means sound settings can dynamically work with any number of decimals rather than the current assumption of one or two. Add an ipow() function to help and take advantage of dynamic field width and precision. Consolidate string formatting of sound settings. Change-Id: I46caf534859dfd1916cd440cd25e5206b192fcd8
2017-09-07Explicitly provide both cases in conditional (fixes warning)Frank Gevaerts1-1/+1
Change-Id: Iedca64432103af5407a7c7bac83e92ca1ae8992b
2017-02-11Improve radio RDS driver and frameworkMichael Sevakis1-2/+4
* Remove unused bits like the radio event and simplify basic radio interface. It can be more self-contained with rds.h only required by radio and tuner code. * Add post-processing to text a-la Silicon Labs AN243. The chip's error correction can only do so much; additional checks are highly recommended. Simply testing for two identical messages in a row is extremely effective and I've never seen corrupted text since doing that, even with mediocre reception. Groups segments must arrive in order, not randomly; logic change only accepts them in order, starting at 0. Time readout was made a bit better but really we'd need to use verbose mode and ensure that no errors were seen during receiving of time and more checks would be need to have a stable PI. The text is the important bit anyway. * Time out of stale text. * Text is no longer updated until a complete group has been received, as is specified in the standard. Perhaps go back to scrolling text lines in the radio screen? * Add proper character conversion to UTF-8. Only the default G0 table for the moment. The other two could be added in. * Add variants "RDS_CFG_PROCESS" and "RDS_CFG_PUSH" to allow the option for processed RDS data to be pushed to the driver and still do proper post-processing (only text conversion for now for the latter). Change-Id: I4d83f8b2e89a209a5096d15ec266477318c66925
2017-02-04Fix dangerous castsAmaury Pouly1-1/+1
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-17Selective Backlight/Advanced Softlock - Selective actions based on contextWilliam Wilgus2-0/+328
Selective backlight allows the user to choose actions that will not enable the backlight when pressed. Advanced softlock allows user to choose actions that will not be blocked by screenlock on devices without a hold button. Both only occur in FM and WPS Contexts. Update: Back from the dead -Cleaned up code, removed unnecessary calls, re-arranged last filter action timeout conditional to work in case last_filtered_action_tick was never set -Added entries to the manual -Fixed back button on some menus not activating backlight -Made menus more intuitive, no actions selected now changes menu item to off. -Added talk fuctionality. -Added option to disable selective backlight while on external power. -Rewrote backlight and softlock handling code to fix issue with scrollwheels -Menu changed to have toggle(yes/no) and settings -Optimized selective actions lookup -Added option to disable notification of 'buttons locked' while softlocked -Removed uneeded code, consolidated action lookup to single function -Fixed incorrect name on selective softlock menu -Added option to disable touch on touchscreen devices -Fixed backlight on original screenlock without selective screenlock active -Added text selection in mask_select for when show_icons is off -Fixed voice in mask_select to speak if voice is defined instead of spelling -Added more lang defines (play skip seek) -Added option to disable unknown keys turning on backlight -Fixed Conditional argument In wrong place causing players without backlight to fail to build -Fixed Disable Unknown blocking detection of context change -Fixed canceling menu didn't update new settings -Added Autolock on backlight off -Removed backlight_on_force from backlight.c, Now sets ignore next to false and uses backlight_on -Cleaned up autolock code added strings to lang file -Fixed issue where rapid presses would bypass softlock -Removed old softlock code, Cleaned selective actions code -Changed menu to match existing RB menus -Fixed Backlight_on_Hold blocked by backlight_ignore_next -Fixed ignore_next for ipod -Fixed bug allowing context with softlock to bypass selective backlight -Changed mask_select to no longer prompt for changes to be saved -Changed menu names -Added ignore timeout to allow ipod scroll wheel to work properly and other players to still work properly, removed some previous code including ignore_event -Increased ignore timeout to prevent sd card accesses from interrupting action code and turning on backlight -Changed Unknown action to unmapped action in menu, changed handling code -Removed unneeded logic and variables for handling unfiltered actions -Reverted unmapped action code to previous functionality -Added manual entries (thanks JohnB) -Removed elusive unhandled unicode character from manual, changed formatting slightly Actions: Volume,Play,Seek,Skip Extras: Disable unmapped actions Disable selective backlight on external power Disable touch during softlock on touchscreen devices Disable softlock notifications (power button still notifies) Autolock on backlight off Method: Adds a function to ignore backlight on next call If selected action occurs backlight is forced on, Filter_first_keypress stays intact. Selective softlock allows selected actions through, bypasses the normal softlock routine. ToDo: DONE previous commit (#1) has attribution for folder_select.c which mask_select is based from. Change-Id: I08132ddcfd64c81751ef23b720f3ec6d68695fe4
2016-08-12Fix misleading indentation as pointed out by the new gcc warningFrank Gevaerts1-3/+3
Change-Id: Ia9c0b09ffb57dccbc7d13fce3b3a8a7d46b84857
2016-04-04Fix reset runtimeMihail Zenkov1-2/+1
Change-Id: Ic1ba0c7c7883aae43100c67235dbc2db83056fe7
2015-11-10Fix scrolling left button inadvertently cancels listtreeSebastian Leonhardt1-6/+8
Depending on the actual keymap, canceling a listtree with the "scroll left" button may not be intended, especially if the list is entered from a completely different focus (think of leaving a plugin with "long left") Note: initializing "scrolling_left" with true without anything actually scrolling sounds odd to me... maybe this variable should be renamed? "pgleft_allow_cancel" comes to my mind (with opposite boolean states) Change-Id: I58a747fc90e91ae96e75932febb462f1f1a1b4ca
2015-10-25AB repeat: fix bug that prevents to jump to beginning of trackSebastian Leonhardt1-6/+3
Change-Id: Ia323a2b16eaaf7d9afa888b71fd8b20fd9e2e62c
2015-10-07iPod Classic: reads HDD S.M.A.R.T. dataCástor Muñoz1-0/+4
Adds ata_read_smart() function to storage ATA driver, current SMART data can be displayed and optionally written to hard disk using System->Debug menu. Change-Id: Ie8817bb311d5d956df2f0fbfaf554e2d53e89a93
2015-01-08Clarify usb_powered() and fix some code.Amaury Pouly1-4/+2
Either by mistake or because its meaning changed, usb_powered() doesn't mean what the name suggest, so clarify its meaning by renaming it to usb_powered_only. So use of usb_powered() are replaced by usb_inserted() when it makes more sense. Change-Id: I112887e2d8560e84587bee5f55c826dde8c806d8 Reviewed-on: Reviewed-by: Amaury Pouly <>
2014-12-20Fix broken buflib_handle check in backdrop settings loaderThomas Jarosch1-1/+1
The logic was messed up and always evaluated to true if buflib_handle is non-zero. Thanks to JdGordon for verifying the change. cppcheck reported: [rockbox/apps/gui/skin_engine/skin_backdrops.c:262]: (warning) Comparison of a boolean expression with an integer other than 0 or 1. Change-Id: Ib52a73e0a6a2017a631e2dec19b638a2974dab83
2014-09-08Correct some file permissions.Szymon Dziok1-0/+0
Change-Id: I4a092a19d6a9c66dfeb2777c9655aa4b19d11e16
2014-08-05Fix up some more redMichael Sevakis1-6/+8
find_first_set_bit() becomes a small inline on ARMv5+ and checkwps now gets made with -std=gnu99 (it eats all the GCCOPTS) like the rest of things. Change-Id: Ie6039b17fec057a3dcb0f453d8fd5efac984df89
2014-07-21add supports for x,y value in percentage to several tags.Chiwen Chang1-16/+100
including BAR_PARAMS, %xl, %dr, %T,%St, %xl and %Cl Change-Id: I0811ebfff5f83085481dcbf08f97b7223f677bfe Reviewed-on: Reviewed-by: Jonathan Gordon <>
2014-06-29skin_engine: kill scrolling if the buffer movesJonathan Gordon1-0/+10
I have a suspicion that if there is any scrolling skin lines when the buflib buffer moves it will cause the lcd code to crash. This *hopefully* explains the random skin related crashed which have been reported. Change-Id: I04ee58292e1cea7c77ef9737b0641192f4f7e4ba Reviewed-on: Reviewed-by: Thomas Martitz <>
2014-06-21lcd-24bit: Introduce a 24-bit mid-level LCD driverThomas Martitz3-17/+31
With LCD driver all calculation will be performed on RGB888 and the hardware/OS can display from our 24bit framebuffer. It is not yet as performance optimized as the existing drivers but should be good enough.The vast number of small changes is due to the fact that fb_data can be a struct type now, while most of the code expected a scalar type. lcd-as-memframe ASM code does not work with 24bit currently so the with 24bit it enforces the generic C code. All plugins are ported over. Except for rockpaint. It uses so much memory that it wouldnt fit into the 512k plugin buffer anymore (patches welcome). Change-Id: Ibb1964545028ce0d8ff9833ccc3ab66be3ee0754
2014-06-02fix indenting, editor went nutsJonathan Gordon1-8/+8
Change-Id: Ibe363e5c75260f50c6c6c6fc58a2758a7902ffc3
2014-06-02skin_engine: Don't double free buflib handles shared by skin imagesJonathan Gordon1-0/+12
Change-Id: I4158fb7dae664a746141f458c08bdcb84e148041
2014-05-18Also make sure progressbars don't tihnk their images are loadedJonathan Gordon1-0/+1
Change-Id: I83bb8e246e4858396ca0b5d0d90fbd2d08a88c1e
2014-05-18fix skin buffer crashes, img's are not loaded initialyJonathan Gordon1-0/+1
Change-Id: I32b5d5e446f5ae9340be2bd47841b06a5dbabeec
2014-05-14don't load the same bmp image more than once in a skinJonathan Gordon1-2/+22
Change-Id: Ie38146a80bb356f40810f017c262b81edac69688
2014-04-18skin_engine: Make %Vs affect the whole line.Thomas Martitz1-9/+9
Previously %Vs styles only took effect upon the first character of text, i.e. on the right if the line is %arXXX. Now the style is applied for the whole line width. Fixes FS#12973. Change-Id: I95f2cc76a90bfc0779e5a667d5bfa54c33896c89
2014-03-18Fix build reds caused by typos.Thomas Martitz1-2/+2
Change-Id: I71cdca3b6e73e29d487e0c6d02a69a31dcf3e6bf
2014-03-18usb screen: Stop scrolling the entire display.Thomas Martitz1-1/+5
It's not easy for the originating screen to perform cleanup in case of USB because the usb screen is invoked indirectly via default_event_handler(). To avoid stale scrolling lines perform the cleanup in the usb screen itself. Side effect should be no worse than scrolling lines to restart in SBSes that show during USB. Change-Id: I9aa491b3d4b649c0b3be70048ebcb9d817c0356c
2014-03-18quickscreen: return true on USB connection.Thomas Martitz1-7/+13
This is consistent with other screens (pitch, id3) on the WPS and in other places. Change-Id: Iafae52507867ff9815a60cf44faaf09a29c55091
2014-03-14events: Rework event subsystem (add_event, send_event) to be more versatile.Thomas Martitz5-47/+40
add_event_ex is added that takes an extra user_data pointer. This pointer is passed to the callback (add_event and add_event_ex have slightly different callbacks types). All callbacks also get the event id passed. Events added with add_event_ex must be removed with remove_event_ex because the user_data pointer must match in addition to the callback pointer. On the other add_event is simplified to omit the oneshort parameter which was almost always false (still there with add_event_ex). As a side effect the ata_idle_notify callbacks are changed as well, they do not take a data parameter anymore which was always NULL anyway. This commit also adds some documentation to events.h Change-Id: I13e29a0f88ef908f175b376d83550f9e0231f772
2014-03-10ab_repeat: Move GUI bits to the skin engine. This allows ab_repeat to be ↵Thomas Martitz1-0/+67
compiled headless. Change-Id: I4fa3b8ef7139313891ca70df11f7f17c5df38cb7
2014-03-10Implement time-based resume and playback start.Michael Sevakis2-2/+5
This complements offset-based resume and playback start funcionality. The implementation is global on both HWCODEC and SWCODEC. Basically, if either the specified elapsed or offset are non-zero, it indicates a mid-track resume. To resume by time only, set elapsed to nonzero and offset to zero. To resume by offset only, set offset to nonzero and elapsed to zero. Which one the codec uses and which has priority is up to the codec; however, using an elapsed time covers more cases: * Codecs not able to use an offset such as VGM or other atomic formats * Starting playback at a nonzero elapsed time from a source that contains no offset, such as a cuesheet The change re-versions pretty much everything from tagcache to nvram. Change-Id: Ic7aebb24e99a03ae99585c5e236eba960d163f38 Reviewed-on: Reviewed-by: Michael Sevakis <> Tested: Michael Sevakis <>
2014-03-03Fix greyscale and mono builds.Thomas Martitz1-2/+2
Change-Id: I511376eb42d1109dbe10d4fc5aa849b21d9f7582
2014-03-03Touchscreen: Show a line separator in lists.Thomas Martitz3-6/+42
This patch adds a configurable line separator between list items, very similar to lists in Android. Additionally, below the list item there is a thicker line. It can be disabled in the settings. Its color can be configured as well. Remote and monochrome displays are explicitly unsupported. If there is desire this can be changed but it doesn't seem useful to me. Change-Id: I005313b0d8f5ecd15864bf20e66ea4e3390d8b7d
2014-03-03Fix regression introduced by eec89a9.Thomas Martitz1-3/+3
The icon pixel position must be calculated before y is modified. Change-Id: I16947dd8862683530dd7c5f00cfa7cf8d9636e61
2014-03-03Fix FS#12951: The icons could be a pixel to far down.Thomas Martitz1-1/+5
Since eec89a9 icons have been centered using same calculation as for fonts. In edge cases this is visually different from before and didn't align well to the font's baseline. Revert to the old calculation just for centering icons to fix. A proper aligorithm would take the baseline into account but this has worked sufficiently well for us (fix this if needed) Change-Id: I86593529b16cd28ae4552641e216e73795f2450c
2014-01-22Fix red on monochrome.Thomas Martitz1-0/+2
Change-Id: Ice40c81d0d07f7ec2014697e4de446dcb956afe8