1
0
Fork 0
forked from len0rd/rockbox

D2: Enable FM radio (based on FS#10035 by Michael Burtin with some changes by myself). Also updates the LV24020 driver to add optional logf debugging.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20420 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Rob Purchase 2009-03-21 00:13:20 +00:00
parent d63a8fcb7b
commit 1a6bcfa2c1
8 changed files with 57 additions and 7 deletions

View file

@ -146,6 +146,13 @@ static const struct button_mapping button_context_keyboard[] = {
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
}; /* button_context_keyboard */
static const struct button_mapping button_context_radio[] = {
{ ACTION_FM_MENU, BUTTON_MENU, BUTTON_NONE },
{ ACTION_FM_STOP, BUTTON_POWER, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
}; /* button_context_radio */
const struct button_mapping* target_get_context_mapping(int context)
{
switch (context)
@ -182,6 +189,8 @@ const struct button_mapping* target_get_context_mapping(int context)
case CONTEXT_YESNOSCREEN:
return button_context_yesno;
case CONTEXT_FM:
return button_context_radio;
case CONTEXT_BOOKMARKSCREEN:
return button_context_bmark;
case CONTEXT_QUICKSCREEN:

View file

@ -232,6 +232,19 @@ static const struct button_mapping button_context_keyboard[] = {
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM2|CONTEXT_KEYBOARD)
}; /* button_context_keyboard */
static const struct button_mapping button_context_radio[] = {
{ ACTION_STD_PREV, BUTTON_MIDLEFT, BUTTON_NONE },
{ ACTION_STD_PREVREPEAT, BUTTON_MIDLEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_NEXT, BUTTON_MIDRIGHT, BUTTON_NONE },
{ ACTION_STD_NEXTREPEAT, BUTTON_MIDRIGHT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_FM_MENU, BUTTON_CENTER|BUTTON_REPEAT, BUTTON_CENTER },
{ ACTION_FM_PRESET, BUTTON_CENTER|BUTTON_REL, BUTTON_NONE },
{ ACTION_FM_EXIT, BUTTON_TOPLEFT|BUTTON_REL, BUTTON_NONE },
{ ACTION_FM_MODE, BUTTON_BOTTOMLEFT|BUTTON_REL, BUTTON_NONE },
{ ACTION_FM_PLAY, BUTTON_TOPRIGHT|BUTTON_REL, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM2|CONTEXT_FM)
}; /* button_context_radio */
const struct button_mapping* get_context_mapping(int context)
{
if (context & CONTEXT_CUSTOM2
@ -274,6 +287,8 @@ const struct button_mapping* get_context_mapping(int context)
case CONTEXT_YESNOSCREEN:
return button_context_yesno;
case CONTEXT_FM:
return button_context_radio;
case CONTEXT_BOOKMARKSCREEN:
return button_context_bmark;
case CONTEXT_QUICKSCREEN:

View file

@ -109,6 +109,14 @@
#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
#define FM_PRESET
#define FM_MODE
#elif (CONFIG_KEYPAD == COWOND2_PAD)
#define FM_MENU
#define FM_PRESET
#define FM_STOP
#define FM_MODE
#define FM_EXIT
#define FM_PLAY
#endif
#define RADIO_SCAN_MODE 0

View file

@ -186,6 +186,13 @@ void audiohw_set_lineout_vol(int vol_l, int vol_r)
wmcodec_write(ROUT2VOL, 0x100 | vol_r);
}
void audiohw_set_aux_vol(int vol_l, int vol_r)
{
/* OUTMIX */
wmcodec_write(LOUTMIX, 0x111 | (vol_l << 5) );
wmcodec_write(ROUTMIX, 0x111 | (vol_r << 5) );
}
void audiohw_set_bass(int value)
{
eq1_reg = (eq1_reg & ~EQ_GAIN_MASK) | EQ_GAIN_VALUE(value);

View file

@ -29,19 +29,17 @@
#include "power.h"
#include "fmradio.h" /* physical interface driver */
#include "sound.h"
#include "pp5024.h"
#include "system.h"
#ifndef BOOTLOADER
static struct mutex tuner_mtx;
#if 0
/* define to enable tuner logging */
#define SANYO_TUNER_LOG
#endif
#undef SANYO_TUNER_LOG_FILE
#undef SANYO_TUNER_LOGF
#ifdef SANYO_TUNER_LOG
#ifdef SANYO_TUNER_LOG_FILE
#include "sprintf.h"
#include "file.h"
@ -52,6 +50,15 @@ static int fd_log = -1;
/* syncing required because close() is never called */
#define TUNER_LOG_SYNC() fsync(fd_log)
#define TUNER_LOG(s...) fdprintf(fd_log, s)
#elif defined(SANYO_TUNER_LOGF)
#define LOGF_ENABLE
#include "logf.h"
#define TUNER_LOG_OPEN()
#define TUNER_LOG_SYNC()
#define TUNER_LOG(s...) logf(s)
#else
#define TUNER_LOG_OPEN()
#define TUNER_LOG_SYNC()

View file

@ -49,9 +49,10 @@
/* define this if you would like tagcache to build on this target */
//#define HAVE_TAGCACHE
/* FM Tuner
/* FM Tuner */
#define CONFIG_TUNER LV24020LP
#define HAVE_TUNER_PWR_CTRL*/
#define HAVE_TUNER_PWR_CTRL
#define HAVE_RADIO_REGION
/* define this if you have a flash memory storage */
#define HAVE_FLASH_STORAGE

View file

@ -32,5 +32,6 @@ extern int tenthdb2master(int db);
extern void audiohw_set_headphone_vol(int vol_l, int vol_r);
extern void audiohw_set_lineout_vol(int vol_l, int vol_r);
extern void audiohw_set_aux_vol(int vol_l, int vol_r);
#endif /* _WM8985_H */

View file

@ -57,6 +57,7 @@ void audio_input_mux(int source, unsigned flags)
{
/*audiohw_set_monitor(false);
audiohw_disable_recording();*/
audiohw_set_aux_vol(0,0);
}
break;
@ -86,6 +87,7 @@ void audio_input_mux(int source, unsigned flags)
{
/*audiohw_disable_recording();
audiohw_set_monitor(true); /. line 1 analog audio path */
audiohw_set_aux_vol(7,7);
}
break;
} /* end switch */