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

📄 ui_delete.s01

📁 MP3 整个 SDK
💻 S01
字号:
	NAME	ui_delete(17)
	RSEG	COM_CTRL(0)
	EXTERN	ResShowMultiString
	EXTERN	ResShowPic
	EXTERN	SetPenColor
	EXTERN	SetTextOutMode
	EXTERN	ap_get_message
	EXTERN	ap_handle_hotkey
	EXTERN	ap_message_init
	EXTERN	draw_del_file
	EXTERN	fselDelFile
	EXTERN	fselGetLocation
	EXTERN	fselSetLocation
	EXTERN	ui_auto_select
	PUBLIC	ui_delete
	EXTERN	?CLZ80B_4_04_L00
	EXTERN	?C_V_SWITCH_L06
	EXTERN	?BANK_CALL_DIRECT_L08
	EXTERN	?BANK_FAST_LEAVE_L08
	RSEG	COM_CTRL
ui_delete:
; 1.	/*
; 2.	*******************************************************************************
; 3.	*                ACTOS AP
; 4.	*        ap common lib, file/folder delete control file
; 5.	*
; 6.	*        (c) Copyright, Actions Co,Ld.
; 7.	*             All Right Reserved
; 8.	*
; 9.	*******************************************************************************
; 10.	*/
; 11.	#pragma codeseg(COM_CTRL)
; 12.	
; 13.	#include "ap_common.h"
; 14.	extern WORD    fselFileNo;
; 15.	extern BYTE    fselDirLayer;
; 16.	extern void show_del_fail(BYTE langid);
; 17.	extern int draw_del_file(file_location_t *location, BYTE string_id);
; 18.	extern void draw_del_dir(file_location_t *location, BYTE string_id);   
; 19.	/********************************************************************************
; 20.	* Description : delete  the  files of the selector directory.
; 21.	*
; 22.	* Arguments  : location  :keep the file selector parament
; 23.	               string_id :display language type
; 24.	               type: the kind of the files
; 25.	* Returns     :
; 26.	*            other:    Successful
; 27.	*            0:    Fail, detail information in fselError
; 28.	* Notes       :
; 29.	*
; 30.	********************************************************************************/
; 31.	int ui_delete(file_location_t *location, BYTE type,BYTE string_id)
; 32.	{
	PUSH	IY
	PUSH	IX
	LD	IX,0
	ADD	IX,SP
	PUSH	BC
	PUSH	AF
	PUSH	AF
	PUSH	AF
	PUSH	AF
	PUSH	DE
	POP	IY
; 33.	    BOOL need_draw=TRUE;
; 34.	    BYTE   delflag;
; 35.	    BYTE  i, playlistclassbak;
; 36.	
; 37.	    char  key;
; 38.	    if ( !fselSetLocation(location) )
	LD	A,BYTE3 fselSetLocation
	LD	HL,LWRD fselSetLocation
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	INC	L
	DEC	L
	JP	Z,?0048
?0002:
; 39.	        return RESULT_IGNORE;
?0003:
; 40.	    need_draw = TRUE;
; 41.	    delflag = 0;
; 42.	      ap_message_init(NULL); 
	LD	DE,0
	LD	A,BYTE3 ap_message_init
	LD	HL,LWRD ap_message_init
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(IX-10),1
?0050:
	LD	(IX-9),0
?0005:
; 43.	    while(1)
; 44.	    {
; 45.	        //show ui
; 46.	        if(need_draw)
	XOR	A
	OR	(IX-10)
	JR	Z,?0008
?0007:
; 47.	        {
; 48.	            if(type==DELETE_FILE)
	XOR	A
	OR	(IX-2)
	JP	NZ,?0048
?0009:
; 49.	            {
; 50.	                int result; 
; 51.	                result=draw_del_file(location, string_id);            //删除单个文件的显示
	LD	C,(IX+8)
	PUSH	IY
	POP	DE
	LD	A,BYTE3 draw_del_file
	LD	HL,LWRD draw_del_file
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(IX-5),L
	LD	(IX-4),H
?0012:
; 52.	                while( (key = ap_get_message())!=NULL );                          //获取消息
	CALL	LWRD ap_get_message
	OR	A
	JR	NZ,?0012
?0013:
?0011:
; 53.	                return result; 
	LD	L,(IX-5)
	LD	H,(IX-4)
; 54.	            }            
	JP	LWRD ?0042
?0010:
; 55.	            else
; 56.	            {
; 57.	                return RESULT_IGNORE;                    //其它情况,忽略并退出函数
; 58.	            }
; 59.	            need_draw=FALSE;
?0008:
; 60.	        }
; 61.	
; 62.	        //handle msg
; 63.	        key = ap_get_message();                          //获取消息
	CALL	LWRD ap_get_message
; 64.	        switch(key)
	LD	E,A
	CALL	LWRD ?C_V_SWITCH_L06
	DEFW	9
	DEFB	5
	DEFB	6
	DEFB	30
	DEFB	33
	DEFB	48
	DEFB	55
	DEFB	56
	DEFB	69
	DEFB	70
	DEFW	?0036
	DEFW	?0015
	DEFW	?0015
	DEFW	?0005
	DEFW	?0032
	DEFW	?0019
	DEFW	?0048
	DEFW	?0028
	DEFW	?0015
	DEFW	?0015
?0015:
; 65.	        {
; 66.	        case AP_KEY_NEXT:                            //YES和NO之间切换
; 67.	        case AP_KEY_PREV:
; 68.	        case AP_KEY_NEXT | AP_KEY_HOLD:
; 69.	        case AP_KEY_PREV | AP_KEY_HOLD:
; 70.	            if(delflag==0)
	XOR	A
	OR	(IX-9)
	LD	C,60
	PUSH	BC
	LD	C,78
	JR	NZ,?0017
?0016:
; 71.	            {
; 72.	                   delflag=1;
; 73.	                   ResShowPic(DELYES,78,60);
	LD	DE,2
	LD	A,BYTE3 ResShowPic
	LD	HL,LWRD ResShowPic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	LD	(IX-9),1
; 74.	            }
; 75.	            else
	JR	?0005
?0017:
; 76.	            {
; 77.	                delflag=0;
; 78.	                ResShowPic(DELNO,78,60);
	LD	DE,1
	LD	A,BYTE3 ResShowPic
	LD	HL,LWRD ResShowPic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	JP	LWRD ?0050
?0018:
; 79.	            }
; 80.	            break;
?0019:
; 81.	
; 82.	        case AP_KEY_MODE | AP_KEY_UP:
; 83.	            if(delflag==1)                        //YES时按下MODE键的处理
	LD	B,(IX-9)
	DEC	B
	JR	NZ,?0048
?0020:
; 84.	            {
; 85.	
; 86.	
; 87.	            ResShowPic(SSBCK,0,0);
	LD	C,B
	PUSH	BC
	LD	DE,221
	LD	A,BYTE3 ResShowPic
	LD	HL,LWRD ResShowPic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
; 88.	            SetTextOutMode(1);       //设字体透明
	LD	E,1
	CALL	LWRD SetTextOutMode
; 89.	            SetPenColor(Color_WHITE_def);
	LD	BC,0
	LD	DE,65535
	CALL	LWRD SetPenColor
; 90.	            ResShowMultiString(CDELING,string_id, 255, 84);
	LD	C,84
	PUSH	BC
	LD	C,255
	PUSH	BC
	LD	C,(IX+8)
	LD	DE,277
	LD	A,BYTE3 ResShowMultiString
	LD	HL,LWRD ResShowMultiString
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
; 91.	            SetTextOutMode(0);       //设字体不透明
	LD	E,0
	CALL	LWRD SetTextOutMode
; 92.	                if(type==DELETE_FILE)
	XOR	A
	OR	(IX-2)
	JR	NZ,?0048
?0022:
; 93.	                {
; 94.	                    if ( !fselDelFile(FSEL_DEL_FILE) )         //更新文件选择器
	LD	E,A
	LD	A,BYTE3 fselDelFile
	LD	HL,LWRD fselDelFile
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	INC	L
	DEC	L
	JR	Z,?0048
?0024:
; 95.	                        return RESULT_IGNORE;
; 96.	                    else
?0025:
; 97.	                    {
; 98.	                        if (fselGetLocation(location))
	PUSH	IY
	POP	DE
	LD	A,BYTE3 fselGetLocation
	LD	HL,LWRD fselGetLocation
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	INC	L
	DEC	L
	JR	Z,?0048
?0026:
; 99.	                            return RESULT_NULL;
	LD	HL,0
; 100.	                        else
	JR	?0042
?0027:
; 101.	                            return RESULT_IGNORE;
; 102.	                    }
?0023:
; 103.	                }
; 104.	                
; 105.	                return RESULT_IGNORE;
; 106.	            }
?0021:
; 107.	            else
; 108.	            {
; 109.	                return RESULT_IGNORE;//NO时按下MODE键的处理
; 110.	            }
?0028:
; 111.	
; 112.	        case AP_MSG_WAIT_TIMEOUT:                        //8秒退出
; 113.	             if(ui_auto_select) return RESULT_IGNORE;
	LD	A,(ui_auto_select)
	OR	A
	JP	Z,?0005
?0029:
?0048:
; 114.	             break;
?0030:
?0031:
; 115.	
; 116.	        case AP_KEY_PLAY | AP_KEY_UP:
; 117.	             return RESULT_IGNORE;
	LD	HL,52
; 118.	
; 119.	        case AP_MSG_SD_OUT:
	JR	?0042
?0032:
; 120.	            //如在准备删除SD卡中文件时,SD卡被拔出,就返回拔出信号
; 121.	            if (location->disk == 'H')
	LD	A,(IY+0)
	CP	72
	JP	NZ,?0005
?0033:
; 122.	            {
; 123.	                return RESULT_SD_OUT;
	LD	HL,54
; 124.	            }
	JR	?0042
?0034:
; 125.	            break;
?0035:
; 126.	
; 127.	        case AP_MSG_SD_IN:
; 128.	            break;
?0036:
; 129.	
; 130.	        default:
; 131.	            key=ap_handle_hotkey(key);                    //热键处理
	CALL	LWRD ap_handle_hotkey
	LD	(IX-6),A
; 132.	            if(key == RESULT_REDRAW)
	CP	50
	JR	NZ,?0038
?0037:
; 133.	            {
; 134.	                need_draw=TRUE;
	LD	(IX-10),1
	JP	LWRD ?0005
?0038:
; 135.	            }
; 136.	            else if(key!=0)
	XOR	A
	OR	(IX-6)
	JP	Z,?0005
?0040:
; 137.	            {
; 138.	                return key;
	LD	L,A
	LD	H,0
; 139.	            }
?0042:
	LD	SP,IX
	POP	IX
	POP	IY
	JP	LWRD ?BANK_FAST_LEAVE_L08
?0041:
?0039:
?0014:
; 140.	        }//switch(key)
; 141.	    }//while(1)
; 142.	}
; 143.	
	END

⌨️ 快捷键说明

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