Compare commits
20 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f9dce96b6a | ||
|
|
8b9e5c906f | ||
|
|
5e89217777 | ||
|
|
a88707fa35 | ||
|
|
7230de114d | ||
|
|
107cfc2f47 | ||
|
|
368e358761 | ||
|
|
02ef2d83e6 | ||
|
|
50c624cf48 | ||
|
|
6622b22f45 | ||
|
|
1cc3055644 | ||
|
|
6284e0fe0d | ||
|
|
c7b8ebd074 | ||
|
|
4ec74ee0fb | ||
|
|
cbe1b5cf1c | ||
|
|
bda7ba1ad8 | ||
|
|
ab07950c8d | ||
|
|
71039a928f | ||
|
|
84c6dda012 | ||
|
|
9837bc3e51 |
21 changed files with 183 additions and 833 deletions
|
|
@ -33,6 +33,7 @@
|
|||
#include "viewport.h"
|
||||
|
||||
#include "skin_buffer.h"
|
||||
#include "skin_debug.h"
|
||||
#include "skin_parser.h"
|
||||
#include "tag_table.h"
|
||||
|
||||
|
|
@ -79,11 +80,6 @@
|
|||
#define WPS_ERROR_INVALID_PARAM -1
|
||||
|
||||
static char* skin_buffer = NULL;
|
||||
void skinparser_set_buffer(char* pointer)
|
||||
{
|
||||
skin_buffer = pointer;
|
||||
}
|
||||
|
||||
#if (LCD_DEPTH > 1) || (defined(HAVE_REMOTE_LCD) && (LCD_REMOTE_DEPTH > 1))
|
||||
static char *backdrop_filename;
|
||||
#endif
|
||||
|
|
@ -157,7 +153,6 @@ void *skin_find_item(const char *label, enum skin_find_what what,
|
|||
struct wps_data *data)
|
||||
{
|
||||
const char *itemlabel = NULL;
|
||||
char *old_skin_buffer = skin_buffer;
|
||||
char *databuf = get_skin_buffer(data);
|
||||
union {
|
||||
struct skin_token_list *linkedlist;
|
||||
|
|
@ -165,28 +160,28 @@ void *skin_find_item(const char *label, enum skin_find_what what,
|
|||
} list = {NULL};
|
||||
bool isvplist = false;
|
||||
void *ret = NULL;
|
||||
if (databuf && databuf != skin_buffer)
|
||||
skin_buffer = get_skin_buffer(data);
|
||||
if (!databuf)
|
||||
databuf = skin_buffer;
|
||||
switch (what)
|
||||
{
|
||||
case SKIN_FIND_UIVP:
|
||||
case SKIN_FIND_VP:
|
||||
list.vplist = SKINOFFSETTOPTR(skin_buffer, data->tree);
|
||||
list.vplist = SKINOFFSETTOPTR(databuf, data->tree);
|
||||
isvplist = true;
|
||||
break;
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
case SKIN_FIND_IMAGE:
|
||||
list.linkedlist = SKINOFFSETTOPTR(skin_buffer, data->images);
|
||||
list.linkedlist = SKINOFFSETTOPTR(databuf, data->images);
|
||||
break;
|
||||
#endif
|
||||
#ifdef HAVE_TOUCHSCREEN
|
||||
case SKIN_FIND_TOUCHREGION:
|
||||
list.linkedlist = SKINOFFSETTOPTR(skin_buffer, data->touchregions);
|
||||
list.linkedlist = SKINOFFSETTOPTR(databuf, data->touchregions);
|
||||
break;
|
||||
#endif
|
||||
#ifdef HAVE_SKIN_VARIABLES
|
||||
case SKIN_VARIABLE:
|
||||
list.linkedlist = SKINOFFSETTOPTR(skin_buffer, data->skinvars);
|
||||
list.linkedlist = SKINOFFSETTOPTR(databuf, data->skinvars);
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
|
|
@ -197,54 +192,50 @@ void *skin_find_item(const char *label, enum skin_find_what what,
|
|||
#ifdef HAVE_LCD_BITMAP
|
||||
struct wps_token *token = NULL;
|
||||
if (!isvplist)
|
||||
token = SKINOFFSETTOPTR(skin_buffer, list.linkedlist->token);
|
||||
token = SKINOFFSETTOPTR(databuf, list.linkedlist->token);
|
||||
#endif
|
||||
switch (what)
|
||||
{
|
||||
case SKIN_FIND_UIVP:
|
||||
case SKIN_FIND_VP:
|
||||
ret = SKINOFFSETTOPTR(skin_buffer, list.vplist->data);
|
||||
ret = SKINOFFSETTOPTR(databuf, list.vplist->data);
|
||||
if (((struct skin_viewport *)ret)->label == VP_DEFAULT_LABEL)
|
||||
itemlabel = VP_DEFAULT_LABEL_STRING;
|
||||
else
|
||||
itemlabel = SKINOFFSETTOPTR(skin_buffer, ((struct skin_viewport *)ret)->label);
|
||||
itemlabel = SKINOFFSETTOPTR(databuf, ((struct skin_viewport *)ret)->label);
|
||||
skip = !(((struct skin_viewport *)ret)->is_infovp ==
|
||||
(what==SKIN_FIND_UIVP));
|
||||
break;
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
case SKIN_FIND_IMAGE:
|
||||
ret = SKINOFFSETTOPTR(skin_buffer, token->value.data);
|
||||
itemlabel = SKINOFFSETTOPTR(skin_buffer, ((struct gui_img *)ret)->label);
|
||||
ret = SKINOFFSETTOPTR(databuf, token->value.data);
|
||||
itemlabel = SKINOFFSETTOPTR(databuf, ((struct gui_img *)ret)->label);
|
||||
break;
|
||||
#endif
|
||||
#ifdef HAVE_TOUCHSCREEN
|
||||
case SKIN_FIND_TOUCHREGION:
|
||||
ret = SKINOFFSETTOPTR(skin_buffer, token->value.data);
|
||||
itemlabel = SKINOFFSETTOPTR(skin_buffer, ((struct touchregion *)ret)->label);
|
||||
ret = SKINOFFSETTOPTR(databuf, token->value.data);
|
||||
itemlabel = SKINOFFSETTOPTR(databuf, ((struct touchregion *)ret)->label);
|
||||
break;
|
||||
#endif
|
||||
#ifdef HAVE_SKIN_VARIABLES
|
||||
case SKIN_VARIABLE:
|
||||
ret = SKINOFFSETTOPTR(skin_buffer, token->value.data);
|
||||
itemlabel = SKINOFFSETTOPTR(skin_buffer, ((struct skin_var *)ret)->label);
|
||||
ret = SKINOFFSETTOPTR(databuf, token->value.data);
|
||||
itemlabel = SKINOFFSETTOPTR(databuf, ((struct skin_var *)ret)->label);
|
||||
break;
|
||||
#endif
|
||||
|
||||
}
|
||||
if (!skip && itemlabel && !strcmp(itemlabel, label))
|
||||
{
|
||||
if (old_skin_buffer != skin_buffer)
|
||||
skin_buffer = old_skin_buffer;
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (isvplist)
|
||||
list.vplist = SKINOFFSETTOPTR(skin_buffer, list.vplist->next);
|
||||
list.vplist = SKINOFFSETTOPTR(databuf, list.vplist->next);
|
||||
else
|
||||
list.linkedlist = SKINOFFSETTOPTR(skin_buffer, list.linkedlist->next);
|
||||
list.linkedlist = SKINOFFSETTOPTR(databuf, list.linkedlist->next);
|
||||
}
|
||||
if (old_skin_buffer != skin_buffer)
|
||||
skin_buffer = old_skin_buffer;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
@ -2242,6 +2233,10 @@ bool skin_data_load(enum screen_type screen, struct wps_data *wps_data,
|
|||
struct skin_element *tree = skin_parse(wps_buffer, skin_element_callback, wps_data);
|
||||
wps_data->tree = PTRTOSKINOFFSET(skin_buffer, tree);
|
||||
if (!SKINOFFSETTOPTR(skin_buffer, wps_data->tree)) {
|
||||
#ifdef DEBUG_SKIN_ENGINE
|
||||
if (isfile && debug_wps)
|
||||
skin_error_format_message();
|
||||
#endif
|
||||
skin_data_reset(wps_data);
|
||||
return false;
|
||||
}
|
||||
|
|
@ -2296,9 +2291,6 @@ bool skin_data_load(enum screen_type screen, struct wps_data *wps_data,
|
|||
#else
|
||||
wps_data->wps_loaded = wps_data->tree >= 0;
|
||||
#endif
|
||||
#ifdef DEBUG_SKIN_ENGINE
|
||||
// if (isfile && debug_wps)
|
||||
// debug_skin_usage();
|
||||
#endif
|
||||
skin_buffer = NULL;
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -83,8 +83,6 @@ static void skin_render_playlistviewer(struct playlistviewer* viewer,
|
|||
#endif
|
||||
|
||||
static char* skin_buffer;
|
||||
/* hack alert: fix skin_parser.c's skin_buffer pointer */
|
||||
void skinparser_set_buffer(char* pointer);
|
||||
|
||||
static inline struct skin_element*
|
||||
get_child(OFFSETTYPE(struct skin_element**) children, int child)
|
||||
|
|
@ -694,7 +692,6 @@ void skin_render_viewport(struct skin_element* viewport, struct gui_wps *gwps,
|
|||
struct align_pos * align = &info.align;
|
||||
bool needs_update;
|
||||
skin_buffer = get_skin_buffer(gwps->data);
|
||||
skinparser_set_buffer(skin_buffer);
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
/* Set images to not to be displayed */
|
||||
struct skin_token_list *imglist = SKINOFFSETTOPTR(skin_buffer, gwps->data->images);
|
||||
|
|
@ -754,7 +751,7 @@ void skin_render_viewport(struct skin_element* viewport, struct gui_wps *gwps,
|
|||
/* only update if the line needs to be, and there is something to write */
|
||||
if (refresh_type && needs_update)
|
||||
{
|
||||
if (!info.force_redraw)
|
||||
if (info.force_redraw)
|
||||
display->scroll_stop_line(&skin_viewport->vp, info.line_number);
|
||||
write_line(display, align, info.line_number,
|
||||
info.line_scrolls, info.text_style);
|
||||
|
|
@ -779,7 +776,6 @@ void skin_render(struct gui_wps *gwps, unsigned refresh_mode)
|
|||
|
||||
int old_refresh_mode = refresh_mode;
|
||||
skin_buffer = get_skin_buffer(gwps->data);
|
||||
skinparser_set_buffer(skin_buffer);
|
||||
|
||||
#ifdef HAVE_LCD_CHARCELLS
|
||||
int i;
|
||||
|
|
|
|||
|
|
@ -1,661 +0,0 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
* $Id$
|
||||
*
|
||||
* Copyright (C) 2007 Nicolas Pennequin, Dan Everton, Matthias Mohr
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#include "wps.h"
|
||||
#include "wps_internals.h"
|
||||
|
||||
#ifdef DEBUG_SKIN_ENGINE
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "settings_list.h"
|
||||
#ifdef __PCTOOL__
|
||||
#ifdef WPSEDITOR
|
||||
#include "proxy.h"
|
||||
#else
|
||||
#define DEBUGF printf
|
||||
#endif
|
||||
#else
|
||||
#include "debug.h"
|
||||
#endif
|
||||
|
||||
#if defined(SIMULATOR) || defined(__PCTOOL__)
|
||||
extern int wps_verbose_level;
|
||||
#endif
|
||||
|
||||
struct debug_token_table
|
||||
{
|
||||
enum wps_token_type start_marker;
|
||||
char *desc;
|
||||
};
|
||||
#define X(name) name, #name
|
||||
struct debug_token_table tokens[] = {
|
||||
{ X(TOKEN_MARKER_CONTROL_TOKENS) },
|
||||
{ X(TOKEN_MARKER_BATTERY) },
|
||||
{ X(TOKEN_MARKER_SOUND) },
|
||||
{ X(TOKEN_MARKER_RTC) },
|
||||
{ X(TOKEN_MARKER_DATABASE) },
|
||||
{ X(TOKEN_MARKER_FILE) },
|
||||
{ X(TOKEN_MARKER_IMAGES) },
|
||||
{ X(TOKEN_MARKER_METADATA) },
|
||||
{ X(TOKEN_MARKER_PLAYBACK_INFO) },
|
||||
{ X(TOKEN_MARKER_PLAYLIST) },
|
||||
{ X(TOKEN_MARKER_MISC) },
|
||||
{ X(TOKEN_MARKER_RECORDING) },
|
||||
{ X(TOKEN_MARKER_TUNER) },
|
||||
{ X(TOKEN_MARKER_END) },
|
||||
};
|
||||
#undef X
|
||||
|
||||
static char *next_str(bool next) {
|
||||
return next ? "next " : "";
|
||||
}
|
||||
|
||||
static char *get_token_desc(struct wps_token *token, char *buf,
|
||||
int bufsize, struct wps_data *data)
|
||||
{
|
||||
unsigned i;
|
||||
#ifndef HAVE_LCD_BITMAP
|
||||
(void)data; /* kill charcell warning */
|
||||
#endif
|
||||
bool next = token->next;
|
||||
switch(token->type)
|
||||
{
|
||||
case WPS_NO_TOKEN:
|
||||
snprintf(buf, bufsize, "No token");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_UNKNOWN:
|
||||
snprintf(buf, bufsize, "Unknown token");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_CHARACTER:
|
||||
if (token->value.c == '\n')
|
||||
snprintf(buf, bufsize, "Character '\\n'");
|
||||
else
|
||||
snprintf(buf, bufsize, "Character '%c'",
|
||||
token->value.c);
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_STRING:
|
||||
snprintf(buf, bufsize, "String '%s'",
|
||||
(char*)token->value.data);
|
||||
break;
|
||||
case WPS_TOKEN_TRANSLATEDSTRING:
|
||||
snprintf(buf, bufsize, "String ID '%d'", token->value.i);
|
||||
break;
|
||||
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
case WPS_TOKEN_ALIGN_LEFT:
|
||||
snprintf(buf, bufsize, "align left");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_ALIGN_CENTER:
|
||||
snprintf(buf, bufsize, "align center");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_ALIGN_RIGHT:
|
||||
snprintf(buf, bufsize, "align right");
|
||||
break;
|
||||
#endif
|
||||
|
||||
case WPS_TOKEN_SUBLINE_TIMEOUT:
|
||||
snprintf(buf, bufsize, "subline timeout value: %d",
|
||||
token->value.i);
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_CONDITIONAL:
|
||||
snprintf(buf, bufsize, "conditional, %d options",
|
||||
token->value.i);
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_CONDITIONAL_START:
|
||||
snprintf(buf, bufsize, "conditional start, next cond: %d",
|
||||
token->value.i);
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_CONDITIONAL_OPTION:
|
||||
snprintf(buf, bufsize, "conditional option, next cond: %d",
|
||||
token->value.i);
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_CONDITIONAL_END:
|
||||
snprintf(buf, bufsize, "conditional end");
|
||||
break;
|
||||
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
case WPS_TOKEN_LIST_TITLE_TEXT:
|
||||
snprintf(buf, bufsize, "list title text");
|
||||
break;
|
||||
case WPS_TOKEN_LIST_TITLE_ICON:
|
||||
snprintf(buf, bufsize, "list title icon");
|
||||
break;
|
||||
case WPS_TOKEN_IMAGE_PRELOAD:
|
||||
snprintf(buf, bufsize, "preload image");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_IMAGE_PRELOAD_DISPLAY:
|
||||
{
|
||||
char subimage = '\0';
|
||||
char label = token->value.i&0xFF;
|
||||
struct gui_img *img = skin_find_item(label, SKIN_FIND_IMAGE, data);
|
||||
if (img && img->num_subimages > 1)
|
||||
{
|
||||
int item = token->value.i>>8;
|
||||
if (item >= 26)
|
||||
subimage = 'A' + item-26;
|
||||
else
|
||||
subimage = 'a' + item;
|
||||
}
|
||||
snprintf(buf, bufsize, "display preloaded image '%c%c'",
|
||||
label, subimage);
|
||||
}
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_IMAGE_DISPLAY:
|
||||
snprintf(buf, bufsize, "display image");
|
||||
break;
|
||||
#endif
|
||||
|
||||
#ifdef HAS_BUTTON_HOLD
|
||||
case WPS_TOKEN_MAIN_HOLD:
|
||||
snprintf(buf, bufsize, "mode hold");
|
||||
break;
|
||||
#endif
|
||||
|
||||
#ifdef HAS_REMOTE_BUTTON_HOLD
|
||||
case WPS_TOKEN_REMOTE_HOLD:
|
||||
snprintf(buf, bufsize, "mode remote hold");
|
||||
break;
|
||||
#endif
|
||||
|
||||
case WPS_TOKEN_REPEAT_MODE:
|
||||
snprintf(buf, bufsize, "mode repeat");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_PLAYBACK_STATUS:
|
||||
snprintf(buf, bufsize, "mode playback");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_RTC_PRESENT:
|
||||
snprintf(buf, bufsize, "rtc: present?");
|
||||
break;
|
||||
case WPS_TOKEN_RTC_DAY_OF_MONTH:
|
||||
snprintf(buf, bufsize, "rtc: day of month (01..31)");
|
||||
break;
|
||||
case WPS_TOKEN_RTC_DAY_OF_MONTH_BLANK_PADDED:
|
||||
snprintf(buf, bufsize,
|
||||
"rtc: day of month, blank padded ( 1..31)");
|
||||
break;
|
||||
case WPS_TOKEN_RTC_HOUR_24_ZERO_PADDED:
|
||||
snprintf(buf, bufsize, "rtc: hour (00..23)");
|
||||
break;
|
||||
case WPS_TOKEN_RTC_HOUR_24:
|
||||
snprintf(buf, bufsize, "rtc: hour ( 0..23)");
|
||||
break;
|
||||
case WPS_TOKEN_RTC_HOUR_12_ZERO_PADDED:
|
||||
snprintf(buf, bufsize, "rtc: hour (01..12)");
|
||||
break;
|
||||
case WPS_TOKEN_RTC_HOUR_12:
|
||||
snprintf(buf, bufsize, "rtc: hour ( 1..12)");
|
||||
break;
|
||||
case WPS_TOKEN_RTC_MONTH:
|
||||
snprintf(buf, bufsize, "rtc: month (01..12)");
|
||||
break;
|
||||
case WPS_TOKEN_RTC_MINUTE:
|
||||
snprintf(buf, bufsize, "rtc: minute (00..59)");
|
||||
break;
|
||||
case WPS_TOKEN_RTC_SECOND:
|
||||
snprintf(buf, bufsize, "rtc: second (00..59)");
|
||||
break;
|
||||
case WPS_TOKEN_RTC_YEAR_2_DIGITS:
|
||||
snprintf(buf, bufsize,
|
||||
"rtc: last two digits of year (00..99)");
|
||||
break;
|
||||
case WPS_TOKEN_RTC_YEAR_4_DIGITS:
|
||||
snprintf(buf, bufsize, "rtc: year (1970...)");
|
||||
break;
|
||||
case WPS_TOKEN_RTC_AM_PM_UPPER:
|
||||
snprintf(buf, bufsize,
|
||||
"rtc: upper case AM or PM indicator");
|
||||
break;
|
||||
case WPS_TOKEN_RTC_AM_PM_LOWER:
|
||||
snprintf(buf, bufsize,
|
||||
"rtc: lower case am or pm indicator");
|
||||
break;
|
||||
case WPS_TOKEN_RTC_WEEKDAY_NAME:
|
||||
snprintf(buf, bufsize,
|
||||
"rtc: abbreviated weekday name (Sun..Sat)");
|
||||
break;
|
||||
case WPS_TOKEN_RTC_MONTH_NAME:
|
||||
snprintf(buf, bufsize,
|
||||
"rtc: abbreviated month name (Jan..Dec)");
|
||||
break;
|
||||
case WPS_TOKEN_RTC_DAY_OF_WEEK_START_MON:
|
||||
snprintf(buf, bufsize,
|
||||
"rtc: day of week (1..7); 1 is Monday");
|
||||
break;
|
||||
case WPS_TOKEN_RTC_DAY_OF_WEEK_START_SUN:
|
||||
snprintf(buf, bufsize,
|
||||
"rtc: day of week (0..6); 0 is Sunday");
|
||||
break;
|
||||
|
||||
#if (CONFIG_CODEC == SWCODEC)
|
||||
case WPS_TOKEN_CROSSFADE:
|
||||
snprintf(buf, bufsize, "crossfade");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_REPLAYGAIN:
|
||||
snprintf(buf, bufsize, "replaygain");
|
||||
break;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_ALBUMART
|
||||
case WPS_TOKEN_ALBUMART_DISPLAY:
|
||||
snprintf(buf, bufsize, "album art display");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_ALBUMART_FOUND:
|
||||
snprintf(buf, bufsize, "%strack album art conditional",
|
||||
next_str(next));
|
||||
break;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
case WPS_TOKEN_IMAGE_BACKDROP:
|
||||
snprintf(buf, bufsize, "backdrop image");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_IMAGE_PROGRESS_BAR:
|
||||
snprintf(buf, bufsize, "progressbar bitmap");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_PEAKMETER:
|
||||
snprintf(buf, bufsize, "peakmeter");
|
||||
break;
|
||||
#endif
|
||||
|
||||
case WPS_TOKEN_PROGRESSBAR:
|
||||
snprintf(buf, bufsize, "progressbar");
|
||||
break;
|
||||
|
||||
#ifdef HAVE_LCD_CHARCELLS
|
||||
case WPS_TOKEN_PLAYER_PROGRESSBAR:
|
||||
snprintf(buf, bufsize, "full line progressbar");
|
||||
break;
|
||||
#endif
|
||||
|
||||
case WPS_TOKEN_TRACK_TIME_ELAPSED:
|
||||
snprintf(buf, bufsize, "time elapsed in track");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_TRACK_ELAPSED_PERCENT:
|
||||
snprintf(buf, bufsize, "played percentage of track");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_PLAYLIST_ENTRIES:
|
||||
snprintf(buf, bufsize, "number of entries in playlist");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_PLAYLIST_NAME:
|
||||
snprintf(buf, bufsize, "playlist name");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_PLAYLIST_POSITION:
|
||||
snprintf(buf, bufsize, "position in playlist");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_TRACK_TIME_REMAINING:
|
||||
snprintf(buf, bufsize, "time remaining in track");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_PLAYLIST_SHUFFLE:
|
||||
snprintf(buf, bufsize, "playlist shuffle mode");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_TRACK_LENGTH:
|
||||
snprintf(buf, bufsize, "track length");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_VOLUME:
|
||||
snprintf(buf, bufsize, "volume");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_METADATA_ARTIST:
|
||||
snprintf(buf, bufsize, "%strack artist",
|
||||
next_str(next));
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_METADATA_COMPOSER:
|
||||
snprintf(buf, bufsize, "%strack composer",
|
||||
next_str(next));
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_METADATA_ALBUM:
|
||||
snprintf(buf, bufsize, "%strack album",
|
||||
next_str(next));
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_METADATA_GROUPING:
|
||||
snprintf(buf, bufsize, "%strack grouping",
|
||||
next_str(next));
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_METADATA_GENRE:
|
||||
snprintf(buf, bufsize, "%strack genre",
|
||||
next_str(next));
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_METADATA_DISC_NUMBER:
|
||||
snprintf(buf, bufsize, "%strack disc", next_str(next));
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_METADATA_TRACK_NUMBER:
|
||||
snprintf(buf, bufsize, "%strack number",
|
||||
next_str(next));
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_METADATA_TRACK_TITLE:
|
||||
snprintf(buf, bufsize, "%strack title",
|
||||
next_str(next));
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_METADATA_VERSION:
|
||||
snprintf(buf, bufsize, "%strack ID3 version",
|
||||
next_str(next));
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_METADATA_ALBUM_ARTIST:
|
||||
snprintf(buf, bufsize, "%strack album artist",
|
||||
next_str(next));
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_METADATA_COMMENT:
|
||||
snprintf(buf, bufsize, "%strack comment",
|
||||
next_str(next));
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_METADATA_YEAR:
|
||||
snprintf(buf, bufsize, "%strack year", next_str(next));
|
||||
break;
|
||||
|
||||
#ifdef HAVE_TAGCACHE
|
||||
case WPS_TOKEN_DATABASE_PLAYCOUNT:
|
||||
snprintf(buf, bufsize, "track playcount (database)");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_DATABASE_RATING:
|
||||
snprintf(buf, bufsize, "track rating (database)");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_DATABASE_AUTOSCORE:
|
||||
snprintf(buf, bufsize, "track autoscore (database)");
|
||||
break;
|
||||
#endif
|
||||
|
||||
case WPS_TOKEN_BATTERY_PERCENT:
|
||||
snprintf(buf, bufsize, "battery percentage");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_BATTERY_VOLTS:
|
||||
snprintf(buf, bufsize, "battery voltage");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_BATTERY_TIME:
|
||||
snprintf(buf, bufsize, "battery time left");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_BATTERY_CHARGER_CONNECTED:
|
||||
snprintf(buf, bufsize, "battery charger connected");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_BATTERY_CHARGING:
|
||||
snprintf(buf, bufsize, "battery charging");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_BATTERY_SLEEPTIME:
|
||||
snprintf(buf, bufsize, "sleep timer");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_FILE_BITRATE:
|
||||
snprintf(buf, bufsize, "%sfile bitrate", next_str(next));
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_FILE_CODEC:
|
||||
snprintf(buf, bufsize, "%sfile codec", next_str(next));
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_FILE_FREQUENCY:
|
||||
snprintf(buf, bufsize, "%sfile audio frequency in Hz",
|
||||
next_str(next));
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_FILE_FREQUENCY_KHZ:
|
||||
snprintf(buf, bufsize, "%sfile audio frequency in KHz",
|
||||
next_str(next));
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_FILE_NAME:
|
||||
snprintf(buf, bufsize, "%sfile name", next_str(next));
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_FILE_NAME_WITH_EXTENSION:
|
||||
snprintf(buf, bufsize, "%sfile name with extension",
|
||||
next_str(next));
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_FILE_PATH:
|
||||
snprintf(buf, bufsize, "%sfile path", next_str(next));
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_FILE_SIZE:
|
||||
snprintf(buf, bufsize, "%sfile size", next_str(next));
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_FILE_VBR:
|
||||
snprintf(buf, bufsize, "%sfile is vbr", next_str(next));
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_FILE_DIRECTORY:
|
||||
snprintf(buf, bufsize, "%sfile directory, level: %d",
|
||||
next_str(next), token->value.i);
|
||||
break;
|
||||
|
||||
#if (CONFIG_CODEC != MAS3507D)
|
||||
case WPS_TOKEN_SOUND_PITCH:
|
||||
snprintf(buf, bufsize, "pitch value");
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if (CONFIG_LED == LED_VIRTUAL) || defined(HAVE_REMOTE_LCD)
|
||||
case WPS_TOKEN_VLED_HDD:
|
||||
snprintf(buf, bufsize, "display virtual HDD LED");
|
||||
break;
|
||||
#endif
|
||||
case WPS_VIEWPORT_ENABLE:
|
||||
case WPS_TOKEN_UIVIEWPORT_ENABLE:
|
||||
snprintf(buf, bufsize, "enable %sVP: %c",
|
||||
token->type == WPS_TOKEN_UIVIEWPORT_ENABLE ? "UI " : "",
|
||||
(char)token->value.i);
|
||||
break;
|
||||
case WPS_TOKEN_BUTTON_VOLUME:
|
||||
snprintf(buf, bufsize, "Volume button timeout: %d",
|
||||
token->value.i);
|
||||
break;
|
||||
case WPS_TOKEN_SETTING:
|
||||
snprintf(buf, bufsize, "Setting value: '%s'",
|
||||
settings[token->value.i].cfg_name);
|
||||
break;
|
||||
case WPS_TOKEN_LANG_IS_RTL:
|
||||
snprintf(buf, bufsize, "lang: is_rtl?");
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_TRACK_STARTING:
|
||||
snprintf(buf, bufsize, "first %d seconds of track", token->value.i);
|
||||
break;
|
||||
case WPS_TOKEN_TRACK_ENDING:
|
||||
snprintf(buf, bufsize, "last %d seconds of track", token->value.i);
|
||||
break;
|
||||
default:
|
||||
for(i=1; i<sizeof(tokens)/sizeof(*token); i++)
|
||||
{
|
||||
if (token->type < tokens[i].start_marker)
|
||||
{
|
||||
snprintf(buf, bufsize, "FIXME: %s + %d\n", tokens[i-1].desc,
|
||||
token->type - tokens[i-1].start_marker);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
||||
#if defined(SIMULATOR) || defined(__PCTOOL__)
|
||||
static void dump_skin(struct wps_data *data)
|
||||
{
|
||||
int indent = 0;
|
||||
char buf[64];
|
||||
int i, j;
|
||||
|
||||
struct skin_token_list *viewport_list;
|
||||
for (viewport_list = data->viewports;
|
||||
viewport_list; viewport_list = viewport_list->next)
|
||||
{
|
||||
struct skin_viewport *skin_viewport =
|
||||
(struct skin_viewport *)viewport_list->token->value.data;
|
||||
indent = 0;
|
||||
DEBUGF("Viewport: '%c'\n", skin_viewport->label);
|
||||
struct skin_line *line;
|
||||
for (line = skin_viewport->lines; line; line = line->next)
|
||||
{
|
||||
struct skin_subline *subline;
|
||||
indent = 1;
|
||||
for(subline = &line->sublines; subline; subline = subline->next)
|
||||
{
|
||||
DEBUGF(" Subline: tokens %d => %d",
|
||||
subline->first_token_idx,subline->last_token_idx);
|
||||
if (subline->line_type & WPS_REFRESH_SCROLL)
|
||||
DEBUGF(", scrolled");
|
||||
else if (subline->line_type & WPS_REFRESH_PLAYER_PROGRESS)
|
||||
DEBUGF(", progressbar");
|
||||
else if (subline->line_type & WPS_REFRESH_PEAK_METER)
|
||||
DEBUGF(", peakmeter");
|
||||
DEBUGF("\n");
|
||||
|
||||
for (i = subline->first_token_idx; i <= subline->last_token_idx; i++)
|
||||
{
|
||||
struct wps_token *token = &data->tokens[i];
|
||||
get_token_desc(token, buf, sizeof(buf), data);
|
||||
|
||||
switch(token->type)
|
||||
{
|
||||
|
||||
case WPS_TOKEN_CONDITIONAL_START:
|
||||
indent++;
|
||||
break;
|
||||
|
||||
case WPS_TOKEN_CONDITIONAL_END:
|
||||
indent--;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (wps_verbose_level > 2)
|
||||
{
|
||||
for(j = 0; j < indent; j++) {
|
||||
DEBUGF("\t");
|
||||
}
|
||||
|
||||
DEBUGF("[%3d] = (%2d) %s\n", i, token->type, buf);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void print_debug_info(struct wps_data *data, enum wps_parse_error fail, int line)
|
||||
{
|
||||
#if defined(SIMULATOR) || defined(__PCTOOL__)
|
||||
if (debug_wps && wps_verbose_level)
|
||||
{
|
||||
dump_skin(data);
|
||||
}
|
||||
#endif /* SIMULATOR */
|
||||
|
||||
if (fail != PARSE_OK)
|
||||
{
|
||||
char buf[64];
|
||||
|
||||
DEBUGF("ERR: Failed parsing on line %d : ", line);
|
||||
switch (fail)
|
||||
{
|
||||
case PARSE_OK:
|
||||
break;
|
||||
|
||||
case PARSE_FAIL_UNCLOSED_COND:
|
||||
DEBUGF("ERR: Unclosed conditional");
|
||||
break;
|
||||
|
||||
case PARSE_FAIL_INVALID_CHAR:
|
||||
DEBUGF("ERR: Unexpected conditional char after token %d: \"%s\"",
|
||||
data->num_tokens-1,
|
||||
get_token_desc(&data->tokens[data->num_tokens-1], buf, sizeof(buf), data)
|
||||
);
|
||||
break;
|
||||
|
||||
case PARSE_FAIL_COND_SYNTAX_ERROR:
|
||||
DEBUGF("ERR: Conditional syntax error after token %d: \"%s\"",
|
||||
data->num_tokens-1,
|
||||
get_token_desc(&data->tokens[data->num_tokens-1], buf, sizeof(buf), data)
|
||||
);
|
||||
break;
|
||||
|
||||
case PARSE_FAIL_COND_INVALID_PARAM:
|
||||
DEBUGF("ERR: Invalid parameter list for token %d: \"%s\"",
|
||||
data->num_tokens,
|
||||
get_token_desc(&data->tokens[data->num_tokens], buf, sizeof(buf), data)
|
||||
);
|
||||
break;
|
||||
|
||||
case PARSE_FAIL_LIMITS_EXCEEDED:
|
||||
DEBUGF("ERR: Limits exceeded");
|
||||
break;
|
||||
}
|
||||
DEBUGF("\n");
|
||||
}
|
||||
}
|
||||
|
||||
void debug_skin_usage(void)
|
||||
{
|
||||
#if defined(SIMULATOR) || defined(__PCTOOL__)
|
||||
if (wps_verbose_level > 1)
|
||||
#endif
|
||||
DEBUGF("Skin buffer usage: %lu/%lu\n", (unsigned long)skin_buffer_usage(),
|
||||
(unsigned long)(skin_buffer_usage() + skin_buffer_freespace()));
|
||||
}
|
||||
|
||||
#endif /* DEBUG || SIMULATOR */
|
||||
|
|
@ -259,10 +259,10 @@
|
|||
</source>
|
||||
<dest>
|
||||
*: "PLAY = Ano"
|
||||
cowond2*: "MENU, or top-right = Ano"
|
||||
cowond2*: "MENU, nebo vpravo nahoře = Ano"
|
||||
iriverh100,iriverh120,iriverh300: "NAVI = Ano"
|
||||
samsungyh*,ipod*,iaudiox5,iaudiom5,gigabeat*,sansae200*,sansac200*,iriverh10,iriverh10_5gb,mrobe100,sansaclip*,sansafuze*,sansaconnect: "SELECT = Ano"
|
||||
mrobe500: "PLAY, POWER, or top-right = Ano"
|
||||
mrobe500: "PLAY, POWER, nebo vpravo nahoře = Ano"
|
||||
archosplayer: "(PLAY/STOP)"
|
||||
vibe500: "OK = Ano"
|
||||
</dest>
|
||||
|
|
@ -1904,10 +1904,10 @@
|
|||
*: "Auto-Change Directory"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Pokračovat další složkou"
|
||||
*: "Pokračovat do další složky"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Pokračovat další složkou"
|
||||
*: "Pokračovat do další složky"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -2243,14 +2243,14 @@
|
|||
<dest>
|
||||
*: "Vytvářím databázi... %d nalezeno (OFF pro návrat)"
|
||||
iriverh100,iriverh120,iriverh300: "Vytvářím databázi... %d nalezeno (STOP pro návrat)"
|
||||
ipod*: "Vytvářím databázi... %d found (PREV pro návrat)"
|
||||
ipod*: "Vytvářím databázi... %d nalezeno (PREV pro návrat)"
|
||||
iaudiox5,iaudiom5,gigabeat*,mrobe100: "Vytvářím databázi... %d nalezeno (LEFT pro návrat)"
|
||||
iriverh10,iriverh10_5gb,sansae200*,sansac200*,sansafuze*,vibe500: "Vytvářím databázi... %d nalezeno (PREV pro návrat)"
|
||||
gogearsa9200: "Vytvářím databázi.. %d nalezeno (REW pro návrat)"
|
||||
archosplayer: "Vytvář. DB %d nalez."
|
||||
</dest>
|
||||
<voice>
|
||||
*: "záznamů vytvořeno do databáze"
|
||||
*: "Vytváření záznamů do databáze"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -2909,7 +2909,7 @@
|
|||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
remote_ticking: "Zredukova tikání"
|
||||
remote_ticking: "Zredukovat tikání"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
|
|
@ -5700,8 +5700,8 @@
|
|||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
recording: "Mikrofón"
|
||||
iriverh100,iriverh120,iriverh300: "Interní mikrofón"
|
||||
recording: "Mikrofon"
|
||||
iriverh100,iriverh120,iriverh300: "Interní mikrofon"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
|
|
@ -6483,10 +6483,10 @@
|
|||
*: "Recursively Insert Directories"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Vkládat složky rekurzivně"
|
||||
*: "Vkládat podsložky"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Vkládat složky rekurzivně"
|
||||
*: "Vkládat podsložky"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -6497,10 +6497,10 @@
|
|||
*: "Recursively?"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Rekurzivně?"
|
||||
*: "Vložit i podsložky?"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Rekurzivně?"
|
||||
*: "Vložit i podsložky?"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -7650,7 +7650,7 @@
|
|||
*: "Přidat do zástupců"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Přidat do zástupců"
|
||||
*: "Přidat do zástupců, položka ale nebude ozvučená"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -10161,7 +10161,7 @@
|
|||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
rtc: "nula nula"
|
||||
rtc: "nula"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -11359,11 +11359,11 @@
|
|||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
remote: "Dalkový stavový řádek"
|
||||
remote: "Dálkový stavový řádek"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
remote: "Dalkový stavový řádek"
|
||||
remote: "Dálkový stavový řádek"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12539,10 +12539,10 @@
|
|||
*: "Start File Browser Here"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Otevírat prohlížení souborů zde"
|
||||
*: "Nastavit jako výchozí složku"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Otevírat prohlížení souborů zde"
|
||||
*: "Nastavit jako výchozí složku"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12553,10 +12553,10 @@
|
|||
*: "Start File Browser at /"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Nastavit prohlížení souborů na root"
|
||||
*: "Výchozí složku nastavit na root"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Nastavit prohlížení souborů na růt"
|
||||
*: "Výchozí složku nastavit na růt"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12740,11 +12740,11 @@
|
|||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
multidrive_usb: "Skrýt interni disk přes USB"
|
||||
multidrive_usb: "Skrýt interní pamět přes USB"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
multidrive_usb: "Skrýt interni disk přes ÚESBÉ"
|
||||
multidrive_usb: "Skrýt interní pamět přes ÚESBÉ"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12778,20 +12778,6 @@
|
|||
*: "Automatycky"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SLEEP_TIMER_CANCEL_CURRENT
|
||||
desc: shown instead of sleep timer when it's running
|
||||
user: core
|
||||
<source>
|
||||
*: "Cancel Sleep Timer"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Zrušit časovač vypnutí"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Zrušit časovač vypnutí, zbývá"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SLEEP_TIMER_DURATION
|
||||
desc: default sleep timer duration in minutes (unused in UI)
|
||||
|
|
@ -12821,34 +12807,31 @@
|
|||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_GLYPHS
|
||||
desc: in settings_menu
|
||||
id: LANG_SLEEP_TIMER_CANCEL_CURRENT
|
||||
desc: shown instead of sleep timer when it's running
|
||||
user: core
|
||||
<source>
|
||||
*: "Glyphs To Cache"
|
||||
*: "Cancel Sleep Timer"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Vyrovnávací paměť pro glyphy"
|
||||
*: "Zrušit časovač vypnutí"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Vyrovnávací paměť pro glyphy"
|
||||
*: "Zrušit časovač vypnutí, zbývá"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_KEYCLICK_HARDWARE
|
||||
desc: in keyclick settings menu
|
||||
id: LANG_SHORTCUTS
|
||||
desc: Title in the shortcuts menu
|
||||
user: core
|
||||
<source>
|
||||
*: none
|
||||
hardware_click: "Speaker Keyclick"
|
||||
*: "Shortcuts"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
hardware_click: "Kliknutí přes reproduktor"
|
||||
*: "Zástupci"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
hardware_click: "Kliknutí přes reproduktor"
|
||||
*: "Zástupci"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12869,17 +12852,34 @@
|
|||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SHORTCUTS
|
||||
desc: Title in the shortcuts menu
|
||||
id: LANG_KEYCLICK_HARDWARE
|
||||
desc: in keyclick settings menu
|
||||
user: core
|
||||
<source>
|
||||
*: "Shortcuts"
|
||||
*: none
|
||||
hardware_click: "Speaker Keyclick"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Zástupci"
|
||||
*: none
|
||||
hardware_click: "Kliknutí přes reproduktor"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Zástupci"
|
||||
*: none
|
||||
hardware_click: "Kliknutí přes reproduktor"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_GLYPHS
|
||||
desc: in settings_menu
|
||||
user: core
|
||||
<source>
|
||||
*: "Glyphs To Cache"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Vyrovnávací paměť pro glyphy"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Vyrovnávací paměť pro glyphy"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12910,3 +12910,34 @@
|
|||
*: "Stisk klávesy restartuje časovač vypnutí"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_CONSTRAIN_NEXT_FOLDER
|
||||
desc: in settings_menu. Whether LANG_NEXT_FOLDER should be constrained to directories within LANG_SET_AS_START_DIR
|
||||
user: core
|
||||
<source>
|
||||
*: "Constrain Auto-Change"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Omezit pokračování do další složky"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Omezit pokračování do další složky"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_USE_SHORTCUTS_INSTEAD_OF_QS
|
||||
desc: in settings_menu.
|
||||
user: core
|
||||
<source>
|
||||
*: none
|
||||
quickscreen: "Use Shortcuts Menu Instead of Quick Screen"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
quickscreen: "Použít menu Zástupci místo Rychlé nabídky"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
quickscreen: "Použít menu Zástupci místo Rychlé nabídky"
|
||||
</voice>
|
||||
</phrase>
|
||||
|
|
|
|||
|
|
@ -12703,10 +12703,10 @@
|
|||
*: "Set As Playlist Catalogue Directory"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Ustaw jako katalog listy odtwarzania"
|
||||
*: "Ustaw jako katalog list odtwarzania"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Ustaw jako katalog listy odtwarzania"
|
||||
*: "Ustaw jako katalog list odtwarzania"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12731,10 +12731,10 @@
|
|||
*: "Reset Playlist Catalogue Directory"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Resetuj katalog listy odtwarzania"
|
||||
*: "Zresetuj katalog list odtwarzania"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Resetuj katalog listy odtwarzania"
|
||||
*: "Zresetuj katalog list odtwarzania"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12745,10 +12745,10 @@
|
|||
*: "Glyphs To Cache"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Kopiuj tekst do Schowka"
|
||||
*: "Rozmiar bufora znaków"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Kopiuj tekst do schowka"
|
||||
*: "Rozmiar bufora znaków"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12778,11 +12778,11 @@
|
|||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
hardware_click: "Dźwięk klawiszy (głośnik)"
|
||||
hardware_click: "Dźwięk przycisków (głośnik)"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
hardware_click: "Dźwięk klawiszy (głośnik)"
|
||||
hardware_click: "Dźwięk przycisków (głośnik)"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12795,11 +12795,11 @@
|
|||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
hardware_click: "Dźwięk klawiszy (słuchawki)"
|
||||
hardware_click: "Dźwięk przycisków (słuchawki)"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
hardware_click: "Dźwięk klawiszy (słuchawki)"
|
||||
hardware_click: "Dźwięk przycisków (słuchawki)"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12812,11 +12812,11 @@
|
|||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
touchscreen: "Line Padding in Lists"
|
||||
touchscreen: "Odstępy międzyliniowe w listach"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
touchscreen: "Line Padding in Lists"
|
||||
touchscreen: "Odstępy międzyliniowe w listach"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12827,10 +12827,10 @@
|
|||
*: "Automatic"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Automatycznie"
|
||||
*: "Automatyczny"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Automatycznie"
|
||||
*: "Automatyczny"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12855,10 +12855,10 @@
|
|||
*: "Cancel Sleep Timer"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Anuluj budzik"
|
||||
*: "Anuluj usypianie"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Anuluj budzik"
|
||||
*: "Anuluj usypianie"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12869,10 +12869,10 @@
|
|||
*: "Startup/Shutdown"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Włącz/Wyłącz"
|
||||
*: "Włączanie/Wyłączanie"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Włącz/Wyłącz"
|
||||
*: "Włączanie/Wyłączanie"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12883,10 +12883,10 @@
|
|||
*: "Restart Sleep Timer On Keypress"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Resetuj budzik po naciśnięciu klawisza"
|
||||
*: "Zresetuj usypiacz przy naciśnięciu przycisku"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Resetuj budzik po naciśnięciu klawisza"
|
||||
*: "Zresetuj usypiacz przy naciśnięciu przycisku"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12897,10 +12897,10 @@
|
|||
*: "Default Sleep Timer Duration"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Domyślna pora alarmu"
|
||||
*: "Domyślny czas usypiacza"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Domyślna pora alarmu"
|
||||
*: "Domyślny czas usypiacza"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12911,9 +12911,9 @@
|
|||
*: "Start Sleep Timer On Boot"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Ustaw alarm przy włączeniu"
|
||||
*: "Uruchom usypiacz przy włączeniu"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Ustaw alarm przy włączeniu"
|
||||
*: "Uruchom usypiacz przy włączeniu"
|
||||
</voice>
|
||||
</phrase>
|
||||
|
|
|
|||
|
|
@ -215,7 +215,7 @@ static int init_dircache(bool preinit)
|
|||
if (!global_settings.dircache)
|
||||
return 0;
|
||||
|
||||
# ifdef HAVE_EEPROM_SETTINGS
|
||||
# if 0
|
||||
if (firmware_settings.initialized && firmware_settings.disk_clean
|
||||
&& preinit)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -740,8 +740,7 @@ static int sd_setcmp(int regval)
|
|||
|
||||
static void set_sleep(bool sleep)
|
||||
{
|
||||
if (sleep)
|
||||
tuner_power(false);
|
||||
tuner_power(!sleep);
|
||||
if (sleep || tuner_awake())
|
||||
return;
|
||||
|
||||
|
|
@ -749,7 +748,6 @@ static void set_sleep(bool sleep)
|
|||
(TUNER_PRESENT | TUNER_POWERED))
|
||||
return;
|
||||
|
||||
tuner_power(true);
|
||||
enable_afc(false);
|
||||
|
||||
/* 2. Calibrate the IF frequency at 110 kHz: */
|
||||
|
|
|
|||
|
|
@ -368,6 +368,10 @@ void si4700_init(void)
|
|||
mutex_init(&fmr_mutex);
|
||||
/* check device id */
|
||||
if (si4700_detect()) {
|
||||
/* make sure the tuner goes into a well-defined powered-off state */
|
||||
si4700_sleep(0);
|
||||
si4700_sleep(1);
|
||||
|
||||
#ifdef HAVE_RDS_CAP
|
||||
si4700_rds_init();
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -82,6 +82,8 @@ void panicf( const char *fmt, ...)
|
|||
vsnprintf( panic_buf, sizeof(panic_buf), fmt, ap );
|
||||
va_end( ap );
|
||||
|
||||
lcd_set_viewport(NULL);
|
||||
|
||||
#ifdef HAVE_LCD_CHARCELLS
|
||||
lcd_double_height(false);
|
||||
lcd_puts(0, 0, "*PANIC*");
|
||||
|
|
@ -98,7 +100,6 @@ void panicf( const char *fmt, ...)
|
|||
|
||||
lcd_clear_display();
|
||||
lcd_setfont(FONT_SYSFIXED);
|
||||
lcd_set_viewport(NULL);
|
||||
lcd_puts(1, y++, (unsigned char *)"*PANIC*");
|
||||
{
|
||||
/* wrap panic line */
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ unsigned char rc_buf[5];
|
|||
/* ================================================== */
|
||||
static struct semaphore rc_thread_wakeup;
|
||||
static unsigned int remote_thread_id;
|
||||
static int remote_stack[256/sizeof(int)];
|
||||
static int remote_stack[512/sizeof(int)];
|
||||
static const char * const remote_thread_name = "remote";
|
||||
|
||||
static bool remote_wait_ready(int ready_mask)
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
#include "usb-s3c6400x.h"
|
||||
#include "cpu.h"
|
||||
|
||||
#ifdef HAVE_USBSTACK
|
||||
#if 0 //def HAVE_USBSTACK
|
||||
#include "usb_core.h"
|
||||
#include "usb_drv.h"
|
||||
#include "power.h"
|
||||
|
|
@ -85,4 +85,5 @@ void usb_init_device(void)
|
|||
PWRCON(0) |= 0x4;
|
||||
PWRCON(1) |= 0x8;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
skin_buffer.c
|
||||
skin_parser.c
|
||||
#if !defined(ROCKBOX) || defined(__PCTOOL__)
|
||||
#if !defined(ROCKBOX) || defined(__PCTOOL__) || defined(SIMULATOR)
|
||||
skin_debug.c
|
||||
#endif
|
||||
skin_scan.c
|
||||
|
|
|
|||
|
|
@ -283,7 +283,7 @@ void skin_debug_params(int count, struct skin_tag_parameter params[])
|
|||
}
|
||||
}
|
||||
|
||||
void skin_debug_indent()
|
||||
void skin_debug_indent(void)
|
||||
{
|
||||
int i;
|
||||
for(i = 0; i < debug_indent_level; i++)
|
||||
|
|
@ -293,7 +293,7 @@ void skin_debug_indent()
|
|||
#endif
|
||||
|
||||
#define MIN(a,b) ((a<b)?(a):(b))
|
||||
void skin_error_format_message()
|
||||
void skin_error_format_message(void)
|
||||
{
|
||||
int i;
|
||||
char text[128];
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ extern "C"
|
|||
{
|
||||
#endif
|
||||
|
||||
#if !defined(ROCKBOX) || defined(__PCTOOL__)
|
||||
#if !defined(ROCKBOX) || defined(__PCTOOL__) || defined(SIMULATOR)
|
||||
#define SKINPARSER_DEBUG
|
||||
#endif
|
||||
|
||||
|
|
@ -41,7 +41,7 @@ int skin_error_col(void);
|
|||
char* skin_error_message(void);
|
||||
void skin_clear_errors(void);
|
||||
void skin_debug_tree(struct skin_element* root);
|
||||
void skin_error_format_message();
|
||||
void skin_error_format_message(void);
|
||||
|
||||
/* Auxiliary debug functions */
|
||||
void skin_debug_params(int count, struct skin_tag_parameter params[]);
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
$publicrelease="3.10";
|
||||
$manualrelease="3.10";
|
||||
$voicerelease="3.10";
|
||||
$releasedate="December 7, 2011";
|
||||
$releasenotes="/wiki/ReleaseNotes310";
|
||||
$publicrelease="3.11.2";
|
||||
$manualrelease="3.11.2";
|
||||
$voicerelease="3.11.2";
|
||||
$releasedate="April 12, 2012";
|
||||
$releasenotes="/wiki/ReleaseNotes3112";
|
||||
|
||||
%builds = (
|
||||
'archosav300' => {
|
||||
|
|
@ -113,7 +113,7 @@ $releasenotes="/wiki/ReleaseNotes310";
|
|||
},
|
||||
'ipodnano2g' => {
|
||||
name => 'iPod Nano 2nd gen',
|
||||
status => 3,
|
||||
status => 2,
|
||||
},
|
||||
'ipodvideo' => {
|
||||
name => 'iPod Video',
|
||||
|
|
@ -223,7 +223,7 @@ $releasenotes="/wiki/ReleaseNotes310";
|
|||
},
|
||||
'sansac200v2' => {
|
||||
name => 'SanDisk Sansa c200 v2',
|
||||
status => 2,
|
||||
status => 3,
|
||||
icon => 'sansac200',
|
||||
},
|
||||
'sansaclip' => {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
../../apps/gui/skin_engine/wps_debug.c
|
||||
../../apps/gui/skin_engine/skin_parser.c
|
||||
../../apps/gui/skin_engine/skin_backdrops.c
|
||||
../../apps/gui/viewport.c
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#!/usr/bin/perl
|
||||
$version="3.5RC";
|
||||
$version="3.11.2";
|
||||
|
||||
require "tools/builds.pm";
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
$version="3.0";
|
||||
$version="3.11.2";
|
||||
|
||||
require "tools/builds.pm";
|
||||
|
||||
|
|
|
|||
|
|
@ -1,34 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
version="3.0"
|
||||
|
||||
srcdir=.
|
||||
tempdir=rockbox-temp
|
||||
outfile=rockbox-$version.7z
|
||||
|
||||
# remove previous leftovers
|
||||
rm -rf $tempdir
|
||||
|
||||
cd $srcdir
|
||||
|
||||
# create the dir name based on revision number
|
||||
rbdir=$tempdir/rockbox-$version
|
||||
|
||||
# create new temp dir
|
||||
mkdir -p $rbdir
|
||||
|
||||
# copy everything to the temp dir
|
||||
svn ls -R | xargs -Imoo cp --parents moo $rbdir 2>/dev/null
|
||||
|
||||
cd $tempdir
|
||||
|
||||
rm -f $outfile
|
||||
|
||||
# 7zip the entire directory
|
||||
7zr a $outfile rockbox*
|
||||
|
||||
# world readable please
|
||||
chmod a+r $outfile
|
||||
|
||||
# remove temporary files
|
||||
rm -rf $tempdir
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
$version="3.0";
|
||||
$version="3.11.2";
|
||||
|
||||
require "tools/builds.pm";
|
||||
|
||||
|
|
|
|||
23
utils/common/tarball.py
Executable file
23
utils/common/tarball.py
Executable file
|
|
@ -0,0 +1,23 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
import gitscraper
|
||||
import tempfile
|
||||
import subprocess
|
||||
import os
|
||||
import shutil
|
||||
|
||||
version = "v3.11"
|
||||
repository = "."
|
||||
basename = "rockbox-" + version
|
||||
tree = gitscraper.get_refs(repository)["refs/remotes/origin/" + version]
|
||||
tmpbase = tempfile.mkdtemp()
|
||||
tmpdir = tmpbase + "/" + basename
|
||||
|
||||
gitscraper.archive_files(repository, tree, [], basename, tmpdir)
|
||||
|
||||
print "7z-ing files"
|
||||
output = subprocess.Popen(["7z", "a",
|
||||
os.path.join(os.getcwd(), basename + ".7z"), basename], cwd=tmpbase)
|
||||
cmdout = output.communicate()
|
||||
|
||||
shutil.rmtree(tmpbase)
|
||||
Loading…
Add table
Reference in a new issue