summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/action.c38
-rw-r--r--firmware/export/config/ipod1g2g.h3
-rw-r--r--firmware/export/config/ipod3g.h3
-rw-r--r--firmware/export/config/ipod4g.h3
-rw-r--r--firmware/export/config/ipod6g.h3
-rw-r--r--firmware/export/config/ipodcolor.h3
-rw-r--r--firmware/export/config/ipodmini1g.h3
-rw-r--r--firmware/export/config/ipodmini2g.h3
-rw-r--r--firmware/export/config/ipodnano1g.h3
-rw-r--r--firmware/export/config/ipodnano2g.h3
-rw-r--r--firmware/export/config/ipodvideo.h3
-rw-r--r--firmware/export/config/sansae200.h3
-rw-r--r--firmware/export/config/sansae200v2.h3
-rw-r--r--firmware/export/config/sansafuze.h3
-rw-r--r--firmware/export/config/sansafuzev2.h3
-rw-r--r--firmware/export/config/sansaview.h3
16 files changed, 83 insertions, 0 deletions
diff --git a/apps/action.c b/apps/action.c
index 15b2d8a..0b21a27 100644
--- a/apps/action.c
+++ b/apps/action.c
@@ -149,6 +149,27 @@ static inline int get_next_context(const struct button_mapping *items, int i)
CONTEXT_STD :
items[i].action_code;
}
+
+#if defined(HAVE_GUI_BOOST) && defined(HAVE_ADJUSTABLE_CPU_FREQ)
+/* Helper function which is called to boost / unboost CPU. This function
+ * avoids to increase boost_count with each call of gui_boost(). */
+static void gui_boost(bool want_to_boost)
+{
+ static bool boosted = false;
+
+ if (want_to_boost && !boosted)
+ {
+ cpu_boost(true);
+ boosted = true;
+ }
+ else if (!want_to_boost && boosted)
+ {
+ cpu_boost(false);
+ boosted = false;
+ }
+}
+#endif
+
/*
* int get_action_worker(int context, struct button_mapping *user_mappings,
int timeout)
@@ -183,6 +204,23 @@ static int get_action_worker(int context, int timeout,
else
button = button_get_w_tmo(timeout);
+#if defined(HAVE_GUI_BOOST) && defined(HAVE_ADJUSTABLE_CPU_FREQ)
+ /* Boost the CPU in case of wheel scrolling activity in the defined contexts.
+ * Unboost the CPU after timeout. */
+ static long last_boost_tick;
+ if ((button&(BUTTON_SCROLL_BACK|BUTTON_SCROLL_FWD)) &&
+ (context == CONTEXT_STD || context == CONTEXT_LIST ||
+ context == CONTEXT_MAINMENU || context == CONTEXT_TREE))
+ {
+ last_boost_tick = current_tick;
+ gui_boost(true);
+ }
+ else if (TIME_AFTER(current_tick, last_boost_tick + HZ))
+ {
+ gui_boost(false);
+ }
+#endif
+
/* Data from sys events can be pulled with button_get_data
* multimedia button presses don't go through the action system */
if (button == BUTTON_NONE || button & (SYS_EVENT|BUTTON_MULTIMEDIA))
diff --git a/firmware/export/config/ipod1g2g.h b/firmware/export/config/ipod1g2g.h
index f4e6c19..0ce5d45 100644
--- a/firmware/export/config/ipod1g2g.h
+++ b/firmware/export/config/ipod1g2g.h
@@ -78,6 +78,9 @@
#define CONFIG_KEYPAD IPOD_1G2G_PAD
+/* Define this to have CPU boosted while scrolling in the UI */
+#define HAVE_GUI_BOOST
+
/* define this if the unit uses a scrollwheel for navigation */
#define HAVE_SCROLLWHEEL
/* define to activate advanced wheel acceleration code */
diff --git a/firmware/export/config/ipod3g.h b/firmware/export/config/ipod3g.h
index ee59a1b..e7d8bff 100644
--- a/firmware/export/config/ipod3g.h
+++ b/firmware/export/config/ipod3g.h
@@ -79,6 +79,9 @@
#define CONFIG_KEYPAD IPOD_3G_PAD
+/* Define this to have CPU boosted while scrolling in the UI */
+#define HAVE_GUI_BOOST
+
/* define this if the unit uses a scrollwheel for navigation */
#define HAVE_SCROLLWHEEL
/* define to activate advanced wheel acceleration code */
diff --git a/firmware/export/config/ipod4g.h b/firmware/export/config/ipod4g.h
index 56d0599..165f596 100644
--- a/firmware/export/config/ipod4g.h
+++ b/firmware/export/config/ipod4g.h
@@ -79,6 +79,9 @@
#define CONFIG_KEYPAD IPOD_4G_PAD
+/* Define this to have CPU boosted while scrolling in the UI */
+#define HAVE_GUI_BOOST
+
/* Define this to enable morse code input */
#define HAVE_MORSE_INPUT
diff --git a/firmware/export/config/ipod6g.h b/firmware/export/config/ipod6g.h
index dae9340..0dac46c 100644
--- a/firmware/export/config/ipod6g.h
+++ b/firmware/export/config/ipod6g.h
@@ -100,6 +100,9 @@
#define CONFIG_KEYPAD IPOD_4G_PAD
+/* Define this to have CPU boosted while scrolling in the UI */
+#define HAVE_GUI_BOOST
+
//#define AB_REPEAT_ENABLE
//#define ACTION_WPSAB_SINGLE ACTION_WPS_BROWSE
diff --git a/firmware/export/config/ipodcolor.h b/firmware/export/config/ipodcolor.h
index ec3d2c6..645e200 100644
--- a/firmware/export/config/ipodcolor.h
+++ b/firmware/export/config/ipodcolor.h
@@ -66,6 +66,9 @@
#define CONFIG_KEYPAD IPOD_4G_PAD
+/* Define this to have CPU boosted while scrolling in the UI */
+#define HAVE_GUI_BOOST
+
/* Define this to enable morse code input */
#define HAVE_MORSE_INPUT
diff --git a/firmware/export/config/ipodmini1g.h b/firmware/export/config/ipodmini1g.h
index 55b78de..777dc6f 100644
--- a/firmware/export/config/ipodmini1g.h
+++ b/firmware/export/config/ipodmini1g.h
@@ -78,6 +78,9 @@
#define CONFIG_KEYPAD IPOD_4G_PAD
+/* Define this to have CPU boosted while scrolling in the UI */
+#define HAVE_GUI_BOOST
+
#define HAVE_SCROLLWHEEL
/* define to activate advanced wheel acceleration code */
#define HAVE_WHEEL_ACCELERATION
diff --git a/firmware/export/config/ipodmini2g.h b/firmware/export/config/ipodmini2g.h
index fd332c0..c401170 100644
--- a/firmware/export/config/ipodmini2g.h
+++ b/firmware/export/config/ipodmini2g.h
@@ -78,6 +78,9 @@
#define CONFIG_KEYPAD IPOD_4G_PAD
+/* Define this to have CPU boosted while scrolling in the UI */
+#define HAVE_GUI_BOOST
+
/* Define this to enable morse code input */
#define HAVE_MORSE_INPUT
diff --git a/firmware/export/config/ipodnano1g.h b/firmware/export/config/ipodnano1g.h
index 9dba533..388ba34 100644
--- a/firmware/export/config/ipodnano1g.h
+++ b/firmware/export/config/ipodnano1g.h
@@ -69,6 +69,9 @@
#define CONFIG_KEYPAD IPOD_4G_PAD
+/* Define this to have CPU boosted while scrolling in the UI */
+#define HAVE_GUI_BOOST
+
/* Define this to enable morse code input */
#define HAVE_MORSE_INPUT
diff --git a/firmware/export/config/ipodnano2g.h b/firmware/export/config/ipodnano2g.h
index a85cd61..37a21b3 100644
--- a/firmware/export/config/ipodnano2g.h
+++ b/firmware/export/config/ipodnano2g.h
@@ -104,6 +104,9 @@
#define CONFIG_KEYPAD IPOD_4G_PAD
+/* Define this to have CPU boosted while scrolling in the UI */
+#define HAVE_GUI_BOOST
+
#define AB_REPEAT_ENABLE
#define ACTION_WPSAB_SINGLE ACTION_WPS_BROWSE
diff --git a/firmware/export/config/ipodvideo.h b/firmware/export/config/ipodvideo.h
index dd21bb5..1dd7d48 100644
--- a/firmware/export/config/ipodvideo.h
+++ b/firmware/export/config/ipodvideo.h
@@ -65,6 +65,9 @@
#define CONFIG_KEYPAD IPOD_4G_PAD
+/* Define this to have CPU boosted while scrolling in the UI */
+#define HAVE_GUI_BOOST
+
/* Define this to enable morse code input */
#define HAVE_MORSE_INPUT
diff --git a/firmware/export/config/sansae200.h b/firmware/export/config/sansae200.h
index a6f4e54..dd5747a 100644
--- a/firmware/export/config/sansae200.h
+++ b/firmware/export/config/sansae200.h
@@ -78,6 +78,9 @@
#define CONFIG_KEYPAD SANSA_E200_PAD
+/* Define this to have CPU boosted while scrolling in the UI */
+#define HAVE_GUI_BOOST
+
/* Define this to enable morse code input */
#define HAVE_MORSE_INPUT
diff --git a/firmware/export/config/sansae200v2.h b/firmware/export/config/sansae200v2.h
index 0371199..34c2cd9 100644
--- a/firmware/export/config/sansae200v2.h
+++ b/firmware/export/config/sansae200v2.h
@@ -76,6 +76,9 @@
/* Define this to enable morse code input */
#define HAVE_MORSE_INPUT
+/* Define this to have CPU boosted while scrolling in the UI */
+#define HAVE_GUI_BOOST
+
/* Define this if you do software codec */
#define CONFIG_CODEC SWCODEC
diff --git a/firmware/export/config/sansafuze.h b/firmware/export/config/sansafuze.h
index 2f0073f..8563664 100644
--- a/firmware/export/config/sansafuze.h
+++ b/firmware/export/config/sansafuze.h
@@ -77,6 +77,9 @@
#define CONFIG_KEYPAD SANSA_FUZE_PAD
+/* Define this to have CPU boosted while scrolling in the UI */
+#define HAVE_GUI_BOOST
+
/* Define this to enable morse code input */
#define HAVE_MORSE_INPUT
diff --git a/firmware/export/config/sansafuzev2.h b/firmware/export/config/sansafuzev2.h
index ff88aa9..1c0f8a9 100644
--- a/firmware/export/config/sansafuzev2.h
+++ b/firmware/export/config/sansafuzev2.h
@@ -88,6 +88,9 @@
#define CONFIG_KEYPAD SANSA_FUZE_PAD
+/* Define this to have CPU boosted while scrolling in the UI */
+#define HAVE_GUI_BOOST
+
/* Define this to enable morse code input */
#define HAVE_MORSE_INPUT
diff --git a/firmware/export/config/sansaview.h b/firmware/export/config/sansaview.h
index b0317f3..829f67a 100644
--- a/firmware/export/config/sansaview.h
+++ b/firmware/export/config/sansaview.h
@@ -74,6 +74,9 @@
/* The only difference is that the power/hold is on the left instead of right on Fuze */
#define CONFIG_KEYPAD SANSA_FUZE_PAD
+/* Define this to have CPU boosted while scrolling in the UI */
+#define HAVE_GUI_BOOST
+
/* Define this to enable morse code input */
#define HAVE_MORSE_INPUT