split the radio code into multiple files in the hope that makes it more likely for someone to want to work on! :D

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26109 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Jonathan Gordon 2010-05-17 15:03:59 +00:00
parent 4862fe4451
commit b6867dc998
7 changed files with 1059 additions and 866 deletions

View file

@ -132,12 +132,19 @@ recorder/albumart.c
gui/color_picker.c gui/color_picker.c
#endif #endif
#endif #endif
#if CONFIG_TUNER
recorder/radio.c
#endif
#ifdef HAVE_RECORDING #ifdef HAVE_RECORDING
recorder/recording.c recorder/recording.c
#endif #endif
#if CONFIG_TUNER
radio/radio.c
radio/presets.c
radio/radio_skin.c
#ifdef HAVE_ALBUMART
radio/radioart.c
#endif
#endif
#if CONFIG_CODEC == SWCODEC #if CONFIG_CODEC == SWCODEC
#if INPUT_SRC_CAPS != 0 #if INPUT_SRC_CAPS != 0
audio_path.c audio_path.c

614
apps/radio/presets.c Normal file
View file

@ -0,0 +1,614 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id: radio.c -1 $
*
* Copyright (C) 2003 Linus Nielsen Feltzing
*
* 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 "config.h"
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include "settings.h"
#include "general.h"
#include "radio.h"
#include "tuner.h"
#include "file.h"
#include "string-extra.h"
#include "misc.h"
#include "lang.h"
#include "action.h"
#include "list.h"
#include "splash.h"
#include "menu.h"
#include "yesno.h"
#include "keyboard.h"
#include "talk.h"
#include "filetree.h"
#include "dir.h"
static int curr_preset = -1;
extern int curr_freq; /* from radio.c.. naughty but meh */
extern int radio_mode;
int snap_freq_to_grid(int freq);
void remember_frequency(void);
void talk_freq(int freq, bool enqueue);
#define MAX_PRESETS 64
static bool presets_loaded = false, presets_changed = false;
static struct fmstation presets[MAX_PRESETS];
static char filepreset[MAX_PATH]; /* preset filename variable */
static int num_presets = 0; /* The number of presets in the preset list */
bool yesno_pop(const char* text); /* radio.c */
int radio_current_preset(void)
{
return curr_preset;
}
int radio_preset_count(void)
{
return num_presets;
}
const struct fmstation *radio_get_preset(int preset)
{
return &presets[preset];
}
bool has_presets_changed(void)
{
return presets_changed;
}
/* Find a matching preset to freq */
int find_preset(int freq)
{
int i;
if(num_presets < 1)
return -1;
for(i = 0;i < MAX_PRESETS;i++)
{
if(freq == presets[i].frequency)
return i;
}
return -1;
}
/* Return the closest preset encountered in the search direction with
wraparound. */
int find_closest_preset(int freq, int direction)
{
int i;
int lowpreset = 0;
int highpreset = 0;
int closest = -1;
if (direction == 0) /* direction == 0 isn't really used */
return 0;
for (i = 0; i < num_presets; i++)
{
int f = presets[i].frequency;
if (f == freq)
return i; /* Exact match = stop */
/* remember the highest and lowest presets for wraparound */
if (f < presets[lowpreset].frequency)
lowpreset = i;
if (f > presets[highpreset].frequency)
highpreset = i;
/* find the closest preset in the given direction */
if (direction > 0 && f > freq)
{
if (closest < 0 || f < presets[closest].frequency)
closest = i;
}
else if (direction < 0 && f < freq)
{
if (closest < 0 || f > presets[closest].frequency)
closest = i;
}
}
if (closest < 0)
{
/* no presets in the given direction */
/* wrap around depending on direction */
if (direction < 0)
closest = highpreset;
else
closest = lowpreset;
}
return closest;
}
void next_preset(int direction)
{
if (num_presets < 1)
return;
if (curr_preset == -1)
curr_preset = find_closest_preset(curr_freq, direction);
else
curr_preset = (curr_preset + direction + num_presets) % num_presets;
/* Must stay on the current grid for the region */
curr_freq = snap_freq_to_grid(presets[curr_preset].frequency);
tuner_set(RADIO_FREQUENCY, curr_freq);
remember_frequency();
}
void set_current_preset(int preset)
{
curr_preset = preset;
}
/* Speak a preset by number or by spelling its name, depending on settings. */
void talk_preset(int preset, bool fallback, bool enqueue)
{
if (global_settings.talk_file == 1) /* number */
talk_number(preset + 1, enqueue);
else
{ /* spell */
if(presets[preset].name[0])
talk_spell(presets[preset].name, enqueue);
else if(fallback)
talk_freq(presets[preset].frequency, enqueue);
}
}
void radio_save_presets(void)
{
int fd;
int i;
fd = creat(filepreset, 0666);
if(fd >= 0)
{
for(i = 0;i < num_presets;i++)
{
fdprintf(fd, "%d:%s\n", presets[i].frequency, presets[i].name);
}
close(fd);
if(!strncasecmp(FMPRESET_PATH, filepreset, strlen(FMPRESET_PATH)))
set_file(filepreset, global_settings.fmr_file, MAX_FILENAME);
presets_changed = false;
}
else
{
splash(HZ, ID2P(LANG_FM_PRESET_SAVE_FAILED));
}
}
void radio_load_presets(char *filename)
{
int fd;
int rc;
char buf[128];
char *freq;
char *name;
bool done = false;
int f;
memset(presets, 0, sizeof(presets));
num_presets = 0;
/* No Preset in configuration. */
if(filename[0] == '\0')
{
filepreset[0] = '\0';
return;
}
/* Temporary preset, loaded until player shuts down. */
else if(filename[0] == '/')
strlcpy(filepreset, filename, sizeof(filepreset));
/* Preset from default directory. */
else
snprintf(filepreset, sizeof(filepreset), "%s/%s.fmr",
FMPRESET_PATH, filename);
fd = open_utf8(filepreset, O_RDONLY);
if(fd >= 0)
{
while(!done && num_presets < MAX_PRESETS)
{
rc = read_line(fd, buf, 128);
if(rc > 0)
{
if(settings_parseline(buf, &freq, &name))
{
f = atoi(freq);
if(f) /* For backwards compatibility */
{
struct fmstation * const fms = &presets[num_presets];
fms->frequency = f;
strlcpy(fms->name, name, MAX_FMPRESET_LEN+1);
num_presets++;
}
}
}
else
done = true;
}
close(fd);
}
else /* invalid file name? */
filepreset[0] = '\0';
presets_loaded = num_presets > 0;
presets_changed = false;
}
const char* radio_get_preset_name(int preset)
{
if (preset < num_presets)
return presets[preset].name;
return NULL;
}
int radio_add_preset(void)
{
char buf[MAX_FMPRESET_LEN + 1];
if(num_presets < MAX_PRESETS)
{
buf[0] = '\0';
if (!kbd_input(buf, MAX_FMPRESET_LEN + 1))
{
struct fmstation * const fms = &presets[num_presets];
strcpy(fms->name, buf);
fms->frequency = curr_freq;
num_presets++;
presets_changed = true;
presets_loaded = num_presets > 0;
return true;
}
}
else
{
splash(HZ, ID2P(LANG_FM_NO_FREE_PRESETS));
}
return false;
}
/* needed to know which preset we are edit/delete-ing */
static int selected_preset = -1;
static int radio_edit_preset(void)
{
char buf[MAX_FMPRESET_LEN + 1];
if (num_presets > 0)
{
struct fmstation * const fms = &presets[selected_preset];
strcpy(buf, fms->name);
if (!kbd_input(buf, MAX_FMPRESET_LEN + 1))
{
strcpy(fms->name, buf);
presets_changed = true;
}
}
return 1;
}
static int radio_delete_preset(void)
{
if (num_presets > 0)
{
struct fmstation * const fms = &presets[selected_preset];
if (selected_preset >= --num_presets)
selected_preset = num_presets - 1;
memmove(fms, fms + 1, (uintptr_t)(fms + num_presets) -
(uintptr_t)fms);
if (curr_preset >= num_presets)
--curr_preset;
}
/* Don't ask to save when all presets are deleted. */
presets_changed = num_presets > 0;
if (!presets_changed)
{
/* The preset list will be cleared, switch to Scan Mode. */
radio_mode = RADIO_SCAN_MODE;
curr_preset = -1;
presets_loaded = false;
}
return 1;
}
int load_preset_list(void)
{
return !rockbox_browse(FMPRESET_PATH, SHOW_FMR);
}
int save_preset_list(void)
{
if(num_presets > 0)
{
bool bad_file_name = true;
if(!dir_exists(FMPRESET_PATH)) /* Check if there is preset folder */
mkdir(FMPRESET_PATH);
create_numbered_filename(filepreset, FMPRESET_PATH, "preset",
".fmr", 2 IF_CNFN_NUM_(, NULL));
while(bad_file_name)
{
if(!kbd_input(filepreset, sizeof(filepreset)))
{
/* check the name: max MAX_FILENAME (20) chars */
char* p2;
char* p1;
int len;
p1 = strrchr(filepreset, '/');
p2 = p1;
while((p1) && (*p2) && (*p2 != '.'))
p2++;
len = (int)(p2-p1) - 1;
if((!p1) || (len > MAX_FILENAME) || (len == 0))
{
/* no slash, too long or too short */
splash(HZ, ID2P(LANG_INVALID_FILENAME));
}
else
{
/* add correct extension (easier to always write)
at this point, p2 points to 0 or the extension dot */
*p2 = '\0';
strcat(filepreset,".fmr");
bad_file_name = false;
radio_save_presets();
}
}
else
{
/* user aborted */
return false;
}
}
}
else
splash(HZ, ID2P(LANG_FM_NO_PRESETS));
return true;
}
int clear_preset_list(void)
{
/* Clear all the preset entries */
memset(presets, 0, sizeof (presets));
num_presets = 0;
presets_loaded = false;
/* The preset list will be cleared switch to Scan Mode. */
radio_mode = RADIO_SCAN_MODE;
curr_preset = -1;
presets_changed = false; /* Don't ask to save when clearing the list. */
return true;
}
MENUITEM_FUNCTION(radio_edit_preset_item, MENU_FUNC_CHECK_RETVAL,
ID2P(LANG_FM_EDIT_PRESET),
radio_edit_preset, NULL, NULL, Icon_NOICON);
MENUITEM_FUNCTION(radio_delete_preset_item, MENU_FUNC_CHECK_RETVAL,
ID2P(LANG_FM_DELETE_PRESET),
radio_delete_preset, NULL, NULL, Icon_NOICON);
static int radio_preset_callback(int action,
const struct menu_item_ex *this_item)
{
if (action == ACTION_STD_OK)
action = ACTION_EXIT_AFTER_THIS_MENUITEM;
return action;
(void)this_item;
}
MAKE_MENU(handle_radio_preset_menu, ID2P(LANG_PRESET),
radio_preset_callback, Icon_NOICON, &radio_edit_preset_item,
&radio_delete_preset_item);
/* present a list of preset stations */
static const char* presets_get_name(int selected_item, void *data,
char *buffer, size_t buffer_len)
{
(void)data;
struct fmstation *p = &presets[selected_item];
if(p->name[0])
return p->name;
int freq = p->frequency / 10000;
int frac = freq % 100;
freq /= 100;
snprintf(buffer, buffer_len,
str(LANG_FM_DEFAULT_PRESET_NAME), freq, frac);
return buffer;
}
static int presets_speak_name(int selected_item, void * data)
{
(void)data;
talk_preset(selected_item, true, false);
return 0;
}
int handle_radio_presets(void)
{
struct gui_synclist lists;
int result = 0;
int action = ACTION_NONE;
#ifdef HAVE_BUTTONBAR
struct gui_buttonbar buttonbar;
#endif
if(presets_loaded == false)
return result;
#ifdef HAVE_BUTTONBAR
gui_buttonbar_init(&buttonbar);
gui_buttonbar_set_display(&buttonbar, &(screens[SCREEN_MAIN]) );
gui_buttonbar_set(&buttonbar, str(LANG_FM_BUTTONBAR_ADD),
str(LANG_FM_BUTTONBAR_EXIT),
str(LANG_FM_BUTTONBAR_ACTION));
gui_buttonbar_draw(&buttonbar);
#endif
gui_synclist_init(&lists, presets_get_name, NULL, false, 1, NULL);
gui_synclist_set_title(&lists, str(LANG_PRESET), NOICON);
gui_synclist_set_icon_callback(&lists, NULL);
if(global_settings.talk_file)
gui_synclist_set_voice_callback(&lists, presets_speak_name);
gui_synclist_set_nb_items(&lists, num_presets);
gui_synclist_select_item(&lists, curr_preset<0 ? 0 : curr_preset);
gui_synclist_speak_item(&lists);
while (result == 0)
{
gui_synclist_draw(&lists);
list_do_action(CONTEXT_STD, TIMEOUT_BLOCK,
&lists, &action, LIST_WRAP_UNLESS_HELD);
switch (action)
{
case ACTION_STD_MENU:
if (radio_add_preset())
{
gui_synclist_set_nb_items(&lists, num_presets);
gui_synclist_select_item(&lists, num_presets - 1);
}
break;
case ACTION_STD_CANCEL:
result = 1;
break;
case ACTION_STD_OK:
curr_preset = gui_synclist_get_sel_pos(&lists);
curr_freq = presets[curr_preset].frequency;
next_station(0);
remember_frequency();
result = 1;
break;
case ACTION_F3:
case ACTION_STD_CONTEXT:
selected_preset = gui_synclist_get_sel_pos(&lists);
do_menu(&handle_radio_preset_menu, NULL, NULL, false);
gui_synclist_set_nb_items(&lists, num_presets);
gui_synclist_select_item(&lists, selected_preset);
gui_synclist_speak_item(&lists);
break;
default:
if(default_event_handler(action) == SYS_USB_CONNECTED)
result = 2;
}
}
return result - 1;
}
int scan_presets(void *viewports)
{
bool do_scan = true;
int i;
struct viewport *vp = (struct viewport *)viewports;
FOR_NB_SCREENS(i)
screens[i].set_viewport(vp?&vp[i]:NULL);
if(num_presets > 0) /* Do that to avoid 2 questions. */
do_scan = yesno_pop(ID2P(LANG_FM_CLEAR_PRESETS));
if(do_scan)
{
const struct fm_region_data * const fmr =
&fm_region_data[global_settings.fm_region];
curr_freq = fmr->freq_min;
num_presets = 0;
memset(presets, 0, sizeof(presets));
tuner_set(RADIO_MUTE, 1);
while(curr_freq <= fmr->freq_max)
{
int freq, frac;
if(num_presets >= MAX_PRESETS || action_userabort(TIMEOUT_NOBLOCK))
break;
freq = curr_freq / 10000;
frac = freq % 100;
freq /= 100;
splashf(0, str(LANG_FM_SCANNING), freq, frac);
if(tuner_set(RADIO_SCAN_FREQUENCY, curr_freq))
{
/* add preset */
presets[num_presets].name[0] = '\0';
presets[num_presets].frequency = curr_freq;
num_presets++;
}
curr_freq += fmr->freq_step;
}
if (get_radio_status() == FMRADIO_PLAYING)
tuner_set(RADIO_MUTE, 0);
presets_changed = true;
FOR_NB_SCREENS(i)
{
screens[i].clear_viewport();
screens[i].update_viewport();
}
if(num_presets > 0)
{
curr_freq = presets[0].frequency;
radio_mode = RADIO_PRESET_MODE;
presets_loaded = true;
next_station(0);
}
else
{
/* Wrap it to beginning or we'll be past end of band */
presets_loaded = false;
next_station(1);
}
}
return true;
}
void presets_save(void)
{
if(filepreset[0] == '\0')
save_preset_list();
else
radio_save_presets();
}

File diff suppressed because it is too large Load diff

View file

@ -27,6 +27,11 @@
#include "screen_access.h" #include "screen_access.h"
#include "bmp.h" #include "bmp.h"
enum {
RADIO_SCAN_MODE = 0,
RADIO_PRESET_MODE,
};
#if CONFIG_TUNER #if CONFIG_TUNER
void radio_load_presets(char *filename); void radio_load_presets(char *filename);
void radio_init(void) INIT_ATTR; void radio_init(void) INIT_ATTR;
@ -59,11 +64,21 @@ struct fmstation
int frequency; /* In Hz */ int frequency; /* In Hz */
char name[MAX_FMPRESET_LEN+1]; char name[MAX_FMPRESET_LEN+1];
}; };
const char* radio_get_preset_name(int preset);
#ifdef HAVE_ALBUMART #ifdef HAVE_ALBUMART
void radioart_init(bool entering_screen);
int radio_get_art_hid(struct dim *requested_dim); int radio_get_art_hid(struct dim *requested_dim);
#endif #endif
void next_station(int direction);
enum fms_exiting {
FMS_EXIT,
FMS_ENTER
};
#endif /* CONFIG_TUNER */ #endif /* CONFIG_TUNER */
#endif /* RADIO_H */ #endif /* RADIO_H */

118
apps/radio/radio_skin.c Normal file
View file

@ -0,0 +1,118 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id: radio.c -1 $
*
* Copyright (C) 2010 Jonathan Gordon
*
* 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 "config.h"
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include "skin_engine/skin_engine.h"
#include "settings.h"
#include "radio.h"
#include "action.h"
#include "appevents.h"
#include "statusbar-skinned.h"
extern struct wps_state wps_state; /* from wps.c */
static struct gui_wps fms_skin[NB_SCREENS] = {{ .data = NULL }};
static struct wps_data fms_skin_data[NB_SCREENS] = {{ .wps_loaded = 0 }};
static struct wps_sync_data fms_skin_sync_data = { .do_full_update = false };
void fms_data_load(enum screen_type screen, const char *buf, bool isfile)
{
struct wps_data *data = fms_skin[screen].data;
int success;
success = buf && skin_data_load(screen, data, buf, isfile);
if (!success ) /* load the default */
{
const char default_fms[] = "%Sx|Station:| %tf\n"
"%?ts<%Sx|Stereo||%Sx|Mono|>\n"
"%?tm<%Sx|Mode:| %Sx|Scan||%Sx|Preset|: %Ti. %?Tn<%Tn|%Tf>>\n"
"%pb\n"
#if CONFIG_CODEC != SWCODEC && !defined(SIMULATOR)
"%?Rr<%Sx|Time:| %Rh:%Rn:%Rs|"
"%?St|prerecording time|<%Sx|Prerecord Time| %Rs|%pm>>\n"
#endif
#ifdef HAVE_RDS_CAP
"\n%s%ty\n"
"%s%tz\n"
#endif
;
skin_data_load(screen, data, default_fms, false);
}
}
void fms_fix_displays(enum fms_exiting toggle_state)
{
int i;
FOR_NB_SCREENS(i)
{
if (toggle_state == FMS_ENTER)
{
viewportmanager_theme_enable(i, skin_has_sbs(i, fms_skin[i].data), NULL);
#if LCD_DEPTH > 1 || defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1
screens[i].backdrop_show(fms_skin[i].data->backdrop);
#endif
screens[i].clear_display();
/* force statusbar/skin update since we just cleared the whole screen */
send_event(GUI_EVENT_ACTIONUPDATE, (void*)1);
}
else
{
screens[i].stop_scroll();
#if LCD_DEPTH > 1 || defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1
screens[i].backdrop_show(sb_get_backdrop(i));
#endif
viewportmanager_theme_undo(i, skin_has_sbs(i, fms_skin[i].data));
}
}
}
void fms_skin_init(void)
{
int i;
FOR_NB_SCREENS(i)
{
#ifdef HAVE_ALBUMART
fms_skin_data[i].albumart = NULL;
fms_skin_data[i].playback_aa_slot = -1;
#endif
fms_skin[i].data = &fms_skin_data[i];
fms_skin[i].display = &screens[i];
/* Currently no seperate wps_state needed/possible
so use the only available ( "global" ) one */
fms_skin[i].state = &wps_state;
fms_skin[i].sync_data = &fms_skin_sync_data;
}
}
int fms_do_button_loop(bool update_screen)
{
return skin_wait_for_action(fms_skin, CONTEXT_FM,
update_screen ? TIMEOUT_NOBLOCK : HZ);
}
struct gui_wps *fms_get(enum screen_type screen)
{
return &fms_skin[screen];
}

180
apps/radio/radioart.c Normal file
View file

@ -0,0 +1,180 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id: radio.c -1 $
*
* Copyright (C) 2010 Jonathan Gordon
*
* 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 "config.h"
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include "settings.h"
#include "radio.h"
#include "buffering.h"
#include "file.h"
#include "kernel.h"
#include "string-extra.h"
#include "misc.h"
#define MAX_RADIOART_IMAGES 10
struct radioart {
int handle;
long last_tick;
struct dim dim;
char name[MAX_FMPRESET_LEN+1];
};
static struct radioart radioart[MAX_RADIOART_IMAGES];
#ifdef HAVE_RECORDING
static bool allow_buffer_access = true; /* If we are recording dont touch the buffers! */
#endif
static int find_oldest_image(void)
{
int i;
long oldest_tick = radioart[0].last_tick;
int oldest_idx = 0;
for(i=1;i<MAX_RADIOART_IMAGES;i++)
{
if (radioart[i].last_tick < oldest_tick)
{
oldest_tick = radioart[i].last_tick;
oldest_idx = i;
}
}
return oldest_idx;
}
static int load_radioart_image(struct radioart *ra, const char* preset_name,
struct dim *dim)
{
char path[MAX_PATH];
#ifndef HAVE_NOISY_IDLE_MODE
cpu_idle_mode(false);
#endif
snprintf(path, sizeof(path), FMPRESET_PATH "/%s.bmp",preset_name);
if (!file_exists(path))
snprintf(path, sizeof(path), FMPRESET_PATH "/%s.jpg",preset_name);
if (!file_exists(path))
{
#ifndef HAVE_NOISY_IDLE_MODE
cpu_idle_mode(true);
#endif
return -1;
}
strlcpy(ra->name, preset_name, MAX_FMPRESET_LEN+1);
ra->dim.height = dim->height;
ra->dim.width = dim->width;
ra->last_tick = current_tick;
ra->handle = bufopen(path, 0, TYPE_BITMAP, &ra->dim);
if (ra->handle == ERR_BUFFER_FULL)
{
int i = find_oldest_image();
bufclose(i);
ra->handle = bufopen(path, 0, TYPE_BITMAP, &ra->dim);
}
#ifndef HAVE_NOISY_IDLE_MODE
cpu_idle_mode(true);
#endif
return ra->handle;
}
int radio_get_art_hid(struct dim *requested_dim)
{
int preset = radio_current_preset();
int i, free_idx = -1;
const char* preset_name;
if (radio_scan_mode() || preset < 0)
return -1;
#ifdef HAVE_RECORDING
if (!allow_buffer_access)
return -1;
#endif
preset_name = radio_get_preset_name(preset);
for(i=0;i<MAX_RADIOART_IMAGES;i++)
{
if (radioart[i].handle < 0)
{
free_idx = i;
}
else if (!strcmp(radioart[i].name, preset_name) &&
radioart[i].dim.width == requested_dim->width &&
radioart[i].dim.height == requested_dim->height)
{
radioart[i].last_tick = current_tick;
return radioart[i].handle;
}
}
if (free_idx >= 0)
{
return load_radioart_image(&radioart[free_idx],
preset_name, requested_dim);
}
else
{
int i = find_oldest_image();
bufclose(radioart[i].handle);
return load_radioart_image(&radioart[i],
preset_name, requested_dim);
}
return -1;
}
static void playback_restarting_handler(void *data)
{
(void)data;
int i;
for(i=0;i<MAX_RADIOART_IMAGES;i++)
{
if (radioart[i].handle >= 0)
bufclose(radioart[i].handle);
radioart[i].handle = -1;
radioart[i].name[0] = '\0';
}
}
#ifdef HAVE_RECORDING
static void recording_started_handler(void *data)
{
(void)data;
allow_buffer_access = false;
playback_restarting_handler(NULL);
}
static void recording_stopped_handler(void *data)
{
(void)data;
allow_buffer_access = true;
}
#endif
void radioart_init(bool entering_screen)
{
int i;
if (entering_screen)
{
for(i=0;i<MAX_RADIOART_IMAGES;i++)
{
radioart[i].handle = -1;
radioart[i].name[0] = '\0';
}
add_event(PLAYBACK_EVENT_START_PLAYBACK, true, playback_restarting_handler);
}
else
{
#if defined(HAVE_RECORDING)
add_event(RECORDING_EVENT_START, false, recording_started_handler);
add_event(RECORDING_EVENT_STOP, false, recording_stopped_handler);
#endif
}
}

132
tools/configure vendored
View file

@ -1030,7 +1030,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 0" bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
output="ajbrec.ajz" output="ajbrec.ajz"
appextra="recorder:gui" appextra="recorder:gui:radio"
#archosrom="$pwd/rombox.ucl" #archosrom="$pwd/rombox.ucl"
flash="$pwd/rockbox.ucl" flash="$pwd/rockbox.ucl"
plugins="yes" plugins="yes"
@ -1052,7 +1052,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 0" bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
output="ajbrec.ajz" output="ajbrec.ajz"
appextra="recorder:gui" appextra="recorder:gui:radio"
#archosrom="$pwd/rombox.ucl" #archosrom="$pwd/rombox.ucl"
flash="$pwd/rockbox.ucl" flash="$pwd/rockbox.ucl"
plugins="yes" plugins="yes"
@ -1074,7 +1074,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 0" bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
output="ajbrec.ajz" output="ajbrec.ajz"
appextra="recorder:gui" appextra="recorder:gui:radio"
#archosrom="$pwd/rombox.ucl" #archosrom="$pwd/rombox.ucl"
flash="$pwd/rockbox.ucl" flash="$pwd/rockbox.ucl"
plugins="yes" plugins="yes"
@ -1096,7 +1096,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 0" bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
output="ajbrec.ajz" output="ajbrec.ajz"
appextra="recorder:gui" appextra="recorder:gui:radio"
#archosrom="$pwd/rombox.ucl" #archosrom="$pwd/rombox.ucl"
flash="$pwd/rockbox.ucl" flash="$pwd/rockbox.ucl"
plugins="yes" plugins="yes"
@ -1118,7 +1118,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 0" bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
output="ajbrec.ajz" output="ajbrec.ajz"
appextra="recorder:gui" appextra="recorder:gui:radio"
#archosrom="$pwd/rombox.ucl" #archosrom="$pwd/rombox.ucl"
flash="$pwd/rockbox.ucl" flash="$pwd/rockbox.ucl"
plugins="yes" plugins="yes"
@ -1139,7 +1139,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 6" bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
output="cjbm.ajz" output="cjbm.ajz"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="" swcodec=""
# toolset is the tools within the tools directory that we build for # toolset is the tools within the tools directory that we build for
@ -1164,7 +1164,7 @@ fi
bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0" bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
output="rockbox.iriver" output="rockbox.iriver"
bootoutput="bootloader.iriver" bootoutput="bootloader.iriver"
appextra="recorder:gui" appextra="recorder:gui:radio"
flash="$pwd/rombox.iriver" flash="$pwd/rombox.iriver"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
@ -1188,7 +1188,7 @@ fi
bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0" bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0" bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
output="rockbox.iriver" output="rockbox.iriver"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
# toolset is the tools within the tools directory that we build for # toolset is the tools within the tools directory that we build for
@ -1212,7 +1212,7 @@ fi
bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0" bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
output="rockbox.iriver" output="rockbox.iriver"
bootoutput="bootloader.iriver" bootoutput="bootloader.iriver"
appextra="recorder:gui" appextra="recorder:gui:radio"
flash="$pwd/rombox.iriver" flash="$pwd/rombox.iriver"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
@ -1234,7 +1234,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 0" bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
output="rockbox.wma" output="rockbox.wma"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
# toolset is the tools within the tools directory that we build for # toolset is the tools within the tools directory that we build for
@ -1255,7 +1255,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 5" bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
output="rockbox.mi4" output="rockbox.mi4"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
boottool="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBBL" boottool="$rootdir/tools/scramble -mi4v3 -model=h10 -type=RBBL"
@ -1279,7 +1279,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 5" bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
output="rockbox.mi4" output="rockbox.mi4"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
boottool="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBBL" boottool="$rootdir/tools/scramble -mi4v2 -model=h105 -type=RBBL"
@ -1303,7 +1303,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 5" bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
output="rockbox.ipod" output="rockbox.ipod"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
bootoutput="bootloader-$modelname.ipod" bootoutput="bootloader-$modelname.ipod"
@ -1326,7 +1326,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 5" bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
output="rockbox.ipod" output="rockbox.ipod"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
bootoutput="bootloader-$modelname.ipod" bootoutput="bootloader-$modelname.ipod"
@ -1348,7 +1348,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 4" bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
output="rockbox.ipod" output="rockbox.ipod"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
bootoutput="bootloader-$modelname.ipod" bootoutput="bootloader-$modelname.ipod"
@ -1371,7 +1371,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 6" bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
output="rockbox.ipod" output="rockbox.ipod"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
bootoutput="bootloader-$modelname.ipod" bootoutput="bootloader-$modelname.ipod"
@ -1394,7 +1394,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 6" bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
output="rockbox.ipod" output="rockbox.ipod"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
bootoutput="bootloader-$modelname.ipod" bootoutput="bootloader-$modelname.ipod"
@ -1417,7 +1417,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 6" bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
output="rockbox.ipod" output="rockbox.ipod"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
bootoutput="bootloader-$modelname.ipod" bootoutput="bootloader-$modelname.ipod"
@ -1440,7 +1440,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 6" bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
output="rockbox.ipod" output="rockbox.ipod"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
bootoutput="bootloader-$modelname.ipod" bootoutput="bootloader-$modelname.ipod"
@ -1463,7 +1463,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 6" bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
output="rockbox.ipod" output="rockbox.ipod"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
bootoutput="bootloader-$modelname.ipod" bootoutput="bootloader-$modelname.ipod"
@ -1486,7 +1486,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 4" bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
output="rockbox.ipod" output="rockbox.ipod"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
bootoutput="bootloader-$modelname.ipod" bootoutput="bootloader-$modelname.ipod"
@ -1511,7 +1511,7 @@ fi
bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0" bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 7" bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 7"
output="rockbox.iaudio" output="rockbox.iaudio"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
# toolset is the tools within the tools directory that we build for # toolset is the tools within the tools directory that we build for
@ -1535,7 +1535,7 @@ fi
bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0" bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 7" bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 7"
output="rockbox.iaudio" output="rockbox.iaudio"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
# toolset is the tools within the tools directory that we build for # toolset is the tools within the tools directory that we build for
@ -1558,7 +1558,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 4" bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
output="rockbox.iaudio" output="rockbox.iaudio"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
bootoutput="I7_FW.BIN" bootoutput="I7_FW.BIN"
@ -1583,7 +1583,7 @@ fi
bmp2rb_native="$rootdir/tools/bmp2rb -f 4" bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
output="rockbox.d2" output="rockbox.d2"
bootoutput="bootloader-cowond2.bin" bootoutput="bootloader-cowond2.bin"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
toolset="$tccbitmaptools" toolset="$tccbitmaptools"
@ -1603,7 +1603,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 7" bmp2rb_native="$rootdir/tools/bmp2rb -f 7"
output="rockbox.iaudio" output="rockbox.iaudio"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
# toolset is the tools within the tools directory that we build for # toolset is the tools within the tools directory that we build for
@ -1625,7 +1625,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 4" bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
output="rockbox.gigabeat" output="rockbox.gigabeat"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
toolset=$gigabeatbitmaptools toolset=$gigabeatbitmaptools
@ -1647,7 +1647,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 4" bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
output="rockbox.gigabeat" output="rockbox.gigabeat"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
toolset="$gigabeatbitmaptools" toolset="$gigabeatbitmaptools"
@ -1671,7 +1671,7 @@ fi
bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0" bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0" bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
output="rockbox.mrobe500" output="rockbox.mrobe500"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
toolset=$gigabeatbitmaptools toolset=$gigabeatbitmaptools
@ -1695,7 +1695,7 @@ fi
bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0" bmp2rb_remotemono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0" bmp2rb_remotenative="$rootdir/tools/bmp2rb -f 0"
output="rockbox.mi4" output="rockbox.mi4"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
boottool="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBBL" boottool="$rootdir/tools/scramble -mi4v2 -model=m100 -type=RBBL"
@ -1721,7 +1721,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 0" bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
output="rockbox.logik" output="rockbox.logik"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="" plugins=""
swcodec="yes" swcodec="yes"
# toolset is the tools within the tools directory that we build for # toolset is the tools within the tools directory that we build for
@ -1744,7 +1744,7 @@ fi
tool="$rootdir/tools/scramble -creative=zvm" tool="$rootdir/tools/scramble -creative=zvm"
USE_ELF="yes" USE_ELF="yes"
output="rockbox.zvm" output="rockbox.zvm"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
toolset=$ipodbitmaptools toolset=$ipodbitmaptools
@ -1767,7 +1767,7 @@ fi
tool="$rootdir/tools/scramble -creative=zvm60 -no-ciff" tool="$rootdir/tools/scramble -creative=zvm60 -no-ciff"
USE_ELF="yes" USE_ELF="yes"
output="rockbox.zvm60" output="rockbox.zvm60"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
toolset=$ipodbitmaptools toolset=$ipodbitmaptools
@ -1790,7 +1790,7 @@ fi
tool="$rootdir/tools/scramble -creative=zenvision -no-ciff" tool="$rootdir/tools/scramble -creative=zenvision -no-ciff"
USE_ELF="yes" USE_ELF="yes"
output="rockbox.zv" output="rockbox.zv"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="" plugins=""
swcodec="yes" swcodec="yes"
toolset=$ipodbitmaptools toolset=$ipodbitmaptools
@ -1812,7 +1812,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 4" bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
output="rockbox.mi4" output="rockbox.mi4"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
boottool="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBBL" boottool="$rootdir/tools/scramble -mi4v3 -model=e200 -type=RBBL"
@ -1839,7 +1839,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 4" bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
output="rockbox.mi4" output="rockbox.mi4"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
boottool="$rootdir/tools/scramble -mi4r -model=e20r -type=RBBL" boottool="$rootdir/tools/scramble -mi4r -model=e20r -type=RBBL"
@ -1863,7 +1863,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 4" bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
output="rockbox.mi4" output="rockbox.mi4"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
boottool="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBBL" boottool="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBBL"
@ -1889,7 +1889,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 0" bmp2rb_native="$rootdir/tools/bmp2rb -f 0"
output="rockbox.m200" output="rockbox.m200"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="" plugins=""
swcodec="yes" swcodec="yes"
# toolset is the tools within the tools directory that we build for # toolset is the tools within the tools directory that we build for
@ -1913,7 +1913,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 4" bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
output="rockbox.c100" output="rockbox.c100"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="" plugins=""
swcodec="yes" swcodec="yes"
# toolset is the tools within the tools directory that we build for # toolset is the tools within the tools directory that we build for
@ -1935,7 +1935,7 @@ fi
tool="$rootdir/tools/scramble -add=clip" tool="$rootdir/tools/scramble -add=clip"
output="rockbox.sansa" output="rockbox.sansa"
bootoutput="bootloader-clip.sansa" bootoutput="bootloader-clip.sansa"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
toolset=$scramblebitmaptools toolset=$scramblebitmaptools
@ -1956,7 +1956,7 @@ fi
tool="$rootdir/tools/scramble -add=e2v2" tool="$rootdir/tools/scramble -add=e2v2"
output="rockbox.sansa" output="rockbox.sansa"
bootoutput="bootloader-e200v2.sansa" bootoutput="bootloader-e200v2.sansa"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
toolset=$scramblebitmaptools toolset=$scramblebitmaptools
@ -1977,7 +1977,7 @@ fi
tool="$rootdir/tools/scramble -add=m2v4" tool="$rootdir/tools/scramble -add=m2v4"
output="rockbox.sansa" output="rockbox.sansa"
bootoutput="bootloader-m200v4.sansa" bootoutput="bootloader-m200v4.sansa"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
toolset=$scramblebitmaptools toolset=$scramblebitmaptools
@ -1998,7 +1998,7 @@ fi
tool="$rootdir/tools/scramble -add=fuze" tool="$rootdir/tools/scramble -add=fuze"
output="rockbox.sansa" output="rockbox.sansa"
bootoutput="bootloader-fuze.sansa" bootoutput="bootloader-fuze.sansa"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
toolset=$scramblebitmaptools toolset=$scramblebitmaptools
@ -2019,7 +2019,7 @@ fi
tool="$rootdir/tools/scramble -add=c2v2" tool="$rootdir/tools/scramble -add=c2v2"
output="rockbox.sansa" output="rockbox.sansa"
bootoutput="bootloader-c200v2.sansa" bootoutput="bootloader-c200v2.sansa"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
# toolset is the tools within the tools directory that we build for # toolset is the tools within the tools directory that we build for
@ -2042,7 +2042,7 @@ fi
tool="$rootdir/tools/scramble -add=clv2" tool="$rootdir/tools/scramble -add=clv2"
output="rockbox.sansa" output="rockbox.sansa"
bootoutput="bootloader-clipv2.sansa" bootoutput="bootloader-clipv2.sansa"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
toolset=$scramblebitmaptools toolset=$scramblebitmaptools
@ -2086,7 +2086,7 @@ fi
tool="$rootdir/tools/scramble -add=cli+" tool="$rootdir/tools/scramble -add=cli+"
output="rockbox.sansa" output="rockbox.sansa"
bootoutput="bootloader-clipplus.sansa" bootoutput="bootloader-clipplus.sansa"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
toolset=$scramblebitmaptools toolset=$scramblebitmaptools
@ -2106,7 +2106,7 @@ fi
tool="$rootdir/tools/scramble -add=fuz2" tool="$rootdir/tools/scramble -add=fuz2"
output="rockbox.sansa" output="rockbox.sansa"
bootoutput="bootloader-fuzev2.sansa" bootoutput="bootloader-fuzev2.sansa"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
toolset=$scramblebitmaptools toolset=$scramblebitmaptools
@ -2126,7 +2126,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 5" bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
output="rockbox.elio" output="rockbox.elio"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
boottool="$rootdir/tools/scramble -mi4v2" boottool="$rootdir/tools/scramble -mi4v2"
@ -2150,7 +2150,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 4" bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
output="rockbox.mi4" output="rockbox.mi4"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="" plugins=""
swcodec="yes" swcodec="yes"
boottool="$rootdir/tools/scramble -mi4v3 -model=9200 -type=RBBL" boottool="$rootdir/tools/scramble -mi4v3 -model=9200 -type=RBBL"
@ -2174,7 +2174,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 4" bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
output="rockbox.mi4" output="rockbox.mi4"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
boottool="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBBL" boottool="$rootdir/tools/scramble -mi4v3 -model=1630 -type=RBBL"
@ -2198,7 +2198,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 4" bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
output="rockbox.mi4" output="rockbox.mi4"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="" plugins=""
swcodec="yes" swcodec="yes"
boottool="$rootdir/tools/scramble -mi4v3 -model=6330 -type=RBBL" boottool="$rootdir/tools/scramble -mi4v3 -model=6330 -type=RBBL"
@ -2222,7 +2222,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 4" bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
output="rockbox.meizu" output="rockbox.meizu"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="no" #FIXME plugins="no" #FIXME
swcodec="yes" swcodec="yes"
toolset=$genericbitmaptools toolset=$genericbitmaptools
@ -2244,7 +2244,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 4" bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
output="rockbox.meizu" output="rockbox.meizu"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="no" #FIXME plugins="no" #FIXME
swcodec="yes" swcodec="yes"
toolset=$genericbitmaptools toolset=$genericbitmaptools
@ -2266,7 +2266,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 4" bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
output="rockbox.meizu" output="rockbox.meizu"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="no" #FIXME plugins="no" #FIXME
swcodec="yes" swcodec="yes"
toolset=$genericbitmaptools toolset=$genericbitmaptools
@ -2288,7 +2288,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 4" bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
output="rockbox.vx747" output="rockbox.vx747"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
toolset=$genericbitmaptools toolset=$genericbitmaptools
@ -2310,7 +2310,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 4" bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
output="rockbox.vx767" output="rockbox.vx767"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="" #FIXME plugins="" #FIXME
swcodec="yes" swcodec="yes"
toolset=$genericbitmaptools toolset=$genericbitmaptools
@ -2332,7 +2332,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 4" bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
output="rockbox.vx747p" output="rockbox.vx747p"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
toolset=$genericbitmaptools toolset=$genericbitmaptools
@ -2354,7 +2354,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 4" bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
output="rockbox.vx777" output="rockbox.vx777"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
toolset=$genericbitmaptools toolset=$genericbitmaptools
@ -2376,7 +2376,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 4" bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
output="rockbox.lyre" output="rockbox.lyre"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="" plugins=""
swcodec="yes" swcodec="yes"
toolset=$scramblebitmaptools toolset=$scramblebitmaptools
@ -2398,7 +2398,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 4" bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
output="rockbox.mini2440" output="rockbox.mini2440"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="" plugins=""
swcodec="yes" swcodec="yes"
toolset=$scramblebitmaptools toolset=$scramblebitmaptools
@ -2420,7 +2420,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 4" bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
output="rockbox.mi4" output="rockbox.mi4"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
boottool="$rootdir/tools/scramble -mi4v2 -model=y820 -type=RBBL" boottool="$rootdir/tools/scramble -mi4v2 -model=y820 -type=RBBL"
@ -2444,7 +2444,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 2" bmp2rb_native="$rootdir/tools/bmp2rb -f 2"
output="rockbox.mi4" output="rockbox.mi4"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
boottool="$rootdir/tools/scramble -mi4v2 -model=y920 -type=RBBL" boottool="$rootdir/tools/scramble -mi4v2 -model=y920 -type=RBBL"
@ -2468,7 +2468,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 4" bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
output="rockbox.mi4" output="rockbox.mi4"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
boottool="$rootdir/tools/scramble -mi4v2 -model=y925 -type=RBBL" boottool="$rootdir/tools/scramble -mi4v2 -model=y925 -type=RBBL"
@ -2492,7 +2492,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 4" bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
output="rockbox.yps3" output="rockbox.yps3"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="no" #FIXME plugins="no" #FIXME
swcodec="yes" swcodec="yes"
toolset=$genericbitmaptools toolset=$genericbitmaptools
@ -2514,7 +2514,7 @@ fi
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 5" bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
output="rockbox.mi4" output="rockbox.mi4"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
boottool="$rootdir/tools/scramble -mi4v3 -model=v500 -type=RBBL" boottool="$rootdir/tools/scramble -mi4v3 -model=v500 -type=RBBL"
@ -2539,7 +2539,7 @@ fi
bmp2rb_native="$rootdir/tools/bmp2rb -f 7" bmp2rb_native="$rootdir/tools/bmp2rb -f 7"
output="rockbox.mpio" output="rockbox.mpio"
bootoutput="bootloader.mpio" bootoutput="bootloader.mpio"
appextra="recorder:gui" appextra="recorder:gui:radio"
plugins="yes" plugins="yes"
swcodec="yes" swcodec="yes"
# toolset is the tools within the tools directory that we build for # toolset is the tools within the tools directory that we build for