FM radio simulation working again

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7332 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Linus Nielsen Feltzing 2005-08-16 06:50:25 +00:00
parent 1d4a6c0cc3
commit d3fde76fc7
6 changed files with 64 additions and 27 deletions

View file

@ -16,33 +16,63 @@
* KIND, either express or implied.
*
****************************************************************************/
#include <stdbool.h>
#include "config.h"
#include "debug.h"
#include "tuner.h"
#ifdef CONFIG_TUNER
static int fmstatus = 0;
static int frequency = 0;
static bool mono = false;
static int fmradio_reg[3];
int fmradio_read(int addr)
void radio_set(int setting, int value)
{
if(addr == 0)
return fmradio_reg[2]; /* To please the hardware detection */
else
switch(setting)
{
if(addr == 3)
{
/* Fake a good radio station at 99.4MHz */
if(((fmradio_reg[1] >> 3) & 0xffff) == 11010)
return 0x100000 | 85600;
}
case RADIO_SLEEP:
break;
case RADIO_FREQUENCY:
frequency = value;
break;
case RADIO_MUTE:
break;
case RADIO_FORCE_MONO:
mono = value?true:false;
break;
default:
return;
}
return 0;
}
void fmradio_set(int addr, int data)
int radio_get(int setting)
{
fmradio_reg[addr] = data;
int val = 0;
switch(setting)
{
case RADIO_PRESENT:
val = 1; /* true */
break;
case RADIO_TUNED:
if(frequency == 99500000)
val = 1;
break;
case RADIO_STEREO:
if(frequency == 99500000)
val = mono?0:1;
break;
case RADIO_ALL: /* debug query */
break;
}
return val;
}
#endif