ui_play.s01
来自「炬力方案176*132软件源码,适用于AK1025」· S01 代码 · 共 1,535 行 · 第 1/3 页
S01
1,535 行
?0058:
?0054:
?0052:
?0050:
; 203. }
; 204. }
; 205. }
; 206. }
; 207.
; 208. if(return_to_play==0)
LD A,(return_to_play)
OR A
JR NZ,?0060
?0059:
; 209. g_result = RealDisplay();
LD A,BYTE3 RealDisplay
LD HL,LWRD RealDisplay
CALL LWRD ?BANK_CALL_DIRECT_L08
LD (g_result),HL
; 210. else
JR ?0061
?0060:
; 211. return_to_play=0;
XOR A
LD (return_to_play),A
?0061:
; 212.
; 213. if(g_result == RESULT_UI_STOP)
LD HL,(g_result)
LD A,102
XOR L
OR H
JR NZ,?0063
?0062:
; 214. {
; 215. return 0;
?0162:
LD HL,0
; 216. }
?0064:
JP LWRD ?BANK_LEAVE_DIRECT_L08
?0063:
; 217.
; 218. }/* while(1) */
; 219.
; 220. }
JP LWRD ?0003
?0185:
LD E,0
?0184:
LD A,BYTE3 DealMusicFileEnd
LD HL,LWRD DealMusicFileEnd
JP LWRD ?BANK_CALL_DIRECT_L08
?0186:
LD C,L
LD B,H
LD E,131
?0187:
LD A,BYTE3 musicpSendCommand
LD HL,LWRD musicpSendCommand
JP LWRD ?BANK_CALL_DIRECT_L08
RealDisplay:
; 221. /*
; 222. ********************************************************************************
; 223. * void RealDisplay( void )
; 224. *
; 225. * Description : 显示时间,滚屏,AB闪
; 226. *
; 227. * Arguments : void
; 228. *
; 229. * Returns : int
; 230. *
; 231. * Notes :
; 232. *
; 233. ********************************************************************************
; 234. */
; 235. int RealDisplay( void )
; 236. {
PUSH BC
PUSH DE
; 237.
; 238. BackupCurrentTime();
LD A,BYTE3 BackupCurrentTime
LD HL,LWRD BackupCurrentTime
CALL LWRD ?BANK_CALL_DIRECT_L08
; 239.
; 240. if (g_music_vars.BreakPTDisTime.second != g_OldSecTempBackup)
LD A,(g_music_vars+79)
PUSH AF
LD A,(g_OldSecTempBackup)
LD B,A
POP AF
CP B
JR Z,?0066
?0065:
; 241. {
; 242. g_OldSecTempBackup = g_music_vars.BreakPTDisTime.second;
LD A,(g_music_vars+79)
LD (g_OldSecTempBackup),A
; 243.
; 244. if (g_music_vars.repeat_mode == Intro)
LD A,(g_music_vars+1)
CP 6
JR NZ,?0070
?0067:
; 245. {
; 246. g_introCNT++;
LD HL,g_introCNT
INC (HL)
; 247. if ( (g_introCntMode
; 248. && (g_music_vars.BreakPTDisTime.second > IntCntValDef) )
; 249. || (g_introCNT > IntCntValDef) )
LD A,(g_introCntMode)
OR A
JR Z,?0072
LD A,(g_music_vars+79)
LD B,A
LD A,10
CP B
JR C,?0073
?0072:
?0071:
LD A,(g_introCNT)
LD B,A
LD A,10
CP B
JR NC,?0070
?0073:
?0074:
?0069:
; 250.
; 251. { //从头开始的情况
; 252.
; 253. return DealMusicFileEnd(0);
CALL LWRD ?0185
; 254. }
JP LWRD ?0099
?0070:
?0068:
; 255. }
; 256.
; 257. /* //Jerry Xie Removed for test
; 258. if((RePlayStatus==NormalPlay)&&(MusicEditSelStatus==MusicEditSelSta_NoSel))
; 259. Show_Bitrate();*/
; 260.
; 261. ShowNowTime(TRUE);
LD E,1
LD A,BYTE3 ShowNowTime
LD HL,LWRD ShowNowTime
CALL LWRD ?BANK_CALL_DIRECT_L08
?0066:
; 262. }
; 263.
; 264. //滚屏时的处理
; 265. if (g_ScrollFlag)
LD A,(g_ScrollFlag)
OR A
JR Z,?0076
?0075:
; 266. {
; 267. g_ScrollFlag = FALSE;
XOR A
LD (g_ScrollFlag),A
; 268. SetPenColor(Color_BLACK_def);
LD C,A
LD E,C
LD B,A
LD D,B
CALL LWRD SetPenColor
; 269. SetBackgdColor(Color_MENU_def);
LD BC,0
LD DE,65535
CALL LWRD SetBackgdColor
; 270. ///-SetTextOutMode(0);
; 271. ///-Scroll(g_TagInfoBuf, FALSE,g_comval.langid);
; 272. Scroll(g_TagInfoBuf, g_comval.langid);
LD BC,(g_comval+12)
LD DE,g_TagInfoBuf
LD A,BYTE3 Scroll
LD HL,LWRD Scroll
CALL LWRD ?BANK_CALL_DIRECT_L08
; 273. ///-SetTextOutMode(1);
; 274. {
; 275. ui_show_batt(GetBattery(), g_comval.BatteryType,0);
LD C,0
PUSH BC
LD BC,(g_comval+15)
CALL LWRD GetBattery
LD E,A
LD D,0
LD A,BYTE3 ui_show_batt
LD HL,LWRD ui_show_batt
CALL LWRD ?BANK_CALL_DIRECT_L08
POP HL
?0076:
; 276.
; 277. }
; 278.
; 279. }
; 280.
; 281. //复读A闪,B闪时的处理
; 282. if (RePlayStatus == WaitSetAPointForAB)
LD A,(RePlayStatus)
DEC A
JR NZ,?0078
?0077:
; 283. {
; 284. if (g_2HZFlag)
LD A,(g_2HZFlag)
OR A
LD C,20
PUSH BC
LD C,79
JR NZ,?0175
?0079:
; 285. {
; 286. main_ResShowPic(MRPLAB,79,20);
; 287. }
; 288. else
?0080:
; 289. {
; 290. main_ResShowPic(MRPLNOA,79,20);
LD DE,214
JR ?0167
?0081:
?0078:
; 291. }
; 292. }
; 293. else if (RePlayStatus == WaitSetBPointForAB)
LD A,(RePlayStatus)
DEC A
DEC A
JR NZ,?0087
?0083:
; 294. {
; 295. if (g_2HZFlag)
LD A,(g_2HZFlag)
OR A
LD C,20
PUSH BC
LD C,79
JR Z,?0086
?0085:
; 296. {
; 297. main_ResShowPic(MRPLAB,79,20);
?0175:
LD DE,209
JR ?0167
; 298. }
; 299. else
?0086:
; 300. {
; 301. main_ResShowPic(MRPLNOB,79,20);
LD DE,215
?0167:
CALL LWRD ?0189
POP AF
?0087:
?0084:
?0082:
; 302. }
; 303. }
; 304.
; 305. //********************music edit add by mzh 2007.1.21*****
; 306. if(MusicEditSelStatus!=MusicEditSelSta_NoSel)
LD A,(MusicEditSelStatus)
OR A
JR Z,?0098
?0088:
; 307. {
; 308. if(MusicEditSelStatus==MusicEditSelSta_SelFinish)
CP 3
JR Z,?0174
?0090:
; 309. main_ResShowPic(MRPLSEL,79,20);
; 310. else
?0091:
; 311. {
; 312. if (g_2HZFlag)
LD A,(g_2HZFlag)
OR A
JR Z,?0094
?0093:
; 313. {
; 314. main_ResShowPic(MRPLSEL,79,20);
?0174:
LD C,20
PUSH BC
LD C,79
LD DE,216
JR ?0168
; 315. }
; 316. else
?0094:
; 317. {
; 318. if(MusicEditSelStatus==MusicEditSelSta_WaitStart)
LD A,(MusicEditSelStatus)
DEC A
LD C,20
PUSH BC
LD C,79
JR NZ,?0097
?0096:
; 319. main_ResShowPic(MRPLSELA,79,20);
LD DE,217
JR ?0168
; 320. else
?0097:
; 321. main_ResShowPic(MRPLSELB,79,20);
LD DE,218
?0168:
CALL LWRD ?0189
POP AF
?0098:
?0095:
?0092:
?0089:
; 322. }
; 323. }
; 324. }
; 325. //***************************************************
; 326. return NULL;
LD HL,0
; 327. }
?0099:
POP DE
POP BC
JP LWRD ?BANK_FAST_LEAVE_L08
?0190:
LD A,E
ADD A,8
LD C,A
LD DE,153
?0189:
LD A,BYTE3 main_ResShowPic
LD HL,LWRD main_ResShowPic
JP LWRD ?BANK_CALL_DIRECT_L08
musicpSendCommand:
; 328. /*
; 329. ********************************************************************************
; 330. * bool musicpSendCommand( BYTE cmd, int param )
; 331. *
; 332. * Description : 根据不同的文件类型来选择发的命令(对MODULE)
; 333. *
; 334. * Arguments : cmd 命令 param 参数
; 335. *
; 336. * Returns : success/fail
; 337. *
; 338. * Notes :
; 339. *
; 340. ********************************************************************************
; 341. */
; 342. bool musicpSendCommand(BYTE cmd, int param)
; 343. {
PUSH IX
PUSH DE
; 344. //清 WATCH_DOG
; 345. output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
IN A,(78)
SET 3,A
OUT (78),A
; 346.
; 347. switch ( cmd )
LD A,E
CP 13
JR Z,?0101
CP 128
JR C,?0102
CP 132
JR Z,?0102
CP 134
JR NC,?0102
?0101:
; 348. {//这几个命令由于经常调用,所以不要切BANK
; 349. case MC_GETTIME:
; 350. case MC_GETSAPLE:
; 351. case MC_GETSTATUS:
; 352. case MC_GETAUDIOFMT:
; 353. case MC_FADEINOUT:
; 354. case MC_GETPOWERVALUE:
; 355. switch ( g_currentMusicType )
LD DE,(g_currentMusicType)
CALL LWRD ?C_S_SWITCH_L06
DEFB 1
DEFW 6
DEFW ?0107
DEFW ?0103
DEFW ?0104
DEFW ?0104
DEFW ?0104
DEFW ?0105
DEFW ?0106
?0103:
; 356. {
; 357. case Music_MP3: //mp3
; 358. return mp3pSendCommand(cmd, param);
LD E,A
LD A,BYTE3 mp3pSendCommand
LD HL,LWRD mp3pSendCommand
JR ?0183
; 359.
; 360. case Music_WMA: //wma
?0104:
; 361. case Music_ASF: //asf
; 362. case Music_WMV: //wmv
; 363. {
; 364. return wmapSendCommand(cmd, param);
LD E,A
LD A,BYTE3 wmapSendCommand
LD HL,LWRD wmapSendCommand
JR ?0183
; 365. }
?0105:
; 366. case Music_OGG:
; 367. return oggpSendCommand(cmd, param);
LD E,A
LD A,BYTE3 oggpSendCommand
LD HL,LWRD oggpSendCommand
JR ?0183
; 368. case Music_APE:
?0106:
; 369. return apepSendCommand(cmd, param);
LD E,A
LD A,BYTE3 apepSendCommand
LD HL,LWRD apepSendCommand
JR ?0183
; 370.
; 371. default:
?0107:
; 372. return FALSE;
LD L,0
; 373. }
JR ?0109
?0102:
?0108:
; 374.
; 375. default:
; 376. //下面函数放在别的 BANK 里,
; 377. return musicpSendCommand_bank( cmd, param );
LD A,BYTE3 musicpSendCommand_bank
LD HL,LWRD musicpSendCommand_bank
?0183:
CALL LWRD ?BANK_CALL_DIRECT_L08
; 378. }
?0100:
; 379. return FALSE;
; 380.
; 381.
; 382. }
?0109:
POP AF
POP IX
JP LWRD ?BANK_FAST_LEAVE_L08
BackupCurrentTime:
; 383. /*
; 384. ********************************************************************************
; 385. * void Show_Bitrate( void )
; 386. *
; 387. * Description : 显示比特率
; 388. *
; 389. * Arguments : void
; 390. *
; 391. * Returns : void
; 392. *
; 393. * Notes :
; 394. *
; 395. ********************************************************************************
; 396. */
; 397.
; 398. void BackupCurrentTime(void)
; 399. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW 65530
; 400. Full_time_t time_buf;
; 401. if ( musicpSendCommand(MC_GETTIME, (int)& time_buf) )
LD HL,0
ADD HL,SP
LD C,L
LD B,H
LD E,128
CALL LWRD ?0187
INC L
DEC L
JR Z,?0111
?0110:
; 402. {
; 403. g_music_vars.BreakPTDisTime.hour = time_buf.TimeHour;
LD A,(IX-2)
LD (g_music_vars+77),A
; 404. g_music_vars.BreakPTDisTime.minute = time_buf.TimeMinute;
LD A,(IX-3)
LD (g_music_vars+78),A
; 405. g_music_vars.BreakPTDisTime.second = time_buf.TimeSecond;
LD A,(IX-4)
LD (g_music_vars+79),A
?0111:
; 406. }
; 407. }
JP LWRD ?BANK_LEAVE_DIRECT_L08
ShowNowTime:
; 408.
; 409.
; 410. void ShowNowTime(bool para) //zxs change for guage display
; 411. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW -16
PUSH IY
; 412. long int totaltime,nowtime;
; 413. int num;
; 414. int i;
; 415. music_play_status_t status_buf;
; 416.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?