ui_stop_menu.s01

来自「炬力方案176*132软件源码,适用于AK1025」· S01 代码 · 共 1,223 行 · 第 1/3 页

S01
1,223
字号
	LD	DE,(list+4)
	CALL	LWRD ?S_V_SWITCH_L06
	DEFW	6
	DEFW	5
	DEFW	10
	DEFW	11
	DEFW	12
	DEFW	13
	DEFW	14
	DEFW	?0036
	DEFW	?0123
	DEFW	?0033
	DEFW	?0040
	DEFW	?0039
	DEFW	?0038
	DEFW	?0029
?0029:
; 150.	        {
; 151.	        case 5://licens informations
; 152.	            ui_licensinf(g_comval.langid);
	LD	DE,(g_comval+12)
	LD	D,0
	LD	A,BYTE3 ui_licensinf
	LD	HL,LWRD ui_licensinf
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 153.	            return RESULT_IGNORE;    
	JR	?0119
; 154.	        
; 155.	        case 10:
?0030:
; 156.	            result=UI_InsertSeg();
; 157.	            return result;            
; 158.	        case 11:
?0031:
; 159.	            result=UI_InsertRec();
; 160.	            return result;        
; 161.	        case 12:
?0032:
; 162.	            result=UI_SongComp();
; 163.	            return result;
; 164.	        case 13://delete all sel list
?0033:
; 165.	            UI_DeleteAllSelSegment(g_comval.langid);
	CALL	LWRD ?0138
; 166.	            return RESULT_IGNORE;
	JR	?0042
; 167.	        case 14://exit
?0034:
; 168.	            return RESULT_IGNORE;
; 169.	        }            
?0028:
; 170.	    }
; 171.	    else
?0024:
; 172.	    {
; 173.	        //无卡
; 174.	        switch (list.active)
	LD	DE,(list+4)
	CALL	LWRD ?S_S_SWITCH_L06
	DEFW	5
	DEFW	9
	DEFW	?0036
	DEFW	?0037
	DEFW	?0036
	DEFW	?0036
	DEFW	?0036
	DEFW	?0038
	DEFW	?0039
	DEFW	?0040
	DEFW	?0041
	DEFW	?0123
?0037:
; 175.	        {
; 176.	        case 5://licens informations
; 177.	            ui_licensinf(g_comval.langid);    
	LD	DE,(g_comval+12)
	LD	D,B
	LD	A,BYTE3 ui_licensinf
	LD	HL,LWRD ui_licensinf
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 178.	            return RESULT_IGNORE;
	JR	?0123
; 179.	        
; 180.	        case 9:
?0038:
; 181.	            result=UI_InsertSeg();
	LD	A,BYTE3 UI_InsertSeg
	LD	HL,LWRD UI_InsertSeg
	JR	?0127
; 182.	            return result;            
; 183.	        case 10:
?0039:
; 184.	            result=UI_InsertRec();
	LD	A,BYTE3 UI_InsertRec
	LD	HL,LWRD UI_InsertRec
	JR	?0127
; 185.	            return result;        
; 186.	        case 11:
?0040:
; 187.	            result=UI_SongComp();
	LD	A,BYTE3 UI_SongComp
	LD	HL,LWRD UI_SongComp
?0127:
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 188.	            return result;
; 189.	        case 12://delete all sel list
	JP	LWRD ?0086
?0041:
; 190.	            UI_DeleteAllSelSegment(g_comval.langid);
	CALL	LWRD ?0138
; 191.	            return RESULT_IGNORE;
?0119:
	JR	?0123
; 192.	        case 13://exit
?0042:
; 193.	            return RESULT_IGNORE;
	JR	?0123
; 194.	        }            
?0036:
?0035:
; 195.	    }        
; 196.	
; 197.	    
; 198.	    BankSwitch((unsigned long)FSELInit >> 16);
	LD	B,0
	LD	E,BYTE3 fselInit
	LD	C,B
	CALL	LWRD BankSwitch
; 199.	    fselGetLocation(& g_music_vars.location);
	CALL	LWRD ?0139
; 200.	        
; 201.	    if (g_music_vars.location.disk == 'H')
	LD	A,(g_music_vars+7)
	CP	72
	JR	NZ,?0046
?0043:
; 202.	        //&& (menu.active != 0) )
; 203.	    {
; 204.	        //因为在控件 ui_function_menu 中不好检测卡拔出,所以这里再测一次
; 205.	        if (DRV_DetectUD(1) != 0x20)        
	CALL	LWRD ?0136
	JR	Z,?0046
?0045:
; 206.	        {
; 207.	            DisplayErrMsg(CARDPULL);//显示卡拔出
	CALL	LWRD ?0140
; 208.	            g_music_vars.location.disk = 'C';
	LD	A,67
	LD	(g_music_vars+7),A
; 209.	            //return RESULT_SD_OUT;
; 210.	            return RESULT_IGNORE;
?0123:
	LD	HL,52
; 211.	        }
	JP	LWRD ?0086
?0046:
?0044:
; 212.	    }
; 213.	    
; 214.	    musicpSendCommand(MC_CLOSE, NULL);
	LD	E,2
	LD	A,BYTE3 musicpSendCommand
	LD	HL,LWRD musicpSendCommand
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 215.	/*
; 216.	    if (list.active < 5)
; 217.	    {
; 218.	        //前面调用PLAYLIST控件选中对应的PLAYLIST                                    
; 219.	        if (g_music_vars.fselmod == FSEL_TYPE_COMMONDIR)
; 220.	        {    
; 221.	            //dir -> playlist
; 222.	            FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_REPEATALL, FSEL_TYPE_PLAYLIST, g_music_vars.location.disk);//初始化playlist
; 223.	            g_music_vars.fselmod = FSEL_TYPE_PLAYLIST;
; 224.	            if (!fselPlayListEnt(PLFileName[list.active]))
; 225.	            {
; 226.	listenterr:
; 227.	                //不能进入PLAYLIST的情况
; 228.	                FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_REPEATALL, FSEL_TYPE_COMMONDIR,g_music_vars.location.disk);//初始化文件选择器
; 229.	                FSELGetNext(g_music_vars.location.filename);
; 230.	                g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;
; 231.	                result = RESULT_IGNORE;
; 232.	            } 
; 233.	            else
; 234.	            {
; 235.	                //有PLAYLIST的情况
; 236.	                if (fselGetLocation(&g_music_vars.location))                                 
; 237.	                {                    
; 238.	                    result = ui_playlist(&g_music_vars.location, DIRECTORY_MUSIC,
; 239.	                                     g_comval.langid);  
; 240.	                    output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
; 241.	                    if (result == RESULT_IGNORE)
; 242.	                    {
; 243.	                        goto listenterr;
; 244.	                    }
; 245.	                    else
; 246.	                    {
; 247.	                        FSELGetNext(g_music_vars.location.filename);
; 248.	                    }
; 249.	                }
; 250.	            }    
; 251.	
; 252.	 
; 253.	        }
; 254.	        
; 255.	        else
; 256.	        {            
; 257.	            bool tmpflag = FALSE;
; 258.	            //从 playlist -> playlist                        
; 259.	            if (list.active != g_music_vars.play_listmod)
; 260.	            {
; 261.	                if (!fselPlayListEnt(PLFileName[list.active]))
; 262.	                {
; 263.	listenterr1:                    
; 264.	                    //不能进入PLAYLIST的情况
; 265.	                    FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_REPEATALL, FSEL_TYPE_COMMONDIR,g_music_vars.location.disk);//初始化文件选择器
; 266.	                    FSELGetNext(g_music_vars.location.filename);
; 267.	                    g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;
; 268.	                    g_music_vars.play_listmod = mlistnor;//改为普通目录模式
; 269.	                    result = RESULT_IGNORE;
; 270.	                    goto Lab_dir;
; 271.	                }
; 272.	                
; 273.	                tmpflag = TRUE;//调过 fselplaylistent 函数后要调用GETNEXT
; 274.	            }
; 275.	            else
; 276.	            {
; 277.	                //当选中模式与原来模式相同时
; 278.	                fselSetLocation(&g_music_vars.location);                                                 
; 279.	            }
; 280.	
; 281.	            if (fselGetLocation(&g_music_vars.location))                                 
; 282.	            {                    
; 283.	                result = ui_playlist(&g_music_vars.location, DIRECTORY_MUSIC,
; 284.	                                 g_comval.langid);  
; 285.	                output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
; 286.	                if ( result != RESULT_IGNORE )
; 287.	                {
; 288.	                    FSELGetNext(g_music_vars.location.filename);
; 289.	                }                                                                  
; 290.	                else
; 291.	                {   
; 292.	                    if ( tmpflag == TRUE)   //(menu.active != g_music_vars.play_listmod)
; 293.	                    {
; 294.	                        goto listenterr1;
; 295.	                    }
; 296.	                }
; 297.	            }
; 298.	        }
; 299.	Lab_dir:
; 300.	        
; 301.	        fselGetLocation(&g_music_vars.location);
; 302.	
; 303.	        if ((result == 0) || (result == RESULT_IGNORE))
; 304.	        {
; 305.	            //记录当前选中列表的类型,因为                
; 306.	            g_music_vars.play_listmod = list.active;
; 307.	        }                            
; 308.	    }
; 309.	    else
; 310.	    {
; 311.	*/
; 312.	        //后面是以前的目录及删除选择
; 313.	        if (DRV_DetectUD(1) == 0x20)
	CALL	LWRD ?0136
	LD	DE,(list+4)
	JP	NZ,?0048
?0047:
; 314.	        {
; 315.	            //有卡的情况
; 316.	            switch (list.active)
	CALL	LWRD ?S_S_SWITCH_L06
	DEFW	0
	DEFW	4
	DEFW	?0080
	DEFW	?0050
	DEFW	?0057
	DEFW	?0074
	DEFW	?0079
?0050:
; 317.	            {
; 318.	
; 319.	                
; 320.	                case 0: //主目录
; 321.	                    if (g_music_vars.location.disk == 'H'||g_music_vars.fselmod ==FSEL_TYPE_USERPL)
	LD	A,(g_music_vars+7)
	CP	72
	JR	Z,?0053
	LD	A,(g_music_vars+81)
	DEC	A
	DEC	A
	JR	NZ,?0052
?0053:
?0054:
?0051:
; 322.	                    {
; 323.	                        g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;
	XOR	A
	LD	(g_music_vars+81),A
; 324.	                        g_music_vars.location.disk = 'C';
	LD	A,67
	LD	(g_music_vars+7),A
; 325.	                        FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR,g_music_vars.location.disk);
	LD	C,A
	PUSH	BC
	LD	C,0
	PUSH	BC
	CALL	LWRD ?0141
	POP	AF
	POP	AF
; 326.	                        g_file_list_total = g_music_vars.file_list_total_flash;  
	LD	HL,(g_music_vars+86)
	LD	(g_file_list_total),HL
; 327.	                        g_music_vars.file_list_type = 0xff;                         
	LD	A,255
	LD	(g_music_vars+92),A
; 328.	                        fselGetLocation(&g_music_vars.location); 
	CALL	LWRD ?0139
?0052:
; 329.	                    }
; 330.	                     
; 331.	                    result = ui_directory(& g_music_vars.location, DIRECTORY_MUSIC, g_comval.langid);                
	LD	HL,g_comval+12
	LD	C,(HL)
	PUSH	BC
	CALL	LWRD ?0145
	POP	AF
; 332.	                    FSELSetMode(FSEL_ALL_SEQUENCE);              
	CALL	LWRD ?0146
; 333.	                    if (result == 0)
	JR	NZ,?0056
?0055:
; 334.	                    {   
; 335.	                        //当选中目录后用普通模式播放
; 336.	                         g_music_vars.play_listmod = mlistnor; 
	LD	A,5
	LD	(g_music_vars+80),A
; 337.	                         g_music_vars.file_list_type = 0xff; 
	LD	A,255
	LD	(g_music_vars+92),A
?0056:
; 338.	                        //musicpSendCommand(MC_CLOSE, NULL);
; 339.	                    }
; 340.	                    break;            
	JP	LWRD ?0081
?0057:
; 341.	        
; 342.	                case 1: //插卡目录  
; 343.	                    //PASS_KEY(0x12); 
; 344.	                    if (g_music_vars.location.disk == 'C'||g_music_vars.fselmod ==FSEL_TYPE_USERPL)
	LD	A,(g_music_vars+7)
	CP	67
	JR	Z,?0060
	LD	A,(g_music_vars+81)
	DEC	A
	DEC	A
	JR	NZ,?0059
?0060:
?0061:
?0058:
; 345.	                    {
; 346.	                        //PASS_KEY(0x13);
; 347.	                        g_music_vars.location.disk = 'H';
	LD	A,72
	LD	(g_music_vars+7),A
; 348.	                        g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;
	XOR	A
	LD	(g_music_vars+81),A
; 349.	                        result=FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR,g_music_vars.location.disk);
	LD	HL,g_music_vars+7
	LD	C,(HL)
	PUSH	BC
	LD	C,A
	PUSH	BC
	CALL	LWRD ?0141
	POP	AF
	POP	AF
	LD	H,0
	LD	(IX-4),L
	LD	(IX-3),H
; 350.	                        if(!result)
	LD	A,L
	OR	A
	JR	NZ,?0063
?0062:
; 351.	                         {
; 352.	                          g_DiskStateFlag=g_DiskStateFlag&ClrCardOKFlag_def;
	LD	HL,g_DiskStateFlag
	RES	3,(HL)
; 353.	                          g_music_vars.location.disk == 'C';                 
; 354.	                          DisplayErrInfor(CREADERR);//显示卡错  
	LD	DE,630
	LD	A,BYTE3 DisplayErrInfor
	LD	HL,LWRD DisplayErrInfor
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 355.	                          break;
	JP	LWRD ?0081
?0063:
; 356.	                         } 
; 357.	                        g_file_list_total = g_music_vars.file_list_total_card;    
	LD	HL,(g_music_vars+88)
	LD	(g_file_list_total),HL
; 358.	                        g_music_vars.file_list_type = 0xff;                                                 
	LD	A,255
	LD	(g_music_vars+92),A
; 359.	                        g_DiskStateFlag=g_DiskStateFlag|SetCardOKFlag_def;
	LD	HL,g_DiskStateFlag
	SET	3,(HL)
; 360.	                        fselGetLocation(&g_music_vars.location);

⌨️ 快捷键说明

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