summaryrefslogtreecommitdiff
path: root/apps/recorder/radio.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/recorder/radio.c')
-rw-r--r--apps/recorder/radio.c57
1 files changed, 52 insertions, 5 deletions
diff --git a/apps/recorder/radio.c b/apps/recorder/radio.c
index 291079b4b0..a29620b46c 100644
--- a/apps/recorder/radio.c
+++ b/apps/recorder/radio.c
@@ -64,7 +64,13 @@
64#ifdef CONFIG_TUNER 64#ifdef CONFIG_TUNER
65 65
66#if CONFIG_CODEC == SWCODEC 66#if CONFIG_CODEC == SWCODEC
67#ifdef HAVE_UDA1380
67#include "uda1380.h" 68#include "uda1380.h"
69#endif
70#ifdef HAVE_TLV320
71#include "tlv320.h"
72#endif
73
68#include "pcm_record.h" 74#include "pcm_record.h"
69#endif 75#endif
70 76
@@ -109,6 +115,35 @@
109#define FM_STOP BUTTON_OFF 115#define FM_STOP BUTTON_OFF
110#define FM_RC_STOP BUTTON_RC_STOP 116#define FM_RC_STOP BUTTON_RC_STOP
111 117
118#elif (CONFIG_KEYPAD == IAUDIO_X5_PAD)
119/* pause/play - short PLAY */
120#define FM_PLAY_PRE BUTTON_PLAY
121#define FM_RC_PLAY_PRE BUTTON_RC_PLAY
122#define FM_PLAY (BUTTON_PLAY | BUTTON_REL)
123#define FM_RC_PLAY (BUTTON_RC_PLAY | BUTTON_REL)
124/* preset/scan mode - long PLAY */
125#define FM_MODE (BUTTON_PLAY | BUTTON_REPEAT)
126#define FM_RC_MODE (BUTTON_RC_PLAY | BUTTON_REPEAT)
127/* preset menu - short SELECT */
128#define FM_PRESET_PRE BUTTON_SELECT
129#define FM_RC_PRESET_PRE BUTTON_RC_MENU
130#define FM_PRESET (BUTTON_SELECT | BUTTON_REL)
131#define FM_RC_PRESET (BUTTON_RC_MENU | BUTTON_REL)
132/* fm menu - long SELECT */
133#define FM_MENU (BUTTON_SELECT | BUTTON_REPEAT)
134#define FM_RC_MENU (BUTTON_RC_MENU | BUTTON_REPEAT)
135/* main menu(exit radio while playing) - REC */
136#define FM_EXIT_PRE BUTTON_REC
137#define FM_EXIT (BUTTON_REC | BUTTON_REL)
138#define FM_RC_EXIT_PRE BUTTON_RC_MODE
139#define FM_RC_EXIT (BUTTON_RC_MODE | BUTTON_REL)
140/* prev/next preset on the remote - REW/FF */
141#define FM_NEXT_PRESET (BUTTON_RC_FF | BUTTON_REL)
142#define FM_PREV_PRESET (BUTTON_RC_REW | BUTTON_REL)
143/* stop and exit radio - ON */
144#define FM_STOP BUTTON_POWER
145#define FM_RC_STOP (BUTTON_RC_MODE | BUTTON_REPEAT)
146
112#elif CONFIG_KEYPAD == ONDIO_PAD /* restricted keypad */ 147#elif CONFIG_KEYPAD == ONDIO_PAD /* restricted keypad */
113#define FM_MENU (BUTTON_MENU | BUTTON_REPEAT) 148#define FM_MENU (BUTTON_MENU | BUTTON_REPEAT)
114#define FM_RECORD_DBLPRE BUTTON_MENU 149#define FM_RECORD_DBLPRE BUTTON_MENU
@@ -158,7 +193,7 @@ int radio_get(int setting);
158#if CONFIG_TUNER == S1A0903X01 /* FM recorder */ 193#if CONFIG_TUNER == S1A0903X01 /* FM recorder */
159#define radio_set samsung_set 194#define radio_set samsung_set
160#define radio_get samsung_get 195#define radio_get samsung_get
161#elif CONFIG_TUNER == TEA5767 /* Iriver */ 196#elif CONFIG_TUNER == TEA5767 /* iriver, iaudio */
162#define radio_set philips_set 197#define radio_set philips_set
163#define radio_get philips_get 198#define radio_get philips_get
164#elif CONFIG_TUNER == (S1A0903X01 | TEA5767) /* OndioFM */ 199#elif CONFIG_TUNER == (S1A0903X01 | TEA5767) /* OndioFM */
@@ -387,8 +422,15 @@ bool radio_screen(void)
387 422
388#else 423#else
389 peak_meter_enabled = false; 424 peak_meter_enabled = false;
425
426#ifdef HAVE_UDA1380
390 uda1380_enable_recording(false); 427 uda1380_enable_recording(false);
391 uda1380_set_monitor(true); 428 uda1380_set_monitor(true);
429#elif defined(HAVE_TLV320)
430 //tlv320_enable_recording(false);
431 tlv320_set_recvol(23, 23, AUDIO_GAIN_LINEIN); /* 0dB */
432 tlv320_set_monitor(true);
433#endif
392 434
393 /* Set the input multiplexer to FM */ 435 /* Set the input multiplexer to FM */
394 pcm_rec_mux(1); 436 pcm_rec_mux(1);
@@ -971,7 +1013,7 @@ bool radio_screen(void)
971 while(1) 1013 while(1)
972 { 1014 {
973 button = button_get(true); 1015 button = button_get(true);
974 if(button == (BUTTON_OFF | BUTTON_REL)) 1016 if(button == (FM_STOP | BUTTON_REL))
975 break; 1017 break;
976 } 1018 }
977 } 1019 }
@@ -1004,6 +1046,11 @@ bool radio_screen(void)
1004 radio_stop(); 1046 radio_stop();
1005#ifndef SIMULATOR /* SIMULATOR. Catch FMRADIO_OFF status for the sim. */ 1047#ifndef SIMULATOR /* SIMULATOR. Catch FMRADIO_OFF status for the sim. */
1006#if CONFIG_CODEC == SWCODEC 1048#if CONFIG_CODEC == SWCODEC
1049#ifdef HAVE_TLV320
1050 //tlv320_disable_recording();
1051 tlv320_set_monitor(false);
1052#endif
1053
1007 pcm_rec_mux(0); /* Line In */ 1054 pcm_rec_mux(0); /* Line In */
1008 peak_meter_enabled = true; 1055 peak_meter_enabled = true;
1009#endif 1056#endif
@@ -1320,7 +1367,7 @@ int handle_radio_presets_cb(int key, int m)
1320 key = BUTTON_NONE; 1367 key = BUTTON_NONE;
1321 break; 1368 break;
1322#endif 1369#endif
1323#if (CONFIG_KEYPAD != IRIVER_H100_PAD) && (CONFIG_KEYPAD != IRIVER_H300_PAD) 1370#if (CONFIG_KEYPAD != IRIVER_H100_PAD) && (CONFIG_KEYPAD != IRIVER_H300_PAD) && (CONFIG_KEYPAD != IAUDIO_X5_PAD)
1324#ifdef FM_PRESET 1371#ifdef FM_PRESET
1325 case FM_PRESET: 1372 case FM_PRESET:
1326 menu_draw(m); 1373 menu_draw(m);
@@ -1565,7 +1612,7 @@ int radio_menu_cb(int key, int m)
1565 (void)m; 1612 (void)m;
1566 switch(key) 1613 switch(key)
1567 { 1614 {
1568#if (CONFIG_KEYPAD != IRIVER_H100_PAD) && (CONFIG_KEYPAD != IRIVER_H300_PAD) 1615#if (CONFIG_KEYPAD != IRIVER_H100_PAD) && (CONFIG_KEYPAD != IRIVER_H300_PAD) && (CONFIG_KEYPAD != IAUDIO_X5_PAD)
1569#ifdef MENU_ENTER2 1616#ifdef MENU_ENTER2
1570 case MENU_ENTER2: 1617 case MENU_ENTER2:
1571#endif 1618#endif
@@ -1574,7 +1621,7 @@ int radio_menu_cb(int key, int m)
1574 key = BUTTON_NONE; /* eat the downpress, next menu reacts on release */ 1621 key = BUTTON_NONE; /* eat the downpress, next menu reacts on release */
1575 break; 1622 break;
1576 1623
1577#if (CONFIG_KEYPAD != IRIVER_H100_PAD) && (CONFIG_KEYPAD != IRIVER_H300_PAD) 1624#if (CONFIG_KEYPAD != IRIVER_H100_PAD) && (CONFIG_KEYPAD != IRIVER_H300_PAD) && (CONFIG_KEYPAD != IAUDIO_X5_PAD)
1578#ifdef MENU_ENTER2 1625#ifdef MENU_ENTER2
1579 case MENU_ENTER2 | BUTTON_REL: 1626 case MENU_ENTER2 | BUTTON_REL:
1580#endif 1627#endif