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

📄 ui_followcompare.s01

📁 MP3 整个 SDK
💻 S01
📖 第 1 页 / 共 2 页
字号:
	NAME	ui_followcompare(17)
	RSEG	AP_UI_FC(0)
	RSEG	UDATA0(0)
	RSEG	APC_UI_FC(0)
	PUBLIC	ABPointTimeSize
	PUBLIC	DealForExitRec
	PUBLIC	NUM_PIC1
	PUBLIC	OpenMusic
	EXTERN	RePlayStatus
	PUBLIC	Replaytimes_CNT
	PUBLIC	ReturnNotInit
	PUBLIC	Show_time_FC
	PUBLIC	TimeRateData_sav
	EXTERN	UpDisplayFlag
	EXTERN	g_ABPointTimeSize
	EXTERN	g_Openparam
	EXTERN	g_music_vars
	EXTERN	ifSelBuffToltalTimeFlag
	EXTERN	itoa_1
	EXTERN	itoa_2
	EXTERN	musicpSendCommand
	EXTERN	temp_buffer
	EXTERN	ui_compareAB
	EXTERN	ui_comparePlay
	EXTERN	ui_followAB
	EXTERN	ui_followRec
	PUBLIC	ui_follow_compare
	EXTERN	ui_run_realtime
	EXTERN	ui_show_d
	EXTERN	wavpSendCommand
	EXTERN	wavrProceed
	EXTERN	wavrSendCommand
	EXTERN	?CLZ80B_4_04_L00
	EXTERN	?US_DIV_L02
	EXTERN	?C_S_SWITCH_L06
	EXTERN	?BANK_CALL_DIRECT_L08
	EXTERN	?BANK_LEAVE_DIRECT_L08
	EXTERN	?BANK_FAST_LEAVE_L08
	EXTERN	?ENT_AUTO_DIRECT_L09
	RSEG	AP_UI_FC
ui_follow_compare:
; 1.	/*
; 2.	*******************************************************************************
; 3.	*                        SDK30F_D1
; 4.	*                     music player follow compare sub
; 5.	*
; 6.	*                (c) Copyright 2002, Actions Co,Ld.
; 7.	*                        All Right Reserved
; 8.	*
; 9.	* File: follow_compare.c
; 10.	* By  : rcmai
; 11.	* Version: 1> v1.00     first version     2004-3-19 8:28
; 12.	*******************************************************************************
; 13.	* $Id: ui_followcompare.c,v 1.1.1.1 2006/05/22 03:24:01 selina Exp $
; 14.	*******************************************************************************
; 15.	*/
; 16.	#include "ap_music.h"
; 17.	
; 18.	bool ReturnNotInit;   //TRUE:表示下一个调用不用初始化,
; 19.	
; 20.	BYTE Replaytimes_CNT; //
; 21.	TimeRateData_sav_t TimeRateData_sav;
; 22.	WORD ABPointTimeSize;
; 23.	
; 24.	//暂存A点显示的时间值,因为在跟读录音停止时要显示A点时间
; 25.	//time_t g_APointDisTime;
; 26.	//g_APointDisTime = g_music_vars.BreakPTDisTime;
; 27.	#pragma memory=constseg(APC_UI_FC)
; 28.	//比特率的小图标(由于比标准ASCII小,所以要另出一套图标)
; 29.	const WORD NUM_PIC1 [] =
; 30.	{
; 31.	    MBIT0,MBIT1,MBIT2, MBIT3, MBIT4, MBIT5, MBIT6, MBIT7, MBIT8, MBIT9
; 32.	};
; 33.	#pragma memory=default
; 34.	
; 35.	int main_ResShowPic( WORD id, uchar x, uchar y );
; 36.	void DealForExitRec( void ); //退出录音时的处理
; 37.	void Show_time_FC( void );
; 38.	void OpenMusic( void );
; 39.	
; 40.	#pragma codeseg(AP_UI_FC)
; 41.	/*
; 42.	********************************************************************************
; 43.	*             int ui_follow_compare( void )
; 44.	*
; 45.	* Description : 跟读对比主循环
; 46.	*
; 47.	* Arguments   : void
; 48.	*
; 49.	* Returns     : int
; 50.	*               RESULT_UI_STOP: 表示要进入停止状态,此时所有module已关闭
; 51.	*               key: 热健消息
; 52.	*               NULL: 表示正常退出
; 53.	*
; 54.	* Notes       :
; 55.	*
; 56.	********************************************************************************
; 57.	*/
; 58.	int ui_follow_compare( void )
; 59.	{
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	65524
	PUSH	IY
; 60.	    int result;
; 61.	
; 62.	    {
; 63.	    mp3_play_status_t status_buf;
; 64.	    WORD i;
; 65.	    i = g_ABPointTimeSize/10;    //长 10%
	LD	BC,10
	LD	DE,(g_ABPointTimeSize)
	CALL	LWRD ?US_DIV_L02
	LD	(IX-2),E
	LD	(IX-1),D
; 66.	    if (i < 2)
	LD	C,2
	EX	DE,HL
	AND	A
	SBC	HL,BC
	JR	NC,?0003
?0002:
; 67.	    {
; 68.	        i = 2;
	LD	(IX-2),C
	LD	(IX-1),B
?0003:
; 69.	    }                               
; 70.	    ABPointTimeSize = g_ABPointTimeSize +2 + i;//2为经验补尝值
	LD	L,(IX-2)
	LD	H,(IX-1)
	LD	BC,(g_ABPointTimeSize)
	ADD	HL,BC
	INC	HL
	INC	HL
	LD	(ABPointTimeSize),HL
; 71.	
; 72.	    musicpSendCommand(MC_GETSTATUS, (int)(& status_buf));
	LD	HL,4
	ADD	HL,SP
	LD	C,L
	LD	B,H
	LD	E,131
	CALL	LWRD ?0056
; 73.	    //保存用于跟读对比显示
; 74.	    TimeRateData_sav.TotalTime_sav[0] = status_buf.total_time.hour;
	LD	A,(IX-7)
	LD	(TimeRateData_sav+3),A
; 75.	    TimeRateData_sav.TotalTime_sav[1] = status_buf.total_time.minute;
	LD	A,(IX-6)
	LD	(TimeRateData_sav+4),A
; 76.	    TimeRateData_sav.TotalTime_sav[2] = status_buf.total_time.second; 
	LD	A,(IX-5)
	LD	(TimeRateData_sav+5),A
; 77.	    ifSelBuffToltalTimeFlag=TRUE; 
	LD	A,1
	LD	(ifSelBuffToltalTimeFlag),A
; 78.	    }
; 79.	
; 80.	    ReturnNotInit = FALSE;                  //下次需要初始化
	XOR	A
	LD	(ReturnNotInit),A
; 81.	    Replaytimes_CNT = 0;
	LD	(Replaytimes_CNT),A
; 82.	
; 83.	    musicpSendCommand(MC_STOP, 1);//1表示MP3 退出时备份的是A点时间
	LD	BC,1
	LD	E,6
	CALL	LWRD ?0056
; 84.	    musicpSendCommand(MC_BACKUP, (int)& g_music_vars.BreakPTSave);
	LD	BC,g_music_vars+48
	LD	E,68
	CALL	LWRD ?0055
; 85.	    musicpSendCommand(MC_CLOSE, NULL);
	LD	E,2
	CALL	LWRD ?0056
; 86.	
; 87.	    RePlayStatus = FollowRec;
	LD	A,4
	LD	(RePlayStatus),A
?0005:
; 88.	
; 89.	    //UpDisplayFlag = UpDisplayFlag | up_MPRLmode;
; 90.	    while (1)
; 91.	    {
; 92.	        switch (RePlayStatus)//状态处理
	LD	DE,(RePlayStatus)
	CALL	LWRD ?C_S_SWITCH_L06
	DEFB	0
	DEFW	8
	DEFW	?0005
	DEFW	?0008
	DEFW	?0008
	DEFW	?0005
	DEFW	?0021
	DEFW	?0009
	DEFW	?0012
	DEFW	?0015
	DEFW	?0018
?0008:
; 93.	        {
; 94.	            case WaitSetAPointForAB://待设A点
; 95.	            case NormalPlay://普通播放
; 96.	                musicpSendCommand(MC_SETA_B, ClrABPoint);//clear_a b
	LD	BC,0
	LD	E,65
	CALL	LWRD ?0056
; 97.	                return NULL;
	JR	?0021
; 98.	
; 99.	            case FollowRec://跟读录音
?0009:
; 100.	                result = ui_followRec();
	LD	A,BYTE3 ui_followRec
	LD	HL,LWRD ui_followRec
	CALL	LWRD ?0057
; 101.	                if (result != 0)
	JR	Z,?0005
?0010:
; 102.	                {
; 103.	                    return result;
	JR	?0023
; 104.	                }
?0011:
; 105.	                break;
?0012:
; 106.	
; 107.	            case FollowAB://跟读AB
; 108.	                result = ui_followAB();
	LD	A,BYTE3 ui_followAB
	LD	HL,LWRD ui_followAB
	CALL	LWRD ?0057
; 109.	                if (result != 0)
	JR	Z,?0005
?0013:
; 110.	                {
; 111.	                    return result;
	JR	?0023
; 112.	                }
?0014:
; 113.	                break;
?0015:
; 114.	
; 115.	            case ComparePlay://对比播放
; 116.	                result = ui_comparePlay();
	LD	A,BYTE3 ui_comparePlay
	LD	HL,LWRD ui_comparePlay
	CALL	LWRD ?0057
; 117.	                if (result != 0)
	JR	Z,?0005
?0016:
; 118.	                {
; 119.	                    return result;
	JR	?0023
; 120.	                }
?0017:
; 121.	                break;
?0018:
; 122.	
; 123.	            case CompareAB:                     //对比AB
; 124.	                result = ui_compareAB();
	LD	A,BYTE3 ui_compareAB
	LD	HL,LWRD ui_compareAB
	CALL	LWRD ?0057
; 125.	                if (result != 0)
	JR	Z,?0005
?0019:
; 126.	                {
; 127.	                    return result;
; 128.	                }
	JR	?0023
?0020:
; 129.	                break;
?0021:
; 130.	
; 131.	            case ABLoopPlay:                    //复读
; 132.	                return NULL;
	LD	HL,0
; 133.	
; 134.	            default:
?0023:
	POP	IY
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
?0055:
	LD	A,BYTE3 musicpSendCommand
	LD	HL,LWRD musicpSendCommand
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	BC,0
	RET
?0056:
	LD	A,BYTE3 musicpSendCommand
	LD	HL,LWRD musicpSendCommand
	JP	LWRD ?BANK_CALL_DIRECT_L08
?0057:
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	A,L
	OR	H
	RET
?0022:
; 135.	                break;
?0007:
; 136.	        }
; 137.	    }
; 138.	}
DealForExitRec:
; 139.	
; 140.	
; 141.	
; 142.	
; 143.	
; 144.	
; 145.	/*

⌨️ 快捷键说明

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