summaryrefslogtreecommitdiff
path: root/apps/gui/wps.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui/wps.c')
-rw-r--r--apps/gui/wps.c58
1 files changed, 50 insertions, 8 deletions
diff --git a/apps/gui/wps.c b/apps/gui/wps.c
index d62507e0b0..bce4db2b8a 100644
--- a/apps/gui/wps.c
+++ b/apps/gui/wps.c
@@ -73,6 +73,11 @@
73/* in milliseconds */ 73/* in milliseconds */
74#define DEFAULT_SKIP_TRESH 3000ul 74#define DEFAULT_SKIP_TRESH 3000ul
75 75
76
77#define FF_REWIND_MAX_PERCENT 3 /* cap ff/rewind step size at max % of file */
78 /* 3% of 30min file == 54s step size */
79#define MIN_FF_REWIND_STEP 500
80
76static int wpsbars; 81static int wpsbars;
77/* currently only one wps_state is needed */ 82/* currently only one wps_state is needed */
78static struct wps_state wps_state; 83static struct wps_state wps_state;
@@ -85,14 +90,50 @@ static void track_changed_callback(void *param);
85static void nextid3available_callback(void* param); 90static void nextid3available_callback(void* param);
86 91
87 92
88 93void wps_data_load(enum screen_type screen, const char *buf, bool isfile)
89#define FF_REWIND_MAX_PERCENT 3 /* cap ff/rewind step size at max % of file */
90 /* 3% of 30min file == 54s step size */
91#define MIN_FF_REWIND_STEP 500
92
93void wps_data_load(enum screen_type screen, const char *buf, bool is_file)
94{ 94{
95 skin_data_load(gui_wps[screen].data, &screens[screen], buf, is_file); 95 bool loaded_ok = buf && skin_data_load(gui_wps[screen].data, &screens[screen], buf, isfile);
96 if (!loaded_ok) /* load the hardcoded default */
97 {
98 char *skin_buf[NB_SCREENS] = {
99#ifdef HAVE_LCD_BITMAP
100 "%s%?it<%?in<%in. |>%it|%fn>\n"
101 "%s%?ia<%ia|%?d2<%d2|(root)>>\n"
102 "%s%?id<%id|%?d1<%d1|(root)>> %?iy<(%iy)|>\n\n"
103 "%al%pc/%pt%ar[%pp:%pe]\n"
104 "%fbkBit %?fv<avg|> %?iv<(id3v%iv)|(no id3)>\n"
105 "%pb\n%pm\n",
106#else
107 "%s%pp/%pe: %?it<%it|%fn> - %?ia<%ia|%d2> - %?id<%id|%d1>\n"
108 "%pc%?ps<*|/>%pt\n",
109#endif
110#ifdef HAVE_REMOTE_LCD
111 "%s%?ia<%ia|%?d2<%d2|(root)>>\n"
112 "%s%?it<%?in<%in. |>%it|%fn>\n"
113 "%al%pc/%pt%ar[%pp:%pe]\n"
114 "%fbkBit %?fv<avg|> %?iv<(id3v%iv)|(no id3)>\n"
115 "%pb\n",
116#endif
117 };
118 skin_data_load(gui_wps[screen].data, &screens[screen],
119 skin_buf[screen], false);
120 /* set the default wps for the main-screen */
121 if(screen == SCREEN_MAIN)
122 {
123#if LCD_DEPTH > 1
124 unload_wps_backdrop();
125#endif
126 }
127#ifdef HAVE_REMOTE_LCD
128 /* set the default wps for the remote-screen */
129 else if(screen == SCREEN_REMOTE)
130 {
131#if LCD_REMOTE_DEPTH > 1
132 unload_remote_wps_backdrop();
133#endif
134 }
135#endif
136 }
96#ifdef HAVE_REMOVE_LCD 137#ifdef HAVE_REMOVE_LCD
97 gui_wps[screen].data->remote_wps = !(screen == SCREEN_MAIN); 138 gui_wps[screen].data->remote_wps = !(screen == SCREEN_MAIN);
98#endif 139#endif
@@ -103,7 +144,8 @@ void wps_data_init(enum screen_type screen)
103 skin_data_init(gui_wps[screen].data); 144 skin_data_init(gui_wps[screen].data);
104} 145}
105 146
106bool wps_fading_out = false; 147
148static bool wps_fading_out = false;
107void fade(bool fade_in, bool updatewps) 149void fade(bool fade_in, bool updatewps)
108{ 150{
109 int fp_global_vol = global_settings.volume << 8; 151 int fp_global_vol = global_settings.volume << 8;