2002-06-27 00:20:00 +00:00
|
|
|
/***************************************************************************
|
|
|
|
* __________ __ ___.
|
|
|
|
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
|
|
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
|
|
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
|
|
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
|
|
* \/ \/ \/ \/ \/
|
|
|
|
* $Id$
|
|
|
|
*
|
|
|
|
* Copyright (C) 2002 by wavey@wavey.org
|
|
|
|
*
|
|
|
|
* All files in this archive are subject to the GNU General Public License.
|
|
|
|
* See the file COPYING in the source tree root for full license agreement.
|
|
|
|
*
|
|
|
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
|
|
* KIND, either express or implied.
|
|
|
|
*
|
|
|
|
****************************************************************************/
|
|
|
|
|
|
|
|
#include <stdio.h>
|
|
|
|
#include "config.h"
|
|
|
|
#include "settings.h"
|
|
|
|
#include "disk.h"
|
|
|
|
#include "panic.h"
|
|
|
|
#include "debug.h"
|
2002-06-27 01:08:11 +00:00
|
|
|
#include "button.h"
|
|
|
|
#include "lcd.h"
|
2002-06-28 11:54:47 +00:00
|
|
|
#include "mpeg.h"
|
2002-06-27 00:20:00 +00:00
|
|
|
|
|
|
|
struct user_settings global_settings;
|
|
|
|
|
|
|
|
/*
|
|
|
|
* persist all runtime user settings to disk
|
|
|
|
*/
|
|
|
|
int persist_all_settings( void )
|
|
|
|
{
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* persist all the playlist information to disk
|
|
|
|
*/
|
|
|
|
int persist_all_playlist_info( void )
|
|
|
|
{
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* load settings from disk
|
|
|
|
*/
|
|
|
|
void reload_all_settings( struct user_settings *settings )
|
|
|
|
{
|
|
|
|
DEBUGF( "reload_all_settings()\n" );
|
|
|
|
|
|
|
|
/* this is a TEMP stub version */
|
|
|
|
|
|
|
|
/* populate settings with default values */
|
|
|
|
|
|
|
|
reset_settings( settings );
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* reset all settings to their default value
|
|
|
|
*/
|
|
|
|
void reset_settings( struct user_settings *settings ) {
|
|
|
|
|
|
|
|
DEBUGF( "reset_settings()\n" );
|
|
|
|
|
2002-06-28 11:54:47 +00:00
|
|
|
settings->volume = mpeg_sound_default(SOUND_VOLUME);
|
2002-06-27 00:20:00 +00:00
|
|
|
settings->balance = DEFAULT_BALANCE_SETTING;
|
2002-06-28 11:54:47 +00:00
|
|
|
settings->bass = mpeg_sound_default(SOUND_BASS);
|
|
|
|
settings->treble = mpeg_sound_default(SOUND_TREBLE);
|
2002-06-27 00:20:00 +00:00
|
|
|
settings->loudness = DEFAULT_LOUDNESS_SETTING;
|
|
|
|
settings->bass_boost = DEFAULT_BASS_BOOST_SETTING;
|
|
|
|
settings->contrast = DEFAULT_CONTRAST_SETTING;
|
|
|
|
settings->poweroff = DEFAULT_POWEROFF_SETTING;
|
|
|
|
settings->backlight = DEFAULT_BACKLIGHT_SETTING;
|
|
|
|
settings->wps_display = DEFAULT_WPS_DISPLAY;
|
2002-06-27 09:12:29 +00:00
|
|
|
settings->mp3filter = true;
|
|
|
|
settings->playlist_shuffle = false;
|
2002-06-27 00:20:00 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
* dump the list of current settings
|
|
|
|
*/
|
|
|
|
void display_current_settings( struct user_settings *settings )
|
|
|
|
{
|
|
|
|
#ifdef DEBUG
|
|
|
|
DEBUGF( "\ndisplay_current_settings()\n" );
|
|
|
|
|
|
|
|
DEBUGF( "\nvolume:\t\t%d\nbalance:\t%d\nbass:\t\t%d\ntreble:\t\t%d\nloudness:\t%d\nbass boost:\t%d\n",
|
|
|
|
settings->volume,
|
|
|
|
settings->balance,
|
|
|
|
settings->bass,
|
|
|
|
settings->treble,
|
|
|
|
settings->loudness,
|
|
|
|
settings->bass_boost );
|
|
|
|
|
|
|
|
DEBUGF( "contrast:\t%d\npoweroff:\t%d\nbacklight:\t%d\n",
|
|
|
|
settings->contrast,
|
|
|
|
settings->poweroff,
|
|
|
|
settings->backlight );
|
|
|
|
#else
|
|
|
|
/* Get rid of warning */
|
|
|
|
settings = settings;
|
|
|
|
#endif
|
|
|
|
}
|
2002-06-27 01:08:11 +00:00
|
|
|
|
|
|
|
void set_bool(char* string, bool* variable )
|
|
|
|
{
|
|
|
|
bool done = false;
|
|
|
|
|
|
|
|
lcd_clear_display();
|
|
|
|
lcd_puts_scroll(0,0,string);
|
|
|
|
|
|
|
|
while ( !done ) {
|
|
|
|
lcd_puts(0, 1, *variable ? "on " : "off");
|
|
|
|
lcd_update();
|
|
|
|
|
|
|
|
switch ( button_get(true) ) {
|
|
|
|
#ifdef HAVE_RECORDER_KEYPAD
|
|
|
|
case BUTTON_LEFT:
|
|
|
|
#else
|
|
|
|
case BUTTON_STOP:
|
|
|
|
case BUTTON_MENU:
|
|
|
|
#endif
|
|
|
|
done = true;
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
*variable = !*variable;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
lcd_stop_scroll();
|
|
|
|
}
|
|
|
|
|
|
|
|
void set_int(char* string,
|
|
|
|
char* unit,
|
|
|
|
int* variable,
|
|
|
|
void (*function)(int),
|
|
|
|
int step,
|
|
|
|
int min,
|
|
|
|
int max )
|
|
|
|
{
|
|
|
|
bool done = false;
|
|
|
|
|
|
|
|
lcd_clear_display();
|
|
|
|
lcd_puts_scroll(0,0,string);
|
|
|
|
|
|
|
|
while (!done) {
|
|
|
|
char str[32];
|
|
|
|
snprintf(str,sizeof str,"%d %s ", *variable, unit);
|
|
|
|
lcd_puts(0,1,str);
|
|
|
|
lcd_update();
|
|
|
|
|
|
|
|
switch( button_get(true) ) {
|
|
|
|
#ifdef HAVE_RECORDER_KEYPAD
|
|
|
|
case BUTTON_UP:
|
|
|
|
#else
|
|
|
|
case BUTTON_RIGHT:
|
|
|
|
#endif
|
|
|
|
*variable += step;
|
|
|
|
if(*variable > max )
|
|
|
|
*variable = max;
|
|
|
|
break;
|
|
|
|
|
|
|
|
#ifdef HAVE_RECORDER_KEYPAD
|
|
|
|
case BUTTON_DOWN:
|
|
|
|
#else
|
|
|
|
case BUTTON_LEFT:
|
|
|
|
#endif
|
|
|
|
*variable -= step;
|
|
|
|
if(*variable < min )
|
|
|
|
*variable = min;
|
|
|
|
break;
|
|
|
|
|
|
|
|
#ifdef HAVE_RECORDER_KEYPAD
|
|
|
|
case BUTTON_LEFT:
|
|
|
|
#else
|
|
|
|
case BUTTON_STOP:
|
|
|
|
case BUTTON_MENU:
|
|
|
|
#endif
|
|
|
|
done = true;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
if ( function )
|
|
|
|
function(*variable);
|
|
|
|
}
|
|
|
|
lcd_stop_scroll();
|
|
|
|
}
|
|
|
|
|
|
|
|
void set_option(char* string, int* variable, char* options[], int numoptions )
|
|
|
|
{
|
|
|
|
bool done = false;
|
|
|
|
|
|
|
|
lcd_clear_display();
|
|
|
|
lcd_puts_scroll(0,0,string);
|
|
|
|
|
|
|
|
while ( !done ) {
|
|
|
|
lcd_puts(0, 1, options[*variable]);
|
|
|
|
lcd_update();
|
|
|
|
|
|
|
|
switch ( button_get(true) ) {
|
|
|
|
#ifdef HAVE_RECORDER_KEYPAD
|
|
|
|
case BUTTON_UP:
|
|
|
|
#else
|
|
|
|
case BUTTON_RIGHT:
|
|
|
|
#endif
|
|
|
|
if ( *variable < (numoptions-1) )
|
|
|
|
(*variable)++;
|
|
|
|
break;
|
|
|
|
|
|
|
|
#ifdef HAVE_RECORDER_KEYPAD
|
|
|
|
case BUTTON_DOWN:
|
|
|
|
#else
|
|
|
|
case BUTTON_LEFT:
|
|
|
|
#endif
|
|
|
|
if ( *variable > 0 )
|
|
|
|
(*variable)--;
|
|
|
|
break;
|
|
|
|
|
|
|
|
#ifdef HAVE_RECORDER_KEYPAD
|
|
|
|
case BUTTON_LEFT:
|
|
|
|
#else
|
|
|
|
case BUTTON_STOP:
|
|
|
|
case BUTTON_MENU:
|
|
|
|
#endif
|
|
|
|
done = true;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
lcd_stop_scroll();
|
|
|
|
}
|