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

📄 sub_function2.s01

📁 炬力方案176*132软件源码,适用于AK1025
💻 S01
📖 第 1 页 / 共 3 页
字号:
?0086:
?0083:
; 374.	            {
; 375.	                strcpy(g_TagInfoBuf, & g_TagInfoBuf[0]);
	CALL	LWRD ?0147
; 376.	                strcat(g_TagInfoBuf, " ");
; 377.	                strcat(g_TagInfoBuf, & g_TagInfoBuf[30]);
; 378.	                strcat(g_TagInfoBuf, " ");                 
; 379.	                strcat(g_TagInfoBuf, & g_TagInfoBuf[60]);
; 380.	                strcat(g_TagInfoBuf, " ");
?0084:
; 381.	            }
; 382.	        }
; 383.	        else
	JR	?0088
?0082:
; 384.	        {
; 385.	            g_TagInfoBuf[0] = 0x0;
	XOR	A
	LD	(g_TagInfoBuf),A
?0088:
; 386.	        }
; 387.	     break;
	JR	?0079
?0089:
	CP	1
	JR	NZ,?0093
; 388.	
; 389.	    case  Music_MP3:
; 390.	        if (mp3GetID3Info(g_music_vars.location.filename, & ID3, g_comval.langid))
	LD	BC,(g_comval+12)
	LD	B,0
	PUSH	BC
	LD	HL,6
	ADD	HL,SP
	LD	C,L
	LD	B,H
	LD	DE,g_music_vars+33
	LD	A,BYTE3 mp3GetID3Info
	LD	HL,LWRD mp3GetID3Info
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	INC	L
	DEC	L
	JR	Z,?0097
?0090:
; 391.	        {
; 392.	            strcpy(g_TagInfoBuf, & g_TagInfoBuf[0]);
	JR	?0140
; 393.	            strcat(g_TagInfoBuf, " ");
; 394.	            strcat(g_TagInfoBuf, & g_TagInfoBuf[30]);
; 395.	            strcat(g_TagInfoBuf, " ");
; 396.	            strcat(g_TagInfoBuf, & g_TagInfoBuf[60]);
; 397.	            strcat(g_TagInfoBuf, " ");
; 398.	        }
; 399.	        else
?0091:
; 400.	        {
; 401.	            g_TagInfoBuf[0] = 0x0;
?0092:
; 402.	        }
; 403.	        break;
?0093:
	CP	6
	JR	NZ,?0097
; 404.	    case Music_APE:
; 405.	        memset(g_TagInfoBuf,0,90);
	LD	BC,90
	LD	DE,g_TagInfoBuf
	LD	L,B
	LD	H,B
	CALL	LWRD ?MEMSET_L11
; 406.	        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,?0097
?0094:
; 407.	        {
; 408.	            strcpy(g_TagInfoBuf, & g_TagInfoBuf[0]);
?0140:
	CALL	LWRD ?0147
; 409.	            strcat(g_TagInfoBuf, " ");
; 410.	            strcat(g_TagInfoBuf, & g_TagInfoBuf[30]);
; 411.	            strcat(g_TagInfoBuf, " ");
; 412.	            strcat(g_TagInfoBuf, & g_TagInfoBuf[60]);
; 413.	            strcat(g_TagInfoBuf, " ");
; 414.	        }
; 415.	        else
	JR	?0079
?0095:
; 416.	        {
; 417.	            g_TagInfoBuf[0] = 0x0;
?0096:
; 418.	        }
; 419.	        break;
?0097:
; 420.	    default:
; 421.	        g_TagInfoBuf[0] = 0x0;
	XOR	A
	LD	(g_TagInfoBuf),A
; 422.	        break;
?0079:
; 423.	    }
; 424.	
; 425.	
; 426.	
; 427.	
; 428.	    //  显示信息区
; 429.	    //g_music_vars.location.filename[12] = 0;
; 430.	
; 431.	    //---处理没有TAG信息的情况
; 432.	    if (g_TagInfoBuf[0] == 0)
	LD	A,(g_TagInfoBuf)
	OR	A
	JR	NZ,?0102
?0098:
; 433.	    {
; 434.	        memcpy(g_TagInfoBuf, g_music_vars.location.filename, 12);
	LD	BC,12
	LD	DE,g_TagInfoBuf
	LD	HL,g_music_vars+33
	LDIR
; 435.	        {
; 436.	
; 437.	            result = FS_GetName(g_TagInfoBuf, 31); //取出长名
	LD	C,31
	LD	DE,g_TagInfoBuf
	CALL	LWRD FS_GetName
	LD	B,0
; 438.	            if (result != 0)
	OR	A
	JR	Z,?0101
?0100:
; 439.	            {
; 440.	                unitochar(g_TagInfoBuf, sizeof(g_TagInfoBuf), g_comval.langid);
	LD	HL,g_comval+12
	LD	C,(HL)
	PUSH	BC
	LD	C,90
	CALL	LWRD ?0149
	POP	AF
; 441.	            }
; 442.	            else
	JR	?0102
?0101:
; 443.	            {
; 444.	                memcpy(g_TagInfoBuf, g_music_vars.location.filename, 12);
	LD	C,12
	LD	DE,g_TagInfoBuf
	LD	HL,g_music_vars+33
	LDIR
?0102:
?0099:
; 445.	            }
; 446.	        }
; 447.	    }
; 448.	
; 449.	    //---在TAG信息后加个空格避免滚屏时串在一起
; 450.	    for (result = 0; result<sizeof(g_TagInfoBuf); result++)
	XOR	A
	LD	(IX-16),A
	LD	(IX-15),A
?0104:
	LD	BC,32858
	LD	L,(IX-16)
	LD	H,(IX-15)
	LD	A,B
	XOR	H
	LD	H,A
	SBC	HL,BC
	JR	NC,?0103
?0105:
; 451.	    {
; 452.	        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,?0108
?0107:
; 453.	        {
; 454.	            g_TagInfoBuf[result] = ' ';
	LD	HL,g_TagInfoBuf
	ADD	HL,BC
	LD	(HL),32
; 455.	            g_TagInfoBuf[result + 1] = 0;
	LD	HL,g_TagInfoBuf+1
	ADD	HL,BC
	LD	(HL),A
; 456.	            break;
	JR	?0103
?0108:
	INC	(IX-16)
	JR	NZ,?0104
	INC	(IX-15)
	JR	?0104
?0103:
; 457.	        }
; 458.	    }
; 459.	
; 460.	   //清 WATCH_DOG
; 461.	    output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
	IN	A,(78)
	SET	3,A
	OUT	(78),A
; 462.	
; 463.	#ifdef OPT_Sup_LRC_fun//支持歌词显示功能
; 464.	
; 465.	    BankSwitch((unsigned long)lyricQueryExist >> 16);
	LD	C,BYTE3 lyricQueryExist
	LD	E,C
	CALL	LWRD BankSwitch
; 466.	    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
; 467.	
; 468.	    if (g_lyricflag)
	OR	A
	JR	Z,?0110
?0109:
; 469.	    {
; 470.	        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
?0110:
; 471.	    }
; 472.	    if (g_lyric_mod == 0)
	XOR	A
	OR	(IX-14)
	JR	NZ,?0112
?0111:
; 473.	    {
; 474.	        g_lyricflag = FALSE;
	LD	(g_lyricflag),A
?0112:
; 475.	    }
; 476.	
; 477.	#endif //OPT_Sup_LRC_fun
; 478.	
; 479.	    //清 WATCH_DOG
; 480.	    output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
	IN	A,(78)
	SET	3,A
	OUT	(78),A
; 481.	}
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
?0147:
	LD	DE,g_TagInfoBuf
	LD	L,E
	LD	H,D
	CALL	LWRD ?STRCPY_L11
	LD	DE,?0087
	LD	HL,g_TagInfoBuf
	CALL	LWRD ?STRCAT_L11
	LD	DE,g_TagInfoBuf+30
	LD	HL,g_TagInfoBuf
	CALL	LWRD ?STRCAT_L11
	LD	DE,?0087
	LD	HL,g_TagInfoBuf
	CALL	LWRD ?STRCAT_L11
	LD	DE,g_TagInfoBuf+60
	LD	HL,g_TagInfoBuf
	CALL	LWRD ?STRCAT_L11
	LD	DE,?0087
	LD	HL,g_TagInfoBuf
	CALL	LWRD ?STRCAT_L11
	RET
openPA:
; 482.	
; 483.	//==================================================================
; 484.	void openPA(uchar volume)
; 485.	{
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	-4
; 486.	    int i;
; 487.	    pa_t paattr;
; 488.	    if (!g_PAOpenFlag)
	LD	A,(g_PAOpenFlag)
	OR	A
	JR	NZ,?0115
?0113:
; 489.	    {
; 490.	        g_PAOpenFlag = TRUE;//标志PA已打开
	LD	A,1
	LD	(g_PAOpenFlag),A
; 491.	        paattr.pa_in.dacin = 1;
	SET	0,(IX-4)
; 492.	        paattr.pa_in.fmin = 0;
	RES	1,(IX-4)
; 493.	        paattr.pa_in.linein = 0;
	RES	2,(IX-4)
; 494.	        paattr.pa_in.micin = 0;
	RES	3,(IX-4)
; 495.	        paattr.volume = volume;
	LD	B,(IX+2)
	LD	(IX-3),B
; 496.	        EnablePA(& paattr);
	LD	HL,0
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD EnablePA
; 497.	        for (i = 0; i < 2000; i++)
	LD	DE,0
?0116:
	LD	BC,34768
	LD	L,E
	LD	H,D
	LD	A,128
	XOR	H
	LD	H,A
	SBC	HL,BC
	JR	NC,?0115
?0117:
; 498.	        {
; 499.	            output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
	IN	A,(78)
	SET	3,A
	OUT	(78),A
	INC	DE
; 500.	        }
; 501.	    }
	JR	?0116
?0115:
?0114:
; 502.	
; 503.	    musicpSendCommand(MC_SETVOLUME, volume);
	LD	C,(IX+2)
	LD	B,0
	LD	E,64
	LD	A,BYTE3 musicpSendCommand
	LD	HL,LWRD musicpSendCommand
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 504.	    OutPutVolume(volume);
	LD	E,(IX+2)
	LD	D,0
	LD	A,BYTE3 OutPutVolume
	LD	HL,LWRD OutPutVolume
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 505.	
; 506.	}
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
ClosePA:
; 507.	
; 508.	//===================================================
; 509.	void ClosePA(void)
; 510.	{
; 511.	    if (g_PAOpenFlag)
	LD	A,(g_PAOpenFlag)
	OR	A
	JR	Z,?0120
?0119:
; 512.	    {
; 513.	        g_PAOpenFlag = FALSE;//标志PA已关闭
	XOR	A
	LD	(g_PAOpenFlag),A
; 514.	        DisablePA();
	CALL	LWRD DisablePA
?0120:
; 515.	    }
; 516.	}
	JP	LWRD ?BANK_FAST_LEAVE_L08
DisplayTimeRollback:
; 517.	//===================================================
; 518.	
; 519.	//===================================================
; 520.	/*
; 521.	input: void
; 522.	
; 523.	output:   g_result == NULL: 退出到STOP
; 524.	               g_result == 其他,按热键处理
; 525.	
; 526.	*/
; 527.	//===================================================
; 528.	/*
; 529.	int DealForDRMsong(void)
; 530.	{
; 531.	
; 532.	    dialog_t dialog;
; 533.	
; 534.	    //进入显示是否进行授权申请对话框
; 535.	    dialog.HeadIcon = VOLPTR;//显示问号图标// for temp
; 536.	    dialog.HeadStr = REQLICEN;//显示“申请授权?”
; 537.	    dialog.string = g_TagInfoBuf;//显示要求显示的信息
; 538.	    g_result = ui_dialog(&dialog, g_comval.langid);
; 539.	
; 540.	    if (g_result == NULL)
; 541.	    {
; 542.	        //进入申请授权应用进行申请 (USBPMD)
; 543.	        //return RESULT_USBPMD;
; 544.	        g_result = RESULT_IGNORE;//现暂时关闭
; 545.	    }
; 546.	
; 547.	    if (g_result == RESULT_IGNORE)
; 548.	    {
; 549.	        //显示无播放授权
; 550.	        DisplayErrMsg(NOLICENS);//显示没有播放授权
; 551.	        musicpSendCommand(MC_CLOSE, NULL);
; 552.	        SetFullInterface();
; 553.	        return NULL;
; 554.	    }
; 555.	
; 556.	    if (g_result != NULL)
; 557.	    {
; 558.	        //热键处理
; 559.	        return g_result;
; 560.	    }
; 561.	}
; 562.	*/
; 563.	/*
; 564.	//==============================================
; 565.	功能:检测SYS时钟是否被回调
; 566.	接口:bool DisplayTimeRollback(void)
; 567.	输入:void
; 568.	输出:true: 正常播放
; 569.	      false: 显示完时钟已被回调,要进行设置退出
; 570.	//==============================================
; 571.	*/
; 572.	bool DisplayTimeRollback(void)
; 573.	{
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	-26
; 574.	    wma_inf_t licensinfbuf;
; 575.	    unsigned long curdatesec;
; 576.	    date_t  curdate;
; 577.	    time_t  curtime;
; 578.	
; 579.	    //判断是否DRM歌曲
; 580.	    //取lincens 信息
; 581.	    if (!musicpSendCommand(MC_GETINF,  (int)&licensinfbuf))
	LD	HL,0
	ADD	HL,SP
	LD	C,L
	LD	B,H
	LD	E,16
	LD	A,BYTE3 musicpSendCommand
	LD	HL,LWRD musicpSendCommand
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	INC	L
	DEC	L
	JR	Z,?0144
?0121:
; 582.	    {
; 583.	        return TRUE;//不用显示重设信息
; 584.	    }
?0122:
; 585.	
; 586.	    if (licensinfbuf.drmmode == INF_NORMALWMA)
	XOR	A
	OR	(IX-26)
	JR	NZ,?0124
?0123:
; 587.	    {
; 588.	        //普通WMA也不用显示重设信息
; 589.	        return TRUE;
?0144:
	LD	L,1
; 590.	    }
	JR	?0128
?0124:
; 591.	
; 592.	//    SetAsciiFont(FONT_TYPE_SMALL);
; 593.	    SetBackgdColor(Color_BLACK_def);
	LD	BC,0
	LD	E,C
	LD	D,B
	CALL	LWRD SetBackgdColor
; 594.	    ClearScreen(NULL);//清屏
	LD	DE,0
	CALL	LWRD ClearScreen
; 595.	    SetPenColor(Color_WHITE_def);
	LD	BC,0
	LD	DE,65535
	CALL	LWRD SetPenColor
; 596.	    ResShowMultiString(REQSETDT, g_comval.langid, 25, 56);//显示磁盘无文件
	LD	C,56
	PUSH	BC
	LD	C,25
	PUSH	BC
	LD	BC,(g_comval+12)
	LD	DE,601
	LD	A,BYTE3 ResShowMultiString
	LD	HL,LWRD ResShowMultiString
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
?0126:
; 597.	    while( ap_get_message() != NULL );//清空消息池,确保DELAY时间准确
	CALL	LWRD ap_get_message
	OR	A
	JR	NZ,?0126
?0127:
?0125:
; 598.	    ap_sleep(4);
	LD	DE,4
	LD	A,BYTE3 ap_sleep
	LD	HL,LWRD ap_sleep
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 599.	
; 600.	    return FALSE;
	LD	L,0
; 601.	}
?0128:
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
; 602.	
	RSEG	CSTR
?0051:
	DEFB	'ROOT'
	DEFB	0
?0053:
	DEFB	92,0
?0061:
	DEFB	':'
	DEFB	0
?0087:
	DEFB	' '
	DEFB	0
	RSEG	IDATA0
temp_buffer:
	DEFS	9
	RSEG	CDATA0
	DEFB	0
	DEFB	0,0,0,0,0,0,0,0
	RSEG	AP_FUN2_CONST
ExtMusicstr:
	DEFB	'MP3'
	DEFB	0
	DEFB	'WMA'
	DEFB	0
	DEFB	'ASF'
	DEFB	0
	DEFB	'WMV'
	DEFB	0
	DEFB	'OGG'
	DEFB	0
	DEFB	'APE'
	DEFB	0
	END

⌨️ 快捷键说明

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