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

📄 sub_function2.s01

📁 MP3 整个 SDK
💻 S01
📖 第 1 页 / 共 3 页
字号:
	JR	?0146
; 413.	            strcat(g_TagInfoBuf, " ");
; 414.	            strcat(g_TagInfoBuf, & g_TagInfoBuf[30]);
; 415.	            strcat(g_TagInfoBuf, " ");
; 416.	            strcat(g_TagInfoBuf, & g_TagInfoBuf[60]);
; 417.	            strcat(g_TagInfoBuf, " ");
; 418.	        }
; 419.	        else
?0090:
; 420.	        {
; 421.	            g_TagInfoBuf[0] = 0x0;
?0091:
; 422.	        }
; 423.	        break;
?0092:
	CP	6
	JR	NZ,?0096
; 424.	    case Music_APE:
; 425.	        memset(g_TagInfoBuf,0,90);
	LD	BC,90
	LD	DE,g_TagInfoBuf
	LD	L,B
	LD	H,B
	CALL	LWRD ?MEMSET_L11
; 426.	        if (GetAPEInfoByNo(g_music_vars.location.filename, &ID3, 0))
	LD	C,H
	PUSH	BC
	LD	L,6
	ADD	HL,SP
	LD	C,L
	LD	B,H
	LD	DE,g_music_vars+33
	LD	A,BYTE3 GetAPEInfoByNo
	LD	HL,LWRD GetAPEInfoByNo
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	INC	L
	DEC	L
	JR	Z,?0096
?0093:
; 427.	        {
; 428.	            strcpy(g_TagInfoBuf, & g_TagInfoBuf[0]);
?0146:
	CALL	LWRD ?0154
; 429.	            strcat(g_TagInfoBuf, " ");
; 430.	            strcat(g_TagInfoBuf, & g_TagInfoBuf[30]);
; 431.	            strcat(g_TagInfoBuf, " ");
; 432.	            strcat(g_TagInfoBuf, & g_TagInfoBuf[60]);
	LD	DE,g_TagInfoBuf+60
	LD	HL,g_TagInfoBuf
	CALL	LWRD ?STRCAT_L11
; 433.	            strcat(g_TagInfoBuf, " ");
	LD	DE,?0086
	LD	HL,g_TagInfoBuf
	CALL	LWRD ?STRCAT_L11
; 434.	        }
; 435.	        else
	JR	?0078
?0094:
; 436.	        {
; 437.	            g_TagInfoBuf[0] = 0x0;
?0095:
; 438.	        }
; 439.	        break;
?0096:
; 440.	    default:
; 441.	        g_TagInfoBuf[0] = 0x0;
	XOR	A
	LD	(g_TagInfoBuf),A
; 442.	        break;
?0078:
; 443.	    }
; 444.	
; 445.	
; 446.	
; 447.	
; 448.	    //  显示信息区
; 449.	    //g_music_vars.location.filename[12] = 0;
; 450.	
; 451.	    //---处理没有TAG信息的情况
; 452.	    if (g_TagInfoBuf[0] == 0)
	LD	A,(g_TagInfoBuf)
	OR	A
	JR	NZ,?0101
?0097:
; 453.	    {
; 454.	        memcpy(g_TagInfoBuf, g_music_vars.location.filename, 12);
	LD	BC,12
	LD	DE,g_TagInfoBuf
	LD	HL,g_music_vars+33
	LDIR
; 455.	        {
; 456.	
; 457.	            result = FS_GetName(g_TagInfoBuf, 31); //取出长名
	LD	C,31
	LD	DE,g_TagInfoBuf
	CALL	LWRD FS_GetName
	LD	B,0
; 458.	            if (result != 0)
	OR	A
	JR	Z,?0100
?0099:
; 459.	            {
; 460.	                unitochar(g_TagInfoBuf, sizeof(g_TagInfoBuf), g_comval.langid);
	LD	HL,g_comval+12
	LD	C,(HL)
	PUSH	BC
	LD	C,90
	CALL	LWRD ?0156
	POP	AF
; 461.	            }
; 462.	            else
	JR	?0101
?0100:
; 463.	            {
; 464.	                memcpy(g_TagInfoBuf, g_music_vars.location.filename, 12);
	LD	C,12
	LD	DE,g_TagInfoBuf
	LD	HL,g_music_vars+33
	LDIR
?0101:
?0098:
; 465.	            }
; 466.	        }
; 467.	    }
; 468.	
; 469.	    //---在TAG信息后加个空格避免滚屏时串在一起
; 470.	    for (result = 0; result<sizeof(g_TagInfoBuf); result++)
	XOR	A
	LD	(IX-16),A
	LD	(IX-15),A
?0103:
	LD	BC,32858
	LD	L,(IX-16)
	LD	H,(IX-15)
	LD	A,B
	XOR	H
	LD	H,A
	SBC	HL,BC
	JR	NC,?0102
?0104:
; 471.	    {
; 472.	        if (g_TagInfoBuf[result] == 0)
	LD	HL,g_TagInfoBuf
	LD	C,(IX-16)
	LD	B,(IX-15)
	ADD	HL,BC
	LD	A,(HL)
	OR	A
	JR	NZ,?0107
?0106:
; 473.	        {
; 474.	            g_TagInfoBuf[result] = ' ';
	LD	HL,g_TagInfoBuf
	ADD	HL,BC
	LD	(HL),32
; 475.	            g_TagInfoBuf[result + 1] = 0;
	LD	HL,g_TagInfoBuf+1
	ADD	HL,BC
	LD	(HL),A
; 476.	            break;
	JR	?0102
?0107:
	INC	(IX-16)
	JR	NZ,?0103
	INC	(IX-15)
	JR	?0103
?0102:
; 477.	        }
; 478.	    }
; 479.	
; 480.	   //清 WATCH_DOG
; 481.	    output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
	IN	A,(78)
	SET	3,A
	OUT	(78),A
; 482.	
; 483.	#ifdef OPT_Sup_LRC_fun//支持歌词显示功能
; 484.	
; 485.	    BankSwitch((unsigned long)lyricQueryExist >> 16);
	LD	C,BYTE3 lyricQueryExist
	LD	E,C
	CALL	LWRD BankSwitch
; 486.	    g_lyricflag = lyricQueryExist(g_music_vars.location.filename);
	LD	DE,g_music_vars+33
	LD	A,C
	LD	HL,LWRD lyricQueryExist
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	A,L
	LD	(g_lyricflag),A
; 487.	
; 488.	    if (g_lyricflag)
	OR	A
	JR	Z,?0109
?0108:
; 489.	    {
; 490.	        g_lyric_mod = lyricLoad(g_music_vars.location.filename, g_TagInfoBuf);
	LD	BC,g_TagInfoBuf
	LD	DE,g_music_vars+33
	LD	A,BYTE3 lyricLoad
	LD	HL,LWRD lyricLoad
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(IX-14),L
?0109:
; 491.	    }
; 492.	    if (g_lyric_mod == 0)
	XOR	A
	OR	(IX-14)
	JR	NZ,?0111
?0110:
; 493.	    {
; 494.	        g_lyricflag = FALSE;
	LD	(g_lyricflag),A
?0111:
; 495.	    }
; 496.	
; 497.	#endif //OPT_Sup_LRC_fun
; 498.	
; 499.	   //清 WATCH_DOG
; 500.	    output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
	IN	A,(78)
	SET	3,A
	OUT	(78),A
; 501.	}
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
?0154:
	LD	DE,g_TagInfoBuf
	LD	L,E
	LD	H,D
	CALL	LWRD ?STRCPY_L11
	LD	DE,?0086
	LD	HL,g_TagInfoBuf
	CALL	LWRD ?STRCAT_L11
	LD	DE,g_TagInfoBuf+30
	LD	HL,g_TagInfoBuf
	CALL	LWRD ?STRCAT_L11
	LD	DE,?0086
	LD	HL,g_TagInfoBuf
	CALL	LWRD ?STRCAT_L11
	RET
openPA:
; 502.	
; 503.	/*
; 504.	int GetInformation1( void )//取下一首文件信息
; 505.	{
; 506.	      int result;
; 507.	      memcpy(g_TagInfoBuf, g_music_vars.location.filename, 12);
; 508.	     result = FS_GetName(g_TagInfoBuf, 31); //取出长名
; 509.	         if (result != 0)
; 510.	            {
; 511.	                unitochar(g_TagInfoBuf, sizeof(g_TagInfoBuf), g_comval.langid);
; 512.	            }
; 513.	            else
; 514.	            {
; 515.	                memcpy(g_TagInfoBuf, g_music_vars.location.filename, 12);
; 516.	            }
; 517.	
; 518.	    output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
; 519.	}
; 520.	*/
; 521.	//==================================================================
; 522.	void openPA(uchar volume)
; 523.	{
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	-4
; 524.	    int i;
; 525.	    pa_t paattr;
; 526.	    if (!g_PAOpenFlag)
	LD	A,(g_PAOpenFlag)
	OR	A
	JR	NZ,?0114
?0112:
; 527.	    {
; 528.	        g_PAOpenFlag = TRUE;//标志PA已打开
	LD	A,1
	LD	(g_PAOpenFlag),A
; 529.	        paattr.pa_in.dacin = 1;
	SET	0,(IX-4)
; 530.	        paattr.pa_in.fmin = 0;
	RES	1,(IX-4)
; 531.	        paattr.pa_in.linein = 0;
	RES	2,(IX-4)
; 532.	        paattr.pa_in.micin = 0;
	RES	3,(IX-4)
; 533.	        paattr.volume = volume;
	LD	B,(IX+2)
	LD	(IX-3),B
; 534.	        EnablePA(& paattr);
	LD	HL,0
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD EnablePA
; 535.	        for (i = 0; i < 2000; i++)
	LD	DE,0
?0115:
	LD	BC,34768
	LD	L,E
	LD	H,D
	LD	A,128
	XOR	H
	LD	H,A
	SBC	HL,BC
	JR	NC,?0114
?0116:
; 536.	        {
; 537.	            output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
	IN	A,(78)
	SET	3,A
	OUT	(78),A
	INC	DE
; 538.	        }
; 539.	    }
	JR	?0115
?0114:
?0113:
; 540.	
; 541.	    musicpSendCommand(MC_SETVOLUME, volume);
	LD	C,(IX+2)
	LD	B,0
	LD	E,64
	CALL	LWRD ?0158
; 542.	    OutPutVolume(volume);
	LD	E,(IX+2)
	LD	D,0
	LD	A,BYTE3 OutPutVolume
	LD	HL,LWRD OutPutVolume
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 543.	    //volume_callback(volume);
; 544.	}
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
?0158:
	LD	A,BYTE3 musicpSendCommand
	LD	HL,LWRD musicpSendCommand
	JP	LWRD ?BANK_CALL_DIRECT_L08
ClosePA:
; 545.	
; 546.	//===================================================
; 547.	void ClosePA(void)
; 548.	{
; 549.	    if (g_PAOpenFlag)
	LD	A,(g_PAOpenFlag)
	OR	A
	JR	Z,?0119
?0118:
; 550.	    {
; 551.	        g_PAOpenFlag = FALSE;//标志PA已关闭
	XOR	A
	LD	(g_PAOpenFlag),A
; 552.	        DisablePA();
	CALL	LWRD DisablePA
?0119:
; 553.	    }
; 554.	}
	JP	LWRD ?BANK_FAST_LEAVE_L08
DealForDRMsong:
; 555.	//===================================================
; 556.	
; 557.	//===================================================
; 558.	/*
; 559.	input: void
; 560.	
; 561.	output:   g_result == NULL: 退出到STOP
; 562.	               g_result == 其他,按热键处理
; 563.	
; 564.	*/
; 565.	//===================================================
; 566.	
; 567.	int DealForDRMsong(void)
; 568.	{
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	65530
; 569.	
; 570.	    dialog_t dialog;
; 571.	
; 572.	    //进入显示是否进行授权申请对话框
; 573.	    dialog.HeadIcon = VOLPTR;//显示问号图标// for temp
	LD	(IX-6),12
	LD	(IX-5),1
; 574.	    dialog.HeadStr = REQLICEN;//显示“申请授权?”
	LD	(IX-4),176
	LD	(IX-3),1
; 575.	    dialog.string = g_TagInfoBuf;//显示要求显示的信息
	LD	(IX-2),LOW(g_TagInfoBuf)
	LD	(IX-1),HIGH(g_TagInfoBuf)
; 576.	    g_result = ui_dialog(&dialog, g_comval.langid);
	LD	BC,(g_comval+12)
	LD	B,0
	LD	L,B
	LD	H,B
	ADD	HL,SP
	EX	DE,HL
	LD	A,BYTE3 ui_dialog
	LD	HL,LWRD ui_dialog
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(g_result),HL
; 577.	
; 578.	    if (g_result == NULL)
	LD	A,L
	OR	H
	JR	NZ,?0121
?0120:
; 579.	    {
; 580.	        //进入申请授权应用进行申请 (USBPMD)
; 581.	        //return RESULT_USBPMD;
; 582.	        g_result = RESULT_IGNORE;//现暂时关闭
	LD	HL,52
	LD	(g_result),HL
?0121:
; 583.	    }
; 584.	
; 585.	    if (g_result == RESULT_IGNORE)
	LD	A,52
	XOR	L
	OR	H
	JR	NZ,?0123
?0122:
; 586.	    {
; 587.	        //显示无播放授权
; 588.	        DisplayErrMsg(NOLICENS);//显示没有播放授权
	LD	DE,433
	LD	A,BYTE3 DisplayErrMsg
	LD	HL,LWRD DisplayErrMsg
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 589.	        musicpSendCommand(MC_CLOSE, NULL);
	LD	BC,0
	LD	E,2
	CALL	LWRD ?0158
; 590.	        SetFullInterface();
	XOR	A
	LD	(ui_auto_update),A
	LD	HL,UpDisplayFlag
	LD	A,(HL)
	OR	193
	LD	(HL),A
	INC	HL
	LD	(HL),255
; 591.	        return NULL;
	LD	HL,0
; 592.	    }
?0123:
; 593.	
; 594.	    if (g_result != NULL)
?0124:
; 595.	    {
; 596.	        //热键处理
; 597.	        return g_result;
; 598.	    }
?0125:
; 599.	}
?0126:
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
DisplayTimeRollback:
; 600.	
; 601.	/*
; 602.	//==============================================
; 603.	功能:检测SYS时钟是否被回调
; 604.	接口:bool DisplayTimeRollback(void)
; 605.	输入:void
; 606.	输出:true: 正常播放
; 607.	      false: 显示完时钟已被回调,要进行设置退出
; 608.	//==============================================
; 609.	*/
; 610.	bool DisplayTimeRollback(void)
; 611.	{
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	-26
; 612.	    wma_inf_t licensinfbuf;
; 613.	    unsigned long curdatesec;
; 614.	    date_t  curdate;
; 615.	    time_t  curtime;
; 616.	
; 617.	    //判断是否DRM歌曲
; 618.	    //取lincens 信息
; 619.	    if (!musicpSendCommand(MC_GETINF,  (int)&licensinfbuf))
	LD	HL,0
	ADD	HL,SP
	LD	C,L
	LD	B,H
	LD	E,16
	CALL	LWRD ?0158
	INC	L
	DEC	L
	JR	Z,?0150
?0127:
; 620.	    {
; 621.	        return TRUE;//不用显示重设信息
; 622.	    }
?0128:
; 623.	
; 624.	    if (licensinfbuf.drmmode == INF_NORMALWMA)
	XOR	A
	OR	(IX-26)
	JR	NZ,?0130
?0129:
; 625.	    {
; 626.	        //普通WMA也不用显示重设信息
; 627.	        return TRUE;
?0150:
	LD	L,1
; 628.	    }
	JR	?0134
?0130:
; 629.	
; 630.	//    SetAsciiFont(FONT_TYPE_SMALL);
; 631.	    SetBackgdColor(Color_BLACK_def);
	LD	BC,0
	LD	E,C
	LD	D,B
	CALL	LWRD SetBackgdColor
; 632.	    ClearScreen(NULL);//清屏
	LD	DE,0
	CALL	LWRD ClearScreen
; 633.	    SetPenColor(Color_WHITE_def);
	LD	BC,0
	LD	DE,65535
	CALL	LWRD SetPenColor
; 634.	    ResShowMultiString(REQSETDT, g_comval.langid, 25, 56);//显示磁盘无文件
	LD	C,56
	PUSH	BC
	LD	C,25
	PUSH	BC
	LD	BC,(g_comval+12)
	LD	DE,438
	LD	A,BYTE3 ResShowMultiString
	LD	HL,LWRD ResShowMultiString
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
?0132:
; 635.	    while( ap_get_message() != NULL );//清空消息池,确保DELAY时间准确
	CALL	LWRD ap_get_message
	OR	A
	JR	NZ,?0132
?0133:
?0131:
; 636.	    ap_sleep(4);
	LD	DE,4
	LD	A,BYTE3 ap_sleep
	LD	HL,LWRD ap_sleep
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 637.	
; 638.	    return FALSE;
	LD	L,0
; 639.	}
?0134:
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
; 640.	
	RSEG	CSTR
?0052:
	DEFB	'ROOT'
	DEFB	0
?0054:
	DEFB	92,0
?0062:
	DEFB	':'
	DEFB	0
?0086:
	DEFB	' '
	DEFB	0
	RSEG	CONST
?0018:
	DEFB	'MP3'
	DEFB	0
	DEFB	'WMA'
	DEFB	0
	DEFB	'ASF'
	DEFB	0
	DEFB	'WMV'
	DEFB	0
	DEFB	'OGG'
	DEFB	0
	DEFB	'APE'
	DEFB	0
	RSEG	IDATA0
temp_buffer:
	DEFS	6
	RSEG	CDATA0
	DEFB	0
	DEFB	0,0,0,0,0
	END

⌨️ 快捷键说明

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