⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ui_stop.s01

📁 炬力方案176*132软件源码,适用于AK1025
💻 S01
📖 第 1 页 / 共 3 页
字号:
?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 + -