REVISION
Definition in file UI_PSF_record.c.
#include "../SYSTEM/sys_main.h"
#include "../SYSTEM/sys_hardware.h"
#include "../SYSTEM/sys_param.h"
#include "../SYSTEM/sys_clock.h"
#include "../AUDIO/audio.h"
#include "../encoder/encoder.h"
#include "../coder/coder.h"
#include "../BATTERY/battery.h"
#include "ui.h"
Include dependency graph for UI_PSF_record.c:

Go to the source code of this file.
Functions | |
| PARENT_STATE | UI_PSF_record (st_MSG *msgIN) |
| Function serves as the parent record state handle. | |
|
|
Function serves as the parent record state handle.
Definition at line 83 of file UI_PSF_record.c. References AI_START, Audio, AUDIO_initInterface(), AUDIO_setInterface(), CLOCK_MP3RECORD, ENCODER_getAudioFormat(), ENCODER_getAudioMode(), ENCODER_setSource(), ES_SOURCE, st_AUDIOENERGY::FastPeak, st_AUDIOENERGY::FastPeakdB, FAT_delete(), FAT_freeSpace(), st_UI::fname, st_AUDIO::freeSpace, GEN_int2ASCII(), MENU_buf, st_AUDIO::mode, st_UI::path, st_SYSPARAM::recordTime, SAUDIOTIME_UPDT, st_AUDIOENERGY::SlowPeak, st_AUDIOENERGY::SlowPeakdB, SMEDIAFULL, SMSGBOX_EXIT, SSTATE_END, SSTATE_START, SYS_clockSetup(), TMR_create(), TMR_RECORDER, TMR_RECORDER_VU, and UI_msgbxCreate(). 00084 {
00085 MSG_ID id = msgIN->id;
00086 MSG_DATA d1 = msgIN->d1;
00087 MSG_DATA d2 = msgIN->d2;
00088 //DeepB
00089 /*
00090 ULONG recordIconList[4] = { (ULONG)graf_icon_record1,
00091 (ULONG)graf_icon_record2,
00092 (ULONG)graf_icon_record3,
00093 (ULONG)graf_icon_record4};
00094 */
00095 switch(id)
00096 {
00097 case SYS_MSG_ID:
00098
00099 switch(d1)
00100 {
00101 case SSTATE_START:
00102 {
00103 SYS_clockSetup(CLOCK_MP3RECORD);
00104 BAT_setLowThreshold(0x3a66); //3.65V*4096.
00105
00106 ENCODER_setSource((ES_SOURCE)d2);
00107
00108 Audio.freeSpace = FAT_freeSpace(SYS_isHDDpresent()?DISK_C:DISK_D);
00109 if(Audio.freeSpace < DISK_RESERVED_SPACE)
00110 {
00111 UI_msgbxCreate(MSGBX_DISKFULL);
00112 return P_RECORD;
00113 }
00114
00115 if(RFC_SUCCESS != _createRecFile(Ui.path, (ES_SOURCE)d2))
00116 {
00117 return P_NULL;
00118 }
00119
00120 AUDIO_initInterface(ENCODER_getAudioMode((USHORT)d2),
00121 ENCODER_getAudioFormat(), 0, 0);
00122 AUDIO_setInterface(AI_START);
00123
00124 _loadRecorderTmplt(Ui.fname, (int)d2);
00125 menu = mMENU_create((void *)&MENU_buf[0]);
00126 _gainDisplay();
00127 _updateRecordTime(0);
00128 mMENU_update(menu, 11, 0, FALSE);
00129 TMR_create(TMR_RECORDER_VU, 10, TRECVUMETER, 0, AUTO_RELOAD);
00130 if (sysParam.recordTime > 0) TMR_create(TMR_RECORDER, 39, TRECANIMATION, 0, AUTO_RELOAD);
00131 // iconCount = 0;
00132 if (sysParam.recordTime > 0) _togglePause();
00133 return P_RECORD;
00134 }
00135 case SSTATE_END:
00136 {
00137 _stopRecord();
00138 return P_RECORDDONE;
00139 }
00140 case SAUDIOTIME_UPDT:
00141 {
00142 _updateRecordTime(SYS_getCurRecordDuration());
00143 return P_RECORD;
00144 }
00145 case SMSGBOX_EXIT:
00146 {
00147 if(MENU_curMsgbx() == MSGBX_DISKFULL)
00148 {
00149 SYS_usbEnabled();
00150 SYS_recordNotActive();
00151 return (Audio.mode == AM_RECFM) ? P_RADIO: P_NULL;
00152 }
00153 break;
00154 }
00155 case SMEDIAFULL:
00156 {
00157 }
00158 }
00159 break;
00160
00161 case TMR_MSG_ID:
00162 switch(d1)
00163 {
00164 case TRECVUMETER:
00165 {
00166 unsigned short i;
00167 char strLevel[8];
00168 LeftInputEnergy.SlowPeakdB = AUDIO_Convert2dB(&LeftInputEnergy.SlowPeak);
00169 RightInputEnergy.SlowPeakdB = AUDIO_Convert2dB(&RightInputEnergy.SlowPeak);
00170 LeftInputEnergy.FastPeakdB = AUDIO_Convert2dB(&LeftInputEnergy.FastPeak);
00171 RightInputEnergy.FastPeakdB = AUDIO_Convert2dB(&RightInputEnergy.FastPeak);
00172
00173 LeftInputEnergy.FastPeakdB = (LeftInputEnergy.FastPeakdB > 60)? 60 : LeftInputEnergy.FastPeakdB;
00174 RightInputEnergy.FastPeakdB = (RightInputEnergy.FastPeakdB > 60)? 60 : RightInputEnergy.FastPeakdB;
00175
00176 lpeak = (lpeak < LeftInputEnergy.SlowPeakdB) ? lpeak : LeftInputEnergy.SlowPeakdB;
00177 rpeak = (rpeak < RightInputEnergy.SlowPeakdB) ? rpeak : RightInputEnergy.SlowPeakdB;
00178
00179 // Do Left Level
00180 i = 0;
00181 if (LeftInputEnergy.SlowPeakdB != 0) strLevel[i++] = '-';
00182 i += GEN_int2ASCII( LeftInputEnergy.SlowPeakdB, &strLevel[i], FALSE, 0);
00183 strLevel[i++] = 'd';
00184 strLevel[i++] = 'B';
00185 strLevel[i++] = '\0';
00186 mMENU_update(menu, 5, (ULONG)strLevel, FALSE);
00187 i = 0;
00188 if (lpeak != 0) strLevel[i++] = '-';
00189 i += GEN_int2ASCII( lpeak, &strLevel[i], FALSE, 0);
00190 strLevel[i++] = '\0';
00191 mMENU_update(menu, 8, (ULONG)strLevel, FALSE);
00192
00193 // Do Right Level
00194 i = 0;
00195 if (RightInputEnergy.SlowPeakdB != 0) strLevel[i++] = '-';
00196 i += GEN_int2ASCII( RightInputEnergy.SlowPeakdB, &strLevel[i], FALSE, 0);
00197 strLevel[i++] = 'd';
00198 strLevel[i++] = 'B';
00199 strLevel[i++] = '\0';
00200 mMENU_update(menu, 6, (ULONG)strLevel, FALSE);
00201 i = 0;
00202 if (rpeak != 0) strLevel[i++] = '-';
00203 i += GEN_int2ASCII( rpeak, &strLevel[i], FALSE, 0);
00204 strLevel[i++] = '\0';
00205 mMENU_update(menu, 9, (ULONG)strLevel, FALSE);
00206 _updateLevelBarGraphs();
00207 mMENU_refresh(menu);
00208 break;
00209 }
00210 case TRECANIMATION:
00211 {
00212 if ((SYS_getCurRecordDuration()) >= (sysParam.recordTime * 60) && (sysParam.recordTime != 0) )
00213 {
00214 _stopRecord();
00215 return P_RECORDDONE;
00216 }
00217 break;
00218 }
00219 }
00220 break;
00221
00222 case KBD_MSG_ID:
00223 switch(d1)
00224 {
00225 case KEY_HSELECT:
00226 lpeak = 255;
00227 rpeak = lpeak;
00228 break;
00229 //DeepB
00230 // Stop recordings only with the HiSi button
00231 // case KEY_BACK:
00232 case KEY_HISI:
00233 _stopRecord();
00234
00235 if( 5 > SYS_getCurRecordDuration())
00236 {
00237 FAT_delete(Ui.path);
00238
00239 if (SYS_isHDDpresent()) HDD_setPowerMode(HDD_POWEROFF, 0);
00240
00241 return (SYS_isRadioActive())? P_RADIO: P_NULL;
00242 }
00243
00244 return P_RECORDDONE;
00245
00246 case KEY_PLAY:
00247 _togglePause();
00248 return P_RECORD;
00249
00250 case KEY_FORWARD:
00251 case KEY_RFORWARD:
00252 case KEY_HFORWARD:
00253 _timeUp();
00254 return P_RECORD;
00255
00256 case KEY_REWIND:
00257 case KEY_RREWIND:
00258 case KEY_HREWIND:
00259 _timeDown();
00260 return P_RECORD;
00261 case KEY_HUP:
00262 case KEY_UP:
00263 case KEY_RUP:
00264 _gainUp();
00265 return P_RECORD;
00266 case KEY_HDOWN:
00267 case KEY_DOWN:
00268 case KEY_RDOWN:
00269 _gainDown();
00270 return P_RECORD;
00271 }
00272 break;
00273 }
00274
00275 return P_RECORD;
00276 }
|
Here is the call graph for this function:

1.3.9.1