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

📄 ui_stop.s01

📁 炬力方案176*132软件源码,适用于AK1025
💻 S01
📖 第 1 页 / 共 3 页
字号:
	NAME	ui_stop(17)
	RSEG	AP_UI_STP(0)
	RSEG	CSTR(0)
	RSEG	UDATA0(0)
	RSEG	IDATA0(0)
	RSEG	CDATA0(0)
	EXTERN	BackupCurrentTime
	PUBLIC	CaltimeFlag
	EXTERN	ChangeMusic
	EXTERN	CheckMusicType
	EXTERN	ClearTimePara
	EXTERN	DisplayErrMsg
	EXTERN	DisplayTimeRollback
	EXTERN	ErrReport
	EXTERN	FS_FRemove
	PUBLIC	FadeOut
	EXTERN	GetInformation
	EXTERN	MusicEditSelStatus
	EXTERN	MusicEditStatus
	EXTERN	MusicEdit_SelSeg
	EXTERN	PlayStatus
	EXTERN	RealDisplay
	EXTERN	RefreshMainScreen
	EXTERN	UpDisplayFlag
	EXTERN	UpdateFileSelector
	PUBLIC	WaitForCaltimeCNT
	EXTERN	ap_get_message
	EXTERN	ap_handle_hotkey
	EXTERN	ap_message_init
	EXTERN	bList_Flag
	EXTERN	fselGetNo
	EXTERN	fselGetTotal
	EXTERN	fselInit
	EXTERN	fselSetLocation
	EXTERN	fselSetMode
	EXTERN	fsel_mode_change_flag
	EXTERN	g_FCexitflag
	EXTERN	g_OldSecTempBackup
	EXTERN	g_Openparam
	EXTERN	g_PowerOffFlag
	EXTERN	g_ScrollFlag
	EXTERN	g_autoswitch_counter
	EXTERN	g_comval
	EXTERN	g_currentMusicType
	EXTERN	g_file_list_total
	PUBLIC	g_firstplay_flag
	EXTERN	g_from_browser
	EXTERN	g_introCNT
	EXTERN	g_introCntMode
	EXTERN	g_music_vars
	EXTERN	g_musicamount
	EXTERN	g_musicsequence
	EXTERN	g_result
	EXTERN	ifSelBuffToltalTimeFlag
	EXTERN	make_dirname
	EXTERN	musicpSendCommand
	EXTERN	need_draw
	EXTERN	sKY_Beep
	EXTERN	ui_auto_update
	EXTERN	ui_play
	PUBLIC	ui_stop
	PUBLIC	ui_stop_loop
	EXTERN	ui_stop_menu
	EXTERN	?CLZ80B_4_04_L00
	EXTERN	?C_V_SWITCH_L06
	EXTERN	?BANK_CALL_DIRECT_L08
	EXTERN	?BANK_LEAVE_DIRECT_L08
	EXTERN	?BANK_FAST_LEAVE_L08
	EXTERN	?ENT_AUTO_DIRECT_L09
	RSEG	AP_UI_STP
ui_stop:
; 1.	/*
; 2.	*******************************************************************************
; 3.	*                ACTOS AP
; 4.	*        This program demostrates how to build an AP
; 5.	*
; 6.	*        (c) Copyright Actions Co,Ld.
; 7.	*
; 8.	*  $Id: ui_stop.c,v 1.2 2006/07/14 06:46:20 tangwh Exp $
; 9.	*******************************************************************************
; 10.	*/
; 11.	#include "ap_music.h"
; 12.	
; 13.	char WaitForCaltimeCNT;//在停止状态下先不计时,到无按键动作一定时间后再开始计时
; 14.	                        // 这样可以提高在停止状态时按next 跳歌的速度.
; 15.	bool CaltimeFlag;       //true: 不用再算时间
; 16.	bool g_firstplay_flag = TRUE;
; 17.	extern void make_dirname(void);                        //false: 未算时间
; 18.	extern BYTE fsel_mode_change_flag;
; 19.	extern bool g_FCexitflag;
; 20.	
; 21.	extern EMU_MusicEditSelStatus MusicEditSelStatus;        // select: empty start end
; 22.	extern EMU_MusicEditStatus MusicEditStatus;                // select ,delete
; 23.	extern STRU_SelMusicSegment MusicEdit_SelSeg;
; 24.	extern HANDLE m_Mp3deFileHandle;     
; 25.	int ui_stop_loop(void);
; 26.	int DealForDRMsong(void);
; 27.	void ttest(void);
; 28.	bool DisplayTimeRollback(void);
; 29.	
; 30.	#pragma codeseg(AP_UI_STP)
; 31.	//======================================================================================
; 32.	//RESULT_CURR_UI: 还要处在当前界面
; 33.	//RESULT_UI_STOP: 到UI_STOP界面(因现在就是UI_STOP界面,所以同上)
; 34.	//RESULT_LAST_UI: 到上一级界面
; 35.	//--------------------------------------------------------------------------------------
; 36.	int ui_stop(void)
; 37.	{
	PUSH	BC
	PUSH	DE
; 38.	    int result;
; 39.	    ap_message_init(NULL);//开始算STANDBY 时间
	LD	DE,0
	LD	A,BYTE3 ap_message_init
	LD	HL,LWRD ap_message_init
	CALL	LWRD ?BANK_CALL_DIRECT_L08
?0004:
; 40.	
; 41.	    do
; 42.	    {
; 43.	        if (UpdateFileSelector() == 0)
	LD	A,BYTE3 UpdateFileSelector
	LD	HL,LWRD UpdateFileSelector
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	A,L
	OR	H
	JP	Z,?0162
?0005:
; 44.	         {
; 45.	             return 0;
; 46.	        }  
?0006:
; 47.	        
; 48.	       if(g_music_vars.location.disk=='C')             //选择Flash
	LD	A,(g_music_vars+7)
	CP	67
	JR	NZ,?0008
?0007:
; 49.	       {
; 50.	        if(g_music_vars.file_list_total_flash==0)
	LD	HL,(g_music_vars+86)
	LD	A,L
	OR	H
	JR	NZ,?0014
?0009:
; 51.	          g_music_vars.file_list_type = 0xff;         //普通播放模式  
	JR	?0164
; 52.	        else
?0010:
; 53.	          g_file_list_total = g_music_vars.file_list_total_flash;     
?0011:
; 54.	       }                                               
; 55.	     
; 56.	       else                                          //选择插卡       
?0008:
; 57.	       {
; 58.	        if(g_music_vars.file_list_total_card == 0) 
	LD	HL,(g_music_vars+88)
	LD	A,L
	OR	H
	JR	NZ,?0014
?0013:
; 59.	           g_music_vars.file_list_type = 0xff;           //普通播放模式  
?0164:
	CPL
	LD	(g_music_vars+92),A
; 60.	        else
	JR	?0015
?0014:
; 61.	          g_file_list_total = g_music_vars.file_list_total_card;   
	LD	(g_file_list_total),HL
?0015:
?0012:
; 62.	       }         
; 63.	          
; 64.	        if(g_music_vars.file_list_type==0xff)         //普通目录播放
	LD	A,(g_music_vars+92)
	INC	A
	JR	NZ,?0017
?0016:
; 65.	        {
; 66.	         g_musicamount = FSELGetTotal();
	LD	A,BYTE3 fselGetTotal
	LD	HL,LWRD fselGetTotal
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(g_musicamount),HL
; 67.	         g_musicsequence = FSELGetNo();
	LD	A,BYTE3 fselGetNo
	LD	HL,LWRD fselGetNo
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	JR	?0161
; 68.	        }
; 69.	        else
?0017:
; 70.	        {
; 71.	         g_musicamount = g_file_list_total;  //列表总数  
	LD	HL,(g_file_list_total)
	LD	(g_musicamount),HL
; 72.	         g_musicsequence = g_music_vars.file_list_num+1;            //当前列表编号
	LD	HL,(g_music_vars+90)
	INC	HL
?0161:
	LD	(g_musicsequence),HL
?0018:
; 73.	        }  
; 74.	        FSELSetMode(g_music_vars.repeat_mode);
	LD	DE,(g_music_vars+1)
	LD	A,BYTE3 fselSetMode
	LD	HL,LWRD fselSetMode
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 75.	         make_dirname();
	LD	A,BYTE3 make_dirname
	LD	HL,LWRD make_dirname
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 76.	        g_currentMusicType = CheckMusicType(g_music_vars.location.filename);
	LD	DE,g_music_vars+33
	LD	A,BYTE3 CheckMusicType
	LD	HL,LWRD CheckMusicType
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	A,L
	LD	(g_currentMusicType),A
; 77.	
; 78.	        GetInformation(); //取文件信息
	LD	A,BYTE3 GetInformation
	LD	HL,LWRD GetInformation
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 79.	            
; 80.	        musicpSendCommand( MC_OPEN,  (int)& g_Openparam );
	LD	BC,g_Openparam
	LD	E,1
	CALL	LWRD ?0177
; 81.	        musicpSendCommand(MC_LOAD, NULL);//04-4-23 9:32
	LD	BC,0
	LD	E,3
	CALL	LWRD ?0177
; 82.	        SetFullInterface();
	XOR	A
	LD	(ui_auto_update),A
	LD	HL,UpDisplayFlag
	LD	A,(HL)
	OR	193
	LD	(HL),A
	INC	HL
	LD	(HL),255
; 83.	        if(PlayStatus==PauseSta)                             //add  by zxs for not refresh background when pause
	LD	A,(PlayStatus)
	DEC	A
	JR	NZ,?0020
?0019:
; 84.	         {
; 85.	          UpDisplayFlag=UpDisplayFlag & clr_musicBackGDPic;
	LD	HL,UpDisplayFlag
	RES	0,(HL)
; 86.	          UpDisplayFlag=UpDisplayFlag & clr_musiccurrenttime; 
	INC	HL
	RES	1,(HL)
; 87.	        //  UpDisplayFlag=UpDisplayFlag & clr_musicbitrate; 
; 88.	         }
; 89.	        else
	JR	?0021
?0020:
; 90.	           PlayStatus = StopSta;
	XOR	A
	LD	(PlayStatus),A
?0021:
; 91.	        need_draw = TRUE;
	LD	A,1
	LD	(need_draw),A
; 92.	         musicpSendCommand(MC_CALTIME, NULL);                      //zxs add
	LD	BC,0
	CALL	LWRD ?0178
; 93.	         CaltimeFlag=TRUE;
	LD	A,1
	LD	(CaltimeFlag),A
; 94.	        g_result = ui_stop_loop();               
	LD	A,BYTE3 ui_stop_loop
	LD	HL,LWRD ui_stop_loop
	CALL	LWRD ?0176
; 95.	        FS_FRemove( FollowReadTempFileName );  //删除产生的临时文件         
	LD	DE,?0022
	CALL	LWRD FS_FRemove
; 96.	    }while( (g_result == RESULT_CURR_UI)
; 97.	                || (g_result == RESULT_UI_STOP)
; 98.	                || (g_result == RESULT_UI_STOP2) );//还保持在ui_stop界面
	LD	HL,(g_result)
	LD	A,L
	OR	H
	JP	Z,?0004
	LD	A,102
	XOR	L
	OR	H
	JP	Z,?0004
	LD	A,103
	XOR	L
	OR	H
	JP	Z,?0004
?0002:
; 99.	    if (g_result == RESULT_LAST_UI)
	LD	A,101
	XOR	L
	OR	H
	JR	NZ,?0026
?0025:
; 100.	    {
; 101.	        return NULL;//不带参数回到上一级
?0162:
	LD	HL,0
; 102.	    }
?0026:
; 103.	    return g_result;//带参数回到上一级
; 104.	}
?0027:
	POP	DE
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
?0175:
	LD	A,BYTE3 GetInformation
	LD	HL,LWRD GetInformation
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	BC,g_Openparam
	LD	E,1
	LD	A,BYTE3 musicpSendCommand
	LD	HL,LWRD musicpSendCommand
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	BC,0
	LD	E,3
	LD	A,BYTE3 musicpSendCommand
	LD	HL,LWRD musicpSendCommand
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	H,0
	LD	(g_result),HL
	XOR	A
	LD	(CaltimeFlag),A
	LD	(WaitForCaltimeCNT),A
	LD	(ui_auto_update),A
	LD	HL,UpDisplayFlag
	LD	A,(HL)
	OR	193
	LD	(HL),A
	INC	HL
	LD	(HL),255
	LD	HL,UpDisplayFlag
	RES	0,(HL)
	LD	A,1
	LD	(need_draw),A
	RET
?0176:
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(g_result),HL
	RET
?0179:
	LD	C,A
	LD	B,A
?0178:
	LD	E,19
?0177:
	LD	A,BYTE3 musicpSendCommand
	LD	HL,LWRD musicpSendCommand
	JP	LWRD ?BANK_CALL_DIRECT_L08
ui_stop_loop:
; 105.	//======================================================================================
; 106.	
; 107.	int ui_stop_loop()
; 108.	//int ui_stop()
; 109.	{
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	65510
	PUSH	IY
; 110.	    mp3_play_status_t status_buf;
; 111.	    slider_t slider; 
; 112.	    char key;
; 113.	    char modekeystore = NULL;
; 114.	    int result;
; 115.	    char i;
; 116.	
; 117.	
; 118.	    MusicEdit_SelSeg.StartSec=0;
	LD	BC,0
	LD	L,C
	LD	H,B
	LD	(MusicEdit_SelSeg),HL
	LD	(MusicEdit_SelSeg+2),BC
; 119.	    MusicEdit_SelSeg.EndSec=0;
	LD	(MusicEdit_SelSeg+4),HL
	LD	(MusicEdit_SelSeg+6),BC
; 120.	    MusicEditSelStatus=MusicEditSelSta_NoSel;    //music edit add by mzh 2007.1.19
	XOR	A
	LD	(MusicEditSelStatus),A
; 121.	    MusicEditStatus=MusicEditSta_NoFun;
	LD	(MusicEditStatus),A
	LD	(IX-6),B
?0029:
; 122.	    while(1)
; 123.	    {
; 124.	        //清空消息池
; 125.	        result = ap_get_message();
	CALL	LWRD ap_get_message
	LD	C,A
	PUSH	BC
	POP	IY
; 126.	        if (result == NULL)
	LD	A,C
	OR	A
	JR	Z,?0028
?0031:
; 127.	        {
; 128.	            break;
?0032:
; 129.	        }
; 130.	        if (result == AP_MSG_STANDBY)
	PUSH	IY
	POP	HL
	LD	A,29
	XOR	L
	OR	H
	JR	NZ,?0029
?0033:
; 131.	        {
; 132.	            //碰到 standby 消息时要优先处理,否则会漏掉 standby 消息
; 133.	            return RESULT_STANDBY;
	JR	?0046
; 134.	        }
?0034:
; 135.	    }
; 136.	
; 137.	
; 138.	    while (1)
?0028:
?0036:
; 139.	    {
; 140.	
; 141.	
; 142.	        key = ap_get_message();
	CALL	LWRD ap_get_message
	LD	(IX-7),A
; 143.	        if(g_from_browser)
	LD	A,(g_from_browser)
	OR	A
	JR	Z,?0039
?0038:
; 144.	        {
; 145.	            key = (AP_KEY_PLAY | AP_KEY_UP);
; 146.	            g_from_browser = FALSE;
	XOR	A
	LD	(g_from_browser),A
	LD	(IX-7),33
?0039:
; 147.	        }
; 148.	        if (need_draw)
	LD	A,(need_draw)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -