path: root/apps/action.h
AgeCommit message (Collapse)AuthorFilesLines
2017-11-18Action.c FIX / Rework / Clean-up Action SystemWilliam Wilgus1-8/+73
FIX - softlock not allowing power button to shutdown device when active FIX - autolock not working unless Selective backlight enabled Rework - get_action_worker split into more managable chunks Rework - moved all static variables to a single struct action_last to be passed through all internal functions Rework - current action state moved to struct action_current to be initialized at each get_action /get_action_custom call Rework - action lookup in button maps changed slightly to prefer fully formed actions rather than blindly returning action with BUTTON_NONE as pre_button this should allow actions defined in keymaps positional independence Rework / Clean-up - moved conditionals on internal functions to inside the functions -Allows much cleaner code & empty functions should be optimized out by compiler Rework / Clean-up - softlock and backlight exemptions code Clean-up - remove a lot of (now) unused defines Clean-up - organize / move all exported functions to their own section in the file Comments added to all internal functions to better explain their purpose Change-Id: I0ac02d1a2b45826843611513fea3c20a819d2fed
2017-01-17Selective Backlight/Advanced Softlock - Selective actions based on contextWilliam Wilgus1-38/+64
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
2012-07-06skin_engine: Make pressing the setting bar touch region workJonathan Gordon1-0/+1
might need some tweaking, but works. Change-Id: I0784cd4fe9996531da6cc275491ff3b4e83cdbcf
2012-03-13Add new actions to %Tp (Touchscreen areas)Osborne Jacobs1-0/+2
Add the following actions to %Tp: createbookmark create a new bookmark from the wps listbookmarks list bookmarks from the wps trackinfo show track info from the wps My main motivation was to allow bookmarking and jumping around audio books from the wps on touch enabled targets. You can do it now through the context menu but it requires 4 screen presses instead of 1. Change-Id: I1fa1bf0064dfd22b897eca7c56acc1ce8956f14c Reviewed-on: Reviewed-by: Jonathan Gordon <>
2012-03-03Correct actionable offense for misappropriation of action context.Michael Sevakis1-5/+0
Just use a bool to indicate raw button instead of action code. No bother with plugin version yet again so soon. Change-Id: I4aa075c0c1fb5308c9d49bebb30ac76f671b2335
2012-03-03Change keyclick_click so that it may accept raw buttons or actions.Michael Sevakis1-0/+5
Adds a new context, CONTEXT_RAWBUTTON, that I hope is out of the way of everything. Unfortunately have to increment min plugin API version for the second time today to accomodate additional parameter. Change-Id: Iaa46b926e57cf377fd4906f2d42bb98e87215033
2012-01-23skin touchregions: fix the 'none' region firing when it shouldnt.Jonathan Gordon1-1/+2
Change the none action return value so the various action layers don't get confused by ACTION_TOUCHSCREEN return codes which shouldn't be happening (i.e when a long press region overlaps a short press region whihc has the none action) Change-Id: I63db2c0b49597ada2c5ebd0ef98e99aeef4f522a
2011-07-28skin engine softlock support for touchscreens:Jonathan Gordon1-0/+1
Modify the %Tl() tag to add a new region 'lock' which will lock/unlock the wps/sbs from touches (hardware buttons still work) You can also specify a region to work when locked by prepending ^ to the action name (this is probably about to change though) git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2011-03-27Fix touchregions muting volume, and change &<action> to mean 'needs long ↵Jonathan Gordon1-0/+2
press but only fire once'. Use *<action> for 'long press and allow repeats' git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2011-03-01Add an ability to set a setting to a specific value with a touchscreen action.Jonathan Gordon1-0/+1
example: %T(0,0,20,12, setting_set, repeat, off) That will set the repeat mode to "off" when it is pressed. "setting_set" is the action name "repeat" is the name of the setting in the config files "off" is the value to set it to (same values as the legal values in the config files) Not all settings are supported, outright unsupported settings will fail to parse. Some settings might not work too well if they don't apply instantly (Any that work well int he quickscreen should work well here) git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2011-01-13New Touchscreen region type... 'mute' which un/mutes volume without pausing ↵Jonathan Gordon1-0/+1
playback git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2010-06-18ACTION_FM_QUICKSCREEN is unusedRafaël Carré1-1/+0
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2010-06-15first step of making touch regions usable in all skins, not just the WPS.. ↵Jonathan Gordon1-0/+1
no user viewable changes just yet git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2010-05-04Fix typos in the commentAlexander Levin1-3/+3
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2010-04-19Fix typo in commentAlexander Levin1-1/+1
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2010-04-01FS#11081 - Hotkey patch. Many targets supported, but some keymaps need work ↵Jeffrey Goode1-0/+2
before they can be switched on git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2010-02-20Quickscreen for the radio screen. I added a keymap for almost all targets. I ↵Thomas Martitz1-0/+1
couldn't find a nice one (i.e. one that's consistent with the wps/menu quickscreen combo) for iaudio m3, ondavx747 and the gogears. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2010-01-16FS#10785: Add new context CONTEXT_MORSE_INPUT for keymaps which is used ↵Teruaki Kawashima1-0/+1
during morse input mode in virtual keyboard. This will enable to use morse input on targets that doesn't have enough key for both the keyboard and morse input in one context. Enable morse input on archosondio as an example. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2009-11-06Merge duplicating code to move cursor left/right.Teruaki Kawashima1-1/+0
remove ACTION_KBD_SELECT_REM, use ACTION_KBD_SELECT instead as they seem to be equivalent. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2009-10-17USB HID: Use different context for each mode; Use constant for each action;Tomer Shalev1-17/+39
Rework keymaps This commit makes the code neater and more readable. It makes it easier to modify keymap assignments and new keypad modes. Some platforms had their keypad mappings reworked. The manual is updated to reflect all these changes. H10 remote control mapping dropped. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2009-10-11Add a action helper for touchscreen targets to only receive the touchpress ↵Thomas Martitz1-5/+19
coordinates if they're in the passed viewport. Also, fixes the coordinates to be relaitve to the viewport. Use it in the color picker screen. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2009-10-05Add USB HID mouse support for H10Tomer Shalev1-0/+2
- Protect mouse keymaps with #ifdef HAVE_USB_HID_MOUSE - Add preliminary support for remote mouse mode in iPods, pending P#10623 - Use ACTION_USB_HID_MOUSE_WHEEL_SCROLL_UP/DOWN instead of standard INC/DEC git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2009-09-30Commit "FS#10468 - USB HID: Show keypad mode on screen"Tomer Shalev1-7/+46
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2009-08-29Quickscreen: 4th itemThomas Martitz1-3/+1
This adds a 4th top item to the quickscreen. It's as configurable as the existing three items. This patch goes along with optimisations for small screens for better displaying of all four items. 14px font is very usable on a 64px height display for example. Left and Top items go through the items in the opposite direction, so that you can mirror a setting and toggle through it in both directions. Default item is party mode, as it's target independant. Flyspray: FS#9706 git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2009-07-22Commit part of FS#9873 - Utilise buttons for playlistingThomas Martitz1-0/+1
It adds a shortcut (combo or button) to directly go from the wps to the playlist viewer. The combos could possibly be improved on some targets, but I tried to keep a tad bit of consistency (was hardly possible). I also added a corresponding touchscreen region and adapted cabbiev2. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2009-07-03Fix the bug where the short-long fwd/back action would ffwd/rewind the next ↵Jonathan Gordon1-0/+6
folder (consult the manual if that makes no sense) git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2009-06-12FS#8894 - Add time stretching feature to all SWCODEC targets - the current ↵Steve Bavin1-0/+2
algorithm is best for spoken word. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2009-06-01Fix PF keymap issue caused by conflict between new CONTEXT_PLUGIN and ↵Andrew Mahone1-1/+1
ALLOW_SOFTLOCK, by changing value of ALLOW_SOFTLOCK. Bump min plugin version as value passed to a core function changed, and sort plugin API. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2009-05-31Replace use of CONTEXT_CUSTOM by get_custom_action with new CONTEXT_PLUGIN, ↵Andrew Mahone1-0/+1
to prevent conflicts with core contexts using CONTEXT_CUSTOM, and use CONTEXT_TREE as the base context for PictureFlow's custom contexts. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2009-05-23Add HID keymap handling in usb screen. This allows to use the DAP as a ↵Frank Gevaerts1-0/+10
keypad to control the PC. The current keymaps are audio-oriented (play/pause/volume/...) (FS#10218 by Tomer Shalev) git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2009-05-15allow the user to change the shuffle and repeat modes from the touchscreen, ↵Jonathan Gordon1-0/+8
update the mr500 default wps to show how to do it (hint, press the shuffle/rep icon) git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2008-08-23Commit FS#9308: differentiate between TOUCHPAD & TOUCHSCREENMaurus Cuelenaere1-5/+5
git-svn-id: svn:// 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... git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2008-05-28Updated recording trigger screen (seems to be a feature almost noone uses?)Jonathan Gordon1-0/+1
problems/complaints in there is a known issue that on this screen the stop icon wont update, I dont know why and noone else wants to look at it, so hopefully this will force another set of eyes on it.. this is only a graphical issue... recordings still work fine git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2008-04-15Setup the touchpads to have two modes - stylus and button - and set them in ↵Jonathan Gordon1-3/+5
button mode by default. in button mode the touchpad is split into a 3x3 grid for 9 seperate buttons which can be used by the action system like real buttons. Unify the keymap file for the touchpads in button mode. the target keymap file only needs to worry about real buttons. (As these ports mature each screen will need to be fixed seperatly to be able to use stylus mode (the lists can already but don't change mode just yet.) git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2007-10-22First go at getting the touchpad working in the ui. lists only for now.Jonathan Gordon1-0/+10
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2007-08-02Finally use the rec button to get to the rec screen on sansa and iriver ↵Jonathan Gordon1-0/+2
hxxx. hold rec to get there... short press still is unused git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2007-07-22Wheel acceleration for e200. A general acceleration interface intended for ↵Michael Sevakis1-2/+4
use on any scroll target and by any code. A general interface to obtain data associated with most recently dequeued button presses and actions. Use #define HAVE_SCROLLWHEEL and set appropriate constants, values in the scroller driver that feel right. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2007-07-22remove the need for action_signalscreenchange().Jonathan Gordon1-4/+0
Fixes problems with targets where the ACTION_STD_CANCEL event is a combo git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2007-05-26FS#7158 - Bookmark selection as a list.Magnus Holmgren1-2/+0
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2007-04-13rename ACTION_WPSAB_RESET to ACTION_WPS_ABRESET to be more consistent with ↵Marcoen Hirschberg1-1/+1
the rest git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2007-04-08minor actions cleanup:Jonathan Gordon1-3/+7
- CONTEXT_MAINMENU is not actually needed, use CONTEXT_TREE which does the same actions - (gigabeat) use vol+/- in the lists to control volume (every list!) (FS#6982 in a better way) git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2007-03-04Add a function to get the actual button that was pressed (and some Jonathan Gordon1-2/+11
status codes) instead of the action. Use this to figure out which screen to do prev/next page on in the lists git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2007-03-01Introducing the root menu!Jonathan Gordon1-0/+1
Blind users: get a new voice file as there are lots of lang changes and new strings. FS#6630 or RootMenu on the wiki for more info. complaints to /dev/null :) git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2007-02-27returning ACTION_EXIT_AFTER_THIS_MENUITEM from a menu callback will exit Jonathan Gordon1-0/+2
the menu when the subitem returns. Use this with the preset item context menus git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2007-02-08beginning of the new menu system. This commit shouldnt break anything, Jonathan Gordon1-0/+4
but comming ones might.. report bugs in and more info at git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2006-12-22Make AB mode uable on the ipods. In AB mode select is used to set/resetJonathan Gordon1-1/+5
the markers in he WPS. AB mode must be disblaed ot get into the browser. This can allow the Ondio's to have AB mode but it makes rombox too large. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2006-11-16implement actions in the plugins, bubbles and metronome converted.Jonathan Gordon1-0/+2
(hopefully buttons are correct, let me know in if there is a major stuff up) git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2006-11-06Patch #6145 by Alexander Levin - Pitch adjustment in semitone stepsLinus Nielsen Feltzing1-0/+1
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2006-09-25fix the bug where when scrolling text left in the filebrowser you could ↵Martin Scarratt1-0/+1
suddenly find yourself in the root directory. A long press on the left scrolling button will still take you to the root quickly. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657