📄 ui_stop.s01
字号:
?0091:
; 289. g_FCexitflag = FALSE;
XOR A
LD (g_FCexitflag),A
; 290.
; 291. return g_result;
JR ?0171
; 292.
; 293. case AP_KEY_EQ | AP_KEY_UP:
?0095:
; 294. break;
?0096:
; 295.
; 296. case AP_KEY_MODE:
; 297. modekeystore = key;
LD (IX-6),E
; 298. break;
JP LWRD ?0042
?0097:
; 299.
; 300. case AP_KEY_MODE | AP_KEY_UP: //短按MODE
; 301. if (modekeystore != AP_KEY_MODE)
LD A,(IX-6)
CP 16
JR Z,?0099
?0098:
; 302. { //要先按了AP_KEY_MODE 键后up才算有效
; 303. modekeystore = NULL;
LD (IX-6),0
; 304. break;
JP LWRD ?0042
?0099:
; 305. }
; 306. g_result = ui_stop_menu();
LD A,BYTE3 ui_stop_menu
LD HL,LWRD ui_stop_menu
CALL LWRD ?0176
; 307.
; 308.
; 309. if (g_result == RESULT_IGNORE)
LD A,52
XOR L
OR H
JP Z,?0174
?0100:
; 310. {
; 311. SetFullInterface();
; 312. need_draw = TRUE;
; 313. break;
?0101:
; 314. }
; 315. CaltimeFlag = FALSE;
XOR A
LD (CaltimeFlag),A
; 316. ifSelBuffToltalTimeFlag = FALSE;
LD (ifSelBuffToltalTimeFlag),A
; 317.
; 318. if (g_result == RESULT_SD_OUT)
LD A,54
XOR L
OR H
JR Z,?0170
?0102:
; 319. {
; 320. return RESULT_CURR_UI;
; 321. }
?0103:
; 322. PlayStatus=StopSta;
XOR A
LD (PlayStatus),A
; 323. return g_result;//热键或等于0时返回
JR ?0171
; 324.
; 325.
; 326.
; 327. case AP_KEY_PREV | AP_KEY_UP:
?0104:
?0106:
; 328. while(ap_get_message() != 0);
CALL LWRD ap_get_message
OR A
JR NZ,?0104
?0107:
; 329. break;
?0105:
JP LWRD ?0042
?0108:
; 330.
; 331. case AP_KEY_PREV:
; 332. case AP_KEY_PREV | AP_KEY_HOLD:
; 333. musicpSendCommand(MC_CLOSE, NULL);
LD C,A
LD B,A
LD E,2
CALL LWRD ?0177
; 334. g_result = ChangeMusic(Music_Prev, Stop_key);
LD C,0
LD E,4
CALL LWRD ?0180
; 335. if(g_result==FALSE) //选择文件错误
JR NZ,?0110
?0109:
; 336. return g_result;
?0171:
JR ?0172
?0110:
; 337. GetInformation(); //取文件信息
CALL LWRD ?0175
; 338. musicpSendCommand( MC_OPEN, (int)& g_Openparam );//这个可不用
; 339. g_result = musicpSendCommand(MC_LOAD, NULL);
; 340. CaltimeFlag = FALSE;//等待计时间
; 341. WaitForCaltimeCNT = 0;
; 342. SetFullInterface();
; 343. UpDisplayFlag=UpDisplayFlag & clr_musicBackGDPic ;
; 344. need_draw = TRUE;
?0112:
; 345.
; 346. //清除多出的HOLD消息,防止按键停了还跳几曲
; 347. while(ap_get_message() != 0);
CALL LWRD ap_get_message
OR A
JR NZ,?0112
?0113:
; 348. break;
?0111:
JR ?0042
?0114:
?0116:
; 349.
; 350. case AP_KEY_NEXT | AP_KEY_UP:
; 351. while(ap_get_message() != 0);
CALL LWRD ap_get_message
OR A
JR NZ,?0114
?0117:
; 352. break;
?0115:
JR ?0042
?0118:
; 353.
; 354. case AP_KEY_NEXT:
; 355. case AP_KEY_NEXT | AP_KEY_HOLD:
; 356. musicpSendCommand(MC_CLOSE, NULL);
LD C,A
LD B,A
LD E,2
CALL LWRD ?0177
; 357. g_result = ChangeMusic(Music_Next, Stop_key);
LD C,0
LD E,3
CALL LWRD ?0180
; 358. if(g_result==FALSE) //选择文件错误
JR NZ,?0120
?0119:
; 359. return g_result;
?0172:
LD HL,(g_result)
JR ?0140
?0120:
; 360. GetInformation(); //取文件信息
CALL LWRD ?0175
; 361. musicpSendCommand(MC_OPEN, (int)& g_Openparam);
; 362. g_result = musicpSendCommand(MC_LOAD, NULL);
; 363. CaltimeFlag = FALSE;//等待计时间
; 364. WaitForCaltimeCNT = 0;
; 365.
; 366. SetFullInterface();
; 367. UpDisplayFlag=UpDisplayFlag & clr_musicBackGDPic ;
; 368.
; 369. need_draw = TRUE;
?0122:
; 370. while(ap_get_message() != 0);
CALL LWRD ap_get_message
OR A
JR Z,?0042
?0123:
; 371. break;
JR ?0122
?0121:
?0124:
; 372. /*
; 373. case AP_KEY_VOLSUB:
; 374. case AP_KEY_VOLADD:
; 375.
; 376. slider.min = 0;
; 377. slider.max = 31;
; 378. slider.value = g_music_vars.volume;
; 379. slider.step = 1;
; 380. slider.title=CHANGEVO;
; 381. slider.string_id=g_comval.langid;
; 382. ui_auto_update = FALSE;
; 383.
; 384. //在停止状态时调音量没必要实时改变IO号的值
; 385. g_result = ui_slider(& slider, NULL);
; 386.
; 387. g_music_vars.volume = slider.value;//退出时再改变音量的值
; 388. ui_auto_update = TRUE;
; 389. if (g_result != 0)return g_result;
; 390. SetFullInterface();
; 391. need_draw = TRUE;
; 392. break;
; 393. */
; 394. case AP_MSG_SD_OUT:
; 395. if (g_music_vars.location.disk == 'H')
LD A,(g_music_vars+7)
CP 72
JR NZ,?0042
?0125:
; 396. {
; 397. g_music_vars.location.disk = 'C';
LD A,67
LD (g_music_vars+7),A
; 398.
; 399. DisplayErrMsg(CARDPULL);//显示卡拔出
LD DE,394
LD A,BYTE3 DisplayErrMsg
LD HL,LWRD DisplayErrMsg
CALL LWRD ?BANK_CALL_DIRECT_L08
; 400. PlayStatus=StopSta;
XOR A
LD (PlayStatus),A
; 401. return RESULT_CURR_UI;
?0170:
LD HL,0
; 402.
; 403. }
JR ?0140
?0126:
; 404. break;
?0127:
; 405.
; 406. case AP_MSG_SD_IN:
; 407. break;
?0128:
; 408.
; 409.
; 410. default:
; 411. key = ap_handle_hotkey(key);
CALL LWRD ap_handle_hotkey
LD (IX-7),A
; 412. if (key == RESULT_REDRAW)
CP 50
JR NZ,?0130
?0129:
; 413. {
; 414. SetFullInterface();
?0174:
XOR A
LD (ui_auto_update),A
LD HL,UpDisplayFlag
LD A,(HL)
OR 193
LD (HL),A
INC HL
LD (HL),255
; 415. need_draw = TRUE;
LD A,1
LD (need_draw),A
JR ?0042
?0130:
; 416. }
; 417. else if (key != 0)
XOR A
OR (IX-7)
JR Z,?0042
?0132:
; 418. {
; 419. return key;
LD L,A
LD H,0
; 420. }
?0140:
POP IY
JP LWRD ?BANK_LEAVE_DIRECT_L08
?0133:
?0131:
; 421. break;
?0042:
; 422. } //switch(key)
; 423. if (g_ScrollFlag)
LD A,(g_ScrollFlag)
OR A
JR Z,?0135
?0134:
; 424. {
; 425. g_ScrollFlag = FALSE;
XOR A
LD (g_ScrollFlag),A
; 426. UpDisplayFlag = UpDisplayFlag | up_musicbattery;
LD HL,UpDisplayFlag
SET 7,(HL)
; 427. need_draw = TRUE;
LD A,1
LD (need_draw),A
?0135:
; 428. }
; 429. if ((!CaltimeFlag)) // && (WaitForCaltimeCNT >= CaltimeCNT_def))
LD A,(CaltimeFlag)
OR A
JR NZ,?0139
?0136:
; 430. {
; 431. musicpSendCommand(MC_CALTIME, NULL);
CALL LWRD ?0179
; 432. if(PlayStatus!=PauseSta)
LD A,(PlayStatus)
DEC A
JR Z,?0139
?0138:
; 433. {
; 434. UpDisplayFlag = UpDisplayFlag | up_musiccurrenttime | up_musicbitrate|up_musictotaltime;
LD HL,UpDisplayFlag
INC HL
LD A,(HL)
OR 35
LD (HL),A
; 435. need_draw = TRUE;
LD A,1
LD (need_draw),A
?0139:
?0137:
; 436. }
; 437. }
; 438.
; 439. } //while(1)
; 440. }
JP LWRD ?0028
?0180:
LD A,BYTE3 ChangeMusic
LD HL,LWRD ChangeMusic
CALL LWRD ?BANK_CALL_DIRECT_L08
LD H,0
LD (g_result),HL
LD A,L
OR A
RET
FadeOut:
; 441.
; 442. void FadeOut( bool DisMod )
; 443. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW 65526
?0142:
; 444. #ifdef OPT_Sup_FadeOut_fun
; 445. music_play_status_t status_buf;
; 446.
; 447. while (1)
; 448. {
; 449. bool RESULT;
; 450.
; 451.
; 452. RESULT = musicpSendCommand(MC_FADEINOUT, FadeOut_def);
LD BC,2
LD E,13
CALL LWRD ?0177
; 453. if (RESULT)
INC L
DEC L
JR NZ,?0141
?0144:
; 454. {
; 455. break;
?0145:
; 456. }
; 457.
; 458. output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
IN A,(78)
SET 3,A
OUT (78),A
; 459.
; 460. if ( DisMod )
XOR A
OR (IX+2)
JR Z,?0147
?0146:
; 461. {
; 462. RealDisplay();
LD A,BYTE3 RealDisplay
LD HL,LWRD RealDisplay
CALL LWRD ?BANK_CALL_DIRECT_L08
?0147:
; 463. }
; 464. musicpSendCommand(MC_GETSTATUS, (int)(& status_buf));
LD HL,0
ADD HL,SP
LD C,L
LD B,H
LD E,131
CALL LWRD ?0177
; 465. if ((status_buf.status == PLAYING_REACH_END)
; 466. || (status_buf.status == PLAYING_REACH_HEAD))
LD A,(IX-10)
CP 6
JR Z,?0141
CP 14
JR Z,?0141
?0150:
?0151:
?0148:
; 467. {
; 468. return;
; 469. }
?0149:
; 470. if ((status_buf.status == PLAYING_WAIT_A)
; 471. || (status_buf.signal == SIGNAL_REACH_B)
; 472. || (status_buf.signal == SIGNAL_REACH_V))
CP 11
JR Z,?0154
LD B,(IX-9)
DEC B
DEC B
JR Z,?0154
LD B,(IX-9)
DEC B
JR NZ,?0142
?0154:
?0155:
?0152:
; 473. {
; 474. musicpSendCommand(MC_SETA_B, ClrABPoint);
LD BC,0
LD E,65
CALL LWRD ?0177
; 475. return;
; 476. }
?0153:
; 477. }
; 478.
; 479. #endif //OPT_Sup_FadeOut_fun
; 480. }
?0141:
?0156:
JP LWRD ?BANK_LEAVE_DIRECT_L08
; 481.
RSEG CSTR
?0022:
DEFB '$$TEMP$$WAV'
DEFB 0
RSEG UDATA0
WaitForCaltimeCNT:
DEFS 1
CaltimeFlag:
DEFS 1
RSEG IDATA0
g_firstplay_flag:
DEFS 1
RSEG CDATA0
DEFB 1
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -