<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rockbox/apps/action.c, branch quake5</title>
<subtitle>My Rockbox tree</subtitle>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/'/>
<entry>
<title>Fix REMOTE_CONTEXT failure</title>
<updated>2019-04-22T21:23:28+00:00</updated>
<author>
<name>William Wilgus</name>
<email>me.theuser@yahoo.com</email>
</author>
<published>2019-04-22T21:23:28+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=e41a563b6cda71b8c973e884f47140087ebcd5ff'/>
<id>e41a563b6cda71b8c973e884f47140087ebcd5ff</id>
<content type='text'>
IRC user &lt;sazmap&gt; brought an error in the action system to my attention
the REMOTE_CONTEXT flag should be added if any remote button is pressed

Change-Id: Ie3aab97cf835eab108d4b2bdcd8464fcd649da42
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
IRC user &lt;sazmap&gt; brought an error in the action system to my attention
the REMOTE_CONTEXT flag should be added if any remote button is pressed

Change-Id: Ie3aab97cf835eab108d4b2bdcd8464fcd649da42
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix error with action subsystem and custom context mapping</title>
<updated>2017-12-18T21:23:18+00:00</updated>
<author>
<name>William Wilgus</name>
<email>me.theuser@yahoo.com</email>
</author>
<published>2017-12-11T01:24:42+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=71e3f6c07727ec6784cf7f9cf01b5e2888b4522c'/>
<id>71e3f6c07727ec6784cf7f9cf01b5e2888b4522c</id>
<content type='text'>
I removed the mechanism to fall through to internally mapped contexts
after plugin contexts were exhausted

Change-Id: Id287248184fd67cb2a2242475296247ac86af807
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
I removed the mechanism to fall through to internally mapped contexts
after plugin contexts were exhausted

Change-Id: Id287248184fd67cb2a2242475296247ac86af807
</pre>
</div>
</content>
</entry>
<entry>
<title>Action Rewrite - Fix red</title>
<updated>2017-11-18T16:06:40+00:00</updated>
<author>
<name>William Wilgus</name>
<email>me.theuser@yahoo.com</email>
</author>
<published>2017-11-18T16:06:40+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=52af55eee8566e23b190b7444e73df0106b1663d'/>
<id>52af55eee8566e23b190b7444e73df0106b1663d</id>
<content type='text'>
Change-Id: Iaa3e452994295b381297c1b6c9f61407e8ba0296
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: Iaa3e452994295b381297c1b6c9f61407e8ba0296
</pre>
</div>
</content>
</entry>
<entry>
<title>Action.c FIX / Rework / Clean-up Action System</title>
<updated>2017-11-18T15:08:07+00:00</updated>
<author>
<name>William Wilgus</name>
<email>me.theuser@yahoo.com</email>
</author>
<published>2017-09-26T14:32:07+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=b10c0e5b903b0124f4996f68f2433c2b8419d753'/>
<id>b10c0e5b903b0124f4996f68f2433c2b8419d753</id>
<content type='text'>
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 &amp; 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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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 &amp; 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
</pre>
</div>
</content>
</entry>
<entry>
<title>action.c must desist in calling set_cpu_frequency from a tick</title>
<updated>2017-01-21T17:03:23+00:00</updated>
<author>
<name>Michael Sevakis</name>
<email>jethead71@rockbox.org</email>
</author>
<published>2017-01-21T13:09:48+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=c6299b268da0599c2bbce3e71efb5398ffd0a808'/>
<id>c6299b268da0599c2bbce3e71efb5398ffd0a808</id>
<content type='text'>
The function is neither reentrant nor ISR callable. Instead of
using a ticked-based timeout, have the button driver provide the
unboost after a delay when waiting for a button.

HAVE_GUI_BOOST gets immediate boost after dequeuing any message,
otherwise the queue has to have at least three messages waiting
for it to trigger a boost-- essentially the behavior that existed
but now combined in one place.

Change-Id: I1d924702840f56a1a65abe41fa92b4e753c4e75a
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The function is neither reentrant nor ISR callable. Instead of
using a ticked-based timeout, have the button driver provide the
unboost after a delay when waiting for a button.

HAVE_GUI_BOOST gets immediate boost after dequeuing any message,
otherwise the queue has to have at least three messages waiting
for it to trigger a boost-- essentially the behavior that existed
but now combined in one place.

Change-Id: I1d924702840f56a1a65abe41fa92b4e753c4e75a
</pre>
</div>
</content>
</entry>
<entry>
<title>Selective Backlight Softlock Fix misleading indentation.</title>
<updated>2017-01-17T22:50:38+00:00</updated>
<author>
<name>William Wilgus</name>
<email>me.theuser@yahoo.com</email>
</author>
<published>2017-01-17T22:50:38+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=6103d4d83dba15c5c48e399778668e6f9cb55e86'/>
<id>6103d4d83dba15c5c48e399778668e6f9cb55e86</id>
<content type='text'>
Change-Id: Iffbdd3c5bd8d2d23f4f7e3af42e16ab0c1dc312b
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: Iffbdd3c5bd8d2d23f4f7e3af42e16ab0c1dc312b
</pre>
</div>
</content>
</entry>
<entry>
<title>Selective Backlight/Advanced Softlock - Selective actions based on context</title>
<updated>2017-01-17T22:06:17+00:00</updated>
<author>
<name>William Wilgus</name>
<email>me.theuser@yahoo.com</email>
</author>
<published>2016-11-22T05:21:31+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=dc87e9e9f3c383b63c3cb3713886a6c93b6a79d1'/>
<id>dc87e9e9f3c383b63c3cb3713886a6c93b6a79d1</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>GUI boost for any button</title>
<updated>2016-03-18T20:39:37+00:00</updated>
<author>
<name>Mihail Zenkov</name>
<email>mihail.zenkov@gmail.com</email>
</author>
<published>2016-03-18T23:34:57+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=fe9a3ceb0e09ae44d15f2636162ea534129b2137'/>
<id>fe9a3ceb0e09ae44d15f2636162ea534129b2137</id>
<content type='text'>
It improve responsiveness for all targets with frequency scaling.

Change-Id: I72c94daf58cee10c1772decbd0443856c111cc47
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It improve responsiveness for all targets with frequency scaling.

Change-Id: I72c94daf58cee10c1772decbd0443856c111cc47
</pre>
</div>
</content>
</entry>
<entry>
<title>iBasso DX50/DX90: Major code cleanup and reorganization.</title>
<updated>2015-02-02T20:57:55+00:00</updated>
<author>
<name>Udo Schläpfer</name>
<email>rockbox-2014.10@desktopwarrior.net</email>
</author>
<published>2015-02-02T20:44:29+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=dbabd0d9c34a33bc0c51243ec37f230d117db955'/>
<id>dbabd0d9c34a33bc0c51243ec37f230d117db955</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>touch devices: Disable touch on softlock.</title>
<updated>2013-09-05T18:02:07+00:00</updated>
<author>
<name>Jean-Louis Biasini</name>
<email>jlbiasini@gmail.com</email>
</author>
<published>2013-09-02T09:03:56+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=df6eb82f5156256e1999374ce9b1a159610ff9a0'/>
<id>df6eb82f5156256e1999374ce9b1a159610ff9a0</id>
<content type='text'>
Target that have a touchpad/touchscreen should disable it while
being locked (In order to avoid LCD to drain battery power due to
"key locked" constant reporting messages. If they a have a keylock
button this was already handled at driver level. If not (e.g. fuze+),
they will have to implement a switch at driver level that action.c
can operate on softlock.
This patch does the following for any target having a touchpad
or a touchscreen and no HAS_BUTTON_HOLD (ie any softlock target)
1) it implements the code to call button_enable_touch(bool en) in
action.c.
2) button_enable_touch is implemented in button.c and call
either touchpad_enable or touchscreen_enable
3) those two function are implemented respectively in touchscreen.c
and a new touchpad.c file. They provide a generic way to silents touch's
device and call a function at driver level where target specific code
can be implemented if possible/needed (for power saving for instance).
Those function name are touchpad_enable_device and touchscreen_enable_device
4) we implement an empty function at driver level of targets that need it
to have them still being able to compiled.

Change-Id: I9ead78a25bd33466a8533f5b9f259b395cb5ce49
Reviewed-on: http://gerrit.rockbox.org/569
Reviewed-by: Thomas Martitz &lt;kugel@rockbox.org&gt;
Reviewed-by: Amaury Pouly &lt;amaury.pouly@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Target that have a touchpad/touchscreen should disable it while
being locked (In order to avoid LCD to drain battery power due to
"key locked" constant reporting messages. If they a have a keylock
button this was already handled at driver level. If not (e.g. fuze+),
they will have to implement a switch at driver level that action.c
can operate on softlock.
This patch does the following for any target having a touchpad
or a touchscreen and no HAS_BUTTON_HOLD (ie any softlock target)
1) it implements the code to call button_enable_touch(bool en) in
action.c.
2) button_enable_touch is implemented in button.c and call
either touchpad_enable or touchscreen_enable
3) those two function are implemented respectively in touchscreen.c
and a new touchpad.c file. They provide a generic way to silents touch's
device and call a function at driver level where target specific code
can be implemented if possible/needed (for power saving for instance).
Those function name are touchpad_enable_device and touchscreen_enable_device
4) we implement an empty function at driver level of targets that need it
to have them still being able to compiled.

Change-Id: I9ead78a25bd33466a8533f5b9f259b395cb5ce49
Reviewed-on: http://gerrit.rockbox.org/569
Reviewed-by: Thomas Martitz &lt;kugel@rockbox.org&gt;
Reviewed-by: Amaury Pouly &lt;amaury.pouly@gmail.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
