📄 ui_follow.s01
字号:
; 245. SetFullInterface();
XOR A
?0101:
LD (ui_auto_update),A
LD HL,UpDisplayFlag
LD A,(HL)
OR 193
LD (HL),A
INC HL
LD (HL),255
; 246. need_draw = TRUE;
JR ?0099
; 247. return NULL;
; 248.
; 249. case AP_MSG_RTC:
?0038:
; 250. g_result = GetBattery();
CALL LWRD GetBattery
LD C,A
LD (g_result),BC
; 251. if ( g_result <= DEF_RecLowBatt )
LD HL,5
CALL LWRD ?SS_CMP_L02
JR C,?0040
?0039:
; 252. {
; 253. if ( ++LowBatt_CNT > DEF_RecLowBatTime )
INC (IX-6)
LD B,(IX-6)
LD A,L
CP B
JR NC,?0043
?0041:
; 254. {
; 255. DealForExitRec();
LD A,BYTE3 DealForExitRec
LD HL,LWRD DealForExitRec
CALL LWRD ?BANK_CALL_DIRECT_L08
; 256. DisplayErrMsg(MPWROUT);
LD DE,396
?0100:
CALL LWRD ?0135
; 257. OpenMusic();
; 258. //RePlayStatus = ABLoopPlay;
; 259. RePlayStatus = NormalPlay;
; 260. UpDisplayFlag = UpDisplayFlag | up_MPRLmode;
; 261. need_draw = TRUE;
?0099:
LD A,1
LD (need_draw),A
; 262. return NULL;
JR ?0080
; 263. }
?0042:
; 264. }
; 265. else
?0040:
; 266. {
; 267. LowBatt_CNT = 0;
LD (IX-6),B
?0043:
; 268. }
; 269.
; 270. UpDisplayFlag = UpDisplayFlag | up_musiccurrenttime;
LD HL,UpDisplayFlag
INC HL
SET 1,(HL)
; 271. Show_time_FC();
LD A,BYTE3 Show_time_FC
LD HL,LWRD Show_time_FC
CALL LWRD ?BANK_CALL_DIRECT_L08
; 272. //ShowNowTime(TRUE);
; 273. ui_show_batt( GetBattery(), g_comval.BatteryType,0);
LD C,D
PUSH BC
LD BC,(g_comval+15)
CALL LWRD GetBattery
LD E,A
LD A,BYTE3 ui_show_batt
LD HL,LWRD ui_show_batt
CALL LWRD ?BANK_CALL_DIRECT_L08
POP HL
; 274. break;
JR ?0032
?0044:
; 275.
; 276. default:
; 277. key = ap_handle_hotkey(key);
CALL LWRD ?0140
; 278. if (key == RESULT_REDRAW)
JR NZ,?0046
?0045:
; 279. {
; 280. SetFullInterface();
LD (ui_auto_update),A
LD HL,UpDisplayFlag
LD A,(HL)
OR 193
LD (HL),A
INC HL
LD (HL),255
; 281. return_to_play=1;
LD A,1
LD (return_to_play),A
; 282. need_draw = TRUE;
LD (need_draw),A
JR ?0032
?0046:
; 283. }
; 284. else if (key != 0)
PUSH IY
POP HL
LD A,L
OR H
JR Z,?0032
?0048:
; 285. {
; 286. DealForExitRec();
LD A,BYTE3 DealForExitRec
LD HL,LWRD DealForExitRec
CALL LWRD ?BANK_CALL_DIRECT_L08
; 287. RePlayStatus = NormalPlay;
; 288. /*
; 289. //************
; 290. //注:因为这里退出时外面要淡出,所以会发出声音,
; 291. //这里把音量设为0就相当于不淡出,这只是权余之计
; 292. //以后希望能改掉
; 293. SetPAVolume(0);
; 294. g_FadeInStatusFlag = 2;
; 295. OpenMusic();
; 296. g_FadeInStatusFlag = 0;
; 297. ClosePA();
; 298. //!!!!!!!!!!!!!!!
; 299. */
; 300. g_FCexitflag = TRUE;
; 301. OpenMusic();
CALL LWRD ?0133
; 302. //musicpSendCommand(MC_SETVOLUME, 0); //让音量为0,这可在淡出时没声
; 303.
; 304. SetFullInterface();
; 305. need_draw = TRUE;
; 306. return key;
PUSH IY
POP HL
; 307. }
JR ?0052
?0049:
?0047:
; 308. break;
?0032:
; 309. } //key
; 310. if (g_2HZ_CNT > ABPointTimeSize) //check if time out
LD BC,(g_2HZ_CNT)
LD HL,(ABPointTimeSize)
AND A
SBC HL,BC
JR NC,?0051
?0050:
; 311. {
; 312. DealForExitRec();
LD A,BYTE3 DealForExitRec
LD HL,LWRD DealForExitRec
CALL LWRD ?BANK_CALL_DIRECT_L08
; 313. RePlayStatus = FollowAB;
LD A,5
?0091:
LD (RePlayStatus),A
; 314. //need_draw = TRUE;
; 315. return NULL;
?0080:
LD HL,0
; 316. }
?0052:
POP IY
JP LWRD ?BANK_LEAVE_DIRECT_L08
?0051:
; 317. } //while(1)
; 318. } //ui_followRec
JP LWRD ?0021
?0133:
XOR A
LD (RePlayStatus),A
LD A,1
LD (g_FCexitflag),A
LD A,BYTE3 OpenMusic
LD HL,LWRD OpenMusic
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
?0134:
LD A,BYTE3 OpenMusic
LD HL,LWRD OpenMusic
CALL LWRD ?BANK_CALL_DIRECT_L08
LD A,3
LD (RePlayStatus),A
LD HL,UpDisplayFlag
INC HL
SET 3,(HL)
RET
?0135:
LD A,BYTE3 DisplayErrMsg
LD HL,LWRD DisplayErrMsg
CALL LWRD ?BANK_CALL_DIRECT_L08
LD A,BYTE3 OpenMusic
LD HL,LWRD OpenMusic
CALL LWRD ?BANK_CALL_DIRECT_L08
XOR A
LD (RePlayStatus),A
LD HL,UpDisplayFlag
INC HL
SET 3,(HL)
RET
?0136:
LD DE,394
?0137:
LD A,BYTE3 DisplayErrMsg
LD HL,LWRD DisplayErrMsg
JP LWRD ?BANK_CALL_DIRECT_L08
?0138:
LD A,BYTE3 wavrSendCommand
LD HL,LWRD wavrSendCommand
JP LWRD ?BANK_CALL_DIRECT_L08
?0139:
CALL LWRD ap_get_message
LD C,A
LD B,0
PUSH BC
POP IY
LD E,C
LD D,B
RET
?0140:
PUSH IY
POP HL
LD E,L
CALL LWRD ap_handle_hotkey
LD C,A
PUSH BC
POP IY
LD A,50
XOR C
RET
ui_followAB:
; 319.
; 320. /*
; 321. ********************************************************************************
; 322. * int ui_followAB( void )
; 323. *
; 324. * Description : 跟读--------A-B播放子状态
; 325. *
; 326. * Arguments : void
; 327. *
; 328. * Returns : int
; 329. * RESULT_UI_STOP: 表示要进入停止状态,此时所有module已关闭
; 330. * key: 热健消息
; 331. * NULL: 表示正常退出
; 332. *
; 333. * Notes : 在此状态下,按play到stop状态;按mode到play;按NEXT到对比状态;
; 334. *
; 335. ********************************************************************************
; 336. */
; 337.
; 338.
; 339. int ui_followAB( void )
; 340. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW -8
PUSH IY
; 341. int key;
; 342.
; 343. wma_play_status_t status_buf;
; 344.
; 345. if (!ReturnNotInit)
LD A,(ReturnNotInit)
OR A
JR NZ,?0054
?0053:
; 346. {
; 347. OpenMusic();
LD A,BYTE3 OpenMusic
LD HL,LWRD OpenMusic
CALL LWRD ?BANK_CALL_DIRECT_L08
?0054:
; 348. }
; 349. ReturnNotInit = FALSE;
XOR A
LD (ReturnNotInit),A
; 350. UpDisplayFlag = UpDisplayFlag | up_MPRLmode;
LD HL,UpDisplayFlag
INC HL
SET 3,(HL)
; 351. need_draw = TRUE;
LD A,1
LD (need_draw),A
?0056:
; 352.
; 353. while (1)
; 354. {
; 355. if (need_draw)
LD A,(need_draw)
OR A
JR Z,?0059
?0058:
; 356. {
; 357. Show_time_FC(); //显示比特率
LD A,BYTE3 Show_time_FC
LD HL,LWRD Show_time_FC
CALL LWRD ?BANK_CALL_DIRECT_L08
; 358. RefreshMainScreen();
LD A,BYTE3 RefreshMainScreen
LD HL,LWRD RefreshMainScreen
CALL LWRD ?BANK_CALL_DIRECT_L08
; 359. need_draw = FALSE;
XOR A
LD (need_draw),A
?0059:
; 360. }
; 361.
; 362. key = ap_get_message();
CALL LWRD ?0139
; 363.
; 364. switch (key)
CALL LWRD ?S_V_SWITCH_L06
DEFW 9
DEFW 3
DEFW 4
DEFW 28
DEFW 29
DEFW 33
DEFW 37
DEFW 38
DEFW 48
DEFW 49
DEFW ?0070
DEFW ?0065
DEFW ?0066
DEFW ?0065
DEFW ?0067
DEFW ?0062
DEFW ?0060
DEFW ?0069
DEFW ?0068
DEFW ?0068
?0061:
; 365. {
; 366. case AP_MSG_STANDBY:
; 367. break;
?0062:
; 368.
; 369. case AP_KEY_PLAY | AP_KEY_UP:
; 370. g_result = DealPlayKey();
LD A,BYTE3 DealPlayKey
LD HL,LWRD DealPlayKey
CALL LWRD ?BANK_CALL_DIRECT_L08
LD (g_result),HL
; 371. if (g_result != 0)
LD A,L
OR H
JP NZ,?0078
?0063:
; 372. {
; 373. return g_result;
; 374. }
?0064:
; 375. return RESULT_UI_STOP;
LD HL,102
; 376.
; 377. case AP_KEY_AB | AP_KEY_UP:
JP LWRD ?0078
?0065:
; 378. case AP_KEY_NEXT | AP_KEY_UP:
; 379. ReturnNotInit = TRUE; //要求进入比较AB时不要初始化
LD A,1
LD (ReturnNotInit),A
; 380. RePlayStatus = CompareAB;
LD A,7
JP LWRD ?0125
; 381. return NULL;
; 382.
; 383. case AP_KEY_MODE | AP_KEY_UP:
?0066:
; 384. RePlayStatus = NormalPlay;
XOR A
JP LWRD ?0125
; 385. return NULL;
; 386.
; 387. case AP_KEY_PREV | AP_KEY_UP:
?0067:
; 388. RePlayStatus = ABLoopPlay;
LD A,3
JP LWRD ?0125
; 389. return NULL;
; 390.
; 391. case AP_KEY_VOLSUB:
?0068:
; 392. case AP_KEY_VOLADD:
; 393. ChangeVolume();
LD A,BYTE3 ChangeVolume
LD HL,LWRD ChangeVolume
CALL LWRD ?BANK_CALL_DIRECT_L08
; 394. //SetFullInterface();
; 395. need_draw = TRUE;
LD A,1
JR ?0128
; 396. break;
?0069:
; 397.
; 398. case AP_MSG_RTC:
; 399. UpDisplayFlag = UpDisplayFlag | up_musiccurrenttime ;
LD HL,UpDisplayFlag
INC HL
SET 1,(HL)
; 400. Show_time_FC(); //显示比特率
LD A,BYTE3 Show_time_FC
LD HL,LWRD Show_time_FC
CALL LWRD ?BANK_CALL_DIRECT_L08
; 401. ShowNowTime(TRUE);
LD E,1
LD A,BYTE3 ShowNowTime
LD HL,LWRD ShowNowTime
CALL LWRD ?BANK_CALL_DIRECT_L08
; 402. ui_show_batt( GetBattery(), g_comval.BatteryType,0);//need_draw = TRUE;
LD C,B
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
; 403. break;
JR ?0060
?0070:
; 404.
; 405. default:
; 406. key = ap_handle_hotkey(key);
CALL LWRD ?0140
; 407. if (key == RESULT_REDRAW)
JR NZ,?0072
?0071:
; 408. {
; 409. SetFullInterface();
LD (ui_auto_update),A
LD HL,UpDisplayFlag
LD A,(HL)
OR 193
LD (HL),A
INC HL
LD (HL),255
; 410. return_to_play=1;
LD A,1
LD (return_to_play),A
; 411. need_draw = TRUE;
?0128:
LD (need_draw),A
JR ?0060
?0072:
; 412. }
; 413. else if(key != 0)
PUSH IY
POP HL
LD A,L
OR H
JR NZ,?0078
?0074:
; 414. {
; 415. return key;
; 416. }
?0075:
?0073:
; 417. break;
?0060:
; 418. }
; 419.
; 420. musicpSendCommand(MC_GETSTATUS, (int)& status_buf);
LD HL,2
ADD HL,SP
LD C,L
LD B,H
LD E,131
LD A,BYTE3 musicpSendCommand
LD HL,LWRD musicpSendCommand
CALL LWRD ?BANK_CALL_DIRECT_L08
; 421. if (status_buf.signal == SIGNAL_REACH_B)
LD B,(IX-7)
DEC B
DEC B
JR NZ,?0077
?0076:
; 422. {
; 423. Show_time_FC(); //显示比特率
LD A,BYTE3 Show_time_FC
LD HL,LWRD Show_time_FC
CALL LWRD ?BANK_CALL_DIRECT_L08
; 424. RefreshMainScreen();
LD A,BYTE3 RefreshMainScreen
LD HL,LWRD RefreshMainScreen
CALL LWRD ?BANK_CALL_DIRECT_L08
; 425. need_draw = FALSE;
XOR A
LD (need_draw),A
; 426.
; 427. musicpSendCommand(MC_STOP, NULL);
LD C,B
LD E,6
LD A,BYTE3 musicpSendCommand
LD HL,LWRD musicpSendCommand
CALL LWRD ?BANK_CALL_DIRECT_L08
; 428. musicpSendCommand(MC_CLOSE, NULL);
LD BC,0
LD E,2
LD A,BYTE3 musicpSendCommand
LD HL,LWRD musicpSendCommand
CALL LWRD ?BANK_CALL_DIRECT_L08
; 429. RePlayStatus = FollowRec;
LD A,4
?0125:
LD (RePlayStatus),A
; 430. return NULL;
LD HL,0
; 431. }
?0078:
POP IY
JP LWRD ?BANK_LEAVE_DIRECT_L08
?0077:
; 432. }
; 433. }
JP LWRD ?0056
RSEG CSTR
?0004:
DEFB '$$TEMP$$WAV'
DEFB 0
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -