1 /***************************************************************************
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
10 * Copyright (C) 2007 Nicolas Pennequin
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
20 ****************************************************************************/
22 #ifndef _SKIN_TOKENS_H_
23 #define _SKIN_TOKENS_H_
30 TOKEN_MARKER_CONTROL_TOKENS
= -1,
31 WPS_NO_TOKEN
= 0, /* for WPS tags we don't want to save as tokens */
37 WPS_TOKEN_TRANSLATEDSTRING
,
41 WPS_TOKEN_ALIGN_LEFT_RTL
,
42 WPS_TOKEN_ALIGN_CENTER
,
43 WPS_TOKEN_ALIGN_RIGHT
,
44 WPS_TOKEN_ALIGN_RIGHT_RTL
,
47 WPS_TOKEN_SUBLINE_TIMEOUT
,
50 WPS_TOKEN_CONDITIONAL
,
51 WPS_TOKEN_CONDITIONAL_START
,
52 WPS_TOKEN_CONDITIONAL_OPTION
,
53 WPS_TOKEN_CONDITIONAL_END
,
55 /* Viewport display */
57 WPS_VIEWPORT_CUSTOMLIST
,
58 WPS_TOKEN_UIVIEWPORT_ENABLE
,
62 WPS_TOKEN_BATTERY_PERCENT
,
63 WPS_TOKEN_BATTERY_PERCENTBAR
,
64 WPS_TOKEN_BATTERY_VOLTS
,
65 WPS_TOKEN_BATTERY_TIME
,
66 WPS_TOKEN_BATTERY_CHARGER_CONNECTED
,
67 WPS_TOKEN_BATTERY_CHARGING
,
68 WPS_TOKEN_BATTERY_SLEEPTIME
,
69 WPS_TOKEN_USB_POWERED
,
73 #if (CONFIG_CODEC != MAS3507D)
74 WPS_TOKEN_SOUND_PITCH
,
76 #if (CONFIG_CODEC == SWCODEC)
77 WPS_TOKEN_SOUND_SPEED
,
84 WPS_TOKEN_RTC_PRESENT
,
86 /* The begin/end values allow us to know if a token is an RTC one.
87 New RTC tokens should be added between the markers. */
89 WPS_TOKENS_RTC_BEGIN
, /* just the start marker, not an actual token */
91 WPS_TOKEN_RTC_DAY_OF_MONTH
,
92 WPS_TOKEN_RTC_DAY_OF_MONTH_BLANK_PADDED
,
93 WPS_TOKEN_RTC_12HOUR_CFG
,
94 WPS_TOKEN_RTC_HOUR_24_ZERO_PADDED
,
95 WPS_TOKEN_RTC_HOUR_24
,
96 WPS_TOKEN_RTC_HOUR_12_ZERO_PADDED
,
97 WPS_TOKEN_RTC_HOUR_12
,
100 WPS_TOKEN_RTC_SECOND
,
101 WPS_TOKEN_RTC_YEAR_2_DIGITS
,
102 WPS_TOKEN_RTC_YEAR_4_DIGITS
,
103 WPS_TOKEN_RTC_AM_PM_UPPER
,
104 WPS_TOKEN_RTC_AM_PM_LOWER
,
105 WPS_TOKEN_RTC_WEEKDAY_NAME
,
106 WPS_TOKEN_RTC_MONTH_NAME
,
107 WPS_TOKEN_RTC_DAY_OF_WEEK_START_MON
,
108 WPS_TOKEN_RTC_DAY_OF_WEEK_START_SUN
,
110 WPS_TOKENS_RTC_END
, /* just the end marker, not an actual token */
113 TOKEN_MARKER_DATABASE
,
115 WPS_TOKEN_DATABASE_PLAYCOUNT
,
116 WPS_TOKEN_DATABASE_RATING
,
117 WPS_TOKEN_DATABASE_AUTOSCORE
,
122 WPS_TOKEN_FILE_BITRATE
,
123 WPS_TOKEN_FILE_CODEC
,
124 WPS_TOKEN_FILE_FREQUENCY
,
125 WPS_TOKEN_FILE_FREQUENCY_KHZ
,
127 WPS_TOKEN_FILE_NAME_WITH_EXTENSION
,
131 WPS_TOKEN_FILE_DIRECTORY
,
135 #ifdef HAVE_LCD_BITMAP
136 WPS_TOKEN_IMAGE_BACKDROP
,
137 WPS_TOKEN_IMAGE_PROGRESS_BAR
,
138 WPS_TOKEN_IMAGE_PRELOAD
,
139 WPS_TOKEN_IMAGE_PRELOAD_DISPLAY
,
140 WPS_TOKEN_IMAGE_DISPLAY
,
145 WPS_TOKEN_ALBUMART_DISPLAY
,
146 WPS_TOKEN_ALBUMART_FOUND
,
150 TOKEN_MARKER_METADATA
,
151 WPS_TOKEN_METADATA_ARTIST
,
152 WPS_TOKEN_METADATA_COMPOSER
,
153 WPS_TOKEN_METADATA_ALBUM_ARTIST
,
154 WPS_TOKEN_METADATA_GROUPING
,
155 WPS_TOKEN_METADATA_ALBUM
,
156 WPS_TOKEN_METADATA_GENRE
,
157 WPS_TOKEN_METADATA_DISC_NUMBER
,
158 WPS_TOKEN_METADATA_TRACK_NUMBER
,
159 WPS_TOKEN_METADATA_TRACK_TITLE
,
160 WPS_TOKEN_METADATA_VERSION
,
161 WPS_TOKEN_METADATA_YEAR
,
162 WPS_TOKEN_METADATA_COMMENT
,
164 TOKEN_MARKER_PLAYBACK_INFO
,
166 WPS_TOKEN_REPEAT_MODE
,
167 WPS_TOKEN_PLAYBACK_STATUS
,
169 WPS_TOKEN_PROGRESSBAR
,
170 #ifdef HAVE_LCD_CHARCELLS
171 WPS_TOKEN_PLAYER_PROGRESSBAR
,
173 #ifdef HAVE_LCD_BITMAP
179 WPS_TOKEN_TRACK_ELAPSED_PERCENT
,
180 WPS_TOKEN_TRACK_TIME_ELAPSED
,
181 WPS_TOKEN_TRACK_TIME_REMAINING
,
182 WPS_TOKEN_TRACK_LENGTH
,
183 WPS_TOKEN_TRACK_STARTING
,
184 WPS_TOKEN_TRACK_ENDING
,
187 TOKEN_MARKER_PLAYLIST
,
188 WPS_TOKEN_PLAYLIST_ENTRIES
,
189 WPS_TOKEN_PLAYLIST_NAME
,
190 WPS_TOKEN_PLAYLIST_POSITION
,
191 WPS_TOKEN_PLAYLIST_SHUFFLE
,
196 WPS_TOKEN_DRAW_INBUILTBAR
,
197 WPS_TOKEN_LIST_TITLE_TEXT
,
198 WPS_TOKEN_LIST_TITLE_ICON
,
199 WPS_TOKEN_BUTTON_VOLUME
,
201 #if (CONFIG_LED == LED_VIRTUAL) || defined(HAVE_REMOTE_LCD)
210 #ifdef HAS_REMOTE_BUTTON_HOLD
211 WPS_TOKEN_REMOTE_HOLD
,
216 WPS_TOKEN_CURRENT_SCREEN
,
217 WPS_TOKEN_LANG_IS_RTL
,
219 /* Recording Tokens */
220 TOKEN_MARKER_RECORDING
,
221 WPS_TOKEN_HAVE_RECORDING
,
222 WPS_TOKEN_IS_RECORDING
,
224 WPS_TOKEN_REC_ENCODER
,
225 WPS_TOKEN_REC_BITRATE
, /* SWCODEC: MP3 bitrate, HWCODEC: MP3 "quality" */
227 WPS_TOKEN_REC_SECONDS
,
228 WPS_TOKEN_REC_MINUTES
,
234 WPS_TOKEN_HAVE_TUNER
,
236 WPS_TOKEN_TUNER_TUNED
,
237 WPS_TOKEN_TUNER_SCANMODE
,
238 WPS_TOKEN_TUNER_STEREO
,
239 WPS_TOKEN_TUNER_MINFREQ
, /* changes based on "region" */
240 WPS_TOKEN_TUNER_MAXFREQ
, /* changes based on "region" */
241 WPS_TOKEN_TUNER_CURFREQ
,
242 WPS_TOKEN_PRESET_ID
, /* "id" of this preset.. really the array element number */
243 WPS_TOKEN_PRESET_NAME
,
244 WPS_TOKEN_PRESET_FREQ
,
245 WPS_TOKEN_PRESET_COUNT
,
252 #endif /* CONFIG_TUNER */
255 TOKEN_MARKER_END
, /* this needs to be the last value in this enum */
259 unsigned char type
; /* enough to store the token type */
261 /* Whether the tag (e.g. track name or the album) refers the
262 current or the next song (false=current, true=next) */
272 struct skin_token_list
{
273 struct wps_token
*token
;
274 struct skin_token_list
*next
;
277 char* get_dir(char* buf
, int buf_size
, const char* path
, int level
);