Bass boost removed in favour of some new sound settings: Super bass and five new MDB parameters: strength, harmonics, center, shape and enable
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4839 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
012c541d80
commit
7bade1a24f
9 changed files with 291 additions and 89 deletions
|
@ -326,9 +326,9 @@ voice: "Loudness"
|
||||||
new:
|
new:
|
||||||
|
|
||||||
id: LANG_BBOOST
|
id: LANG_BBOOST
|
||||||
desc: in sound settings
|
desc: DEPRECATED
|
||||||
eng: "Bass Boost"
|
eng: ""
|
||||||
voice: "Bass Boost"
|
voice: ""
|
||||||
new:
|
new:
|
||||||
|
|
||||||
id: LANG_DECAY
|
id: LANG_DECAY
|
||||||
|
@ -2757,3 +2757,39 @@ desc: in radio screen
|
||||||
eng: "Action"
|
eng: "Action"
|
||||||
voice: ""
|
voice: ""
|
||||||
new:
|
new:
|
||||||
|
|
||||||
|
id: LANG_MDB_STRENGTH
|
||||||
|
desc: in sound settings
|
||||||
|
eng: "MDB Strength"
|
||||||
|
voice: "MDB Strength"
|
||||||
|
new:
|
||||||
|
|
||||||
|
id: LANG_MDB_HARMONICS
|
||||||
|
desc: in sound settings
|
||||||
|
eng: "MDB Harmonics"
|
||||||
|
voice: "MDB Harmonics"
|
||||||
|
new:
|
||||||
|
|
||||||
|
id: LANG_MDB_CENTER
|
||||||
|
desc: in sound settings
|
||||||
|
eng: "MDB Center frequency"
|
||||||
|
voice: "MDB Center frequency"
|
||||||
|
new:
|
||||||
|
|
||||||
|
id: LANG_MDB_SHAPE
|
||||||
|
desc: in sound settings
|
||||||
|
eng: "MDB Shape"
|
||||||
|
voice: "MDB Shape"
|
||||||
|
new:
|
||||||
|
|
||||||
|
id: LANG_MDB_ENABLE
|
||||||
|
desc: in sound settings
|
||||||
|
eng: "MDB Enable"
|
||||||
|
voice: "MDB Enable"
|
||||||
|
new:
|
||||||
|
|
||||||
|
id: LANG_SUPERBASS
|
||||||
|
desc: in sound settings
|
||||||
|
eng: "Super bass"
|
||||||
|
voice: "Super bass"
|
||||||
|
new:
|
||||||
|
|
18
apps/main.c
18
apps/main.c
|
@ -89,9 +89,14 @@ void init(void)
|
||||||
global_settings.treble,
|
global_settings.treble,
|
||||||
global_settings.balance,
|
global_settings.balance,
|
||||||
global_settings.loudness,
|
global_settings.loudness,
|
||||||
global_settings.bass_boost,
|
|
||||||
global_settings.avc,
|
global_settings.avc,
|
||||||
global_settings.channel_config );
|
global_settings.channel_config,
|
||||||
|
global_settings.mdb_strength,
|
||||||
|
global_settings.mdb_harmonics,
|
||||||
|
global_settings.mdb_center,
|
||||||
|
global_settings.mdb_shape,
|
||||||
|
global_settings.mdb_enable,
|
||||||
|
global_settings.superbass);
|
||||||
mpeg_init();
|
mpeg_init();
|
||||||
while (button_get(false) != 0)
|
while (button_get(false) != 0)
|
||||||
; /* Empty the keyboard buffer */
|
; /* Empty the keyboard buffer */
|
||||||
|
@ -227,9 +232,14 @@ void init(void)
|
||||||
global_settings.treble,
|
global_settings.treble,
|
||||||
global_settings.balance,
|
global_settings.balance,
|
||||||
global_settings.loudness,
|
global_settings.loudness,
|
||||||
global_settings.bass_boost,
|
|
||||||
global_settings.avc,
|
global_settings.avc,
|
||||||
global_settings.channel_config );
|
global_settings.channel_config,
|
||||||
|
global_settings.mdb_strength,
|
||||||
|
global_settings.mdb_harmonics,
|
||||||
|
global_settings.mdb_center,
|
||||||
|
global_settings.mdb_shape,
|
||||||
|
global_settings.mdb_enable,
|
||||||
|
global_settings.superbass);
|
||||||
mpeg_init();
|
mpeg_init();
|
||||||
talk_init();
|
talk_init();
|
||||||
|
|
||||||
|
|
|
@ -203,14 +203,7 @@ bool radio_screen(void)
|
||||||
|
|
||||||
mpeg_init_recording();
|
mpeg_init_recording();
|
||||||
|
|
||||||
mpeg_sound_channel_config(global_settings.channel_config);
|
sound_settings_apply();
|
||||||
mpeg_sound_set(SOUND_BASS, global_settings.bass);
|
|
||||||
mpeg_sound_set(SOUND_TREBLE, global_settings.treble);
|
|
||||||
mpeg_sound_set(SOUND_BALANCE, global_settings.balance);
|
|
||||||
mpeg_sound_set(SOUND_VOLUME, global_settings.volume);
|
|
||||||
mpeg_sound_set(SOUND_LOUDNESS, global_settings.loudness);
|
|
||||||
mpeg_sound_set(SOUND_SUPERBASS, global_settings.bass_boost);
|
|
||||||
mpeg_sound_set(SOUND_AVC, global_settings.avc);
|
|
||||||
|
|
||||||
/* Yes, we use the D/A for monitoring */
|
/* Yes, we use the D/A for monitoring */
|
||||||
peak_meter_playback(true);
|
peak_meter_playback(true);
|
||||||
|
@ -532,14 +525,7 @@ bool radio_screen(void)
|
||||||
|
|
||||||
mpeg_init_playback();
|
mpeg_init_playback();
|
||||||
|
|
||||||
mpeg_sound_channel_config(global_settings.channel_config);
|
sound_settings_apply();
|
||||||
mpeg_sound_set(SOUND_BASS, global_settings.bass);
|
|
||||||
mpeg_sound_set(SOUND_TREBLE, global_settings.treble);
|
|
||||||
mpeg_sound_set(SOUND_BALANCE, global_settings.balance);
|
|
||||||
mpeg_sound_set(SOUND_VOLUME, global_settings.volume);
|
|
||||||
mpeg_sound_set(SOUND_LOUDNESS, global_settings.loudness);
|
|
||||||
mpeg_sound_set(SOUND_SUPERBASS, global_settings.bass_boost);
|
|
||||||
mpeg_sound_set(SOUND_AVC, global_settings.avc);
|
|
||||||
|
|
||||||
fmradio_set_status(0);
|
fmradio_set_status(0);
|
||||||
|
|
||||||
|
|
|
@ -606,14 +606,7 @@ bool recording_screen(void)
|
||||||
|
|
||||||
mpeg_init_playback();
|
mpeg_init_playback();
|
||||||
|
|
||||||
mpeg_sound_channel_config(global_settings.channel_config);
|
sound_settings_apply();
|
||||||
mpeg_sound_set(SOUND_BASS, global_settings.bass);
|
|
||||||
mpeg_sound_set(SOUND_TREBLE, global_settings.treble);
|
|
||||||
mpeg_sound_set(SOUND_BALANCE, global_settings.balance);
|
|
||||||
mpeg_sound_set(SOUND_VOLUME, global_settings.volume);
|
|
||||||
mpeg_sound_set(SOUND_LOUDNESS, global_settings.loudness);
|
|
||||||
mpeg_sound_set(SOUND_SUPERBASS, global_settings.bass_boost);
|
|
||||||
mpeg_sound_set(SOUND_AVC, global_settings.avc);
|
|
||||||
|
|
||||||
lcd_setfont(FONT_UI);
|
lcd_setfont(FONT_UI);
|
||||||
|
|
||||||
|
|
|
@ -71,7 +71,7 @@ char rockboxdir[] = ROCKBOX_DIR; /* config/font/data file directory */
|
||||||
char rec_base_directory[] = REC_BASE_DIR;
|
char rec_base_directory[] = REC_BASE_DIR;
|
||||||
|
|
||||||
|
|
||||||
#define CONFIG_BLOCK_VERSION 13
|
#define CONFIG_BLOCK_VERSION 14
|
||||||
#define CONFIG_BLOCK_SIZE 512
|
#define CONFIG_BLOCK_SIZE 512
|
||||||
#define RTC_BLOCK_SIZE 44
|
#define RTC_BLOCK_SIZE 44
|
||||||
|
|
||||||
|
@ -165,8 +165,8 @@ static struct bit_entry rtc_bits[] =
|
||||||
{5 | SIGNED, S_O(treble), 0, "treble", NULL }, /* -15..+15 / -12..+12 */
|
{5 | SIGNED, S_O(treble), 0, "treble", NULL }, /* -15..+15 / -12..+12 */
|
||||||
#ifdef HAVE_MAS3587F
|
#ifdef HAVE_MAS3587F
|
||||||
{5, S_O(loudness), 0, "loudness", NULL }, /* 0...17 */
|
{5, S_O(loudness), 0, "loudness", NULL }, /* 0...17 */
|
||||||
{7, S_O(bass_boost), 0, "bass boost", NULL }, /* 0...100 */
|
|
||||||
{3, S_O(avc), 0, "auto volume", "off,20ms,2,4,8" },
|
{3, S_O(avc), 0, "auto volume", "off,20ms,2,4,8" },
|
||||||
|
{1, S_O(superbass), false, "superbass", off_on },
|
||||||
#endif
|
#endif
|
||||||
{3, S_O(channel_config), 6, "channels",
|
{3, S_O(channel_config), 6, "channels",
|
||||||
"stereo,stereo narrow,mono,mono left,mono right,karaoke,stereo wide" },
|
"stereo,stereo narrow,mono,mono left,mono right,karaoke,stereo wide" },
|
||||||
|
@ -325,7 +325,11 @@ static struct bit_entry hd_bits[] =
|
||||||
/* If values are just added to the end, no need to bump the version. */
|
/* If values are just added to the end, no need to bump the version. */
|
||||||
{2, S_O(sort_file), 0, "sort files", "alpha,oldest,newest,type" },
|
{2, S_O(sort_file), 0, "sort files", "alpha,oldest,newest,type" },
|
||||||
{2, S_O(sort_dir), 0, "sort dirs", "alpha,oldest,newest" },
|
{2, S_O(sort_dir), 0, "sort dirs", "alpha,oldest,newest" },
|
||||||
|
{7, S_O(mdb_strength), 0, "mdb strength", NULL},
|
||||||
|
{7, S_O(mdb_harmonics), 0, "mdb harmonics", NULL},
|
||||||
|
{9, S_O(mdb_center), 0, "mdb center", NULL},
|
||||||
|
{9, S_O(mdb_shape), 0, "mdb shape", NULL},
|
||||||
|
{1, S_O(mdb_enable), 0, "mdb enable", off_on},
|
||||||
|
|
||||||
/* Sum of all bit sizes must not grow beyond 0xB8*8 = 1472 */
|
/* Sum of all bit sizes must not grow beyond 0xB8*8 = 1472 */
|
||||||
};
|
};
|
||||||
|
@ -667,10 +671,8 @@ void settings_apply_pm_range(void)
|
||||||
}
|
}
|
||||||
#endif /* HAVE_LCD_BITMAP */
|
#endif /* HAVE_LCD_BITMAP */
|
||||||
|
|
||||||
void settings_apply(void)
|
void sound_settings_apply(void)
|
||||||
{
|
{
|
||||||
char buf[64];
|
|
||||||
|
|
||||||
mpeg_sound_set(SOUND_BASS, global_settings.bass);
|
mpeg_sound_set(SOUND_BASS, global_settings.bass);
|
||||||
mpeg_sound_set(SOUND_TREBLE, global_settings.treble);
|
mpeg_sound_set(SOUND_TREBLE, global_settings.treble);
|
||||||
mpeg_sound_set(SOUND_BALANCE, global_settings.balance);
|
mpeg_sound_set(SOUND_BALANCE, global_settings.balance);
|
||||||
|
@ -678,9 +680,21 @@ void settings_apply(void)
|
||||||
mpeg_sound_set(SOUND_CHANNELS, global_settings.channel_config);
|
mpeg_sound_set(SOUND_CHANNELS, global_settings.channel_config);
|
||||||
#ifdef HAVE_MAS3587F
|
#ifdef HAVE_MAS3587F
|
||||||
mpeg_sound_set(SOUND_LOUDNESS, global_settings.loudness);
|
mpeg_sound_set(SOUND_LOUDNESS, global_settings.loudness);
|
||||||
mpeg_sound_set(SOUND_SUPERBASS, global_settings.bass_boost);
|
|
||||||
mpeg_sound_set(SOUND_AVC, global_settings.avc);
|
mpeg_sound_set(SOUND_AVC, global_settings.avc);
|
||||||
|
mpeg_sound_set(SOUND_MDB_STRENGTH, global_settings.mdb_strength);
|
||||||
|
mpeg_sound_set(SOUND_MDB_HARMONICS, global_settings.mdb_harmonics);
|
||||||
|
mpeg_sound_set(SOUND_MDB_CENTER, global_settings.mdb_center);
|
||||||
|
mpeg_sound_set(SOUND_MDB_SHAPE, global_settings.mdb_shape);
|
||||||
|
mpeg_sound_set(SOUND_MDB_ENABLE, global_settings.mdb_enable);
|
||||||
|
mpeg_sound_set(SOUND_SUPERBASS, global_settings.superbass);
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void settings_apply(void)
|
||||||
|
{
|
||||||
|
char buf[64];
|
||||||
|
|
||||||
|
sound_settings_apply();
|
||||||
|
|
||||||
mpeg_set_buffer_margin(global_settings.buffer_margin);
|
mpeg_set_buffer_margin(global_settings.buffer_margin);
|
||||||
|
|
||||||
|
@ -1207,9 +1221,14 @@ void settings_reset(void) {
|
||||||
global_settings.bass = mpeg_sound_default(SOUND_BASS);
|
global_settings.bass = mpeg_sound_default(SOUND_BASS);
|
||||||
global_settings.treble = mpeg_sound_default(SOUND_TREBLE);
|
global_settings.treble = mpeg_sound_default(SOUND_TREBLE);
|
||||||
global_settings.loudness = mpeg_sound_default(SOUND_LOUDNESS);
|
global_settings.loudness = mpeg_sound_default(SOUND_LOUDNESS);
|
||||||
global_settings.bass_boost = mpeg_sound_default(SOUND_SUPERBASS);
|
|
||||||
global_settings.avc = mpeg_sound_default(SOUND_AVC);
|
global_settings.avc = mpeg_sound_default(SOUND_AVC);
|
||||||
global_settings.channel_config = mpeg_sound_default(SOUND_CHANNELS);
|
global_settings.channel_config = mpeg_sound_default(SOUND_CHANNELS);
|
||||||
|
global_settings.mdb_strength = mpeg_sound_default(SOUND_MDB_STRENGTH);
|
||||||
|
global_settings.mdb_harmonics = mpeg_sound_default(SOUND_MDB_HARMONICS);
|
||||||
|
global_settings.mdb_center = mpeg_sound_default(SOUND_MDB_CENTER);
|
||||||
|
global_settings.mdb_shape = mpeg_sound_default(SOUND_MDB_SHAPE);
|
||||||
|
global_settings.mdb_enable = mpeg_sound_default(SOUND_MDB_ENABLE);
|
||||||
|
global_settings.superbass = mpeg_sound_default(SOUND_SUPERBASS);
|
||||||
global_settings.contrast = lcd_default_contrast();
|
global_settings.contrast = lcd_default_contrast();
|
||||||
global_settings.wps_file[0] = '\0';
|
global_settings.wps_file[0] = '\0';
|
||||||
global_settings.font_file[0] = '\0';
|
global_settings.font_file[0] = '\0';
|
||||||
|
|
|
@ -71,9 +71,14 @@ struct user_settings
|
||||||
int bass; /* bass eq: 0-100 0=off 100=max */
|
int bass; /* bass eq: 0-100 0=off 100=max */
|
||||||
int treble; /* treble eq: 0-100 0=low 100=high */
|
int treble; /* treble eq: 0-100 0=low 100=high */
|
||||||
int loudness; /* loudness eq: 0-100 0=off 100=max */
|
int loudness; /* loudness eq: 0-100 0=off 100=max */
|
||||||
int bass_boost; /* bass boost eq: 0-100 0=off 100=max */
|
|
||||||
int avc; /* auto volume correct: 0=off, 1=20ms, 2=2s 3=4s 4=8s */
|
int avc; /* auto volume correct: 0=off, 1=20ms, 2=2s 3=4s 4=8s */
|
||||||
int channel_config; /* Stereo, Mono, Mono left, Mono right */
|
int channel_config; /* Stereo, Mono, Mono left, Mono right */
|
||||||
|
int mdb_strength; /* 0-127dB */
|
||||||
|
int mdb_harmonics; /* 0-100% */
|
||||||
|
int mdb_center; /* 20-300Hz */
|
||||||
|
int mdb_shape; /* 50-300Hz */
|
||||||
|
bool mdb_enable; /* true/false */
|
||||||
|
bool superbass; /* true/false */
|
||||||
|
|
||||||
int rec_quality; /* 0-7 */
|
int rec_quality; /* 0-7 */
|
||||||
int rec_source; /* 0=mic, 1=line, 2=S/PDIF */
|
int rec_source; /* 0=mic, 1=line, 2=S/PDIF */
|
||||||
|
@ -226,6 +231,7 @@ struct opt_items {
|
||||||
int settings_save(void);
|
int settings_save(void);
|
||||||
void settings_load(int which);
|
void settings_load(int which);
|
||||||
void settings_reset(void);
|
void settings_reset(void);
|
||||||
|
void sound_settings_apply(void);
|
||||||
void settings_apply(void);
|
void settings_apply(void);
|
||||||
void settings_apply_pm_range(void);
|
void settings_apply_pm_range(void);
|
||||||
void settings_display(void);
|
void settings_display(void);
|
||||||
|
|
|
@ -55,9 +55,11 @@ bool set_sound(char* string,
|
||||||
char* unit;
|
char* unit;
|
||||||
char str[32];
|
char str[32];
|
||||||
int talkunit = UNIT_INT;
|
int talkunit = UNIT_INT;
|
||||||
|
int steps;
|
||||||
|
|
||||||
unit = mpeg_sound_unit(setting);
|
unit = mpeg_sound_unit(setting);
|
||||||
numdec = mpeg_sound_numdecimals(setting);
|
numdec = mpeg_sound_numdecimals(setting);
|
||||||
|
steps = mpeg_sound_steps(setting);
|
||||||
min = mpeg_sound_min(setting);
|
min = mpeg_sound_min(setting);
|
||||||
max = mpeg_sound_max(setting);
|
max = mpeg_sound_max(setting);
|
||||||
if (*unit == 'd') /* crude reconstruction */
|
if (*unit == 'd') /* crude reconstruction */
|
||||||
|
@ -103,7 +105,7 @@ bool set_sound(char* string,
|
||||||
case BUTTON_RIGHT:
|
case BUTTON_RIGHT:
|
||||||
case BUTTON_RIGHT | BUTTON_REPEAT:
|
case BUTTON_RIGHT | BUTTON_REPEAT:
|
||||||
#endif
|
#endif
|
||||||
(*variable)++;
|
(*variable)+=steps;
|
||||||
if(*variable > max )
|
if(*variable > max )
|
||||||
*variable = max;
|
*variable = max;
|
||||||
changed = true;
|
changed = true;
|
||||||
|
@ -116,7 +118,7 @@ bool set_sound(char* string,
|
||||||
case BUTTON_LEFT:
|
case BUTTON_LEFT:
|
||||||
case BUTTON_LEFT | BUTTON_REPEAT:
|
case BUTTON_LEFT | BUTTON_REPEAT:
|
||||||
#endif
|
#endif
|
||||||
(*variable)--;
|
(*variable)-=steps;
|
||||||
if(*variable < min )
|
if(*variable < min )
|
||||||
*variable = min;
|
*variable = min;
|
||||||
changed = true;
|
changed = true;
|
||||||
|
@ -176,10 +178,56 @@ static bool loudness(void)
|
||||||
SOUND_LOUDNESS);
|
SOUND_LOUDNESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool bass_boost(void)
|
static bool mdb_strength(void)
|
||||||
{
|
{
|
||||||
return set_sound(str(LANG_BBOOST), &global_settings.bass_boost,
|
return set_sound(str(LANG_MDB_STRENGTH), &global_settings.mdb_strength,
|
||||||
SOUND_SUPERBASS);
|
SOUND_MDB_STRENGTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool mdb_harmonics(void)
|
||||||
|
{
|
||||||
|
return set_sound(str(LANG_MDB_HARMONICS), &global_settings.mdb_harmonics,
|
||||||
|
SOUND_MDB_HARMONICS);
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool mdb_center(void)
|
||||||
|
{
|
||||||
|
return set_sound(str(LANG_MDB_CENTER), &global_settings.mdb_center,
|
||||||
|
SOUND_MDB_CENTER);
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool mdb_shape(void)
|
||||||
|
{
|
||||||
|
return set_sound(str(LANG_MDB_SHAPE), &global_settings.mdb_shape,
|
||||||
|
SOUND_MDB_SHAPE);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void set_mdb_enable(bool value)
|
||||||
|
{
|
||||||
|
mpeg_sound_set(SOUND_MDB_ENABLE, (int)value);
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool mdb_enable(void)
|
||||||
|
{
|
||||||
|
return set_bool_options(str(LANG_MDB_ENABLE),
|
||||||
|
&global_settings.mdb_enable,
|
||||||
|
STR(LANG_SET_BOOL_YES),
|
||||||
|
STR(LANG_SET_BOOL_NO),
|
||||||
|
set_mdb_enable);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void set_superbass(bool value)
|
||||||
|
{
|
||||||
|
mpeg_sound_set(SOUND_SUPERBASS, (int)value);
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool superbass(void)
|
||||||
|
{
|
||||||
|
return set_bool_options(str(LANG_SUPERBASS),
|
||||||
|
&global_settings.superbass,
|
||||||
|
STR(LANG_SET_BOOL_YES),
|
||||||
|
STR(LANG_SET_BOOL_NO),
|
||||||
|
set_superbass);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void set_avc(int val)
|
static void set_avc(int val)
|
||||||
|
@ -363,8 +411,13 @@ bool sound_menu(void)
|
||||||
{ STR(LANG_CHANNEL_MENU), chanconf },
|
{ STR(LANG_CHANNEL_MENU), chanconf },
|
||||||
#ifdef HAVE_MAS3587F
|
#ifdef HAVE_MAS3587F
|
||||||
{ STR(LANG_LOUDNESS), loudness },
|
{ STR(LANG_LOUDNESS), loudness },
|
||||||
{ STR(LANG_BBOOST), bass_boost },
|
{ STR(LANG_AUTOVOL), avc },
|
||||||
{ STR(LANG_AUTOVOL), avc }
|
{ STR(LANG_SUPERBASS), superbass },
|
||||||
|
{ STR(LANG_MDB_ENABLE), mdb_enable },
|
||||||
|
{ STR(LANG_MDB_STRENGTH), mdb_strength },
|
||||||
|
{ STR(LANG_MDB_HARMONICS), mdb_harmonics },
|
||||||
|
{ STR(LANG_MDB_CENTER), mdb_center },
|
||||||
|
{ STR(LANG_MDB_SHAPE), mdb_shape },
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,10 @@
|
||||||
|
|
||||||
/* functions formerly in mpeg.c */
|
/* functions formerly in mpeg.c */
|
||||||
void mp3_init(int volume, int bass, int treble, int balance,
|
void mp3_init(int volume, int bass, int treble, int balance,
|
||||||
int loudness, int bass_boost, int avc, int channel_config);
|
int loudness, int avc, int channel_config,
|
||||||
|
int mdb_strength, int mdb_harmonics,
|
||||||
|
int mdb_center, int mdb_shape, bool mdb_enable,
|
||||||
|
bool superbass);
|
||||||
void mpeg_sound_set(int setting, int value);
|
void mpeg_sound_set(int setting, int value);
|
||||||
int mpeg_sound_min(int setting);
|
int mpeg_sound_min(int setting);
|
||||||
int mpeg_sound_max(int setting);
|
int mpeg_sound_max(int setting);
|
||||||
|
@ -35,6 +38,7 @@ void mpeg_sound_channel_config(int configuration);
|
||||||
int mpeg_val2phys(int setting, int value);
|
int mpeg_val2phys(int setting, int value);
|
||||||
char *mpeg_sound_unit(int setting);
|
char *mpeg_sound_unit(int setting);
|
||||||
int mpeg_sound_numdecimals(int setting);
|
int mpeg_sound_numdecimals(int setting);
|
||||||
|
int mpeg_sound_steps(int setting);
|
||||||
#if defined(HAVE_MAS3587F) || defined(SIMULATOR)
|
#if defined(HAVE_MAS3587F) || defined(SIMULATOR)
|
||||||
void mpeg_set_pitch(int percent);
|
void mpeg_set_pitch(int percent);
|
||||||
#endif
|
#endif
|
||||||
|
@ -63,13 +67,18 @@ unsigned char* mp3_get_pos(void);
|
||||||
#define SOUND_TREBLE 2
|
#define SOUND_TREBLE 2
|
||||||
#define SOUND_BALANCE 3
|
#define SOUND_BALANCE 3
|
||||||
#define SOUND_LOUDNESS 4
|
#define SOUND_LOUDNESS 4
|
||||||
#define SOUND_SUPERBASS 5
|
#define SOUND_AVC 5
|
||||||
#define SOUND_AVC 6
|
#define SOUND_CHANNELS 6
|
||||||
#define SOUND_CHANNELS 7
|
#define SOUND_LEFT_GAIN 7
|
||||||
#define SOUND_LEFT_GAIN 8
|
#define SOUND_RIGHT_GAIN 8
|
||||||
#define SOUND_RIGHT_GAIN 9
|
#define SOUND_MIC_GAIN 9
|
||||||
#define SOUND_MIC_GAIN 10
|
#define SOUND_MDB_STRENGTH 10
|
||||||
#define SOUND_NUMSETTINGS 11
|
#define SOUND_MDB_HARMONICS 11
|
||||||
|
#define SOUND_MDB_CENTER 12
|
||||||
|
#define SOUND_MDB_SHAPE 13
|
||||||
|
#define SOUND_MDB_ENABLE 14
|
||||||
|
#define SOUND_SUPERBASS 15
|
||||||
|
#define SOUND_NUMSETTINGS 16
|
||||||
|
|
||||||
#define MPEG_SOUND_STEREO 0
|
#define MPEG_SOUND_STEREO 0
|
||||||
#define MPEG_SOUND_STEREO_NARROW 1
|
#define MPEG_SOUND_STEREO_NARROW 1
|
||||||
|
|
|
@ -68,12 +68,17 @@ static char *units[] =
|
||||||
"dB", /* Treble */
|
"dB", /* Treble */
|
||||||
"%", /* Balance */
|
"%", /* Balance */
|
||||||
"dB", /* Loudness */
|
"dB", /* Loudness */
|
||||||
"%", /* Bass boost */
|
|
||||||
"", /* AVC */
|
"", /* AVC */
|
||||||
"", /* Channels */
|
"", /* Channels */
|
||||||
"dB", /* Left gain */
|
"dB", /* Left gain */
|
||||||
"dB", /* Right gain */
|
"dB", /* Right gain */
|
||||||
"dB", /* Mic gain */
|
"dB", /* Mic gain */
|
||||||
|
"dB", /* MDB Strength */
|
||||||
|
"%", /* MDB Harmonics */
|
||||||
|
"Hz", /* MDB Center */
|
||||||
|
"Hz", /* MDB Shape */
|
||||||
|
"", /* MDB Enable */
|
||||||
|
"", /* Super bass */
|
||||||
};
|
};
|
||||||
|
|
||||||
static int numdecimals[] =
|
static int numdecimals[] =
|
||||||
|
@ -83,12 +88,37 @@ static int numdecimals[] =
|
||||||
0, /* Treble */
|
0, /* Treble */
|
||||||
0, /* Balance */
|
0, /* Balance */
|
||||||
0, /* Loudness */
|
0, /* Loudness */
|
||||||
0, /* Bass boost */
|
|
||||||
0, /* AVC */
|
0, /* AVC */
|
||||||
0, /* Channels */
|
0, /* Channels */
|
||||||
1, /* Left gain */
|
1, /* Left gain */
|
||||||
1, /* Right gain */
|
1, /* Right gain */
|
||||||
1, /* Mic gain */
|
1, /* Mic gain */
|
||||||
|
0, /* MDB Strength */
|
||||||
|
0, /* MDB Harmonics */
|
||||||
|
0, /* MDB Center */
|
||||||
|
0, /* MDB Shape */
|
||||||
|
0, /* MDB Enable */
|
||||||
|
0, /* Super bass */
|
||||||
|
};
|
||||||
|
|
||||||
|
static int steps[] =
|
||||||
|
{
|
||||||
|
1, /* Volume */
|
||||||
|
1, /* Bass */
|
||||||
|
1, /* Treble */
|
||||||
|
2, /* Balance */
|
||||||
|
1, /* Loudness */
|
||||||
|
1, /* AVC */
|
||||||
|
1, /* Channels */
|
||||||
|
1, /* Left gain */
|
||||||
|
1, /* Right gain */
|
||||||
|
1, /* Mic gain */
|
||||||
|
1, /* MDB Strength */
|
||||||
|
1, /* MDB Harmonics */
|
||||||
|
10, /* MDB Center */
|
||||||
|
10, /* MDB Shape */
|
||||||
|
1, /* MDB Enable */
|
||||||
|
1, /* Super bass */
|
||||||
};
|
};
|
||||||
|
|
||||||
static int minval[] =
|
static int minval[] =
|
||||||
|
@ -103,12 +133,17 @@ static int minval[] =
|
||||||
#endif
|
#endif
|
||||||
-100, /* Balance */
|
-100, /* Balance */
|
||||||
0, /* Loudness */
|
0, /* Loudness */
|
||||||
0, /* Bass boost */
|
|
||||||
-1, /* AVC */
|
-1, /* AVC */
|
||||||
0, /* Channels */
|
0, /* Channels */
|
||||||
0, /* Left gain */
|
0, /* Left gain */
|
||||||
0, /* Right gain */
|
0, /* Right gain */
|
||||||
0, /* Mic gain */
|
0, /* Mic gain */
|
||||||
|
0, /* MDB Strength */
|
||||||
|
0, /* MDB Harmonics */
|
||||||
|
20, /* MDB Center */
|
||||||
|
50, /* MDB Shape */
|
||||||
|
0, /* MDB Enable */
|
||||||
|
0, /* Super bass */
|
||||||
};
|
};
|
||||||
|
|
||||||
static int maxval[] =
|
static int maxval[] =
|
||||||
|
@ -123,12 +158,17 @@ static int maxval[] =
|
||||||
#endif
|
#endif
|
||||||
100, /* Balance */
|
100, /* Balance */
|
||||||
17, /* Loudness */
|
17, /* Loudness */
|
||||||
100, /* Bass boost */
|
|
||||||
4, /* AVC */
|
4, /* AVC */
|
||||||
6, /* Channels */
|
6, /* Channels */
|
||||||
15, /* Left gain */
|
15, /* Left gain */
|
||||||
15, /* Right gain */
|
15, /* Right gain */
|
||||||
15, /* Mic gain */
|
15, /* Mic gain */
|
||||||
|
127, /* MDB Strength */
|
||||||
|
100, /* MDB Harmonics */
|
||||||
|
300, /* MDB Center */
|
||||||
|
300, /* MDB Shape */
|
||||||
|
1, /* MDB Enable */
|
||||||
|
1, /* Super bass */
|
||||||
};
|
};
|
||||||
|
|
||||||
static int defaultval[] =
|
static int defaultval[] =
|
||||||
|
@ -143,12 +183,17 @@ static int defaultval[] =
|
||||||
#endif
|
#endif
|
||||||
0, /* Balance */
|
0, /* Balance */
|
||||||
0, /* Loudness */
|
0, /* Loudness */
|
||||||
0, /* Bass boost */
|
|
||||||
0, /* AVC */
|
0, /* AVC */
|
||||||
0, /* Channels */
|
0, /* Channels */
|
||||||
8, /* Left gain */
|
8, /* Left gain */
|
||||||
8, /* Right gain */
|
8, /* Right gain */
|
||||||
2, /* Mic gain */
|
2, /* Mic gain */
|
||||||
|
50, /* MDB Strength */
|
||||||
|
48, /* MDB Harmonics */
|
||||||
|
60, /* MDB Center */
|
||||||
|
90, /* MDB Shape */
|
||||||
|
0, /* MDB Enable */
|
||||||
|
0, /* Super bass */
|
||||||
};
|
};
|
||||||
|
|
||||||
char *mpeg_sound_unit(int setting)
|
char *mpeg_sound_unit(int setting)
|
||||||
|
@ -161,6 +206,11 @@ int mpeg_sound_numdecimals(int setting)
|
||||||
return numdecimals[setting];
|
return numdecimals[setting];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int mpeg_sound_steps(int setting)
|
||||||
|
{
|
||||||
|
return steps[setting];
|
||||||
|
}
|
||||||
|
|
||||||
int mpeg_sound_min(int setting)
|
int mpeg_sound_min(int setting)
|
||||||
{
|
{
|
||||||
return minval[setting];
|
return minval[setting];
|
||||||
|
@ -566,6 +616,11 @@ void set_prescaled_volume(void)
|
||||||
#endif /* HAVE_MAS3507D */
|
#endif /* HAVE_MAS3507D */
|
||||||
#endif /* !SIMULATOR */
|
#endif /* !SIMULATOR */
|
||||||
|
|
||||||
|
#ifdef HAVE_MAS3587F
|
||||||
|
unsigned long mdb_shape_shadow = 0;
|
||||||
|
unsigned long loudness_shadow = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
void mpeg_sound_set(int setting, int value)
|
void mpeg_sound_set(int setting, int value)
|
||||||
{
|
{
|
||||||
#ifdef SIMULATOR
|
#ifdef SIMULATOR
|
||||||
|
@ -645,30 +700,10 @@ void mpeg_sound_set(int setting, int value)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef HAVE_MAS3587F
|
#ifdef HAVE_MAS3587F
|
||||||
case SOUND_SUPERBASS:
|
|
||||||
if (value) {
|
|
||||||
tmp = MAX(MIN(value * 127 / 100, 0x7f), 0);
|
|
||||||
mas_codec_writereg(MAS_REG_KMDB_STR, (tmp & 0xff) << 8);
|
|
||||||
tmp = 0x30; /* MDB_HAR: Space for experiment here */
|
|
||||||
mas_codec_writereg(MAS_REG_KMDB_HAR, (tmp & 0xff) << 8);
|
|
||||||
tmp = 60 / 10; /* calculate MDB_FC, 60hz - experiment here,
|
|
||||||
this would depend on the earphones...
|
|
||||||
perhaps make it tunable? */
|
|
||||||
mas_codec_writereg(MAS_REG_KMDB_FC, (tmp & 0xff) << 8);
|
|
||||||
tmp = (3 * tmp) / 2; /* calculate MDB_SHAPE */
|
|
||||||
mas_codec_writereg(MAS_REG_KMDB_SWITCH,
|
|
||||||
((tmp & 0xff) << 8) /* MDB_SHAPE */
|
|
||||||
| 2); /* MDB_SWITCH enable */
|
|
||||||
} else {
|
|
||||||
mas_codec_writereg(MAS_REG_KMDB_STR, 0);
|
|
||||||
mas_codec_writereg(MAS_REG_KMDB_HAR, 0);
|
|
||||||
mas_codec_writereg(MAS_REG_KMDB_SWITCH, 0); /* MDB_SWITCH disable */
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case SOUND_LOUDNESS:
|
case SOUND_LOUDNESS:
|
||||||
tmp = MAX(MIN(value * 4, 0x44), 0);
|
loudness_shadow = (loudness_shadow & 0x04) |
|
||||||
mas_codec_writereg(MAS_REG_KLOUDNESS, (tmp & 0xff) << 8);
|
(MAX(MIN(value * 4, 0x44), 0) << 8);
|
||||||
|
mas_codec_writereg(MAS_REG_KLOUDNESS, loudness_shadow);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SOUND_AVC:
|
case SOUND_AVC:
|
||||||
|
@ -695,7 +730,36 @@ void mpeg_sound_set(int setting, int value)
|
||||||
}
|
}
|
||||||
mas_codec_writereg(MAS_REG_KAVC, tmp);
|
mas_codec_writereg(MAS_REG_KAVC, tmp);
|
||||||
break;
|
break;
|
||||||
#endif
|
|
||||||
|
case SOUND_MDB_STRENGTH:
|
||||||
|
mas_codec_writereg(MAS_REG_KMDB_STR, (value & 0x7f) << 8);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SOUND_MDB_HARMONICS:
|
||||||
|
tmp = value * 127 / 100;
|
||||||
|
mas_codec_writereg(MAS_REG_KMDB_HAR, (tmp & 0x7f) << 8);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SOUND_MDB_CENTER:
|
||||||
|
mas_codec_writereg(MAS_REG_KMDB_FC, (value/10) << 8);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SOUND_MDB_SHAPE:
|
||||||
|
mdb_shape_shadow = (mdb_shape_shadow & 0x02) | ((value/10) << 8);
|
||||||
|
mas_codec_writereg(MAS_REG_KMDB_SWITCH, mdb_shape_shadow);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SOUND_MDB_ENABLE:
|
||||||
|
mdb_shape_shadow = (mdb_shape_shadow & ~0x02) | (value?2:0);
|
||||||
|
mas_codec_writereg(MAS_REG_KMDB_SWITCH, mdb_shape_shadow);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SOUND_SUPERBASS:
|
||||||
|
loudness_shadow = (loudness_shadow & ~0x04) |
|
||||||
|
(value?4:0);
|
||||||
|
mas_codec_writereg(MAS_REG_KLOUDNESS, loudness_shadow);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
case SOUND_CHANNELS:
|
case SOUND_CHANNELS:
|
||||||
mpeg_sound_channel_config(value);
|
mpeg_sound_channel_config(value);
|
||||||
break;
|
break;
|
||||||
|
@ -832,15 +896,36 @@ void mpeg_set_pitch(int pitch)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void mp3_init(int volume, int bass, int treble, int balance, int loudness,
|
void mp3_init(int volume, int bass, int treble, int balance, int loudness,
|
||||||
int bass_boost, int avc, int channel_config)
|
int avc, int channel_config,
|
||||||
|
int mdb_strength, int mdb_harmonics,
|
||||||
|
int mdb_center, int mdb_shape, bool mdb_enable,
|
||||||
|
bool superbass)
|
||||||
{
|
{
|
||||||
#ifdef SIMULATOR
|
#ifdef SIMULATOR
|
||||||
volume = bass = treble = balance = loudness
|
(void)volume;
|
||||||
= bass_boost = avc = channel_config;
|
(void)bass;
|
||||||
|
(void)treble;
|
||||||
|
(void)balance;
|
||||||
|
(void)loudness;
|
||||||
|
(void)avc;
|
||||||
|
(void)channel_config;
|
||||||
|
(void)mdb_strength;
|
||||||
|
(void)mdb_harmonics;
|
||||||
|
(void)mdb_center;
|
||||||
|
(void)mdb_shape;
|
||||||
|
(void)mdb_enable;
|
||||||
|
(void)superbass;
|
||||||
#else
|
#else
|
||||||
#ifdef HAVE_MAS3507D
|
#ifdef HAVE_MAS3507D
|
||||||
unsigned long val;
|
unsigned long val;
|
||||||
loudness = bass_boost = avc;
|
(void)loudness;
|
||||||
|
(void)avc;
|
||||||
|
(void)mdb_strength;
|
||||||
|
(void)mdb_harmonics;
|
||||||
|
(void)mdb_center;
|
||||||
|
(void)mdb_shape;
|
||||||
|
(void)mdb_enable;
|
||||||
|
(void)superbass;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
setup_sci0();
|
setup_sci0();
|
||||||
|
@ -929,8 +1014,13 @@ void mp3_init(int volume, int bass, int treble, int balance, int loudness,
|
||||||
#ifdef HAVE_MAS3587F
|
#ifdef HAVE_MAS3587F
|
||||||
mpeg_sound_channel_config(channel_config);
|
mpeg_sound_channel_config(channel_config);
|
||||||
mpeg_sound_set(SOUND_LOUDNESS, loudness);
|
mpeg_sound_set(SOUND_LOUDNESS, loudness);
|
||||||
mpeg_sound_set(SOUND_SUPERBASS, bass_boost);
|
|
||||||
mpeg_sound_set(SOUND_AVC, avc);
|
mpeg_sound_set(SOUND_AVC, avc);
|
||||||
|
mpeg_sound_set(SOUND_MDB_STRENGTH, mdb_strength);
|
||||||
|
mpeg_sound_set(SOUND_MDB_HARMONICS, mdb_harmonics);
|
||||||
|
mpeg_sound_set(SOUND_MDB_CENTER, mdb_center);
|
||||||
|
mpeg_sound_set(SOUND_MDB_SHAPE, mdb_shape);
|
||||||
|
mpeg_sound_set(SOUND_MDB_ENABLE, mdb_enable);
|
||||||
|
mpeg_sound_set(SOUND_SUPERBASS, superbass);
|
||||||
#endif
|
#endif
|
||||||
#endif /* !SIMULATOR */
|
#endif /* !SIMULATOR */
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue