summaryrefslogtreecommitdiffstats
path: root/firmware/backlight.c
AgeCommit message (Collapse)AuthorFilesLines
2019-06-27Fix reversal of "always/never" in "LCD setting > Sleep (After Backlight Off)"Sebastian Leonhardt1-5/+8
The bug was introduced in a06d9c8. The patch also fixes some (more or less) related obsolete comments. Change-Id: I5e491d64574c37cdbc46b146d7cfc555d86b9a11
2019-02-07Fix lcd not waking up when backlight is always offSebastian Leonhardt1-0/+4
This patch is relevant for targets with a transflective display. If the backlight was set to "always off" (e.g. to use the lcd in a pure passive way), and the sleep timer ran off, the LCD would stay disabled and didn't wake up when a button is pressed. Change-Id: I0a157c7f421d9fc4c7d8ba903f2cf93f6cef51d0
2018-12-22Auto-Ranging Time Formatting For Menus (hh:mm:ss:mss)William Wilgus1-12/+6
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
2017-01-17Selective Backlight/Advanced Softlock - Selective actions based on contextWilliam Wilgus1-7/+47
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
2015-02-02iBasso DX50/DX90: Major code cleanup and reorganization.Udo Schläpfer1-0/+7
Reorganization - Separated iBasso devices from PLATFORM_ANDROID. These are now standlone hosted targets. Most device specific code is in the firmware/target/hosted/ibasso directory. - No dependency on Android SDK, only the Android NDK is needed. 32 bit Android NDK and Android API Level 16. - Separate implementation for each device where feasible. Code cleanup - Rewrite of existing code, from simple reformat to complete reimplementation. - New backlight interface, seperating backlight from touchscreen. - Rewrite of device button handler, removing unneeded code and fixing memory leaks. - New Debug messages interface logging to Android adb logcat (DEBUGF, panicf, logf). - Rewrite of lcd device handler, removing unneeded code and fixing memory leaks. - Rewrite of audiohw device handler/pcm interface, removing unneeded code and fixing memory leaks, enabling 44.1/48kHz pthreaded playback. - Rewrite of power and powermng, proper shutdown, using batterylog results (see http://gerrit.rockbox.org/r/#/c/1047/). - Rewrite of configure (Android NDK) and device specific config. - Rewrite of the Android NDK specific Makefile. Misc - All plugins/games/demos activated. - Update tinyalsa to latest from https://github.com/tinyalsa/tinyalsa. Includes - http://gerrit.rockbox.org/r/#/c/993/ - http://gerrit.rockbox.org/r/#/c/1010/ - http://gerrit.rockbox.org/r/#/c/1035/ Does not include http://gerrit.rockbox.org/r/#/c/1007/ due to new backlight interface and new option for hold switch, touchscreen, physical button interaction. Rockbox needs the iBasso DX50/DX90 loader for startup, see http://gerrit.rockbox.org/r/#/c/1099/ The loader expects Rockbox to be installed in /mnt/sdcard/.rockbox/. If /mnt/sdcard/ is accessed as USB mass storage device, Rockbox will exit gracefully and the loader will restart Rockbox on USB disconnect. Tested on iBasso DX50. Compiled (not tested) for iBasso DX90. Compiled (not tested) for PLATFORM_ANDROID. Change-Id: I5f5e22e68f5b4cf29c28e2b40b2c265f2beb7ab7
2015-01-12Get rid of stupid _backlight_* function namesMarcin Bukat1-20/+20
_remote_backlight_* and _buttonlight_* are cleaned as well Change-Id: I73653752831bbe170c26ba95d3bc04c2e3a5cf30
2011-02-14All kernel objects in code shared amongs targets (core, plugins, codecs) ↵Michael Sevakis1-1/+1
should be declared SHAREDBSS_ATTR as any core could potentially touch them even though they seem only to involve threads on one core. The exception is target code for particular CPUs where proper allocation is fixed. playlist.c was a little odd too-- use one mutex for the current playlist and a separate one for created playlists (still pondering the necessity of more than one). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29305 a1c6a512-1295-4272-9138-f99709370657
2011-01-18Try to get some control over #ifdef hell in usb.c by refactoring and inline ↵Michael Sevakis1-4/+0
function use. SYS_USB_DISCONNECTED_ACK hasn't been doing anything useful for the USB thread; remove it. USB thread simply ignores that value. Observe only valid usb_state transitions. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29084 a1c6a512-1295-4272-9138-f99709370657
2010-08-01Fix #ifdef in backlight.c from previous commitBertrik Sikken1-2/+2
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27648 a1c6a512-1295-4272-9138-f99709370657
2010-08-01Various minor cleanupsBertrik Sikken1-1/+5
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27647 a1c6a512-1295-4272-9138-f99709370657
2010-06-21I shouldn't have touched backlight.c at all :\ Also fix the yellow in ↵Thomas Martitz1-7/+6
peakmeter.c git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27022 a1c6a512-1295-4272-9138-f99709370657
2010-06-21Fix yellows and reds (one was a type, the other was rather incorrect before ↵Thomas Martitz1-7/+8
already) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27021 a1c6a512-1295-4272-9138-f99709370657
2010-06-21Rockbox as an application: Replace many occurences of #ifdef SIMULATOR with ↵Thomas Martitz1-2/+3
#if (CONFIG_PLATFORM & PLATFORM_HOSTED) (or equivalently). The simulator defines PLATFORM_HOSTED, as RaaA will do (RaaA will not define SIMULATOR). The new define is to (de-)select code to compile on hosted platforms generally. Should be no functional change to targets or the simulator. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27019 a1c6a512-1295-4272-9138-f99709370657
2009-11-23Fix FS#10362 (flickering backlight when removing hold) by preventing ↵Rob Purchase1-3/+4
multiple SYS_TIMEOUT events being posted the backlight thread. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23730 a1c6a512-1295-4272-9138-f99709370657
2009-06-29Remove int_prio argument from timer_register, and move the only use for it ↵Rafaël Carré1-1/+1
into alpine_cdc plugin, since this plugin is only built on SH7034 Also remove it from TIMER_START() git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21558 a1c6a512-1295-4272-9138-f99709370657
2009-05-05Remove an #ifdef SIMULATOR in favor of using a stubThomas Martitz1-2/+0
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20853 a1c6a512-1295-4272-9138-f99709370657
2009-05-01Fix another FS#10130 issue - Set backlight and button light brightness via ↵Boris Gjenero1-9/+25
the backlight thread to avoid potential concurrency issues. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20834 a1c6a512-1295-4272-9138-f99709370657
2009-04-28Hopefully fix lcd_sleep() from not be being called for targets without ↵Thomas Martitz1-23/+32
fading at all and being and being called too early for backlight always of on PWM fading targets. Also, clean up the code a bit by renaming the function that initiates fading on PWM. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20820 a1c6a512-1295-4272-9138-f99709370657
2009-04-26Move the sim stubs into a seperate file to clean backlight.c up a bit.Thomas Martitz1-42/+2
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20796 a1c6a512-1295-4272-9138-f99709370657
2009-04-26Remove two calls backlight_lcd_sleep_countdown() more, this time in backlight.cThomas Martitz1-8/+0
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20795 a1c6a512-1295-4272-9138-f99709370657
2009-04-26Replace the condition with a more obvious function call, which is the same.Thomas Martitz1-1/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20794 a1c6a512-1295-4272-9138-f99709370657
2009-04-26Remove the calls to backlight_lcd_sleep_countdown from target specific code ↵Thomas Martitz1-3/+19
and move it into backlight.c git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20793 a1c6a512-1295-4272-9138-f99709370657
2009-04-26Remove the backlight tick task in favor of handling timeouts through a 1s ↵Thomas Martitz1-31/+42
timeout in the backlight thread. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20792 a1c6a512-1295-4272-9138-f99709370657
2009-04-25Restructure backlight timeout management a bit by factoring out the ↵Thomas Martitz1-43/+43
get_current_timeout code. No functional change. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20789 a1c6a512-1295-4272-9138-f99709370657
2009-04-25Fix red.Thomas Martitz1-5/+0
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20785 a1c6a512-1295-4272-9138-f99709370657
2009-04-25Rename _buttonlight_timeout and use a function call instead of extern'ing ↵Thomas Martitz1-7/+12
buttonlight_timeout to be more inline with backlight, and use a #define instead of a const variable for !HAVE_LCD_SLEEP_SETTING (no functional changes) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20784 a1c6a512-1295-4272-9138-f99709370657
2009-04-24Add forgotton colon and fix red.Thomas Martitz1-1/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20779 a1c6a512-1295-4272-9138-f99709370657
2009-04-24Fix FS#10130 (Concurrent backlight function calls from backlight timeout ↵Thomas Martitz1-7/+13
settings menu) by ensuring that all calls of target-specific backlight code happen from backlight thread git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20778 a1c6a512-1295-4272-9138-f99709370657
2009-04-21FS#10129 - Start LCD sleep timer after PWM fadeout is completeBoris Gjenero1-3/+17
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20774 a1c6a512-1295-4272-9138-f99709370657
2009-02-20Add a rockbox kernel thread for simulator specific tasks, and use that for ↵Jens Arnold1-10/+0
calling the screendump function(s). Fixes screendump in simulators for backlight-less targets (Ondio), and reduces mixing of unrelated functionality a bit (screendump was called from backlight thread, triggered by a sim-only system wide event). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20065 a1c6a512-1295-4272-9138-f99709370657
2009-02-10Move screendump from apps to firmware, solving two nasty firmware-to-apps ↵Jens Arnold1-4/+6
calls. This required to move the filename creation functions as well. * Fix bug in the BMP header of Clip screendumps. * Add remote screendump for targets with an LCD remote. * Simplify some ifdefs and rename a macro in the sim. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19967 a1c6a512-1295-4272-9138-f99709370657
2009-01-26Commit FS#9724, which reworks the preprocessor defines related to backlight ↵Thomas Martitz1-30/+33
fading to a CONFIG_BACKLIGHT_FADING style. The apps/ code will only see which setting is supposed to be used, specific backlight fading handling is kept in firmware, slightly reword the manual text about software fading too with regards to the Gigabeat S git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19860 a1c6a512-1295-4272-9138-f99709370657
2009-01-22Rename software backlight fading files, as we don't call it thread fading. ↵Thomas Martitz1-1/+1
Correct a copyright info too. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19818 a1c6a512-1295-4272-9138-f99709370657
2009-01-18Commit part 1 of FS#9663 by Thomas Martitz. Enables backlight fading on the ↵Michael Giacomelli1-3/+3
Fuze and e200v2. Also removed a bit of dead code that was copied by accident into the fuze and e200v2 config files. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19791 a1c6a512-1295-4272-9138-f99709370657
2008-12-10Use cookies for thread identification instead of pointers directly which ↵Michael Sevakis1-5/+5
gives a buffer against wrongly identifying a thread when the slot is recycled (which has been nagging me for awhile). A slot gets 255 uses before it repeats. Everything gets incompatible so a full update is required. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19377 a1c6a512-1295-4272-9138-f99709370657
2008-12-03Straighten out some powermanagement stuff. Give target complete control over ↵Michael Sevakis1-10/+2
how power inputs are sensed. Clean SIMULATOR stuff out of target files. Get rid of USB charging option on targets that don't support it or don't implement it yet. Menu string remains to avoid language incompatibility but should be removed on next cleanup for targets not using it (notice in english.lang). global_settings becomes incompatible for some builds and so plugin API version is incremented. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19315 a1c6a512-1295-4272-9138-f99709370657
2008-11-26Fix reds. Also note my r19221 commit message had a typo - shoudld have been ↵Steve Bavin1-5/+5
e200/c200, not e100. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19224 a1c6a512-1295-4272-9138-f99709370657
2008-11-26Add software backlight fading for E100/H300/X5/D2, by Thomas Martitz and ↵Steve Bavin1-12/+114
others - see FS#6800 for credits. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19221 a1c6a512-1295-4272-9138-f99709370657
2008-09-15Revert v18522 for firmware/backlight.c, it breaks a couple of bootloadersBertrik Sikken1-0/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18523 a1c6a512-1295-4272-9138-f99709370657
2008-09-15Fix some more #includesBertrik Sikken1-1/+0
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18522 a1c6a512-1295-4272-9138-f99709370657
2008-06-28Updated our source code header to explicitly mention that we are GPL v2 orDaniel Stenberg1-2/+4
later. We still need to hunt down snippets used that are not. 1324 modified files... http://www.rockbox.org/mail/archive/rockbox-dev-archive-2008-06/0060.shtml git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17847 a1c6a512-1295-4272-9138-f99709370657
2008-05-14Oops. Left a couple things in a bad state when using fading.Michael Sevakis1-5/+5
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17515 a1c6a512-1295-4272-9138-f99709370657
2008-05-14Straigten-out lcd sleeping on Gigabeat F/X. Add a service function to ↵Michael Sevakis1-20/+42
backlight.c to handle lcd sleep timer. Make HAVE_LCD_SLEEP useable without a setting and use HAVE_LCD_SLEEP_SETTING when a setting is available in addition to HCD_HAVE_SLEEP. If a setting isn't used, the target must define the timeout to be used in the config. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17505 a1c6a512-1295-4272-9138-f99709370657
2008-05-10Bring Gigabeat S bootloader one step close to a release version.Michael Sevakis1-7/+42
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17442 a1c6a512-1295-4272-9138-f99709370657
2008-04-061st/2nd Gen: Make backlight inversion adaption in the greyscale library work ↵Jens Arnold1-2/+2
again. is_backlight_on() can now be called from COP. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16988 a1c6a512-1295-4272-9138-f99709370657
2008-04-04Allow to select the core for running the user timer on portalplayer targets. ↵Jens Arnold1-2/+3
* Incompatible plugin API change -> sorted API. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16965 a1c6a512-1295-4272-9138-f99709370657
2008-04-02Ooops, overlooked the no-backlight stubs...Jens Arnold1-2/+12
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16937 a1c6a512-1295-4272-9138-f99709370657
2008-04-02Greyscale library: * Implement linearisation curve flipping for 1st/2nd Gen ↵Jens Arnold1-12/+12
iPods (LCD is inverted when backlight is on, so the curve is also inverted). This needs a slight extension of is_backlight_on() functionality in the core. * Thorough recalibration of all reachable greyscale targets, and #ifdef cleanup. * Reduce on-target gamma a bit, because the displayable contrast range of a monochrome/greyscale isn't that high. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16936 a1c6a512-1295-4272-9138-f99709370657
2008-03-25Revert accidental tree commit. /me needs a smaller enter key...Jens Arnold1-1/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16805 a1c6a512-1295-4272-9138-f99709370657
2008-03-25Cabbiev2 gigabeat background: reduce WPS backdrop filesize by storing it as ↵Jens Arnold1-1/+1
24 bit BMP instead of unnecessary 32 bit. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16802 a1c6a512-1295-4272-9138-f99709370657