Compare commits
40 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3113637050 | ||
|
|
6cc5e6f9ac | ||
|
|
6d06435c40 | ||
|
|
0be9570bd0 | ||
|
|
69d432f598 | ||
|
|
51b2db366a | ||
|
|
0711dd10ac | ||
|
|
689285bd8e | ||
|
|
dbcd21f3b5 | ||
|
|
3e58faddf7 | ||
|
|
df1b8ed8b6 | ||
|
|
8f96be4857 | ||
|
|
a1d34210c6 | ||
|
|
ede7568173 | ||
|
|
9e76f00927 | ||
|
|
0f25b560b2 | ||
|
|
8412981baf | ||
|
|
5bc2945fde | ||
|
|
cc16c1070a | ||
|
|
e7467639dc | ||
|
|
58fd6d90c3 | ||
|
|
962ef6b4a2 | ||
|
|
88325e44a0 | ||
|
|
ae2822dcbb | ||
|
|
231a0ede1d | ||
|
|
7dd15b13a3 | ||
|
|
52d1616e5a | ||
|
|
1342706583 | ||
|
|
1fee9620b7 | ||
|
|
565905ae33 | ||
|
|
8026a172d9 | ||
|
|
576bc15733 | ||
|
|
a93061630c | ||
|
|
6a3f0a87b8 | ||
|
|
f07b4602bf | ||
|
|
247cb149dd | ||
|
|
8735bb0afc | ||
|
|
58cc71b3e9 | ||
|
|
66ecd9e85d | ||
|
|
beb68e9018 |
42 changed files with 1631 additions and 237 deletions
|
|
@ -56,50 +56,64 @@
|
|||
|
||||
#define MPC_SHR_RND(X, Y) ((X+(1<<(Y-1)))>>Y)
|
||||
|
||||
#if defined(CPU_COLDFIRE)
|
||||
/* Calculate: result = (X*Y)>>14 */
|
||||
#define MPC_MULTIPLY(X,Y) \
|
||||
({ \
|
||||
MPC_SAMPLE_FORMAT t1; \
|
||||
MPC_SAMPLE_FORMAT t2; \
|
||||
asm volatile ( \
|
||||
"mac.l %[x],%[y],%%acc0\n\t" /* multiply */ \
|
||||
"mulu.l %[y],%[x] \n\t" /* get lower half, avoid emac stall */ \
|
||||
"movclr.l %%acc0,%[t1] \n\t" /* get higher half */ \
|
||||
"moveq.l #17,%[t2] \n\t" \
|
||||
"asl.l %[t2],%[t1] \n\t" /* hi <<= 17, plus one free */ \
|
||||
"moveq.l #14,%[t2] \n\t" \
|
||||
"lsr.l %[t2],%[x] \n\t" /* (unsigned)lo >>= 14 */ \
|
||||
"or.l %[x],%[t1] \n" /* combine result */ \
|
||||
: [t1]"=&d"(t1), [t2]"=&d"(t2) \
|
||||
: [x]"d"((X)), [y] "d"((Y))); \
|
||||
t1; \
|
||||
})
|
||||
#if defined(CPU_COLDFIRE)
|
||||
|
||||
/* Calculate: result = (X*Y)>>Z */
|
||||
#define MPC_MULTIPLY_EX(X,Y,Z) \
|
||||
({ \
|
||||
MPC_SAMPLE_FORMAT t1; \
|
||||
MPC_SAMPLE_FORMAT t2; \
|
||||
asm volatile ( \
|
||||
"mac.l %[x],%[y],%%acc0\n\t" /* multiply */ \
|
||||
"mulu.l %[y],%[x] \n\t" /* get lower half, avoid emac stall */ \
|
||||
"movclr.l %%acc0,%[t1] \n\t" /* get higher half */ \
|
||||
"moveq.l #31,%[t2] \n\t" \
|
||||
"sub.l %[sh],%[t2] \n\t" /* t2 = 31 - shift */ \
|
||||
"ble.s 1f \n\t" \
|
||||
"asl.l %[t2],%[t1] \n\t" /* hi <<= 31 - shift */ \
|
||||
"lsr.l %[sh],%[x] \n\t" /* (unsigned)lo >>= shift */ \
|
||||
"or.l %[x],%[t1] \n\t" /* combine result */ \
|
||||
"bra.s 2f \n\t" \
|
||||
"1: \n\t" \
|
||||
"neg.l %[t2] \n\t" /* t2 = shift - 31 */ \
|
||||
"asr.l %[t2],%[t1] \n\t" /* hi >>= t2 */ \
|
||||
"2: \n" \
|
||||
: [t1]"=&d"(t1), [t2]"=&d"(t2) \
|
||||
: [x] "d"((X)), [y] "d"((Y)), [sh]"d"((Z))); \
|
||||
t1; \
|
||||
})
|
||||
#define MPC_MULTIPLY(X,Y) mpc_multiply((X), (Y))
|
||||
#define MPC_MULTIPLY_EX(X,Y,Z) mpc_multiply_ex((X), (Y), (Z))
|
||||
|
||||
static inline MPC_SAMPLE_FORMAT mpc_multiply(MPC_SAMPLE_FORMAT x,
|
||||
MPC_SAMPLE_FORMAT y)
|
||||
{
|
||||
MPC_SAMPLE_FORMAT t1, t2;
|
||||
asm volatile (
|
||||
"mac.l %[x],%[y],%%acc0\n" /* multiply */
|
||||
"mulu.l %[y],%[x] \n" /* get lower half, avoid emac stall */
|
||||
"movclr.l %%acc0,%[t1] \n" /* get higher half */
|
||||
"moveq.l #17,%[t2] \n"
|
||||
"asl.l %[t2],%[t1] \n" /* hi <<= 17, plus one free */
|
||||
"moveq.l #14,%[t2] \n"
|
||||
"lsr.l %[t2],%[x] \n" /* (unsigned)lo >>= 14 */
|
||||
"or.l %[x],%[t1] \n" /* combine result */
|
||||
: /* outputs */
|
||||
[t1]"=&d"(t1),
|
||||
[t2]"=&d"(t2),
|
||||
[x] "+d" (x)
|
||||
: /* inputs */
|
||||
[y] "d" (y)
|
||||
);
|
||||
return t1;
|
||||
}
|
||||
|
||||
static inline MPC_SAMPLE_FORMAT mpc_multiply_ex(MPC_SAMPLE_FORMAT x,
|
||||
MPC_SAMPLE_FORMAT y,
|
||||
unsigned shift)
|
||||
{
|
||||
MPC_SAMPLE_FORMAT t1, t2;
|
||||
asm volatile (
|
||||
"mac.l %[x],%[y],%%acc0\n" /* multiply */
|
||||
"mulu.l %[y],%[x] \n" /* get lower half, avoid emac stall */
|
||||
"movclr.l %%acc0,%[t1] \n" /* get higher half */
|
||||
"moveq.l #31,%[t2] \n"
|
||||
"sub.l %[sh],%[t2] \n" /* t2 = 31 - shift */
|
||||
"ble.s 1f \n"
|
||||
"asl.l %[t2],%[t1] \n" /* hi <<= 31 - shift */
|
||||
"lsr.l %[sh],%[x] \n" /* (unsigned)lo >>= shift */
|
||||
"or.l %[x],%[t1] \n" /* combine result */
|
||||
"bra.s 2f \n"
|
||||
"1: \n"
|
||||
"neg.l %[t2] \n" /* t2 = shift - 31 */
|
||||
"asr.l %[t2],%[t1] \n" /* hi >>= t2 */
|
||||
"2: \n"
|
||||
: /* outputs */
|
||||
[t1]"=&d"(t1),
|
||||
[t2]"=&d"(t2),
|
||||
[x] "+d" (x)
|
||||
: /* inputs */
|
||||
[y] "d" (y),
|
||||
[sh]"d" (shift)
|
||||
);
|
||||
return t1;
|
||||
}
|
||||
#elif defined(CPU_ARM)
|
||||
/* Calculate: result = (X*Y)>>14 */
|
||||
#define MPC_MULTIPLY(X,Y) \
|
||||
|
|
|
|||
|
|
@ -44,7 +44,6 @@
|
|||
#include "filetree.h"
|
||||
#include "misc.h"
|
||||
#include "strnatcmp.h"
|
||||
#include "playlist_viewer.h"
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
#include "keyboard.h"
|
||||
#endif
|
||||
|
|
@ -461,8 +460,13 @@ int ft_enter(struct tree_context* c)
|
|||
|
||||
switch ( file_attr & FILE_ATTR_MASK ) {
|
||||
case FILE_ATTR_M3U:
|
||||
if (!bookmark_autoload(buf))
|
||||
playlist_viewer_ex(buf);
|
||||
play = ft_play_playlist(buf, c->currdir, file->name);
|
||||
|
||||
if (play)
|
||||
{
|
||||
start_index = 0;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case FILE_ATTR_AUDIO:
|
||||
|
|
|
|||
|
|
@ -156,7 +156,11 @@ bool skin_backdrops_preload(void)
|
|||
screens[screen].backdrop_load(filename, backdrops[i].buffer);
|
||||
handle_being_loaded = -1;
|
||||
if (!backdrops[i].loaded)
|
||||
{
|
||||
core_free(backdrops[i].buflib_handle);
|
||||
retval = false;
|
||||
backdrops[i].buflib_handle = -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
retval = false;
|
||||
|
|
|
|||
|
|
@ -732,10 +732,14 @@ static const char* NOINLINE get_lif_token_value(struct gui_wps *gwps,
|
|||
{
|
||||
int a = lif->num_options;
|
||||
int b;
|
||||
bool number_set = true;
|
||||
const char* out_text = get_token_value(gwps, lif->token, offset,
|
||||
buf, buf_size, &a);
|
||||
if (a == -1 && lif->token->type != SKIN_TOKEN_VOLUME)
|
||||
{
|
||||
a = (out_text && *out_text) ? 1 : 0;
|
||||
number_set = false;
|
||||
}
|
||||
switch (lif->operand.type)
|
||||
{
|
||||
case STRING:
|
||||
|
|
@ -745,6 +749,9 @@ static const char* NOINLINE get_lif_token_value(struct gui_wps *gwps,
|
|||
b = 0;
|
||||
break;
|
||||
case INTEGER:
|
||||
if (!number_set && out_text && *out_text >= '0' && *out_text <= '9')
|
||||
a = atoi(out_text);
|
||||
/* fall through */
|
||||
case DECIMAL:
|
||||
b = lif->operand.data.number;
|
||||
break;
|
||||
|
|
@ -1550,7 +1557,7 @@ const char *get_token_value(struct gui_wps *gwps,
|
|||
}
|
||||
}
|
||||
/* Special handlng for filenames because we dont want to show the prefix */
|
||||
if ((s->flags&F_T_MASK) == F_T_UCHARPTR ||
|
||||
if ((s->flags&F_T_MASK) == F_T_CHARPTR ||
|
||||
(s->flags&F_T_MASK) == F_T_UCHARPTR)
|
||||
{
|
||||
if (s->filename_setting->prefix)
|
||||
|
|
|
|||
|
|
@ -250,10 +250,6 @@ void gui_usb_screen_run(bool early_usb)
|
|||
touchscreen_set_mode(TOUCHSCREEN_BUTTON);
|
||||
#endif
|
||||
|
||||
#ifndef SIMULATOR
|
||||
usb_acknowledge(SYS_USB_CONNECTED_ACK);
|
||||
#endif
|
||||
|
||||
#ifdef USB_ENABLE_HID
|
||||
usb_hid = global_settings.usb_hid;
|
||||
usb_keypad_mode = global_settings.usb_keypad_mode;
|
||||
|
|
@ -285,6 +281,10 @@ void gui_usb_screen_run(bool early_usb)
|
|||
#endif
|
||||
}
|
||||
|
||||
#ifndef SIMULATOR
|
||||
usb_acknowledge(SYS_USB_CONNECTED_ACK);
|
||||
#endif
|
||||
|
||||
while (1)
|
||||
{
|
||||
usb_screens_draw(usb_screen_vps_ar);
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
# - ventsi84 at thecrayer.com
|
||||
# - Nicolay Jordanov
|
||||
# - Hristo Kovachev
|
||||
# - Vencislav Atanasov
|
||||
<phrase>
|
||||
id: LANG_SET_BOOL_YES
|
||||
desc: bool true representation
|
||||
|
|
@ -11968,15 +11969,15 @@
|
|||
user: core
|
||||
<source>
|
||||
*: none
|
||||
gigabeats,mpiohd200,mpiohd300: "3-D Enhancement"
|
||||
gigabeats,mpiohd200,mpiohd300,sansafuzeplus: "3-D Enhancement"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
gigabeats,mpiohd200,mpiohd300: "3-D усилване"
|
||||
gigabeats,mpiohd200,mpiohd300,sansafuzeplus: "3D ефект"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
gigabeats,mpiohd200,mpiohd300: "3-D усилване"
|
||||
gigabeats,mpiohd200,mpiohd300,sansafuzeplus: "3D ефект"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12718,3 +12719,93 @@
|
|||
*: "Отваряй файловия браузър тук"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_USB_SKIP_FIRST_DRIVE
|
||||
desc: in settings_menu
|
||||
user: core
|
||||
<source>
|
||||
*: none
|
||||
multidrive_usb: "USB Hide Internal Drive"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
multidrive_usb: "Скрий вграденото USB устройство"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
multidrive_usb: "Скрий вграденото USB устройство"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_LIST_LINE_PADDING
|
||||
desc: list padding, in display settings
|
||||
user: core
|
||||
<source>
|
||||
*: none
|
||||
touchscreen: "Line Padding in Lists"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
touchscreen: "Допълване на реда в списъци"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
touchscreen: "Допълване на реда в списъци"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_AUTOMATIC
|
||||
desc: generic automatic
|
||||
user: core
|
||||
<source>
|
||||
*: "Automatic"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Автоматично"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Автоматично"
|
||||
</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>
|
||||
*: "Отмени таймер"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Отмени таймер"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SLEEP_TIMER_DURATION
|
||||
desc: default sleep timer duration in minutes (unused in UI)
|
||||
user: core
|
||||
<source>
|
||||
*: "Default Sleep Timer Duration"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Време на таймера по подразбиране"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Време на таймера по подразбиране"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SLEEP_TIMER_ON_POWER_UP
|
||||
desc: whether sleep timer starts on power up
|
||||
user: core
|
||||
<source>
|
||||
*: "Start Sleep Timer On Boot"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Стартирай таймера при включване"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Стартирай таймера при включване"
|
||||
</voice>
|
||||
</phrase>
|
||||
|
|
|
|||
|
|
@ -4352,10 +4352,10 @@
|
|||
*: "Sleep Timer"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Časovač usnutí"
|
||||
*: "Časovač vypnutí"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Časovač usnutí"
|
||||
*: "Časovač vypnutí"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12382,15 +12382,15 @@
|
|||
user: core
|
||||
<source>
|
||||
*: none
|
||||
gigabeats,mpiohd200,mpiohd300: "3-D Enhancement"
|
||||
gigabeats,mpiohd200,mpiohd300,sansafuzeplus: "3-D Enhancement"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
gigabeats,mpiohd200,mpiohd300: "3-D vylepšení"
|
||||
gigabeats,mpiohd200,mpiohd300,sansafuzeplus: "3-D vylepšení"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
gigabeats,mpiohd200,mpiohd300: "TŘIDÉ vylepšení"
|
||||
gigabeats,mpiohd200,mpiohd300,sansafuzeplus: "TŘIDÉ vylepšení"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12730,3 +12730,93 @@
|
|||
*: "Uložit změny?"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_USB_SKIP_FIRST_DRIVE
|
||||
desc: in settings_menu
|
||||
user: core
|
||||
<source>
|
||||
*: none
|
||||
multidrive_usb: "USB Hide Internal Drive"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
multidrive_usb: "Skrýt interni disk přes USB"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
multidrive_usb: "Skrýt interni disk přes ÚESBÉ"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_LIST_LINE_PADDING
|
||||
desc: list padding, in display settings
|
||||
user: core
|
||||
<source>
|
||||
*: none
|
||||
touchscreen: "Line Padding in Lists"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
touchscreen: "Vyplnění řádky v seznamech"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
touchscreen: "Vyplnění řádky v seznamech"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_AUTOMATIC
|
||||
desc: generic automatic
|
||||
user: core
|
||||
<source>
|
||||
*: "Automatic"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Automaticky"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "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í"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SLEEP_TIMER_DURATION
|
||||
desc: default sleep timer duration in minutes (unused in UI)
|
||||
user: core
|
||||
<source>
|
||||
*: "Default Sleep Timer Duration"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Výchozí doba časovače vypnutí"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Výchozí doba časovače vypnutí"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SLEEP_TIMER_ON_POWER_UP
|
||||
desc: whether sleep timer starts on power up
|
||||
user: core
|
||||
<source>
|
||||
*: "Start Sleep Timer On Boot"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Aktivovat časovač vypnutí při startu přehrávače"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Aktivovat časovač vypnutí při startu přehrávače"
|
||||
</voice>
|
||||
</phrase>
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
# - Nicolas Pennequin
|
||||
# - Clément Pit-Claudel
|
||||
# - Michaël Burtin
|
||||
# - Olivier Kaloudoff
|
||||
#
|
||||
# Original comments below:
|
||||
#
|
||||
|
|
@ -445,7 +446,7 @@
|
|||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_PLAYLISTS
|
||||
desc: in the main menu and file view setting
|
||||
desc: in the file view setting
|
||||
user: core
|
||||
<source>
|
||||
*: "Playlists"
|
||||
|
|
@ -6487,7 +6488,7 @@
|
|||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_CATALOG
|
||||
desc: in onplay menu
|
||||
desc: in main menu and onplay menu
|
||||
user: core
|
||||
<source>
|
||||
*: "Playlist Catalogue"
|
||||
|
|
@ -12406,15 +12407,15 @@
|
|||
user: core
|
||||
<source>
|
||||
*: none
|
||||
gigabeats,mpiohd200,mpiohd300: "3-D Enhancement"
|
||||
gigabeats,mpiohd200,mpiohd300,sansafuzeplus: "3-D Enhancement"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
gigabeats,mpiohd200,mpiohd300: "Amélioration 3-D"
|
||||
gigabeats,mpiohd200,mpiohd300,sansafuzeplus: "Amélioration 3D"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
gigabeats,mpiohd200,mpiohd300: "Amélioration 3-D"
|
||||
gigabeats,mpiohd200,mpiohd300,sansafuzeplus: "Amélioration 3D"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12684,7 +12685,6 @@
|
|||
*: "Dans répertoire personnalisé seulement"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
<phrase>
|
||||
id: LANG_PAUSE_REWIND
|
||||
desc: Seconds to rewind when rewind on pause is enabled.
|
||||
|
|
@ -12699,3 +12699,149 @@
|
|||
*: "Rembobiner lors de la mise en pause"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_CURRENT_PLAYLIST
|
||||
desc: Used when you need to say playlist, also voiced
|
||||
user: core
|
||||
<source>
|
||||
*: "Current Playlist"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Liste de lecture courante"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Liste de lecture courante"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_USB_SKIP_FIRST_DRIVE
|
||||
desc: in settings_menu
|
||||
user: core
|
||||
<source>
|
||||
*: none
|
||||
multidrive_usb: "USB Hide Internal Drive"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
multidrive_usb: "Cacher le disque USB interne"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
multidrive_usb: "Cacher le disque USB interne"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SET_AS_PLAYLISTCAT_DIR
|
||||
desc: used in the onplay menu to set a playlist catalogue dir
|
||||
user: core
|
||||
<source>
|
||||
*: "Set As Playlist Catalogue Directory"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Sélectionner comme répertoire des catalogues de listes de lecture"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Sélectionner comme répertoire des catalogues de listes de lecture"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_LIST_LINE_PADDING
|
||||
desc: list padding, in display settings
|
||||
user: core
|
||||
<source>
|
||||
*: none
|
||||
touchscreen: "Line Padding in Lists"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
touchscreen: "Remplissage vertical des lignes des listes"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
touchscreen: "Remplissage vertical des lignes des listes"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SAVE_CHANGES
|
||||
desc: When you try to exit screens to confirm save
|
||||
user: core
|
||||
<source>
|
||||
*: "Save Changes?"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Enregistrer les changements ?"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Enregistrer les changements ?"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_AUTOMATIC
|
||||
desc: generic automatic
|
||||
user: core
|
||||
<source>
|
||||
*: "Automatic"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Automatique"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Automatique"
|
||||
</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>
|
||||
*: "Annuler la minuterie d'arrêt"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Annuler la minuterie d'arrêt"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SLEEP_TIMER_DURATION
|
||||
desc: default sleep timer duration in minutes (unused in UI)
|
||||
user: core
|
||||
<source>
|
||||
*: "Default Sleep Timer Duration"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Durée par défault de la minuterie d'arrêt"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Durée par défault de la minuterie d'arrêt"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_RESET_PLAYLISTCAT_DIR
|
||||
desc:
|
||||
user: core
|
||||
<source>
|
||||
*: "Reset Playlist Catalogue Directory"
|
||||
</source>
|
||||
<dest>
|
||||
*: "RAZ du répertoire des catalogues de listes de lecture"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "RAZ du répertoire des catalogues de listes de lecture"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SLEEP_TIMER_ON_POWER_UP
|
||||
desc: whether sleep timer starts on power up
|
||||
user: core
|
||||
<source>
|
||||
*: "Start Sleep Timer On Boot"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Lancer la minuterie d'arrêt au démarrage"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Lancer la minuterie d'arrêt au démarrage"
|
||||
</voice>
|
||||
</phrase>
|
||||
|
|
|
|||
|
|
@ -417,7 +417,7 @@
|
|||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_PLAYLISTS
|
||||
desc: in the main menu and file view setting
|
||||
desc: in the file view setting
|
||||
user: core
|
||||
<source>
|
||||
*: "Playlists"
|
||||
|
|
@ -1984,19 +1984,16 @@
|
|||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_HEADPHONE_UNPLUG_RW
|
||||
desc: in pause_phones_menu.
|
||||
desc: deprecated
|
||||
user: core
|
||||
<source>
|
||||
*: none
|
||||
headphone_detection: "Duration to Rewind"
|
||||
*: ""
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
headphone_detection: "Vrijeme za premotati"
|
||||
*: ""
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
headphone_detection: "Vrijeme za premotati"
|
||||
*: ""
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -6460,7 +6457,7 @@
|
|||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_CATALOG
|
||||
desc: in onplay menu
|
||||
desc: in main menu and onplay menu
|
||||
user: core
|
||||
<source>
|
||||
*: "Playlist Catalogue"
|
||||
|
|
@ -7905,8 +7902,6 @@
|
|||
*: "Vrijeme"
|
||||
</voice>
|
||||
</phrase>
|
||||
/* TODO: cleanup LANG_USB_CHARGING unless HAVE_USB_CHARGING_ENABLE defined,
|
||||
* the selector should probably be usb_charging_enable_enable as well. */
|
||||
<phrase>
|
||||
id: LANG_USB_CHARGING
|
||||
desc: in Battery menu
|
||||
|
|
@ -7982,10 +7977,10 @@
|
|||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
recording: "Disk je pun. Pritisnite "OFF" za nastavak."
|
||||
iriverh100,iriverh120,iriverh300: "Disk je pun. Pritisnite "STOP" za nastavak."
|
||||
iaudiom5,iaudiox5: "Disk je pun. Pritisnite "POWER" za nastavak."
|
||||
sansae200*,sansac200*,vibe500: "Disk je pun. Pritisnite "PREV" za nastavak."
|
||||
recording: "Disk je pun. Pritisnite OFF za nastavak."
|
||||
iriverh100,iriverh120,iriverh300: "Disk je pun. Pritisnite STOP za nastavak."
|
||||
iaudiom5,iaudiox5: "Disk je pun. Pritisnite POWER za nastavak."
|
||||
sansae200*,sansac200*,vibe500: "Disk je pun. Pritisnite PREV za nastavak."
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
|
|
@ -8019,7 +8014,7 @@
|
|||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
soft_shutdown: "Pritisnite "OFF" za gašenje"
|
||||
soft_shutdown: "Pritisnite OFF za gašenje"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
|
|
@ -10420,15 +10415,15 @@
|
|||
user: core
|
||||
<source>
|
||||
*: none
|
||||
ipodvideo: "Bass Cutoff"
|
||||
ipodvideo,ipod6g,mpiohd200,mpiohd300,gigabeatfx,mrobe100: "Bass Cutoff"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
ipodvideo: "Odsijecanje basa"
|
||||
ipodvideo,ipod6g,mpiohd200,mpiohd300,gigabeatfx,mrobe100: "Odsijecanje basa"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
ipodvideo: "Odsijecanje basa"
|
||||
ipodvideo,ipod6g,mpiohd200,mpiohd300,gigabeatfx,mrobe100: "Odsijecanje basa"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -10437,15 +10432,15 @@
|
|||
user: core
|
||||
<source>
|
||||
*: none
|
||||
ipodvideo: "Treble Cutoff"
|
||||
ipodvideo,ipod6g,mpiohd200,mpiohd300,gigabeatfx,mrobe100: "Treble Cutoff"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
ipodvideo: "Odsijecanje treblea"
|
||||
ipodvideo,ipod6g,mpiohd200,mpiohd300,gigabeatfx,mrobe100: "Odsijecanje treblea"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
ipodvideo: "Odsijecanje treblea"
|
||||
ipodvideo,ipod6g,mpiohd200,mpiohd300,gigabeatfx,mrobe100: "Odsijecanje treblea"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12381,15 +12376,15 @@
|
|||
user: core
|
||||
<source>
|
||||
*: none
|
||||
gigabeats,mpiohd200,mpiohd300: "3-D Enhancement"
|
||||
gigabeats,mpiohd200,mpiohd300,sansafuzeplus: "3-D Enhancement"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
gigabeats,mpiohd200,mpiohd300: "3-D poboljšanje"
|
||||
gigabeats,mpiohd200,mpiohd300,sansafuzeplus: "3-D poboljšanje"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
gigabeats,mpiohd200,mpiohd300: "3-D poboljšanje"
|
||||
gigabeats,mpiohd200,mpiohd300,sansafuzeplus: "3-D poboljšanje"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12617,3 +12612,132 @@
|
|||
*: ""
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_CURRENT_PLAYLIST
|
||||
desc: Used when you need to say playlist, also voiced
|
||||
user: core
|
||||
<source>
|
||||
*: "Current Playlist"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Trenutni popis izvođenja"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Trenutni popis izvođenja"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_AUTORESUME
|
||||
desc: resume settings menu
|
||||
user: core
|
||||
<source>
|
||||
*: "Automatic resume"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Automatsko nastavljanje"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Automatsko nastavljanje"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_AUTORESUME_AUTOMATIC
|
||||
desc: resume on automatic track change
|
||||
user: core
|
||||
<source>
|
||||
*: "Resume on automatic track change"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Nastavi na automatsku promjenu pjesme"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Nastavi na automatsku promjenu pjesme"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_USB_SKIP_FIRST_DRIVE
|
||||
desc: in settings_menu
|
||||
user: core
|
||||
<source>
|
||||
*: none
|
||||
multidrive_usb: "USB Hide Internal Drive"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
multidrive_usb: "USB skrivanje unutrašnjeg uređaja"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
multidrive_usb: "USB skrivanje unutrašnjeg uređaja"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SET_AS_PLAYLISTCAT_DIR
|
||||
desc: used in the onplay menu to set a playlist catalogue dir
|
||||
user: core
|
||||
<source>
|
||||
*: "Set As Playlist Catalogue Directory"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Postavi kao direktorij kataloga popisa izvođenja"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Postavi kao direktorij kataloga popisa izvođenja"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SAVE_CHANGES
|
||||
desc: When you try to exit screens to confirm save
|
||||
user: core
|
||||
<source>
|
||||
*: "Save Changes?"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Spremiti promjene?"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Spremiti promjene?"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_PAUSE_REWIND
|
||||
desc: Seconds to rewind when rewind on pause is enabled.
|
||||
user: core
|
||||
<source>
|
||||
*: "Rewind on Pause"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Premotaj natrag pri stanci"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Premotaj natrag pri stanci"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_RESET_PLAYLISTCAT_DIR
|
||||
desc:
|
||||
user: core
|
||||
<source>
|
||||
*: "Reset Playlist Catalogue Directory"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Vrati uobičajeni direktorij kataloga popisa izvođenja"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Vrati uobičajeni direktorij kataloga popisa izvođenja"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_AUTORESUME_CUSTOM
|
||||
desc: enable customization of resume on automatic track change
|
||||
user: core
|
||||
<source>
|
||||
*: "In custom directories only"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Samo u prilagođenim direktorijima"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Samo u prilagođenim direktorijima"
|
||||
</voice>
|
||||
</phrase>
|
||||
|
|
|
|||
|
|
@ -419,7 +419,10 @@
|
|||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_PLAYLISTS
|
||||
desc: in the main menu and file view setting
|
||||
### The 'desc' field differs from the english!
|
||||
### the previously used desc is commented below:
|
||||
### desc: in the main menu and file view setting
|
||||
desc: in the file view setting
|
||||
user: core
|
||||
<source>
|
||||
*: "Playlists"
|
||||
|
|
@ -6461,7 +6464,10 @@ desc: deprecated
|
|||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_CATALOG
|
||||
desc: in onplay menu
|
||||
### The 'desc' field differs from the english!
|
||||
### the previously used desc is commented below:
|
||||
### desc: in onplay menu
|
||||
desc: in main menu and onplay menu
|
||||
user: core
|
||||
<source>
|
||||
*: "Playlist Catalogue"
|
||||
|
|
@ -12381,8 +12387,12 @@ desc: deprecated
|
|||
desc: in sound_menu, amount of 3D enhancement effect
|
||||
user: core
|
||||
<source>
|
||||
### The <source> section differs from the english!
|
||||
### the previously used one is commented below:
|
||||
### *: none
|
||||
### gigabeats,mpiohd200,mpiohd300: "3-D Enhancement"
|
||||
*: none
|
||||
gigabeats,mpiohd200,mpiohd300: "3-D Enhancement"
|
||||
gigabeats,mpiohd200,mpiohd300,sansafuzeplus: "3-D Enhancement"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
|
|
@ -12730,3 +12740,97 @@ desc: deprecated
|
|||
*: "Salva Modifiche?"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_USB_SKIP_FIRST_DRIVE
|
||||
desc: in settings_menu
|
||||
user: core
|
||||
<source>
|
||||
*: none
|
||||
multidrive_usb: "USB Hide Internal Drive"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
multidrive_usb: "Nascondi Drive interno USB"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
multidrive_usb: "Nascondi Drive interno USB"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_LIST_LINE_PADDING
|
||||
desc: list padding, in display settings
|
||||
user: core
|
||||
<source>
|
||||
*: none
|
||||
touchscreen: "Line Padding in Lists"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
touchscreen: "Padding Linea in Elenchi"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
touchscreen: "Padding Linea in Elenchi"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_AUTOMATIC
|
||||
desc: generic automatic
|
||||
user: core
|
||||
<source>
|
||||
*: "Automatic"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Automatico"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Automatico"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SLEEP_TIMER_DURATION
|
||||
desc: default sleep timer duration in minutes (unused in UI)
|
||||
user: core
|
||||
<source>
|
||||
*: "Default Sleep Timer Duration"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Durata Default Tempo Spegnimento"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Durata Default Tempo Spegnimento"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SLEEP_TIMER_ON_POWER_UP
|
||||
desc: whether sleep timer starts on power up
|
||||
user: core
|
||||
<source>
|
||||
*: "Start Sleep Timer On Boot"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Avvio Tempo Spegnimento All'accensione"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Avvio Tempo Spegnimento All'accensione"
|
||||
</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>
|
||||
*: "Annulla Tempo Spegnimento"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Annulla Tempo Spegnimento"
|
||||
</voice>
|
||||
</phrase>
|
||||
### LANG_SHORTCUTS: The phrase is not used. Skipped
|
||||
### LANG_KEYCLICK_SOFTWARE: The phrase is not used. Skipped
|
||||
### LANG_KEYCLICK_HARDWARE: The phrase is not used. Skipped
|
||||
### LANG_GLYPHS: The phrase is not used. Skipped
|
||||
|
|
|
|||
|
|
@ -12366,15 +12366,15 @@
|
|||
user: core
|
||||
<source>
|
||||
*: none
|
||||
gigabeats,mpiohd200,mpiohd300: "3-D Enhancement"
|
||||
gigabeats,mpiohd200,mpiohd300,sansafuzeplus: "3-D Enhancement"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
gigabeats,mpiohd200,mpiohd300: "3-D Paplašinājums"
|
||||
gigabeats,mpiohd200,mpiohd300,sansafuzeplus: "3-D Paplašinājums"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
gigabeats,mpiohd200,mpiohd300: "triis dimensiju paplashinaajums"
|
||||
gigabeats,mpiohd200,mpiohd300,sansafuzeplus: "triis dimensiju paplashinaajums"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12748,3 +12748,80 @@
|
|||
histogram: "vizualizaacijas intervaals"
|
||||
</voice>
|
||||
</phrase>
|
||||
### LANG_GLYPHS: The phrase is not used. Skipped
|
||||
### LANG_KEYCLICK_HARDWARE: The phrase is not used. Skipped
|
||||
### LANG_KEYCLICK_SOFTWARE: The phrase is not used. Skipped
|
||||
<phrase>
|
||||
id: LANG_LIST_LINE_PADDING
|
||||
desc: list padding, in display settings
|
||||
user: core
|
||||
<source>
|
||||
*: none
|
||||
touchscreen: "Line Padding in Lists"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
touchscreen: "Līnijas Izplešana Sarakstos"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
touchscreen: "liinijas izpleshana sarakstos"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_AUTOMATIC
|
||||
desc: generic automatic
|
||||
user: core
|
||||
<source>
|
||||
*: "Automatic"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Automātiski"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "automaatiski"
|
||||
</voice>
|
||||
</phrase>
|
||||
### LANG_SHORTCUTS: The phrase is not used. Skipped
|
||||
<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>
|
||||
*: "Izslēgt Izslēgšanos"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "izsleegt izsleegshanos"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SLEEP_TIMER_DURATION
|
||||
desc: default sleep timer duration in minutes (unused in UI)
|
||||
user: core
|
||||
<source>
|
||||
*: "Default Sleep Timer Duration"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Noklusētais Izslēgšanās Laiks"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "nokluseetais izsleegshanaas laiks"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SLEEP_TIMER_ON_POWER_UP
|
||||
desc: whether sleep timer starts on power up
|
||||
user: core
|
||||
<source>
|
||||
*: "Start Sleep Timer On Boot"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Sākt Izslēgšanas Laiku Ieslēdzot"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "saakt izsleegshanas laika atskaiti iesleedzot"
|
||||
</voice>
|
||||
</phrase>
|
||||
|
|
|
|||
|
|
@ -12750,3 +12750,76 @@
|
|||
*: "Speellijst catalogus map terugzetten"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_LIST_LINE_PADDING
|
||||
desc: list padding, in display settings
|
||||
user: core
|
||||
<source>
|
||||
*: none
|
||||
touchscreen: "Line Padding in Lists"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
touchscreen: "Lijn spatiëring in lijsten"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
touchscreen: "Lijn spatiëring in lijsten"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_AUTOMATIC
|
||||
desc: generic automatic
|
||||
user: core
|
||||
<source>
|
||||
*: "Automatic"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Automatisch"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Automatisch"
|
||||
</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>
|
||||
*: "Annuleer slaap klok"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Annuleer slaap klok"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SLEEP_TIMER_DURATION
|
||||
desc: default sleep timer duration in minutes (unused in UI)
|
||||
user: core
|
||||
<source>
|
||||
*: "Default Sleep Timer Duration"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Standaard slaap klok duur"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Standaard slaap klok duur"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SLEEP_TIMER_ON_POWER_UP
|
||||
desc: whether sleep timer starts on power up
|
||||
user: core
|
||||
<source>
|
||||
*: "Start Sleep Timer On Boot"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Start slaap klok bij opstarten"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Start slaap klok bij opstarten"
|
||||
</voice>
|
||||
</phrase>
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@
|
|||
#
|
||||
# Brazilian Portuguese language file, translated by:
|
||||
# - Adilson V. Xavier
|
||||
# - Kessia Pinheiro
|
||||
|
||||
<phrase>
|
||||
id: LANG_SET_BOOL_YES
|
||||
desc: bool true representation
|
||||
|
|
@ -417,7 +419,7 @@
|
|||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_PLAYLISTS
|
||||
desc: in the main menu and file view setting
|
||||
desc: in the file view setting
|
||||
user: core
|
||||
<source>
|
||||
*: "Playlists"
|
||||
|
|
@ -1984,19 +1986,16 @@
|
|||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_HEADPHONE_UNPLUG_RW
|
||||
desc: in pause_phones_menu.
|
||||
desc: deprecated
|
||||
user: core
|
||||
<source>
|
||||
*: none
|
||||
headphone_detection: "Duration to Rewind"
|
||||
*: ""
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
headphone_detection: "Duração de Rebobinagem"
|
||||
*: ""
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
headphone_detection: "Duração de Rebobinagem"
|
||||
*: ""
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -2237,6 +2236,7 @@
|
|||
iaudiox5,iaudiom5,gigabeat*,mrobe100: "Building database... %d found (LEFT to return)"
|
||||
iriverh10,iriverh10_5gb,sansae200*,sansac200*,sansafuze*,vibe500: "Building database... %d found (PREV to return)"
|
||||
gogearsa9200: "Building database... %d found (REW to return)"
|
||||
archosplayer: "Building DB %d found"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Construindo Base de Dados... %d encontrados (OFF para retornar)"
|
||||
|
|
@ -2245,6 +2245,7 @@
|
|||
iaudiox5,iaudiom5,gigabeat*,mrobe100: "Construindo Base de Dados... %d encontrados (LEFT para retornar)"
|
||||
iriverh10,iriverh10_5gb,sansae200*,sansac200*,sansafuze*,vibe500: "Construindo Base de Dados... %d encontrados (PREV para retornar)"
|
||||
gogearsa9200: "Construindo Base de Dados... %d encontrados (REW para retornar)"
|
||||
archosplayer: "Construindo BD %d encontrado"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "entradas encontradas para a base de dados"
|
||||
|
|
@ -3976,7 +3977,7 @@
|
|||
rtc: "OFF = Revert"
|
||||
mrobe500: "POWER = Revert"
|
||||
iriverh100,iriverh120,iriverh300: "STOP = Revert"
|
||||
ipod*,sansac200*: "MENU = Revert"
|
||||
ipod*,sansac200*,mpiohd300: "MENU = Revert"
|
||||
iaudiox5,iaudiom5: "RECORD = Revert"
|
||||
iriverh10,iriverh10_5gb,sansae200*,sansafuze*: "PREV = Revert"
|
||||
gigabeatfx: "POWER = Revert"
|
||||
|
|
@ -3990,7 +3991,7 @@
|
|||
rtc: "OFF = Reverter"
|
||||
mrobe500: "POWER = Reverter"
|
||||
iriverh100,iriverh120,iriverh300: "STOP = Reverter"
|
||||
ipod*,sansac200*: "MENU = Reverter"
|
||||
ipod*,sansac200*,mpiohd300: "MENU = Reverter"
|
||||
iaudiox5,iaudiom5: "RECORD = Reverter"
|
||||
iriverh10,iriverh10_5gb,sansae200*,sansafuze*: "PREV = Reverter"
|
||||
gigabeatfx: "POWER = Reverter"
|
||||
|
|
@ -4001,7 +4002,6 @@
|
|||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
rtc,iriverh100,iriverh120,iriverh300,ipod*,sansae200*,sansac200*,iaudiox5,iaudiom5,iriverh10,iriverh10_5gb,gigabeat*,mrobe100,gogearsa9200: ""
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -6460,7 +6460,7 @@
|
|||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_CATALOG
|
||||
desc: in onplay menu
|
||||
desc: in main menu and onplay menu
|
||||
user: core
|
||||
<source>
|
||||
*: "Playlist Catalogue"
|
||||
|
|
@ -12379,15 +12379,15 @@
|
|||
user: core
|
||||
<source>
|
||||
*: none
|
||||
gigabeats,mpiohd200,mpiohd300: "3-D Enhancement"
|
||||
gigabeats,mpiohd200,mpiohd300,sansafuzeplus: "3-D Enhancement"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
gigabeats,mpiohd200,mpiohd300: "Realce 3D"
|
||||
gigabeats,mpiohd200,mpiohd300,sansafuzeplus: "Efeito 3D"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
gigabeats,mpiohd200,mpiohd300: "Realce 3-D"
|
||||
gigabeats,mpiohd200,mpiohd300,sansafuzeplus: "Efeito 3D"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12542,3 +12542,278 @@
|
|||
*: "Tamanho do Arquivo"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_CURRENT_PLAYLIST
|
||||
desc: Used when you need to say playlist, also voiced
|
||||
user: core
|
||||
<source>
|
||||
*: "Current Playlist"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Playlist Atual"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Playlist Atual"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_AUTORESUME
|
||||
desc: resume settings menu
|
||||
user: core
|
||||
<source>
|
||||
*: "Automatic resume"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Resumo Automático"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Resumo Automático"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_AUTORESUME_AUTOMATIC
|
||||
desc: resume on automatic track change
|
||||
user: core
|
||||
<source>
|
||||
*: "Resume on automatic track change"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Resumir na mudança automática de faixa"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Resumir na mudança automática de faixa"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_USB_SKIP_FIRST_DRIVE
|
||||
desc: in settings_menu
|
||||
user: core
|
||||
<source>
|
||||
*: none
|
||||
multidrive_usb: "USB Hide Internal Drive"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
multidrive_usb: "Ocultar Drive USB Interno"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
multidrive_usb: "Ocultar Drive USB Interno"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SET_AS_PLAYLISTCAT_DIR
|
||||
desc: used in the onplay menu to set a playlist catalogue dir
|
||||
user: core
|
||||
<source>
|
||||
*: "Set As Playlist Catalogue Directory"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Definir como Diretório do Catálogo de Playlist"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Definir como Diretório do Catálogo de Playlist"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_LIST_LINE_PADDING
|
||||
desc: list padding, in display settings
|
||||
user: core
|
||||
<source>
|
||||
*: none
|
||||
touchscreen: "Line Padding in Lists"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
touchscreen: "Preenchimento de Linha das Listas"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
touchscreen: "Preenchimento de Linha das Listas"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SAVE_CHANGES
|
||||
desc: When you try to exit screens to confirm save
|
||||
user: core
|
||||
<source>
|
||||
*: "Save Changes?"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Salvar Mudanças?"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Salvar Mudanças?"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_PAUSE_REWIND
|
||||
desc: Seconds to rewind when rewind on pause is enabled.
|
||||
user: core
|
||||
<source>
|
||||
*: "Rewind on Pause"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Voltar depois de Pausar"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Voltar depois de Pausar"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_AUTOMATIC
|
||||
desc: generic automatic
|
||||
user: core
|
||||
<source>
|
||||
*: "Automatic"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Automático"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Automático"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_AUTORESUME_ENABLE_YES
|
||||
desc: deprecated
|
||||
user: core
|
||||
<source>
|
||||
*: ""
|
||||
</source>
|
||||
<dest>
|
||||
*: ""
|
||||
</dest>
|
||||
<voice>
|
||||
*: ""
|
||||
</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>
|
||||
*: "Cancelar Desligamento Automático"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Cancelar Desligamento Automático"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_RESET_START_DIR
|
||||
desc: reset the browser start directory
|
||||
user: core
|
||||
<source>
|
||||
*: "Start File Browser at /"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Começar o Navegador de Arquivos na Raiz /"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Começar o Navegador de Arquivos na Raiz /"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_FM_RSSI
|
||||
desc: Signal strength of a received FM station
|
||||
user: core
|
||||
<source>
|
||||
*: none
|
||||
radio: "Signal strength:"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
radio: "Força do Sinal:"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
radio: "Força do Sinal:"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SLEEP_TIMER_DURATION
|
||||
desc: default sleep timer duration in minutes (unused in UI)
|
||||
user: core
|
||||
<source>
|
||||
*: "Default Sleep Timer Duration"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Tempo para o Desligamento Automático"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Tempo para o Desligamento Automático"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_AUTORESUME_ENABLE
|
||||
desc: deprecated
|
||||
user: core
|
||||
<source>
|
||||
*: ""
|
||||
</source>
|
||||
<dest>
|
||||
*: ""
|
||||
</dest>
|
||||
<voice>
|
||||
*: ""
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_RESET_PLAYLISTCAT_DIR
|
||||
desc:
|
||||
user: core
|
||||
<source>
|
||||
*: "Reset Playlist Catalogue Directory"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Reiniciar o Diretório do Catálogo de Playlist"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Reiniciar o Diretório do Catálogo de Playlist"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SLEEP_TIMER_ON_POWER_UP
|
||||
desc: whether sleep timer starts on power up
|
||||
user: core
|
||||
<source>
|
||||
*: "Start Sleep Timer On Boot"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Iniciar o Desligamento Automático na Inicialização"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Iniciar o Desligamento Automático na Inicialização"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_AUTORESUME_CUSTOM
|
||||
desc: enable customization of resume on automatic track change
|
||||
user: core
|
||||
<source>
|
||||
*: "In custom directories only"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Apenas em diretórios customizados"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Apenas em diretórios customizados"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SET_AS_START_DIR
|
||||
desc: used in the onplay menu to set a starting browser dir
|
||||
user: core
|
||||
<source>
|
||||
*: "Start File Browser Here"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Iniciar Navegador de Arquivos Aqui"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Iniciar Navegador de Arquivos Aqui"
|
||||
</voice>
|
||||
</phrase>
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@
|
|||
# - Alexander Levin
|
||||
# - Anton Veretenenko
|
||||
# - Simon Zhukovsky
|
||||
# - Desu Rozen
|
||||
<phrase>
|
||||
id: LANG_SET_BOOL_YES
|
||||
desc: bool true representation
|
||||
|
|
@ -7468,6 +7469,7 @@
|
|||
iaudiox5,iaudiom5,gigabeat*,mrobe100: "Building database... %d found (LEFT to return)"
|
||||
iriverh10,iriverh10_5gb,sansae200*,sansac200*,sansafuze*,vibe500: "Building database... %d found (PREV to return)"
|
||||
gogearsa9200: "Building database... %d found (REW to return)"
|
||||
archosplayer: "Building DB %d found"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Построение базы... %d найдено (ВЫКЛ. для отмены)"
|
||||
|
|
@ -7476,6 +7478,7 @@
|
|||
iaudiox5,iaudiom5,gigabeat*,mrobe100: "Построение базы... %d найдено (ВЛЕВО для отмены)"
|
||||
iriverh10,iriverh10_5gb,sansae200*,sansac200*,sansafuze*,vibe500: "Построение базы... %d найдено (ПРЕД. для отмены)"
|
||||
gogearsa9200: "Построение базы... %d найдено (РЕВЕРС. для отмены)"
|
||||
archosplayer: "Построение БД... %d найдено"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "найдено записей в базе"
|
||||
|
|
@ -9015,7 +9018,7 @@
|
|||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_CATALOG
|
||||
desc: in onplay menu
|
||||
desc: in main menu and onplay menu
|
||||
user: core
|
||||
<source>
|
||||
*: "Playlist Catalogue"
|
||||
|
|
@ -9291,19 +9294,16 @@
|
|||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_HEADPHONE_UNPLUG_RW
|
||||
desc: in pause_phones_menu.
|
||||
desc: deprecated
|
||||
user: core
|
||||
<source>
|
||||
*: none
|
||||
headphone_detection: "Duration to Rewind"
|
||||
*: ""
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
headphone_detection: "Продолжительность перемотки"
|
||||
*: ""
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
headphone_detection: "Продолжительность перемотки"
|
||||
*: ""
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -10173,7 +10173,7 @@
|
|||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_PLAYLISTS
|
||||
desc: in the main menu and file view setting
|
||||
desc: in the file view setting
|
||||
user: core
|
||||
<source>
|
||||
*: "Playlists"
|
||||
|
|
@ -12025,15 +12025,15 @@
|
|||
user: core
|
||||
<source>
|
||||
*: none
|
||||
gigabeats,mpiohd200,mpiohd300: "3-D Enhancement"
|
||||
gigabeats,mpiohd200,mpiohd300,sansafuzeplus: "3-D Enhancement"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
gigabeats,mpiohd200,mpiohd300: "3-D расширения"
|
||||
gigabeats,mpiohd200,mpiohd300,sansafuzeplus: "3-D улучшайзер"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
gigabeats,mpiohd200,mpiohd300: "3-D расширения"
|
||||
gigabeats,mpiohd200,mpiohd300,sansafuzeplus: "3-D улучшайзер"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12665,3 +12665,163 @@
|
|||
*: "Только в заданных папках"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_CURRENT_PLAYLIST
|
||||
desc: Used when you need to say playlist, also voiced
|
||||
user: core
|
||||
<source>
|
||||
*: "Current Playlist"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Текущий список"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Текущий список"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_USB_SKIP_FIRST_DRIVE
|
||||
desc: in settings_menu
|
||||
user: core
|
||||
<source>
|
||||
*: none
|
||||
multidrive_usb: "USB Hide Internal Drive"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
multidrive_usb: "USB Скрыть внутренний диск"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
multidrive_usb: "USB Скрыть внутренний диск"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SET_AS_PLAYLISTCAT_DIR
|
||||
desc: used in the onplay menu to set a playlist catalogue dir
|
||||
user: core
|
||||
<source>
|
||||
*: "Set As Playlist Catalogue Directory"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Установить как папку каталога списков"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Установить как папку каталога списков"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_LIST_LINE_PADDING
|
||||
desc: list padding, in display settings
|
||||
user: core
|
||||
<source>
|
||||
*: none
|
||||
touchscreen: "Line Padding in Lists"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
touchscreen: "Отступ в списках"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
touchscreen: "Отступ в списках"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SAVE_CHANGES
|
||||
desc: When you try to exit screens to confirm save
|
||||
user: core
|
||||
<source>
|
||||
*: "Save Changes?"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Сохранить изменения?"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Сохранить изменения?"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_PAUSE_REWIND
|
||||
desc: Seconds to rewind when rewind on pause is enabled.
|
||||
user: core
|
||||
<source>
|
||||
*: "Rewind on Pause"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Перемотка назад на Паузе"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Перемотка назад на Паузе"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_AUTOMATIC
|
||||
desc: generic automatic
|
||||
user: core
|
||||
<source>
|
||||
*: "Automatic"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Автоматич."
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Автоматич."
|
||||
</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>
|
||||
*: "Отменить таймер сна"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Отменить таймер сна"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SLEEP_TIMER_DURATION
|
||||
desc: default sleep timer duration in minutes (unused in UI)
|
||||
user: core
|
||||
<source>
|
||||
*: "Default Sleep Timer Duration"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Продолжительность таймера сна по-умолчанию"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Продолжительность таймера сна по-умолчанию"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_RESET_PLAYLISTCAT_DIR
|
||||
desc:
|
||||
user: core
|
||||
<source>
|
||||
*: "Reset Playlist Catalogue Directory"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Сбросить папку каталога списков"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Сбросить папку каталога списков"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SLEEP_TIMER_ON_POWER_UP
|
||||
desc: whether sleep timer starts on power up
|
||||
user: core
|
||||
<source>
|
||||
*: "Start Sleep Timer On Boot"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Запускать таймер сна при загрузке"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Запускать таймер сна при загрузке"
|
||||
</voice>
|
||||
</phrase>
|
||||
|
|
|
|||
|
|
@ -12341,15 +12341,15 @@
|
|||
user: core
|
||||
<source>
|
||||
*: none
|
||||
gigabeats,mpiohd200,mpiohd300: "3-D Enhancement"
|
||||
gigabeats,mpiohd200,mpiohd300,sansafuzeplus: "3-D Enhancement"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
gigabeats,mpiohd200,mpiohd300: "3-D Vylepšenie"
|
||||
gigabeats,mpiohd200,mpiohd300,sansafuzeplus: "3-D Rozšírenie"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
gigabeats,mpiohd200,mpiohd300: "3-D Vylepšenie"
|
||||
gigabeats,mpiohd200,mpiohd300,sansafuzeplus: "3D rozšírenie"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
@ -12672,10 +12672,10 @@
|
|||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SET_AS_PLAYLISTCAT_DIR
|
||||
desc: used in the onplay menu to set a playlist catalog dir
|
||||
desc: used in the onplay menu to set a playlist catalogue dir
|
||||
user: core
|
||||
<source>
|
||||
*: "Set As Playlist Catalog Directory"
|
||||
*: "Set As Playlist Catalogue Directory"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Nastaviť Ako Priečinok Katalógu Plejlistov"
|
||||
|
|
@ -12717,7 +12717,7 @@
|
|||
desc:
|
||||
user: core
|
||||
<source>
|
||||
*: "Reset Playlist Catalog Directory"
|
||||
*: "Reset Playlist Catalogue Directory"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Resetovať Priečinok Katalógu Plejlistov"
|
||||
|
|
@ -12726,3 +12726,93 @@
|
|||
*: "Resetovať Priečinok Katalógu Plejlistov"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_USB_SKIP_FIRST_DRIVE
|
||||
desc: in settings_menu
|
||||
user: core
|
||||
<source>
|
||||
*: none
|
||||
multidrive_usb: "USB Hide Internal Drive"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
multidrive_usb: "USB Skryť Interný Disk"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
multidrive_usb: "USB Skryť Interný Disk"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_LIST_LINE_PADDING
|
||||
desc: list padding, in display settings
|
||||
user: core
|
||||
<source>
|
||||
*: none
|
||||
touchscreen: "Line Padding in Lists"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
touchscreen: "Zarovnanie Riadka v Zoznamoch"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
touchscreen: "Zarovnanie Riadka v Zoznamoch"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_AUTOMATIC
|
||||
desc: generic automatic
|
||||
user: core
|
||||
<source>
|
||||
*: "Automatic"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Automaticky"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Automaticky"
|
||||
</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šiť Časovač Spánku"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Zrušiť Časovač Spánku"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SLEEP_TIMER_DURATION
|
||||
desc: default sleep timer duration in minutes (unused in UI)
|
||||
user: core
|
||||
<source>
|
||||
*: "Default Sleep Timer Duration"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Predvolené Trvanie Pre Časovač Spánku"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Predvolené Trvanie Pre Časovač Spánku"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SLEEP_TIMER_ON_POWER_UP
|
||||
desc: whether sleep timer starts on power up
|
||||
user: core
|
||||
<source>
|
||||
*: "Start Sleep Timer On Boot"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Aktivovať Časovač Spánku Po Zapnutí"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Aktivovať Časovač Spánku Po Zapnutí"
|
||||
</voice>
|
||||
</phrase>
|
||||
|
|
|
|||
|
|
@ -182,7 +182,7 @@ static const char* info_getname(int selected_item, void *data,
|
|||
|
||||
case INFO_BUFFER: /* buffer */
|
||||
{
|
||||
long kib = audio_buffer_available() / 1024; /* to KiB */
|
||||
long kib = audio_buffer_size() / 1024; /* to KiB */
|
||||
output_dyn_value(s1, sizeof(s1), kib, kbyte_units, true);
|
||||
snprintf(buffer, buffer_len, "%s %s", str(LANG_BUFFER_STAT), s1);
|
||||
}
|
||||
|
|
@ -272,7 +272,7 @@ static int info_speak_item(int selected_item, void * data)
|
|||
case INFO_BUFFER: /* buffer */
|
||||
{
|
||||
talk_id(LANG_BUFFER_STAT, false);
|
||||
long kib = audio_buffer_available() / 1024; /* to KiB */
|
||||
long kib = audio_buffer_size() / 1024; /* to KiB */
|
||||
output_dyn_value(NULL, 0, kib, kbyte_units, true);
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -142,13 +142,14 @@ bool read_ape_tags(int fd, struct mp3entry* id3)
|
|||
return false;
|
||||
}
|
||||
|
||||
/* Gather the album art format from the pseudo file name. */
|
||||
/* Gather the album art format from the pseudo file name's ending. */
|
||||
strcpy(name, name + strlen(name) - 4);
|
||||
id3->albumart.type = AA_TYPE_UNKNOWN;
|
||||
if (strcasecmp(name, "cover art (front).jpg") == 0)
|
||||
if (strcasecmp(name, ".jpg") == 0)
|
||||
{
|
||||
id3->albumart.type = AA_TYPE_JPG;
|
||||
}
|
||||
else if (strcasecmp(name, "cover art (front).png") == 0)
|
||||
else if (strcasecmp(name, ".png") == 0)
|
||||
{
|
||||
id3->albumart.type = AA_TYPE_PNG;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -382,8 +382,8 @@ static int mem_maxlen;
|
|||
|
||||
static int mem_getbyte(int dummy, unsigned char *c)
|
||||
{
|
||||
dummy = dummy;
|
||||
|
||||
(void)dummy;
|
||||
|
||||
*c = mem_buf[mem_pos++];
|
||||
if(mem_pos >= mem_buflen)
|
||||
mem_pos = 0;
|
||||
|
|
|
|||
29
apps/mpeg.c
29
apps/mpeg.c
|
|
@ -151,7 +151,7 @@ static bool paused; /* playback is paused */
|
|||
static int audiobuf_handle; /* handle to the audio buffer */
|
||||
static char* mpeg_audiobuf; /* poiunter to the audio buffer */
|
||||
static long audiobuflen; /* length of the audio buffer */
|
||||
|
||||
#define AUDIO_BUFFER_RESERVE (256*1024)
|
||||
#ifdef SIMULATOR
|
||||
static char mpeg_stack[DEFAULT_STACK_SIZE];
|
||||
static struct mp3entry taginfo;
|
||||
|
|
@ -515,9 +515,16 @@ static void audio_reset_buffer_noalloc(void* buf, size_t bufsize);
|
|||
/* Buffer must not move. */
|
||||
static int shrink_callback(int handle, unsigned hints, void* start, size_t old_size)
|
||||
{
|
||||
long offset = audio_current_track()->offset;
|
||||
bool playing = (audio_status() & AUDIO_STATUS_PLAY) == AUDIO_STATUS_PLAY;
|
||||
ssize_t extradata_size = old_size - audiobuflen;
|
||||
/* check what buflib requests */
|
||||
size_t wanted_size = (hints & BUFLIB_SHRINK_SIZE_MASK);
|
||||
ssize_t size = (ssize_t)old_size - wanted_size;
|
||||
/* keep at least 256K for the buffering */
|
||||
if ((size - extradata_size) < AUDIO_BUFFER_RESERVE)
|
||||
return BUFLIB_CB_CANNOT_SHRINK;
|
||||
/* TODO: Do it without stopping playback, if possible */
|
||||
bool playing = (audio_status() & AUDIO_STATUS_PLAY) == AUDIO_STATUS_PLAY;
|
||||
long offset = audio_current_track()->offset;
|
||||
/* don't call audio_hard_stop() as it frees this handle */
|
||||
if (thread_self() == audio_thread_id)
|
||||
{ /* inline case MPEG_STOP (audio_stop()) response
|
||||
|
|
@ -528,9 +535,6 @@ static int shrink_callback(int handle, unsigned hints, void* start, size_t old_s
|
|||
audio_stop();
|
||||
talk_buffer_steal(); /* we obtain control over the buffer */
|
||||
|
||||
/* we should be free to change the buffer now */
|
||||
size_t wanted_size = (hints & BUFLIB_SHRINK_SIZE_MASK);
|
||||
ssize_t size = (ssize_t)old_size - wanted_size;
|
||||
switch (hints & BUFLIB_SHRINK_POS_MASK)
|
||||
{
|
||||
case BUFLIB_SHRINK_POS_BACK:
|
||||
|
|
@ -2742,11 +2746,20 @@ void audio_set_recording_options(struct audio_recording_options *options)
|
|||
#endif /* SIMULATOR */
|
||||
#endif /* CONFIG_CODEC == MAS3587F */
|
||||
|
||||
size_t audio_buffer_available(void)
|
||||
size_t audio_buffer_size(void)
|
||||
{
|
||||
if (audiobuf_handle > 0)
|
||||
return audiobuflen;
|
||||
return core_available();
|
||||
return 0;
|
||||
}
|
||||
|
||||
size_t audio_buffer_available(void)
|
||||
{
|
||||
size_t size = 0;
|
||||
size_t core_size = core_available();
|
||||
if (audiobuf_handle > 0)
|
||||
return audiobuflen - AUDIO_BUFFER_RESERVE - 128;
|
||||
return MAX(core_size, size);
|
||||
}
|
||||
|
||||
static void audio_reset_buffer_noalloc(void* buf, size_t bufsize)
|
||||
|
|
|
|||
|
|
@ -733,13 +733,24 @@ static void scratch_mem_init(void *mem)
|
|||
}
|
||||
|
||||
static int audiobuf_handle;
|
||||
#define AUDIO_BUFFER_RESERVE (256*1024)
|
||||
static size_t filebuflen;
|
||||
|
||||
|
||||
size_t audio_buffer_size(void)
|
||||
{
|
||||
if (audiobuf_handle > 0)
|
||||
return filebuflen - AUDIO_BUFFER_RESERVE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
size_t audio_buffer_available(void)
|
||||
{
|
||||
if (audiobuf_handle > 0) /* if allocated return what we got */
|
||||
return filebuflen;
|
||||
return core_available();
|
||||
size_t size = 0;
|
||||
size_t core_size = core_available();
|
||||
if (audiobuf_handle > 0) /* if allocated return what we can give */
|
||||
size = filebuflen - AUDIO_BUFFER_RESERVE - 128;
|
||||
return MAX(core_size, size);
|
||||
}
|
||||
|
||||
/* Set up the audio buffer for playback
|
||||
|
|
@ -840,7 +851,7 @@ static int shrink_callback(int handle, unsigned hints, void* start, size_t old_s
|
|||
size_t wanted_size = (hints & BUFLIB_SHRINK_SIZE_MASK);
|
||||
ssize_t size = (ssize_t)old_size - wanted_size;
|
||||
/* keep at least 256K for the buffering */
|
||||
if ((size - extradata_size) < 256*1024)
|
||||
if ((size - extradata_size) < AUDIO_BUFFER_RESERVE)
|
||||
return BUFLIB_CB_CANNOT_SHRINK;
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -760,7 +760,7 @@ static void led_resistance_calc(void)
|
|||
|
||||
rb->lcd_update();
|
||||
|
||||
button_press = rb->button_get(true);
|
||||
while ((button_press = rb->button_get(true)) & BUTTON_REL);
|
||||
switch(button_press) {
|
||||
case PLA_SELECT:
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -277,12 +277,12 @@ void tv_set_layout(bool show_scrollbar)
|
|||
vertical_scrollbar.w = scrollbar_width;
|
||||
vertical_scrollbar.h = footer.y - vertical_scrollbar.y - scrollbar_height;
|
||||
|
||||
vp_info.font = preferences->font_id;
|
||||
vp_text = vp_info;
|
||||
vp_text.x += horizontal_scrollbar.x;
|
||||
vp_text.y += vertical_scrollbar.y;
|
||||
vp_text.width = horizontal_scrollbar.w;
|
||||
vp_text.height = vertical_scrollbar.h;
|
||||
vp_text.font = preferences->font_id;
|
||||
#else
|
||||
(void) show_scrollbar;
|
||||
|
||||
|
|
|
|||
|
|
@ -761,6 +761,8 @@ void radio_screen(void)
|
|||
#endif
|
||||
FOR_NB_SCREENS(i)
|
||||
skin_update(FM_SCREEN, i, update_type);
|
||||
if (update_type == (int)SKIN_REFRESH_ALL)
|
||||
skin_request_full_update(CUSTOM_STATUSBAR);
|
||||
}
|
||||
}
|
||||
update_type = 0;
|
||||
|
|
|
|||
|
|
@ -775,7 +775,7 @@ const struct settings_list settings[] = {
|
|||
NULL, NULL, NULL),
|
||||
#ifdef HAVE_TOUCHSCREEN
|
||||
TABLE_SETTING(F_ALLOW_ARBITRARY_VALS, list_line_padding, LANG_LIST_LINE_PADDING,
|
||||
-1, "list padding", "off,auto", UNIT_PIXEL, list_pad_formatter,
|
||||
-1, "list padding", "auto,off", UNIT_PIXEL, list_pad_formatter,
|
||||
list_pad_getlang, NULL, 16,
|
||||
-1,0,2,4,6,8,10,12,16,20,24,28,32,38,44,50),
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -605,6 +605,9 @@ Michael Goerner
|
|||
Richard Brittain
|
||||
Andrew Ryabinin
|
||||
Maksim Postolati
|
||||
Desu Rozen
|
||||
Olivier Kaloudoff
|
||||
Kessia Pinheiro
|
||||
|
||||
The libmad team
|
||||
The wavpack team
|
||||
|
|
|
|||
|
|
@ -89,6 +89,7 @@
|
|||
#define BDEBUGF(...) do { } while(0)
|
||||
#endif
|
||||
|
||||
#define IS_MOVABLE(a) (!a[2].ops || a[2].ops->move_callback)
|
||||
static union buflib_data* find_first_free(struct buflib_context *ctx);
|
||||
static union buflib_data* find_block_before(struct buflib_context *ctx,
|
||||
union buflib_data* block,
|
||||
|
|
@ -198,7 +199,7 @@ move_block(struct buflib_context* ctx, union buflib_data* block, int shift)
|
|||
char* new_start;
|
||||
union buflib_data *new_block, *tmp = block[1].handle;
|
||||
struct buflib_callbacks *ops = block[2].ops;
|
||||
if (ops && !ops->move_callback)
|
||||
if (!IS_MOVABLE(block))
|
||||
return false;
|
||||
|
||||
int handle = ctx->handle_table - tmp;
|
||||
|
|
@ -312,8 +313,10 @@ buflib_compact_and_shrink(struct buflib_context *ctx, unsigned shrink_hints)
|
|||
result = buflib_compact(ctx);
|
||||
if (!result)
|
||||
{
|
||||
union buflib_data* this;
|
||||
for(this = ctx->buf_start; this < ctx->alloc_end; this += abs(this->val))
|
||||
union buflib_data *this, *before;
|
||||
for(this = ctx->buf_start, before = this;
|
||||
this < ctx->alloc_end;
|
||||
before = this, this += abs(this->val))
|
||||
{
|
||||
if (this->val > 0 && this[2].ops
|
||||
&& this[2].ops->shrink_callback)
|
||||
|
|
@ -322,6 +325,20 @@ buflib_compact_and_shrink(struct buflib_context *ctx, unsigned shrink_hints)
|
|||
int handle = ctx->handle_table - this[1].handle;
|
||||
char* data = this[1].handle->alloc;
|
||||
bool last = (this+this->val) == ctx->alloc_end;
|
||||
unsigned pos_hints = shrink_hints & BUFLIB_SHRINK_POS_MASK;
|
||||
/* adjust what we ask for if there's free space in the front
|
||||
* this isn't too unlikely assuming this block is
|
||||
* shrinkable but not movable */
|
||||
if (pos_hints == BUFLIB_SHRINK_POS_FRONT
|
||||
&& before != this && before->val < 0)
|
||||
{
|
||||
size_t free_space = (-before->val) * sizeof(union buflib_data);
|
||||
size_t wanted = shrink_hints & BUFLIB_SHRINK_SIZE_MASK;
|
||||
if (wanted < free_space) /* no shrink needed? */
|
||||
continue;
|
||||
wanted -= free_space;
|
||||
shrink_hints = pos_hints | wanted;
|
||||
}
|
||||
ret = this[2].ops->shrink_callback(handle, shrink_hints,
|
||||
data, (char*)(this+this->val)-data);
|
||||
result |= (ret == BUFLIB_CB_OK);
|
||||
|
|
@ -598,9 +615,8 @@ buflib_free(struct buflib_context *ctx, int handle_num)
|
|||
return 0; /* unconditionally */
|
||||
}
|
||||
|
||||
/* Return the maximum allocatable memory in bytes */
|
||||
size_t
|
||||
buflib_available(struct buflib_context* ctx)
|
||||
static size_t
|
||||
free_space_at_end(struct buflib_context* ctx)
|
||||
{
|
||||
/* subtract 5 elements for
|
||||
* val, handle, name_len, ops and the handle table entry*/
|
||||
|
|
@ -615,6 +631,46 @@ buflib_available(struct buflib_context* ctx)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* Return the maximum allocatable memory in bytes */
|
||||
size_t
|
||||
buflib_available(struct buflib_context* ctx)
|
||||
{
|
||||
union buflib_data *this;
|
||||
size_t free_space = 0, max_free_space = 0;
|
||||
|
||||
/* make sure buffer is as contiguous as possible */
|
||||
if (!ctx->compact)
|
||||
buflib_compact(ctx);
|
||||
|
||||
/* now look if there's free in holes */
|
||||
for(this = find_first_free(ctx); this < ctx->alloc_end; this += abs(this->val))
|
||||
{
|
||||
if (this->val < 0)
|
||||
{
|
||||
free_space += -this->val;
|
||||
continue;
|
||||
}
|
||||
/* an unmovable section resets the count as free space
|
||||
* can't be contigous */
|
||||
if (!IS_MOVABLE(this))
|
||||
{
|
||||
if (max_free_space < free_space)
|
||||
max_free_space = free_space;
|
||||
free_space = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* select the best */
|
||||
max_free_space = MAX(max_free_space, free_space);
|
||||
max_free_space *= sizeof(union buflib_data);
|
||||
max_free_space = MAX(max_free_space, free_space_at_end(ctx));
|
||||
|
||||
if (max_free_space > 0)
|
||||
return max_free_space;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Allocate all available (as returned by buflib_available()) memory and return
|
||||
* a handle to it
|
||||
|
|
|
|||
|
|
@ -150,26 +150,28 @@ static int move_callback(int handle, void* current, void* new)
|
|||
if (dont_move)
|
||||
return BUFLIB_CB_CANNOT_MOVE;
|
||||
|
||||
#define UPDATE(x) if (x) { x = PTR_ADD(x, diff); }
|
||||
/* relocate the cache */
|
||||
ptrdiff_t diff = new - current;
|
||||
for(unsigned i = 0; i < entry_count; i++)
|
||||
{
|
||||
if (dircache_root[i].d_name)
|
||||
dircache_root[i].d_name += diff;
|
||||
if (dircache_root[i].next_char)
|
||||
dircache_root[i].next_char += diff;
|
||||
if (dircache_root[i].up_char)
|
||||
dircache_root[i].up_char += diff;
|
||||
if (dircache_root[i].down_char)
|
||||
dircache_root[i].down_char += diff;
|
||||
UPDATE(dircache_root[i].d_name);
|
||||
UPDATE(dircache_root[i].next_char);
|
||||
UPDATE(dircache_root[i].up_char);
|
||||
UPDATE(dircache_root[i].down_char);
|
||||
}
|
||||
dircache_root = new;
|
||||
UPDATE(d_names_start);
|
||||
UPDATE(d_names_end);
|
||||
UPDATE(dot);
|
||||
UPDATE(dotdot);
|
||||
|
||||
d_names_start += diff;
|
||||
d_names_end += diff;
|
||||
dot += diff;
|
||||
dotdot += diff;
|
||||
for(unsigned i = 0; i < MAX_OPEN_FILES; i++)
|
||||
UPDATE(fd_bindings[i]);
|
||||
|
||||
#ifdef HAVE_MULTIVOLUME
|
||||
UPDATE(append_position);
|
||||
#endif
|
||||
return BUFLIB_CB_OK;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -58,6 +58,10 @@ void audio_resume(void);
|
|||
void audio_next(void);
|
||||
void audio_prev(void);
|
||||
int audio_status(void);
|
||||
/* size of the audio buffer */
|
||||
size_t audio_buffer_size(void);
|
||||
/* size of the buffer available for allocating memory from the audio buffer using core_*()
|
||||
* returns core_available() if audio buffer is not allocated yet */
|
||||
size_t audio_buffer_available(void);
|
||||
void audio_ff_rewind(long newpos);
|
||||
void audio_flush_and_reload_tracks(void);
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@ static void lock_font_handle(int handle, bool lock)
|
|||
|
||||
void font_lock(int font_id, bool lock)
|
||||
{
|
||||
if( font_id == FONT_SYSFIXED )
|
||||
if( font_id < 0 || font_id >= MAXFONTS )
|
||||
return;
|
||||
if( buflib_allocations[font_id] >= 0 )
|
||||
lock_font_handle(buflib_allocations[font_id], lock);
|
||||
|
|
@ -484,6 +484,8 @@ static int alloc_and_init(int font_idx, const char* name, size_t size)
|
|||
|
||||
const char* font_filename(int font_id)
|
||||
{
|
||||
if ( font_id < 0 || font_id >= MAXFONTS )
|
||||
return NULL;
|
||||
int handle = buflib_allocations[font_id];
|
||||
if (handle > 0)
|
||||
return core_get_name(handle);
|
||||
|
|
@ -578,7 +580,7 @@ int font_load(const char *path)
|
|||
|
||||
void font_unload(int font_id)
|
||||
{
|
||||
if ( font_id == FONT_SYSFIXED )
|
||||
if ( font_id < 0 || font_id >= MAXFONTS )
|
||||
return;
|
||||
int handle = buflib_allocations[font_id];
|
||||
if ( handle < 0 )
|
||||
|
|
|
|||
|
|
@ -78,13 +78,14 @@ void font_cache_create(
|
|||
************************************************************************/
|
||||
static int search(struct font_cache* fcache,
|
||||
unsigned short char_code,
|
||||
int size,
|
||||
int *p_insertion_point )
|
||||
{
|
||||
struct font_cache_entry *p;
|
||||
int left, right, mid=-1, c;
|
||||
left = 0;
|
||||
right = fcache->_size - 1;
|
||||
|
||||
right = size;
|
||||
|
||||
/* go for a lucky guess */
|
||||
mid = char_code +
|
||||
fcache->_prev_result - fcache->_prev_char_code;
|
||||
|
|
@ -115,6 +116,7 @@ static int search(struct font_cache* fcache,
|
|||
while (left <= right);
|
||||
|
||||
/* not found */
|
||||
p = lru_data(&fcache->_lru, fcache->_index[mid]);
|
||||
*p_insertion_point = mid;
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -131,29 +133,45 @@ struct font_cache_entry* font_cache_get(
|
|||
int insertion_point;
|
||||
int index_to_replace;
|
||||
|
||||
if( search(fcache, char_code, &insertion_point))
|
||||
/* check bounds */
|
||||
p = lru_data(&fcache->_lru, fcache->_index[0]);
|
||||
if( char_code < p->_char_code )
|
||||
insertion_point = -1;
|
||||
else
|
||||
{
|
||||
short lru_handle = fcache->_index[insertion_point];
|
||||
p = lru_data(&fcache->_lru, lru_handle);
|
||||
if (p->_char_code == char_code)
|
||||
p = lru_data(&fcache->_lru, fcache->_index[fcache->_capacity - 1]);
|
||||
if( char_code > p->_char_code )
|
||||
{
|
||||
lru_touch(&fcache->_lru, lru_handle);
|
||||
return lru_data(&fcache->_lru, lru_handle);
|
||||
insertion_point = fcache->_capacity - 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if( search(fcache, char_code, fcache->_size - 1, &insertion_point))
|
||||
{
|
||||
short lru_handle = fcache->_index[insertion_point];
|
||||
p = lru_data(&fcache->_lru, lru_handle);
|
||||
if (p->_char_code == char_code)
|
||||
{
|
||||
lru_touch(&fcache->_lru, lru_handle);
|
||||
return lru_data(&fcache->_lru, lru_handle);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
p = lru_data(&fcache->_lru,
|
||||
fcache->_index[insertion_point+1]);
|
||||
if ( char_code > p->_char_code )
|
||||
insertion_point++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else /* not found */
|
||||
{
|
||||
p = lru_data(&fcache->_lru,
|
||||
fcache->_index[insertion_point+1]);
|
||||
if ( char_code > p->_char_code )
|
||||
insertion_point++;
|
||||
}
|
||||
|
||||
/* not found */
|
||||
|
||||
/* find index to replace */
|
||||
short lru_handle_to_replace = fcache->_lru._head;
|
||||
p = lru_data(&fcache->_lru, lru_handle_to_replace);
|
||||
search(fcache, p->_char_code, &index_to_replace);
|
||||
|
||||
search(fcache, p->_char_code, fcache->_size - 1, &index_to_replace);
|
||||
if (insertion_point < index_to_replace)
|
||||
{
|
||||
/* shift memory up */
|
||||
|
|
|
|||
|
|
@ -283,7 +283,7 @@ static const unsigned char rbmpheader[] =
|
|||
void remote_screen_dump(void)
|
||||
{
|
||||
int fd, y;
|
||||
char filename[MAX_PATH];
|
||||
char filename[32];
|
||||
|
||||
fb_remote_data *src;
|
||||
#if LCD_REMOTE_DEPTH == 1
|
||||
|
|
|
|||
|
|
@ -48,10 +48,18 @@ struct ep_type
|
|||
} ;
|
||||
|
||||
static struct ep_type endpoints[USB_NUM_ENDPOINTS];
|
||||
static union
|
||||
|
||||
/* USB control requests may be up to 64 bytes in size.
|
||||
Even though we never use anything more than the 8 header bytes,
|
||||
we are required to accept request packets of up to 64 bytes size.
|
||||
Provide buffer space for these additional payload bytes so that
|
||||
e.g. write descriptor requests (which are rejected by us, but the
|
||||
payload is transferred anyway) do not cause memory corruption.
|
||||
Fixes FS#12310. -- Michael Sparmann (theseven) */
|
||||
static struct
|
||||
{
|
||||
unsigned char data[64];
|
||||
struct usb_ctrlrequest req;
|
||||
struct usb_ctrlrequest header; /* 8 bytes */
|
||||
unsigned char payload[64 - sizeof(struct usb_ctrlrequest)];
|
||||
} ctrlreq USB_DEVBSS_ATTR;
|
||||
|
||||
int usb_drv_port_speed(void)
|
||||
|
|
@ -74,7 +82,7 @@ static void reset_endpoints(int reinit)
|
|||
DOEPCTL0 = 0x8000; /* EP0 OUT ACTIVE */
|
||||
DOEPTSIZ0 = 0x20080040; /* EP0 OUT Transfer Size:
|
||||
64 Bytes, 1 Packet, 1 Setup Packet */
|
||||
DOEPDMA0 = &ctrlreq.data;
|
||||
DOEPDMA0 = &ctrlreq;
|
||||
DOEPCTL0 |= 0x84000000; /* EP0 OUT ENABLE CLEARNAK */
|
||||
if (reinit)
|
||||
{
|
||||
|
|
@ -136,8 +144,19 @@ void usb_drv_release_endpoint(int ep)
|
|||
|
||||
static void usb_reset(void)
|
||||
{
|
||||
#if CONFIG_CPU==S5L8701
|
||||
volatile int i;
|
||||
DCTL = 0x802; /* Soft Disconnect */
|
||||
OPHYPWR = 0; /* PHY: Power up */
|
||||
OPHYUNK1 = 1;
|
||||
OPHYUNK2 = 0xE3F;
|
||||
OPHYCLK = SYNOPSYSOTG_CLOCK;
|
||||
ORSTCON = 1; /* PHY: Assert Software Reset */
|
||||
for (i = 0; i < 50; i++);
|
||||
ORSTCON = 0; /* PHY: Deassert Software Reset */
|
||||
OPHYUNK3 = 0x600;
|
||||
#else
|
||||
DCTL = 0x802; /* Soft Disconnect */
|
||||
|
||||
OPHYPWR = 0; /* PHY: Power up */
|
||||
udelay(10);
|
||||
OPHYUNK1 = 1;
|
||||
|
|
@ -148,6 +167,7 @@ static void usb_reset(void)
|
|||
OPHYUNK3 = 0x600;
|
||||
OPHYCLK = SYNOPSYSOTG_CLOCK;
|
||||
udelay(400);
|
||||
#endif
|
||||
|
||||
GRSTCTL = 1; /* OTG: Assert Software Reset */
|
||||
while (GRSTCTL & 1); /* Wait for OTG to ack reset */
|
||||
|
|
@ -247,14 +267,14 @@ void INT_USB_FUNC(void)
|
|||
invalidate_dcache();
|
||||
if (i == 0)
|
||||
{
|
||||
if (ctrlreq.req.bRequest == 5)
|
||||
if (ctrlreq.header.bRequest == 5)
|
||||
{
|
||||
/* Already set the new address here,
|
||||
before passing the packet to the core.
|
||||
See below (usb_drv_set_address) for details. */
|
||||
DCFG = (DCFG & ~0x7F0) | (ctrlreq.req.wValue << 4);
|
||||
DCFG = (DCFG & ~0x7F0) | (ctrlreq.header.wValue << 4);
|
||||
}
|
||||
usb_core_control_request(&ctrlreq.req);
|
||||
usb_core_control_request(&ctrlreq.header);
|
||||
}
|
||||
else panicf("USB: SETUP done on OUT EP%d!?", i);
|
||||
}
|
||||
|
|
@ -262,7 +282,7 @@ void INT_USB_FUNC(void)
|
|||
if (!i)
|
||||
{
|
||||
DOEPTSIZ0 = 0x20080040;
|
||||
DOEPDMA0 = &ctrlreq.data;
|
||||
DOEPDMA0 = &ctrlreq;
|
||||
DOEPCTL0 |= 0x84000000;
|
||||
}
|
||||
DOEPINT(i) = epints;
|
||||
|
|
@ -399,11 +419,9 @@ void usb_drv_exit(void)
|
|||
{
|
||||
DCTL = 0x802; /* Soft Disconnect */
|
||||
|
||||
OPHYPWR = 0xF; /* PHY: Power down */
|
||||
udelay(10);
|
||||
ORSTCON = 7; /* Put the PHY into reset (needed to get current down) */
|
||||
udelay(10);
|
||||
ORSTCON = 1; /* Put the PHY into reset (needed to get current down) */
|
||||
PCGCCTL = 1; /* Shut down PHY clock */
|
||||
OPHYPWR = 0xF; /* PHY: Power down */
|
||||
|
||||
#if CONFIG_CPU==S5L8701
|
||||
PWRCON |= 0x4000;
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ static int usb_mmc_countdown = 0;
|
|||
|
||||
/* Make sure there's enough stack space for screendump */
|
||||
#ifdef USB_FULL_INIT
|
||||
static long usb_stack[(DEFAULT_STACK_SIZE + DUMP_BMP_LINESIZE)/sizeof(long)];
|
||||
static long usb_stack[(DEFAULT_STACK_SIZE + DUMP_BMP_LINESIZE + 0x400)/sizeof(long)];
|
||||
static const char usb_thread_name[] = "usb";
|
||||
static unsigned int usb_thread_entry = 0;
|
||||
static bool usb_monitor_enabled = false;
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ int main(int argc, char* argv[])
|
|||
// sanity check
|
||||
if (uiSize > sizeof(aImage) - uiStart || uiSize < 40000)
|
||||
{
|
||||
printf("Error: Impossible image size &d bytes.\n", uiSize);
|
||||
printf("Error: Impossible image size %d bytes.\n", uiSize);
|
||||
exit(3);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -38,26 +38,27 @@ manual-prep: objdir-check rockbox.tex $(OBJDIR)/CREDITS.tex $(OBJDIR)/version.te
|
|||
|
||||
$(OBJDIR)/$(MANFILE).tex:
|
||||
@echo "creating $(notdir $@)"
|
||||
$(SILENT)printf "\\\\newcommand{\\\\platform}{${MANUALDEV}}\n" > $(OBJDIR)/$(MANFILE).tex
|
||||
$(SILENT)printf "\\\\newcommand{\\\\buildversion}{$(VERSION)}\n" >> $(OBJDIR)/$(MANFILE).tex
|
||||
$(SILENT)printf "\\\\input{rockbox.tex}\n" >> $(OBJDIR)/$(MANFILE).tex
|
||||
$(SILENT)printf "\\\\newcommand{\\\\platform}{${MANUALDEV}}\n" > $@
|
||||
$(SILENT)printf "\\\\newcommand{\\\\buildversion}{$(VERSION)}\n" >> $@
|
||||
$(SILENT)printf "\\\\input{rockbox.tex}\n" >> $@
|
||||
|
||||
$(OBJDIR)/CREDITS.tex: $(DOCSDIR)/CREDITS
|
||||
@echo "processing $(notdir $^)"
|
||||
$(SILENT)perl credits.pl < $(DOCSDIR)/CREDITS > $(OBJDIR)/CREDITS.tex
|
||||
$(SILENT)perl credits.pl < $(DOCSDIR)/CREDITS > $@
|
||||
|
||||
$(OBJDIR)/version.tex:
|
||||
@echo "creating $(notdir $@)"
|
||||
$(SILENT)printf "%s%%" $(VERSION) > $(OBJDIR)/version.tex
|
||||
$(SILENT)printf "%s%%" $(VERSION) > $@
|
||||
|
||||
$(OBJDIR)/features.tex: $(ROOTDIR)/apps/features.txt
|
||||
@echo "processing $(notdir $^)"
|
||||
$(SILENT)mkdir -p `dirname $@`
|
||||
$(SILENT)cat $< | $(HOSTCC) -DMEMORYSIZE=$(MEMORYSIZE) $(INCLUDES) \
|
||||
$(TARGET) $(DEFINES) $(EXTRA_DEFINES) -E -P -imacros "config.h" -imacros "button.h" - | \
|
||||
grep -v "^\#" | grep -v "^$$" > $@; \
|
||||
for f in `cat $(OBJDIR)/features`; do feat="$$feat\\n\\\\edef\\\\UseOption{\\\\UseOption,$$f}" ; done ; \
|
||||
printf "$$feat" >$(OBJDIR)/features.tex
|
||||
$(SILENT) for f in \
|
||||
$$(cat $< | $(HOSTCC) -DMEMORYSIZE=$(MEMORYSIZE) $(INCLUDES) \
|
||||
$(TARGET) $(DEFINES) $(EXTRA_DEFINES) -E -P -imacros "config.h" \
|
||||
-imacros "button.h" - | grep -v "^\#" | grep -v "^$$"); \
|
||||
do feat="$$feat\\n\\\\edef\\\\UseOption{\\\\UseOption,$$f}"; done ; \
|
||||
printf "$$feat" > $@
|
||||
|
||||
manual-pdf: objdir-check features manual-prep rockbox.tex
|
||||
$(SILENT)$(MAKE) -C $(OBJDIR) buildmanual
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@
|
|||
& Supports downmixing for playback of 5.1 streams in stereo\\
|
||||
ADX
|
||||
& \fname{.adx}
|
||||
& \\
|
||||
& Encrypted ADX is not supported.\\
|
||||
Advanced Audio Coding
|
||||
& \fname{.m4a}, \fname{.m4b}, \fname{.mp4}, \fname{.rm}, \fname{.ra}, \fname{.rmvb}
|
||||
\nopt{clipv1,c200v2}{
|
||||
|
|
@ -328,6 +328,7 @@
|
|||
\end{rbtabular}
|
||||
|
||||
\subsection{Featureset for generic metadata tags}
|
||||
\label{ref:featureset_for_generic_metadata_tags}
|
||||
\begin{rbtabular}{0.80\textwidth}{lXXXXX}%
|
||||
{\textbf{Feature} & \textbf{ID3} & \textbf{APE} & \textbf{Vorbis} &
|
||||
\textbf{MP4} & \textbf{ASF}}{}{}
|
||||
|
|
|
|||
|
|
@ -126,11 +126,13 @@ show the information for the next song to be played.
|
|||
\config{\%fc} & File Codec (e.g. ``MP3'' or ``FLAC'').
|
||||
This tag can also be used in a conditional tag:
|
||||
\config{\%?fc<mp1|mp2|mp3|aiff|wav|ogg|\newline
|
||||
flac|mpc|a52|wavpack|alac|aac|shn|sid|adx|nsf|\newline
|
||||
speex|spc|ape|wma|mod|sap|unknown>}.
|
||||
The codec order is as follows: MP1, MP2, MP3, AIFF, WAV,
|
||||
Ogg Vorbis (OGG), FLAC, MPC, AC3, WavPack (WV), ALAC, AAC,
|
||||
Shorten (SHN), SID, ADX, NSF, Speex, SPC, APE, WMA, MOD, SAP.\\
|
||||
flac|mpcsv7|a52|wavpack|alac|aac|shn|sid|adx|nsf|\newline
|
||||
speex|spc|ape|wma|wmpapro|mod|sap|realaudiocook|\newline
|
||||
realaudioaac|realaudioac3|realaudioatrac3|cmc|\newline
|
||||
cm3|cmr|cms|dmc|dlt|mpt|mpd|rmt|tmc|tm8|tm2|\newline
|
||||
omaatrac3|smaf|au|vox|wave64|tta|wmavoice|mpcsv8|\newline
|
||||
aache|ay|gbs|hes|sgc|vgm|kss|unknown>}.
|
||||
The codec order is as shown above.\\
|
||||
\config{\%ff} & File Frequency (in Hz)\\
|
||||
\config{\%fk} & File Frequency (in kHz)\\
|
||||
\config{\%fm} & File Name\\
|
||||
|
|
@ -422,8 +424,9 @@ theme}. For this feature to work, there are a few requirements.
|
|||
|
||||
\subsection{Limitations}
|
||||
|
||||
Rockbox supports embedded album art only for formats that use ID3v2 tags, such
|
||||
as MP3. It additionally supports loading images located on the \disk{}.
|
||||
Rockbox supports embedded album art only for some specific formats, see
|
||||
\reference{ref:featureset_for_generic_metadata_tags} for full details. It additionally supports
|
||||
loading images located on the \disk{}.
|
||||
The image files must be in either BMP or JPEG format, while embedded album art
|
||||
is currently limited to JPEG. Rockbox does not support
|
||||
RLE-compressed BMP files, nor does it support progressive and multi-scan
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
$publicrelease="3.9.1";
|
||||
$manualrelease="3.9.1";
|
||||
$voicerelease="3.9.1";
|
||||
$releasedate="September 3, 2011";
|
||||
$releasenotes="/wiki/ReleaseNotes391";
|
||||
$publicrelease="3.10";
|
||||
$manualrelease="3.10";
|
||||
$voicerelease="3.10";
|
||||
$releasedate="December 4, 2011";
|
||||
$releasenotes="/wiki/ReleaseNotes310";
|
||||
|
||||
%builds = (
|
||||
'archosav300' => {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#!/usr/bin/perl
|
||||
$version="3.5RC";
|
||||
$version="3.10";
|
||||
|
||||
require "tools/builds.pm";
|
||||
|
||||
|
|
@ -117,13 +117,13 @@ sub buildit {
|
|||
`make VERSION=$version`;
|
||||
|
||||
print "Run 'make zip'\n" if($verbose);
|
||||
`make zip`;
|
||||
`make zip VERSION=$version`;
|
||||
|
||||
print "Run 'make mapzip'\n" if($verbose);
|
||||
`make mapzip`;
|
||||
`make mapzip VERSION=$version`;
|
||||
|
||||
print "Run 'make elfzip'\n" if($verbose);
|
||||
`make elfzip`;
|
||||
`make elfzip VERSION=$version`;
|
||||
}
|
||||
|
||||
sub buildfonts {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
$version="3.0";
|
||||
$version="3.10";
|
||||
|
||||
require "tools/builds.pm";
|
||||
|
||||
|
|
@ -65,10 +65,10 @@ sub buildit {
|
|||
`$c`;
|
||||
|
||||
print "Run 'make'\n" if($verbose);
|
||||
`make manual 2>/dev/null`;
|
||||
`make manual VERSION=$version 2>/dev/null`;
|
||||
|
||||
print "Run 'make manual-zip'\n" if($verbose);
|
||||
`make manual-zip 2>/dev/null`;
|
||||
`make manual-zip VERSION=$version 2>/dev/null`;
|
||||
}
|
||||
|
||||
# run make in tools first to make sure they're up-to-date
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
version="3.0"
|
||||
version="3.10"
|
||||
|
||||
srcdir=.
|
||||
tempdir=rockbox-temp
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
$version="3.0";
|
||||
$version="3.10";
|
||||
|
||||
require "tools/builds.pm";
|
||||
|
||||
|
|
@ -62,7 +62,7 @@ sub buildit {
|
|||
`$c`;
|
||||
|
||||
print "Run 'make voice'\n" if($verbose);
|
||||
print `make voice 2>/dev/null`;
|
||||
print `make voice VERSION=$version 2>/dev/null`;
|
||||
}
|
||||
|
||||
# run make in tools first to make sure they're up-to-date
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue