UI_PSF_radio.c File Reference


Detailed Description

This module provides parent FM radio state handle.

REVISION

Definition in file UI_PSF_radio.c.

#include "../SYSTEM/sys_main.h"
#include "../SYSTEM/sys_clock.h"
#include "../SYSTEM/sys_hiddenfeature.h"
#include "../AUDIO/audio.h"
#include "../TUNER/tuner.h"
#include "../MENU/tmplt.h"
#include "xim.h"
#include "ui.h"
#include "ui_assert.h"
#include "../HDD/hdd.h"

Include dependency graph for UI_PSF_radio.c:

Include dependency graph

Go to the source code of this file.

Functions

PARENT_STATE UI_PSF_radio (st_MSG *msgIN)
 Function serves as the parent FM radio state handle.


Function Documentation

PARENT_STATE UI_PSF_radio st_MSG msgIN  ) 
 

Function serves as the parent FM radio state handle.

Parameters:
msgIN Input message.
Returns:
Next state.

Definition at line 82 of file UI_PSF_radio.c.

References AF_PCM, AI_SHUTDOWN, AI_START, AM_FMRADIO, AUDIO_initInterface(), AUDIO_setInterface(), CLOCK_FMTUNER, CODEC_hpVolume(), st_SYSPARAM::myfiChannel, SBROWSE, SENDOFMENU, SGO2PRESET, SHIDDENFEATURE, SPRESET, SRESUMEPLAY, SSTART2HISI, SSTART2PLAY, SSTART2RECORD, SSTARTRADIO, SSTATE_END, SSTATE_START, st_SYSPARAM::station, SVOLWIN_CREATE, SXIM_CREATE, SXIM_EXIT, SYS_clockSetup(), SYS_delayMicrosecond(), SYS_deleteDiskDbTask(), TMR_delete(), TMR_TUNERSEEK, TUNER_control(), TUNER_initFIR(), TUNER_tune(), UI_presetRadio(), and st_SYSPARAM::volume.

00083 {   
00084     MSG_ID          id = msgIN->id;     
00085     MSG_DATA        d1 = msgIN->d1; 
00086     MSG_DATA        d2 = msgIN->d2;
00087     
00088     switch(id)
00089     {
00090     case SYS_MSG_ID:
00091         
00092         switch(d1)
00093         {
00094             case SSTATE_START:
00095             {
00096                 SYS_clockSetup(CLOCK_FMTUNER);
00097                 SYS_presetable();               
00098                 if(!SYS_isRadioActive())
00099                 {
00100                     SYS_radioActive();
00101                         
00102                     TUNER_control(ON);
00103                     TUNER_initFIR();
00104                     SYS_delayMicrosecond(300000);
00105                     AUDIO_initInterface(AM_FMRADIO, AF_PCM, 0, 0);
00106                     AUDIO_setInterface(AI_START);
00107                     TUNER_tune(TUNER_SET, sysParam.station);
00108                     CODEC_hpVolume(sysParam.volume);
00109                     SYS_audioNotPaused();
00110                     HDD_shutdown();
00111                 }                                   
00112                 _radioGUIon(TRUE, d2);
00113                 return P_RADIO;
00114             }
00115             case SHIDDENFEATURE:
00116             {
00117                 if(1 != d2) break;
00118                 _stateEnd();
00119                 SYS_HF_myfiTestEnable();
00120                 sysParam.myfiChannel = 963;
00121                 mMSG_send(sysMsgQ, SYS_MSG_ID, SSTART2PLAY, 0xA5A5, SYS_FOREVER);
00122                 return P_NULL;
00123             }
00124             case SSTATE_END:
00125             {
00126                 return _stateEnd();
00127             }
00128             case SGO2PRESET:
00129             {
00130                 if(UI_presetType(d2) == PRESET_RADIO)
00131                 {
00132                     int station = UI_presetStation(d2);
00133                     if(sysParam.station != station)
00134                     {
00135                         sysParam.station = station;                 
00136                         TUNER_tune(TUNER_SET, station);
00137                     }
00138                     _radioGUIon(TRUE, d2);
00139                 }
00140                 else 
00141                 {
00142                     _radioGUIon(FALSE, d2);
00143                     AUDIO_setInterface(AI_SHUTDOWN);
00144                     return P_PLAY;
00145                 }
00146                 return P_RADIO;
00147             }
00148             case SSTARTRADIO:
00149             case SRESUMEPLAY:
00150             case SENDOFMENU:
00151             {
00152                 _radioGUIon(TRUE, curPresetIdx);
00153                 return P_RADIO;         
00154             }
00155             case SPRESET:
00156             {
00157                 UI_presetRadio(d2, sysParam.station);
00158                 _updateRadioDisplay(sysParam.station, menu, d2);
00159                 return P_RADIO;
00160             }
00161             case SSTART2RECORD: 
00162             case SSTART2HISI:
00163             {
00164                 SYS_deleteDiskDbTask(SYS_FOREVER);
00165 // Bugzilla #157 Pt. 2b
00166                 if(SYS_isAudioPaused())
00167                 {
00168                     SYS_toggleAudioPaused();                
00169                     mMENU_update(menu, 7, (ULONG)text_null, FALSE);
00170                     CODEC_hpVolume(sysParam.volume);
00171                 }
00172                 mMENU_refresh(menu);
00173                 _radioGUIon(FALSE, DONTCARE);
00174                 return((SSTART2RECORD == d1)? P_RECORD:P_HISI);
00175             }
00176             case SXIM_EXIT: 
00177             {
00178                 return(_ximAction(d2));
00179             }
00180         }   
00181         break;
00182 
00183     case KBD_MSG_ID:
00184         switch(d1)
00185         {
00186             case KEY_HSELECT:
00187                 sysParam.station = TUNER_tune(TUNER_SET, TUN_MAX_REAL_FREQ);
00188                 _updateRadioDisplay(sysParam.station, menu, DONTCARE);
00189                 return P_RADIO;
00190             case KEY_HBACK:
00191                 sysParam.station = TUNER_tune(TUNER_SET, TUN_MIN_REAL_FREQ);
00192                 _updateRadioDisplay(sysParam.station, menu, DONTCARE);
00193                 return P_RADIO;
00194             case KEY_BACK:
00195                 // Auto resume play window.
00196                 SYS_autoResumePlayEnable();
00197                 _radioGUIon(FALSE, DONTCARE);
00198                 mMSG_send(uiChildMsgQ, SYS_MSG_ID, SBROWSE, DONTCARE, SYS_FOREVER);
00199                 return P_RADIO;
00200             
00201             case KEY_HREWIND:
00202             case KEY_RREWIND:
00203                 sysParam.station = TUNER_tune(TUNER_DEC, sysParam.station);
00204                 _updateRadioDisplay(sysParam.station, menu, DONTCARE);
00205                 return P_RADIO;
00206                 
00207             case KEY_REWIND:
00208                 _seeksetup(TUNER_SEEK_DOWN);
00209                 return P_RADIO;
00210                 
00211             case KEY_FORWARD:  
00212                 _seeksetup(TUNER_SEEK_UP);
00213                 return P_RADIO;
00214                 
00215             case KEY_HFORWARD:
00216             case KEY_RFORWARD:
00217                 sysParam.station = TUNER_tune(TUNER_INC, sysParam.station);
00218                 _updateRadioDisplay(sysParam.station, menu, DONTCARE);
00219                 return P_RADIO; 
00220                 
00221             case KEY_PLAY:
00222                 SYS_toggleAudioPaused();                
00223                 if(SYS_isAudioPaused())
00224                 {
00225                     mMENU_update(menu, 7, (ULONG)text_tunermuted, FALSE);
00226                     CODEC_hpVolume(0);  
00227                 }
00228                 else
00229                 {
00230                     mMENU_update(menu, 7, (ULONG)text_null, FALSE); 
00231                     CODEC_hpVolume(sysParam.volume);
00232                 }
00233                 mMENU_refresh(menu);
00234                 return P_RADIO;
00235                 
00236             case KEY_UP:
00237             case KEY_HUP:
00238             case KEY_DOWN:
00239             case KEY_HDOWN:
00240                 mMSG_send(uiChildMsgQ, SYS_MSG_ID, SVOLWIN_CREATE, DONTCARE, SYS_FOREVER);
00241                 return P_RADIO;
00242                 
00243             case KEY_SELECT:
00244                 SYS_autoResumePlayEnable();
00245                 mMSG_send(uiChildMsgQ, SYS_MSG_ID, SXIM_CREATE, XIMWIN_RADIO, SYS_FOREVER);
00246                 return P_RADIO;
00247         }
00248         break;
00249     
00250     case TMR_MSG_ID:
00251         switch(d1)
00252         {
00253             case TFRWD_DOUBLECLICK:
00254                 if(TUNER_SEEK_DOWN == d2)   
00255                     sysParam.station = TUNER_tune(TUNER_DEC, sysParam.station);
00256                 else                        
00257                     sysParam.station = TUNER_tune(TUNER_INC, sysParam.station);
00258                 _updateRadioDisplay(sysParam.station, menu, DONTCARE);
00259                 break;
00260             
00261             case TTUNERSEEK:
00262                 if( _SEEK_DONE != _seektest())
00263                 {
00264                     unsigned int oldStation;
00265                     oldStation = sysParam.station;
00266                     if(TUNER_SEEK_DOWN == d2)   
00267                     {
00268                         sysParam.station = TUNER_tune(TUNER_DEC, sysParam.station);
00269                         if(oldStation < sysParam.station) {_seekdone(oldStation);}
00270                         else _seekcontinue();
00271                     }
00272                     else
00273                     {                       
00274                         sysParam.station = TUNER_tune(TUNER_INC, sysParam.station);
00275                         if(oldStation > sysParam.station) {_seekdone(oldStation);}
00276                         else _seekcontinue();
00277                     }               
00278                 }
00279                 else 
00280                 {
00281                     TMR_delete(TMR_TUNERSEEK);
00282 // Bugzilla #157 Pt. 2a
00283                     if(SYS_isAudioPaused())
00284                     {
00285                         SYS_toggleAudioPaused();                
00286                         mMENU_update(menu, 7, (ULONG)text_null, FALSE);
00287                         CODEC_hpVolume(sysParam.volume);
00288                     }
00289                     mMENU_refresh(menu);
00290                 }
00291                 _updateRadioDisplay(sysParam.station, menu, DONTCARE);
00292                 break;
00293         }   
00294         break;      
00295     }
00296     
00297     return P_RADIO;
00298 }

Here is the call graph for this function:


Generated on Wed Jan 19 01:13:33 2005 for neuros-firmware by  doxygen 1.3.9.1