📄 sub_playstatuskey.s01
字号:
INC HL
SET 5,(HL)
; 245. g_FCexitflag = FALSE;
LD (g_FCexitflag),A
?0030:
; 246. }
; 247. return_to_play=1;
LD A,1
LD (return_to_play),A
; 248. need_draw = TRUE;
LD (need_draw),A
; 249. break;
JP LWRD ?0002
?0031:
; 250.
; 251. case AP_KEY_MODE | AP_KEY_LONG://长按MODE 进入歌词显示界面
; 252.
; 253. #ifdef OPT_Sup_LRC_fun//支持歌词显示功能
; 254.
; 255. if (!g_lyricflag)
LD A,(g_lyricflag)
OR A
JR Z,?0165
?0032:
; 256. {
; 257. return RESULT_MAIN; //没歌词就不进入
; 258. }
?0033:
; 259. if (RePlayStatus != NormalPlay)
LD A,(RePlayStatus)
OR A
JR Z,?0035
?0034:
; 260. {
; 261. return RESULT_MAIN;
?0165:
LD HL,10
; 262. }
JP LWRD ?0058
?0035:
; 263. g_result = ui_lyric();
LD A,BYTE3 ui_lyric
LD HL,LWRD ui_lyric
CALL LWRD ?0203
; 264. return_to_play=1;
LD (return_to_play),A
; 265. //恢复背光时间
; 266. VMRead(& g_comval, VM_SYSTEM, sizeof(g_comval));
LD BC,32
PUSH BC
LD BC,512
LD DE,g_comval
CALL LWRD VMRead
POP HL
; 267. ap_message_init(& g_comval);
LD DE,g_comval
LD A,BYTE3 ap_message_init
LD HL,LWRD ap_message_init
CALL LWRD ?BANK_CALL_DIRECT_L08
; 268. if( g_result == 0 ) //如果是热键,不要清屏.
LD HL,(g_result)
LD A,L
OR H
JR NZ,?0037
?0036:
; 269. {
; 270. SetFullInterface();
LD (ui_auto_update),A
LD HL,UpDisplayFlag
LD A,(HL)
OR 193
LD (HL),A
INC HL
LD (HL),255
; 271. need_draw = TRUE;
LD A,1
LD (need_draw),A
?0037:
; 272. }
; 273. return g_result;
LD HL,(g_result)
; 274. #endif/* OPT_Sup_LRC_fun */
; 275. break;
JP LWRD ?0058
?0038:
; 276.
; 277. case AP_KEY_PLAY | AP_KEY_UP:
; 278. { //Jerry Xie Add for test
; 279. g_volcounter = 0;
XOR A
LD (g_volcounter),A
; 280. g_rSetPlayStatus = TRUE;
LD A,1
LD (g_rSetPlayStatus),A
; 281. }
; 282. return DealPlayKey();
LD A,BYTE3 DealPlayKey
LD HL,LWRD DealPlayKey
CALL LWRD ?BANK_CALL_DIRECT_L08
; 283.
; 284. #ifdef __6KEYMODE__
; 285. case AP_KEY_VOLSUB:
JP LWRD ?0058
?0039:
; 286. case AP_KEY_VOLSUB | AP_KEY_HOLD:
; 287. if(g_volcounter>0)
LD A,(g_volcounter)
OR A
LD A,6
LD (g_volcounter),A
JR Z,?0041
?0040:
; 288. {
; 289. g_volcounter = 6;
; 290.
; 291. if(g_music_vars.volume>0)
LD A,(g_music_vars)
LD B,A
XOR A
SUB B
JP PO,?0160
XOR 128
?0160:
JP P,?0002
?0042:
; 292. {
; 293. volume_callback(--g_music_vars.volume);
LD HL,g_music_vars
DEC (HL)
CALL LWRD ?0204
; 294. ui_show_vol(g_music_vars.volume);
?0043:
; 295. }
; 296. }
; 297. else
JR ?0044
?0041:
; 298. {
; 299. g_volcounter = 6;
; 300. main_ResShowPic(VOL_00+g_music_vars.volume,0,106);
LD C,106
PUSH BC
CALL LWRD ?0205
POP AF
?0044:
; 301. }
; 302. break;
JR ?0002
?0045:
; 303. case AP_KEY_VOLADD:
; 304. case AP_KEY_VOLADD | AP_KEY_HOLD:
; 305. if(g_volcounter>0)
LD A,(g_volcounter)
OR A
LD A,6
LD (g_volcounter),A
JR Z,?0047
?0046:
; 306. {
; 307. g_volcounter = 6;
; 308.
; 309. if(g_music_vars.volume<31)
LD A,(g_music_vars)
XOR 128
CP 159
JR NC,?0050
?0048:
; 310. {
; 311. volume_callback(++g_music_vars.volume);
LD HL,g_music_vars
INC (HL)
CALL LWRD ?0204
; 312. ui_show_vol(g_music_vars.volume);
?0049:
; 313. }
; 314. }
; 315. else
JR ?0002
?0047:
; 316. {
; 317. g_volcounter = 6;
; 318. main_ResShowPic(VOL_00+g_music_vars.volume,0,106);
LD C,106
PUSH BC
CALL LWRD ?0205
POP AF
?0050:
; 319. }
; 320. break;
JR ?0002
?0051:
; 321. #endif
; 322.
; 323. #ifndef __6KEYMODE__
; 324. case AP_KEY_VOL | AP_KEY_UP:
; 325. if(g_volcounter > 0)
; 326. {
; 327. g_volcounter = 0;
; 328. g_rSetPlayStatus = TRUE;
; 329. }
; 330. else
; 331. {
; 332. g_volcounter = 6;
; 333. main_ResShowPic(VOL_00+g_music_vars.volume,0,106);
; 334. }
; 335. break;
; 336. #endif
; 337.
; 338. case AP_MSG_CHARGING:
; 339. 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
; 340. break;
JR ?0002
?0052:
; 341.
; 342. default:
; 343. key = ap_handle_hotkey(key);
CALL LWRD ap_handle_hotkey
LD (IX+2),A
; 344. if (key == RESULT_REDRAW)
CP 50
JR NZ,?0054
?0053:
; 345. {
; 346. SetFullInterface();
XOR A
LD (ui_auto_update),A
LD HL,UpDisplayFlag
LD A,(HL)
OR 193
LD (HL),A
INC HL
LD (HL),255
; 347. need_draw = TRUE;
LD A,1
LD (need_draw),A
; 348. return_to_play=1;
LD (return_to_play),A
JR ?0002
?0054:
; 349. }
; 350. else if (key != 0)
XOR A
OR (IX+2)
JR Z,?0002
?0056:
; 351. {
; 352. return key;
LD L,A
LD H,0
; 353. }
JR ?0058
?0057:
?0055:
; 354. break;
?0002:
; 355. }
; 356. return NULL;
LD HL,0
; 357. }
?0058:
JP LWRD ?BANK_LEAVE_DIRECT_L08
?0192:
LD BC,0
LD E,2
LD A,BYTE3 musicpSendCommand
LD HL,LWRD musicpSendCommand
CALL LWRD ?BANK_CALL_DIRECT_L08
XOR A
LD (ui_auto_update),A
LD HL,UpDisplayFlag
LD A,(HL)
OR 193
LD (HL),A
INC HL
LD (HL),255
LD A,1
LD (need_draw),A
RET
?0201:
LD BC,0
?0202:
LD E,65
?0200:
LD A,BYTE3 musicpSendCommand
LD HL,LWRD musicpSendCommand
JP LWRD ?BANK_CALL_DIRECT_L08
?0203:
CALL LWRD ?BANK_CALL_DIRECT_L08
LD (g_result),HL
LD A,1
RET
?0204:
LD E,(HL)
LD A,E
RLCA
SBC A,A
LD D,A
LD A,BYTE3 volume_callback
LD HL,LWRD volume_callback
CALL LWRD ?BANK_CALL_DIRECT_L08
LD DE,(g_music_vars)
LD A,BYTE3 ui_show_vol
LD HL,LWRD ui_show_vol
CALL LWRD ?BANK_CALL_DIRECT_L08
RET
?0205:
LD C,0
LD DE,(g_music_vars)
LD A,E
RLCA
SBC A,A
LD D,A
LD HL,281
ADD HL,DE
EX DE,HL
?0206:
LD A,BYTE3 main_ResShowPic
LD HL,LWRD main_ResShowPic
JP LWRD ?BANK_CALL_DIRECT_L08
play_key_next:
; 358.
; 359. //============================================================
; 360. //======正常播放时的NEXT键处理========
; 361. int play_key_next( int key )
; 362. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW 65526
; 363. wma_play_status_t status_buf;
; 364. uchar IMK_Reg;
; 365.
; 366. //*********music edit add by mzh 2007.1.19*********
; 367. if((MusicEditSelStatus!=MusicEditSelSta_NoSel)&&(key == (AP_KEY_AB | AP_KEY_UP)))
LD A,(MusicEditSelStatus)
OR A
JP Z,?0060
LD A,49
XOR (IX+2)
OR (IX+3)
JP NZ,?0060
?0062:
?0061:
?0059:
; 368. {
; 369. IMK_Reg=input8(0x27);
IN A,(39)
LD (IX-10),A
; 370. switch(MusicEditSelStatus)
LD A,(MusicEditSelStatus)
CP 1
JR NZ,?0065
?0064:
; 371. {
; 372. case MusicEditSelSta_WaitStart:
; 373. output8(0x27,0);
XOR A
OUT (39),A
; 374. MusicEdit_SelSeg.StartSec=FS_FTell(m_Mp3deFileHandle);
LD DE,(m_Mp3deFileHandle)
CALL LWRD FS_FTell
LD (MusicEdit_SelSeg),HL
LD (MusicEdit_SelSeg+2),BC
; 375. MusicEditStartTime.second=c_mp3deNowTimeSencond;
LD A,(c_mp3deNowTimeSencond)
LD (MusicEditStartTime+2),A
; 376. MusicEditStartTime.minute=c_mp3deNowTimeMinute;
LD A,(c_mp3deNowTimeMinute)
LD (MusicEditStartTime+1),A
; 377. MusicEditStartTime.hour= c_mp3deNowTimeHour;
LD A,(c_mp3deNowTimeHour)
LD (MusicEditStartTime),A
; 378. output8(0x27,IMK_Reg);
LD A,(IX-10)
OUT (39),A
; 379.
; 380. MusicEditSelStatus=MusicEditSelSta_WaitEnd;
LD A,2
LD (MusicEditSelStatus),A
; 381. break;
JP LWRD ?0172
?0065:
CP 2
JR NZ,?0070
; 382. case MusicEditSelSta_WaitEnd:
; 383. output8(0x27,0);
; 384. MusicEdit_SelSeg.EndSec=FS_FTell(m_Mp3deFileHandle);
CALL LWRD ?0207
; 385. MusicEditEndTime.second=c_mp3deNowTimeSencond;
; 386. MusicEditEndTime.minute=c_mp3deNowTimeMinute;
; 387. MusicEditEndTime.hour= c_mp3deNowTimeHour;
; 388. output8(0x27,IMK_Reg);
LD A,(IX-10)
OUT (39),A
; 389. MusicEditSelStatus=MusicEditSelSta_NoSel;
XOR A
LD (MusicEditSelStatus),A
; 390.
; 391. MusicEdit_SelSeg.location=& g_music_vars.location;
LD HL,g_music_vars+7
LD (MusicEdit_SelSeg+8),HL
; 392. MusicEdit_SelSeg.StartTime=&MusicEditStartTime;
LD HL,MusicEditStartTime
LD (MusicEdit_SelSeg+10),HL
; 393. MusicEdit_SelSeg.EndTime=&MusicEditEndTime;
LD HL,MusicEditEndTime
LD (MusicEdit_SelSeg+12),HL
; 394. need_draw = TRUE;
LD A,1
LD (need_draw),A
; 395. SetFullInterface();
XOR A
LD (ui_auto_update),A
LD HL,UpDisplayFlag
LD A,(HL)
OR 193
LD (HL),A
INC HL
LD (HL),255
; 396. if(MusicEditStatus==MusicEditSta_SelSeg)
LD A,(MusicEditStatus)
DEC A
JR NZ,?0067
?0066:
; 397. {
; 398. MusicEditStatus=MusicEditSta_NoFun;
LD (MusicEditStatus),A
; 399. SaveSelSegment(&MusicEdit_SelSeg);
LD DE,MusicEdit_SelSeg
LD A,BYTE3 SaveSelSegment
LD HL,LWRD SaveSelSegment
CALL LWRD ?BANK_CALL_DIRECT_L08
JR ?0070
?0067:
; 400. }
; 401. else if(MusicEditStatus==MusicEditSta_DelSeg)
LD A,(MusicEditStatus)
DEC A
DEC A
JR NZ,?0070
?0069:
; 402. {
; 403. MusicEditStatus=MusicEditSta_NoFun;
LD (MusicEditStatus),A
; 404. return(UI_ShowDelSegComfirm()); // return to musicedit ap
LD A,BYTE3 UI_ShowDelSegComfirm
LD HL,LWRD UI_ShowDelSegComfirm
CALL LWRD ?BANK_CALL_DIRECT_L08
; 405. }
JP LWRD ?0100
?0070:
?0068:
?0063:
; 406. }
; 407. return NULL;
JP LWRD ?0172
; 408. }
?0060:
; 409. //停快进退
; 410. if ((PlayStatus == FFPlaySta) || (PlayStatus == FBPlaySta))
LD A,(PlayStatus)
CP 3
JR Z,?0073
CP 4
JR NZ,?0072
?0073:
?0074:
?0071:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -