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

📄 sub_playstatuskey.s01

📁 炬力方案176*132软件源码,适用于AK1025
💻 S01
📖 第 1 页 / 共 4 页
字号:
	NAME	sub_playstatuskey(17)
	RSEG	CODE(0)
	RSEG	IDATA0(0)
	RSEG	CDATA0(0)
	EXTERN	ChangeMusic
	EXTERN	DRV_DetectUD
	PUBLIC	DealFilePlayEnd
	PUBLIC	DealKeyForPlayStatus
	EXTERN	DealMusicFileEnd
	PUBLIC	DealPlayKey
	EXTERN	DisplayErrMsg
	EXTERN	DisplayTimeRollback
	PUBLIC	ErrReport
	EXTERN	FS_FTell
	EXTERN	FadeOut
	EXTERN	GetBattery
	EXTERN	GetInformation
	EXTERN	MusicEditEndTime
	EXTERN	MusicEditSelStatus
	EXTERN	MusicEditStartTime
	EXTERN	MusicEditStatus
	EXTERN	MusicEdit_SelSeg
	EXTERN	OutPutVolume
	EXTERN	PlayStatus
	PUBLIC	PrevMusicInPlay
	EXTERN	RePlayStatus
	EXTERN	SaveSelSegment
	PUBLIC	ToNextMusic
	EXTERN	UI_ShowDelSegComfirm
	EXTERN	UpDisplayFlag
	EXTERN	VMRead
	EXTERN	ap_get_message
	EXTERN	ap_handle_hotkey
	EXTERN	ap_message_init
	EXTERN	c_mp3deNowTimeHour
	EXTERN	c_mp3deNowTimeMinute
	EXTERN	c_mp3deNowTimeSencond
	EXTERN	g_ABMinTimeCNT
	EXTERN	g_AVSetFlag
	EXTERN	g_FCexitflag
	EXTERN	g_Openparam
	EXTERN	g_PowerOffFlag
	EXTERN	g_ReplayTimeCNT
	EXTERN	g_comval
	EXTERN	g_lyricflag
	EXTERN	g_music_vars
	EXTERN	g_rSetPlayStatus
	EXTERN	g_result
	PUBLIC	g_volcounter
	EXTERN	ifSelBuffToltalTimeFlag
	EXTERN	m_Mp3deFileHandle
	EXTERN	main_ResShowPic
	EXTERN	musicpSendCommand
	EXTERN	need_draw
	PUBLIC	play_key_next
	PUBLIC	play_key_prev
	EXTERN	return_to_play
	EXTERN	ui_auto_update
	EXTERN	ui_follow_compare
	EXTERN	ui_lyric
	EXTERN	ui_play_menu
	EXTERN	ui_run_realtime
	EXTERN	ui_show_batt
	EXTERN	ui_show_vol
	EXTERN	volume_callback
	EXTERN	?CLZ80B_4_04_L00
	EXTERN	?C_S_SWITCH_L06
	EXTERN	?C_V_SWITCH_L06
	EXTERN	?BANK_CALL_DIRECT_L08
	EXTERN	?BANK_LEAVE_DIRECT_L08
	EXTERN	?BANK_FAST_LEAVE_L08
	EXTERN	?ENT_PARM_DIRECT_L09
	EXTERN	?ENT_AUTO_DIRECT_L09
	RSEG	CODE
DealKeyForPlayStatus:
; 1.	/*
; 2.	*******************************************************************************
; 3.	*                ACTOS AP
; 4.	*        This program demostrates how to build an AP
; 5.	*
; 6.	*        (c) Copyright Actions Co,Ld.
; 7.	*
; 8.	*  $Id: sub_playstatuskey.c,v 1.1.1.1 2006/05/22 03:24:01 selina Exp $
; 9.	*******************************************************************************
; 10.	*/
; 11.	#include "ap_music.h"
; 12.	#include "define.h"
; 13.	
; 14.	extern bool g_FCexitflag;
; 15.	extern char return_to_play;
; 16.	void ui_show_vol(BYTE volume);
; 17.	void OutPutVolume(int vol);
; 18.	int DealFilePlayEnd(void);
; 19.	//void ErrReport(Play_status_t status);
; 20.	extern bool DisplayTimeRollback(void);
; 21.	extern EMU_MusicEditSelStatus MusicEditSelStatus;    //musicedit add by mzh 2007.1.19
; 22.	extern EMU_MusicEditStatus MusicEditStatus;    //musicedit add by mzh 2007.1.19
; 23.	extern STRU_SelMusicSegment MusicEdit_SelSeg; //musicedit add by mzh
; 24.	extern time_t MusicEditStartTime;
; 25.	extern time_t MusicEditEndTime;
; 26.	extern HANDLE m_Mp3deFileHandle;
; 27.	extern BYTE c_mp3deNowTimeSencond;        // byte 当前时间:秒
; 28.	extern BYTE c_mp3deNowTimeMinute;         // 1byte 当前时间:分
; 29.	extern BYTE c_mp3deNowTimeHour;           // 1byte 当前时间:小时
; 30.	extern int UI_ShowDelSegComfirm(void);
; 31.	
; 32.	char g_volcounter=0;
; 33.	extern bool     g_rSetPlayStatus;
; 34.	/*
; 35.	********************************************************************************
; 36.	* Description :  处理在播放状态下对按键的判断处理(因为ui_play.c空间太紧张了)
; 37.	*
; 38.	* input : 键值 key
; 39.	*
; 40.	* output: 返回值 == 0: 正常返回
; 41.	*                != 0: 不是正常返回(如热键)
; 42.	* Notes       :
; 43.	********************************************************************************
; 44.	*/
; 45.	int DealKeyForPlayStatus(char key)
; 46.	{
	CALL	LWRD ?ENT_PARM_DIRECT_L09
; 47.	    switch (key)
	CALL	LWRD ?C_V_SWITCH_L06
	DEFW	16
	DEFB	3
	DEFB	4
	DEFB	27
	DEFB	29
	DEFB	33
	DEFB	37
	DEFB	38
	DEFB	48
	DEFB	49
	DEFB	67
	DEFB	68
	DEFB	69
	DEFB	70
	DEFB	133
	DEFB	134
	DEFB	144
	DEFW	?0052
	DEFW	?0031
	DEFW	?0004
	DEFW	?0008
	DEFW	?0002
	DEFW	?0002
	DEFW	?0045
	DEFW	?0039
	DEFW	?0017
	DEFW	?0021
	DEFW	?0016
	DEFW	?0012
	DEFW	?0038
	DEFW	?0002
	DEFW	?0051
	DEFW	?0045
	DEFW	?0039
?0003:
; 48.	    {
; 49.	        case AP_MSG_STANDBY:
; 50.	            break;
?0004:
; 51.	
; 52.	        case AP_KEY_NEXT | AP_KEY_LONG: //快进
; 53.	#ifndef __6KEYMODE__
; 54.	                                                if(g_volcounter==0)
; 55.	#endif
; 56.	                                                {
; 57.	                ui_run_realtime=TRUE;
	LD	A,1
	LD	(ui_run_realtime),A
; 58.	                //if (g_music_vars.location.disk == 'C')
; 59.	                {
; 60.	                    //只有在"C"盘时才能快进退
; 61.	                    if (RePlayStatus == NormalPlay)
	LD	A,(RePlayStatus)
	OR	A
	JR	NZ,?0006
?0005:
; 62.	                    {
; 63.	                        PlayStatus = FFPlaySta;
	LD	A,3
	LD	(PlayStatus),A
; 64.	                        musicpSendCommand(MC_STEP, 4);
	LD	BC,4
	LD	E,7
	CALL	LWRD ?0200
?0006:
; 65.	                    }
; 66.	                }
; 67.	            }
; 68.	            break;
	JP	LWRD ?0002
?0007:
; 69.	        case AP_KEY_NEXT | AP_KEY_HOLD: //VOL
; 70.	#ifndef __6KEYMODE__
; 71.	                        if(g_volcounter>0)
; 72.	                        {
; 73.	                                        g_volcounter = 6;
; 74.	                                        
; 75.	                                        if(g_music_vars.volume<31)
; 76.	                                        {
; 77.	                                                volume_callback(++g_music_vars.volume);
; 78.	                                                ui_show_vol(g_music_vars.volume);
; 79.	                                        }
; 80.	                        }
; 81.	#endif
; 82.	                                                break;
?0008:
; 83.	        case AP_KEY_PREV | AP_KEY_LONG: //快退
; 84.	#ifndef __6KEYMODE__
; 85.	                  if(g_volcounter==0)
; 86.	#endif
; 87.	                  {
; 88.	                ui_run_realtime=TRUE;
	LD	A,1
	LD	(ui_run_realtime),A
; 89.	                //if (g_music_vars.location.disk == 'C')
; 90.	                {
; 91.	                    //只有在"C"盘时才能快进退
; 92.	                    if (RePlayStatus == NormalPlay)
	LD	A,(RePlayStatus)
	OR	A
	JR	NZ,?0010
?0009:
; 93.	                    {
; 94.	                        PlayStatus = FBPlaySta;
	LD	A,4
	LD	(PlayStatus),A
; 95.	                        musicpSendCommand(MC_STEP, -4);
	LD	BC,65532
	LD	E,7
	CALL	LWRD ?0200
?0010:
; 96.	                    }
; 97.	                
; 98.	                }
; 99.	            }
; 100.	            break;
	JP	LWRD ?0002
?0011:
; 101.	        case AP_KEY_PREV | AP_KEY_HOLD: //VOL
; 102.	#ifndef __6KEYMODE__
; 103.	                  if(g_volcounter>0)
; 104.	                        {
; 105.	                                        g_volcounter = 6;
; 106.	                                        
; 107.	                                        if(g_music_vars.volume>0)
; 108.	                                        {
; 109.	                                                volume_callback(--g_music_vars.volume);
; 110.	                                                ui_show_vol(g_music_vars.volume);
; 111.	                                        }
; 112.	                        }
; 113.	#endif
; 114.	                        break;
?0012:
; 115.	/*
; 116.	        case AP_KEY_EQ:
; 117.	            if (RePlayStatus == NormalPlay)
; 118.	            {
; 119.	                g_result = ui_EQ_menu();
; 120.	
; 121.	                if (g_result == RESULT_RECORD )//响应AB键
; 122.	                {
; 123.	                    SetFullInterface();
; 124.	                    return play_key_next(AP_KEY_AB | AP_KEY_UP);
; 125.	                }
; 126.	                else
; 127.	                {
; 128.	                    if(DealFilePlayEnd())
; 129.	                      return  g_result; 
; 130.	                    if (g_result != 0)
; 131.	                    {
; 132.	                        return g_result;
; 133.	                    }
; 134.	                }
; 135.	
; 136.	                SetFullInterface();
; 137.	                return_to_play = 1;
; 138.	                need_draw = TRUE;
; 139.	            }
; 140.	            break;
; 141.	*/
; 142.	/*
; 143.	        case AP_KEY_LOOP:
; 144.	            if (RePlayStatus == NormalPlay)
; 145.	            {
; 146.	                g_result = ui_loop_menu();
; 147.	
; 148.	                if (g_result == RESULT_RECORD )//不响应AB键
; 149.	                {
; 150.	                    SetFullInterface();
; 151.	                    return play_key_next(AP_KEY_AB | AP_KEY_UP);
; 152.	                }
; 153.	                else
; 154.	                {
; 155.	                    if(DealFilePlayEnd())
; 156.	                      return  g_result;
; 157.	                    if (g_result != 0)
; 158.	                    {
; 159.	                        return g_result;
; 160.	                    }
; 161.	                }
; 162.	
; 163.	                SetFullInterface();
; 164.	                return_to_play=1;
; 165.	                need_draw = TRUE;
; 166.	            }
; 167.	            break;
; 168.	*/
; 169.	        case AP_KEY_PREV | AP_KEY_UP:
; 170.	#ifndef __6KEYMODE__
; 171.	                  if(g_volcounter>0)
; 172.	                  {
; 173.	                  g_volcounter = 6;
; 174.	                                        
; 175.	                                        if(g_music_vars.volume>0)
; 176.	                                        {
; 177.	                                                volume_callback(--g_music_vars.volume);
; 178.	                                                ui_show_vol(g_music_vars.volume);
; 179.	                                        }
; 180.	            }
; 181.	            else
; 182.	#endif
; 183.	            {
; 184.	                ui_run_realtime=FALSE;
	XOR	A
	LD	(ui_run_realtime),A
; 185.	                g_result = play_key_prev(key);
	LD	D,A
	LD	A,BYTE3 play_key_prev
	LD	HL,LWRD play_key_prev
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(g_result),HL
?0014:
; 186.	                while(ap_get_message()!=NULL);    //clear rtc message.
	CALL	LWRD ap_get_message
	OR	A
	JR	Z,?0163
?0015:
	JR	?0014
?0013:
; 187.	                return g_result;
; 188.	            }
; 189.	            break;
?0016:
; 190.	            
; 191.	        case AP_KEY_NEXT | AP_KEY_UP:
; 192.	#ifndef __6KEYMODE__
; 193.	                  if(g_volcounter>0)
; 194.	                  {
; 195.	                        g_volcounter = 6;
; 196.	                                
; 197.	                                if(g_music_vars.volume<31)
; 198.	                                {
; 199.	                                        volume_callback(++g_music_vars.volume);
; 200.	                                        ui_show_vol(g_music_vars.volume);
; 201.	                                }
; 202.	                break;
; 203.	            }
; 204.	            else
; 205.	#endif
; 206.	            {
; 207.	                ui_run_realtime=FALSE;
	XOR	A
	LD	(ui_run_realtime),A
?0017:
; 208.	            }
; 209.	        case AP_KEY_AB   | AP_KEY_UP: //定AB
; 210.	            g_result = play_key_next(key);
	LD	D,0
	LD	A,BYTE3 play_key_next
	LD	HL,LWRD play_key_next
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(g_result),HL
?0019:
; 211.	            while(ap_get_message()!=NULL);    //clear rtc message.
	CALL	LWRD ap_get_message
	OR	A
	JR	Z,?0163
?0020:
	JR	?0019
?0018:
; 212.	            return g_result;
; 213.	            break;
?0021:
; 214.	
; 215.	        case AP_KEY_MODE | AP_KEY_UP: //短按 MODE +
; 216.	            if (RePlayStatus == NormalPlay)
	LD	A,(RePlayStatus)
	OR	A
	JR	NZ,?0023
?0022:
; 217.	            {
; 218.	                // BYTE Reg4eBak=input8(0x4e);
; 219.	                //  output8(0x4e,0x22);            //zxs add
; 220.	                g_result = ui_play_menu(); //播放菜单
	LD	A,BYTE3 ui_play_menu
	LD	HL,LWRD ui_play_menu
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(g_result),HL
; 221.	                //  output8(0x4e,Reg4eBak);  
; 222.	                if (g_result == RESULT_RECORD )//不响应AB键
	LD	A,9
	XOR	L
	OR	H
	JR	NZ,?0025
?0024:
; 223.	                {
; 224.	                    SetFullInterface();
	LD	(ui_auto_update),A
	LD	HL,UpDisplayFlag
	LD	A,(HL)
	OR	193
	LD	(HL),A
	INC	HL
	LD	(HL),255
; 225.	                    UpDisplayFlag = UpDisplayFlag &clr_musicbitrate;
	LD	HL,UpDisplayFlag
	INC	HL
	RES	5,(HL)
; 226.	                    return play_key_next(AP_KEY_AB | AP_KEY_UP);
	LD	DE,49
	LD	A,BYTE3 play_key_next
	LD	HL,LWRD play_key_next
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 227.	                }
	JP	LWRD ?0058
?0025:
; 228.	                else
; 229.	                {
; 230.	                    if(DealFilePlayEnd())           //处理播放到文件尾的情况
	LD	A,BYTE3 DealFilePlayEnd
	LD	HL,LWRD DealFilePlayEnd
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	A,L
	OR	H
	JR	NZ,?0163
?0026:
; 231.	                    return  g_result; 
?0027:
; 232.	                    if (g_result != 0)
	LD	HL,(g_result)
	LD	A,L
	OR	H
	JR	Z,?0029
?0028:
; 233.	                    {
; 234.	                        return g_result;
?0163:
	JR	?0037
; 235.	                    }
?0029:
; 236.	                }
; 237.	                SetFullInterface();
	LD	(ui_auto_update),A
	LD	HL,UpDisplayFlag
	LD	A,(HL)
	OR	193
	LD	(HL),A
	INC	HL
	LD	(HL),255
; 238.	            }
; 239.	            else
	JR	?0030
?0023:
; 240.	            {
; 241.	                musicpSendCommand(MC_SETA_B, ClrABPoint); //clear SET_A_B
	CALL	LWRD ?0201
; 242.	                RePlayStatus = NormalPlay;
	XOR	A
	LD	(RePlayStatus),A
; 243.	                //main_ResShowPic(BBCK2,0,0);
; 244.	                UpDisplayFlag = UpDisplayFlag | up_musicbitrate;
	LD	HL,UpDisplayFlag

⌨️ 快捷键说明

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