ui_play_menu.s01

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

S01
1,505
字号
	JR	NZ,?0079
?0077:
?0078:
; 375.	        return 0;
	LD	L,B
	LD	H,B
; 376.	}
?0079:
	POP	DE
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
srs_default_set:
; 377.	void srs_default_set(void)
; 378.	{
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	65526
; 379.	    char temp[10];
; 380.	    g_music_vars.eq_type = 0x4f;
	LD	A,79
	LD	(g_music_vars+2),A
; 381.	    musicpSendCommand(MC_SETEQ, 0x4f);   
	LD	BC,79
	LD	E,67
	CALL	LWRD ?0158
; 382.	    
; 383.	    temp[0]=8; 
	LD	(IX-10),8
; 384.	    temp[1]=8;
	LD	(IX-9),8
; 385.	    temp[2]=4;
	LD	(IX-8),4
; 386.	    musicpSendCommand(MC_SETUSEREQ, (int)&temp);        
	LD	HL,0
	ADD	HL,SP
	LD	C,L
	LD	B,H
	LD	E,66
	CALL	LWRD ?0158
; 387.	}
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
?0158:
	LD	A,BYTE3 musicpSendCommand
	LD	HL,LWRD musicpSendCommand
	JP	LWRD ?BANK_CALL_DIRECT_L08
music_list_menu:
; 388.	int music_list_menu(void)
; 389.	{
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	-34
	PUSH	IY
; 390.	  int result; 
; 391.	  BYTE IO27Bak; 
; 392.	  char Backbuf[32];
; 393.	  list_playmenu.strid = music_list_string;
	LD	HL,music_list_string
	LD	(list_playmenu),HL
; 394.	  list_playmenu.total = sizeof(music_list_string)/2;    
	LD	HL,5
	LD	(list_playmenu+2),HL
; 395.	  if(g_music_vars.file_list_type!=0xff) 
	LD	A,(g_music_vars+92)
	INC	A
	JR	Z,?0081
?0080:
; 396.	  list_playmenu.active = g_music_vars.file_list_type;    
	LD	BC,(g_music_vars+92)
	LD	B,H
	LD	(list_playmenu+4),BC
; 397.	  else
	JR	?0082
?0081:
; 398.	  list_playmenu.active=0;  
	LD	L,H
	LD	(list_playmenu+4),HL
?0082:
; 399.	  list_playmenu.string_id = g_comval.langid;
	LD	A,(g_comval+12)
	LD	(list_playmenu+8),A
; 400.	  list_playmenu.headid=MPLAYLS;
	LD	HL,415
	LD	(list_playmenu+6),HL
; 401.	    result = ui_popup_list(&list_playmenu,NULL);
	LD	C,0
	PUSH	BC
	LD	L,C
	LD	H,C
	PUSH	HL
	CALL	LWRD ?0157
	POP	AF
	POP	AF
; 402.	    if(result!=0)
	LD	A,L
	OR	H
	JP	NZ,?0099
?0083:
; 403.	     return result;
?0084:
; 404.	     
; 405.	  if((list_playmenu.active==4) || (g_file_list_total==0))
	LD	HL,(list_playmenu+4)
	LD	A,4
	XOR	L
	OR	H
	JR	Z,?0144
	LD	HL,(g_file_list_total)
	LD	A,L
	OR	H
	JR	Z,?0144
?0087:
?0088:
?0085:
; 406.	   return RESULT_IGNORE;  
?0086:
; 407.	     //记录列表类型     
; 408.	  IO27Bak = input8(0x27);     
	IN	A,(39)
	LD	(IX-34),A
; 409.	  output8(0x27,IO27Bak&0xfe);            //关DSP中断 
	RES	0,A
	OUT	(39),A
; 410.	  FS_Backup(Backbuf,FS_BACKUP_DIRINFO,0);//目录项备份
	LD	L,C
	LD	H,C
	PUSH	HL
	LD	C,2
	LD	L,6
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD FS_Backup
	POP	HL
; 411.	  FS_CD(":");           //返回根目录查找列表  
	LD	DE,?0089
	CALL	LWRD FS_CD
; 412.	  switch(list_playmenu.active)
	LD	DE,(list_playmenu+4)
	CALL	LWRD ?S_S_SWITCH_L06
	DEFW	0
	DEFW	4
	DEFW	?0090
	DEFW	?0091
	DEFW	?0092
	DEFW	?0093
	DEFW	?0094
?0091:
; 413.	    {
; 414.	     case 0:
; 415.	      list_fp = FS_FOpen(TIT2FileName,FS_OPEN_NORMAL); 
	LD	C,0
	LD	DE,TIT2FileName
	JR	?0142
; 416.	      break;    
?0092:
; 417.	     case 1:
; 418.	      list_fp = FS_FOpen(TPE1FileName,FS_OPEN_NORMAL);          
	LD	C,0
	LD	DE,TPE1FileName
	JR	?0142
; 419.	      break;
?0093:
; 420.	     case 2:
; 421.	       list_fp = FS_FOpen(TALBFileName,FS_OPEN_NORMAL);         
	LD	C,0
	LD	DE,TALBFileName
	JR	?0142
; 422.	        break;
?0094:
; 423.	     case 3:
; 424.	      list_fp = FS_FOpen(FILENAMELSIT,FS_OPEN_NORMAL);         
	LD	C,0
	LD	DE,FILENAMELSIT
?0142:
	CALL	LWRD FS_FOpen
	LD	(list_fp),HL
; 425.	      break;
?0095:
; 426.	     default:
; 427.	      break;
?0090:
; 428.	  } 
; 429.	  output8(0x27,IO27Bak);  
	LD	A,(IX-34)
	OUT	(39),A
; 430.	  if(NULL==list_fp)    //列表没找到
	LD	HL,(list_fp)
	LD	A,L
	OR	H
	JR	NZ,?0097
?0096:
; 431.	  {
; 432.	//   FS_FClose(list_fp);        
; 433.	   DisplayErrMsg(NOLIST);
	LD	DE,417
	LD	A,BYTE3 DisplayErrMsg
	LD	HL,LWRD DisplayErrMsg
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 434.	   FS_Restore(Backbuf,FS_RESTORE_DIRINFO,0);//目录项恢复 
	LD	HL,0
	PUSH	HL
	LD	C,2
	LD	L,6
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD FS_Restore
	POP	HL
; 435.	   return RESULT_IGNORE;   
?0144:
	LD	HL,52
; 436.	  }          
	JR	?0099
?0097:
; 437.	  result = show_music_list(list_playmenu.active,music_list_string[list_playmenu.active]);     
	LD	HL,(list_playmenu+4)
	ADD	HL,HL
	LD	BC,music_list_string
	ADD	HL,BC
	LD	C,(HL)
	INC	HL
	LD	B,(HL)
	LD	DE,(list_playmenu+4)
	LD	A,BYTE3 show_music_list
	LD	HL,LWRD show_music_list
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	PUSH	HL
	POP	IY
; 438.	  FS_Restore(Backbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
	LD	BC,0
	PUSH	BC
	LD	C,2
	LD	HL,6
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD FS_Restore
	POP	HL
; 439.	  if(result==0) 
	PUSH	IY
	POP	HL
	LD	A,L
	OR	H
	JR	NZ,?0099
?0098:
; 440.	  g_music_vars.file_list_type = list_playmenu.active;   
	LD	A,(list_playmenu+4)
	LD	(g_music_vars+92),A
?0099:
; 441.	  return result;                
; 442.	}   
?0100:
	POP	IY
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
ui_relpay_set_menu:
; 443.	int ui_relpay_set_menu(void)
; 444.	{     
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	65524
; 445.	    slider_t slider_playmenu;
; 446.	    list_playmenu.strid = replay_string;
	LD	HL,replay_string
	LD	(list_playmenu),HL
; 447.	    list_playmenu.total = 3; 
	LD	HL,3
	LD	(list_playmenu+2),HL
; 448.	    list_playmenu.active = 0;
	LD	L,H
	LD	(list_playmenu+4),HL
; 449.	    list_playmenu.string_id = g_comval.langid;
	LD	A,(g_comval+12)
	LD	(list_playmenu+8),A
; 450.	    list_playmenu.headid=SMAIN5;            
	LD	HL,501
	LD	(list_playmenu+6),HL
; 451.	    g_result = ui_popup_list(&list_playmenu, srs_callback);
	LD	C,BYTE3 srs_callback
	PUSH	BC
	LD	HL,LWRD srs_callback
	PUSH	HL
	CALL	LWRD ?0157
	POP	AF
	POP	AF
	LD	(g_result),HL
; 452.	    if (g_result == RESULT_IGNORE)return 0;
	LD	A,52
	XOR	L
	OR	H
	JP	Z,?0117
?0101:
?0102:
; 453.	    if (g_result != 0)return g_result;        
	LD	A,L
	OR	H
	JP	NZ,?0118
?0103:
?0104:
; 454.	    if(list_playmenu.active==0)  
	LD	HL,(list_playmenu+4)
	LD	A,L
	OR	H
	JR	NZ,?0106
?0105:
; 455.	    {  
; 456.	      if(musicpSendCommand(MC_SETA_B, ClrABPoint))
	LD	C,A
	LD	B,A
	LD	E,65
	CALL	LWRD ?0158
	INC	L
	DEC	L
	JR	Z,?0108
?0107:
; 457.	      RePlayStatus = WaitSetAPointForAB;
	LD	A,1
	LD	(RePlayStatus),A
?0108:
; 458.	    }
; 459.	    else
	JP	LWRD ?0117
?0106:
; 460.	    { 
; 461.	            slider_playmenu.max = 10;
	LD	(IX-8),10
	LD	(IX-7),0
; 462.	            slider_playmenu.min = 1;
	LD	(IX-10),1
	LD	(IX-9),0
; 463.	            slider_playmenu.step = 1;
	LD	(IX-4),1
	LD	(IX-3),0
; 464.	            CheckReplaytimesLimit();
	LD	A,BYTE3 CheckReplaytimesLimit
	LD	HL,LWRD CheckReplaytimesLimit
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 465.	            if(list_playmenu.active == 1)
	LD	HL,(list_playmenu+4)
	LD	A,1
	XOR	L
	OR	H
	JR	NZ,?0111
?0110:
; 466.	             slider_playmenu.value = g_music_vars.replaytimes;
	LD	BC,(g_music_vars+4)
	JR	?0150
; 467.	            else
?0111:
; 468.	              slider_playmenu.value = g_music_vars.replaygap;
	LD	BC,(g_music_vars+5)
?0150:
	LD	B,0
	LD	(IX-6),C
	LD	(IX-5),B
?0112:
; 469.	            slider_playmenu.string_id = g_comval.langid;
	LD	A,(g_comval+12)
	LD	(IX-2),A
; 470.	            slider_playmenu.title=play_string[list.active];
	LD	HL,(list+4)
	ADD	HL,HL
	LD	BC,play_string
	ADD	HL,BC
	LD	B,(HL)
	LD	(IX-12),B
	INC	HL
	LD	H,(HL)
	LD	(IX-11),H
; 471.	            g_result = ui_slider(& slider_playmenu, NULL);
	LD	C,0
	PUSH	BC
	LD	L,C
	LD	H,C
	PUSH	HL
	LD	L,4
	ADD	HL,SP
	EX	DE,HL
	LD	A,BYTE3 ui_slider
	LD	HL,LWRD ui_slider
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
	LD	(g_result),HL
; 472.	            if(list_playmenu.active == 1)            
	LD	HL,(list_playmenu+4)
	LD	A,1
	XOR	L
	OR	H
	LD	A,(IX-6)
	JR	NZ,?0114
?0113:
; 473.	              g_music_vars.replaytimes = slider_playmenu.value;
	LD	(g_music_vars+4),A
; 474.	            else
	JR	?0115
?0114:
; 475.	              g_music_vars.replaygap = slider_playmenu.value;
	LD	(g_music_vars+5),A
?0115:
; 476.	            if (g_result != 0)return g_result;
	LD	HL,(g_result)
	LD	A,L
	OR	H
	JR	NZ,?0118
?0116:
; 477.	     }
?0117:
?0109:
; 478.	    return 0;
	LD	HL,0
; 479.	} 
?0118:
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
; 480.	/*
; 481.	void felseltype_check(void)       //解决从DRM 的播放列表模式进入打开时其他文件是同时存在三个句柄时的冲突  zhangxs  2007.04.29
; 482.	{ 
; 483.	 if(g_music_vars.fselmod == FSEL_TYPE_PLAYLIST)   //DRM 播放列表模式不支持此功能    
; 484.	 { 
; 485.	  fsel_mode_change_flag = 1; 
; 486.	  g_music_vars.fselmod = FSEL_TYPE_COMMONDIR; 
; 487.	  FS_FClose(fpPlaylist);
; 488.	 }
; 489.	}      
; 490.	*/
	RSEG	CSTR
?0089:
	DEFB	':'
	DEFB	0
	RSEG	UDATA0
list_fp:
	DEFS	2
Navifp:
	DEFS	2
list_playmenu:
	DEFS	9
	RSEG	IDATA0
fsel_mode_change_flag:
	DEFS	1
?0002:
	DEFS	1
	RSEG	CDATA0
	DEFB	0
	DEFB	0
	RSEG	APC_UI_MNU
eq_string:
	DEFW	479
	DEFW	480
	DEFW	481
	DEFW	482
	DEFW	483
	DEFW	484
	DEFW	485
srsuser_string:
	DEFW	407
	DEFW	621
	DEFW	408
	DEFW	579
srs_string:
	DEFW	409
	DEFW	623
	DEFW	410
play_string:
	DEFW	466
	DEFW	467
	DEFW	619
	DEFW	468
	DEFW	501
	DEFW	579
play_string_ME:
	DEFW	466
	DEFW	467
	DEFW	619
	DEFW	468
	DEFW	501
	DEFW	579
repeat_string:
	DEFW	472
	DEFW	473
	DEFW	474
	DEFW	475
	DEFW	476
	DEFW	477
	DEFW	478
replay_string:
	DEFW	469
	DEFW	470
	DEFW	471
music_list_string:
	DEFW	411
	DEFW	412
	DEFW	413
	DEFW	414
	DEFW	465
TIT2FileName:
	DEFB	'TIT2    BIN'
	DEFB	0
TPE1FileName:
	DEFB	'TPE1    BIN'
	DEFB	0
TALBFileName:
	DEFB	'TALB    BIN'
	DEFB	0
FILENAMELSIT:
	DEFB	'FILENAMEBIN'
	DEFB	0
	END

⌨️ 快捷键说明

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