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

📄 sub_playstatuskey.s01

📁 MP3 整个 SDK
💻 S01
📖 第 1 页 / 共 3 页
字号:
; 209.	
; 210.	            return g_result;
	JR	?0174
; 211.	            //SetFullInterface();
; 212.	            //need_draw = TRUE;
; 213.	        #endif/* OPT_Sup_LRC_fun */
; 214.	            break;
?0054:
; 215.	
; 216.	        case AP_KEY_PLAY | AP_KEY_UP:
; 217.	            return DealPlayKey();
	LD	A,BYTE3 DealPlayKey
	LD	HL,LWRD DealPlayKey
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 218.	
; 219.	        case AP_KEY_VOLSUB:
	JR	?0072
?0055:
; 220.	        case AP_KEY_VOLADD:
; 221.	            g_result = ChangeVolume();
	LD	A,BYTE3 ChangeVolume
	LD	HL,LWRD ChangeVolume
	CALL	LWRD ?0225
; 222.	
; 223.	            if (g_result == RESULT_RECORD )//不响应AB键
	JR	NZ,?0057
?0056:
; 224.	            {
; 225.	                g_result = play_key_next(AP_KEY_AB | AP_KEY_UP);
	LD	DE,49
	CALL	LWRD ?0227
; 226.	                if (g_result == RESULT_UI_STOP)
	LD	A,102
	XOR	L
	OR	H
	JR	Z,?0002
?0058:
; 227.	                {
; 228.	                    return 0;
; 229.	                }
?0059:
; 230.	                if (g_result != 0)
	LD	A,L
	OR	H
	JR	NZ,?0174
?0060:
; 231.	                {
; 232.	                    return g_result;
; 233.	                }
?0061:
; 234.	                SetFullInterface();
	LD	(ui_auto_update),A
	LD	HL,UpDisplayFlag
	LD	A,(HL)
	OR	193
	LD	(HL),A
	INC	HL
	LD	(HL),255
; 235.	                need_draw = TRUE;
	LD	A,1
?0175:
	LD	(need_draw),A
; 236.	            }
; 237.	            else
	JR	?0002
?0057:
; 238.	            {
; 239.	                if (g_result != 0)
	LD	A,L
	OR	H
	JR	Z,?0002
?0063:
; 240.	                {
; 241.	                    return g_result;
?0174:
	LD	HL,(g_result)
; 242.	                }
	JR	?0072
?0064:
?0062:
; 243.	            }
; 244.	
; 245.	
; 246.	            break;
?0065:
; 247.	        case AP_MSG_CHARGING:
; 248.	            ui_show_batt(GetBattery(), g_comval.BatteryType,0);
	LD	C,0
	PUSH	BC
	LD	BC,(g_comval+15)
	CALL	LWRD GetBattery
	LD	E,A
	LD	D,0
	LD	A,BYTE3 ui_show_batt
	LD	HL,LWRD ui_show_batt
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	HL
; 249.	            break;
	JR	?0002
?0066:
; 250.	
; 251.	        default:
; 252.	            key = ap_handle_hotkey(key);
	CALL	LWRD ap_handle_hotkey
	LD	(IX+2),A
; 253.	            if (key == RESULT_REDRAW)
	CP	50
	JR	NZ,?0068
?0067:
; 254.	            {
; 255.	                SetFullInterface();
	XOR	A
	LD	(ui_auto_update),A
	LD	HL,UpDisplayFlag
	LD	A,(HL)
	OR	193
	LD	(HL),A
	INC	HL
	LD	(HL),255
; 256.	                need_draw = TRUE;
	LD	A,1
	LD	(need_draw),A
; 257.	                return_to_play=1;
	LD	(return_to_play),A
	JR	?0002
?0068:
; 258.	            }
; 259.	            else if (key != 0)
	XOR	A
	OR	(IX+2)
	JR	Z,?0002
?0070:
; 260.	            {
; 261.	                return key;
	LD	L,A
	LD	H,0
; 262.	            }
	JR	?0072
?0071:
?0069:
; 263.	            break;
?0002:
; 264.	    }
; 265.	    return NULL;
	LD	HL,0
; 266.	
; 267.	}
?0072:
	POP	IY
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
?0213:
	LD	BC,0
	LD	E,2
	LD	A,BYTE3 musicpSendCommand
	LD	HL,LWRD musicpSendCommand
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	XOR	A
	LD	(ui_auto_update),A
	LD	HL,UpDisplayFlag
	LD	A,(HL)
	OR	193
	LD	(HL),A
	INC	HL
	LD	(HL),255
	LD	A,1
	LD	(need_draw),A
	RET
?0222:
	LD	BC,0
?0223:
	LD	E,65
?0221:
	LD	A,BYTE3 musicpSendCommand
	LD	HL,LWRD musicpSendCommand
	JP	LWRD ?BANK_CALL_DIRECT_L08
?0225:
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(g_result),HL
	LD	A,9
	XOR	L
	OR	H
	RET
?0227:
	LD	A,BYTE3 play_key_next
	LD	HL,LWRD play_key_next
?0226:
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(g_result),HL
	RET
play_key_next:
; 268.	
; 269.	//============================================================
; 270.	//======正常播放时的NEXT键处理========
; 271.	int play_key_next( int key )
; 272.	{
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	65528
; 273.	    wma_play_status_t status_buf;
; 274.	    //停快进退
; 275.	    if ((PlayStatus == FFPlaySta) || (PlayStatus == FBPlaySta))
	LD	A,(PlayStatus)
	CP	3
	JR	Z,?0075
	CP	4
	JR	NZ,?0074
?0075:
?0076:
?0073:
; 276.	    {
; 277.	        musicpSendCommand(MC_STEP, 0);
	LD	BC,0
	LD	E,7
	CALL	LWRD ?0221
; 278.	        PlayStatus = PlaySta;
	LD	A,2
	LD	(PlayStatus),A
; 279.	    }
; 280.	    else
	JP	LWRD ?0100
?0074:
; 281.	    {
; 282.	        switch (RePlayStatus)
	LD	DE,(RePlayStatus)
	CALL	LWRD ?C_S_SWITCH_L06
	DEFB	0
	DEFW	4
	DEFW	?0100
	DEFW	?0079
	DEFW	?0085
	DEFW	?0086
	DEFW	?0091
?0079:
; 283.	        {
; 284.	            case NormalPlay:
; 285.	                if (key == (AP_KEY_AB | AP_KEY_UP))  //ab key
	LD	A,49
	XOR	(IX+2)
	OR	(IX+3)
	JR	NZ,?0081
?0080:
; 286.	                {
; 287.	                    musicpSendCommand(MC_SETA_B, SetAPoint); //SET_A
	LD	BC,1
	CALL	LWRD ?0223
; 288.	                }
; 289.	                else //next key
	JR	?0082
?0081:
; 290.	                {
; 291.	                  #ifdef OPT_Sup_FadeOut_fun
; 292.	                    FadeOut(TRUE);
	CALL	LWRD ?0228
; 293.	                  #endif
; 294.	                    g_result = ToNextMusic(Play_key);
	LD	E,2
	LD	A,BYTE3 ToNextMusic
	LD	HL,LWRD ToNextMusic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(g_result),HL
; 295.	                    if(g_result != 0)
	LD	A,L
	OR	H
	JP	NZ,?0102
?0083:
; 296.	                    {
; 297.	                        return g_result;
; 298.	                    }
?0084:
; 299.	                    SetFullInterface();
	LD	(ui_auto_update),A
	LD	HL,UpDisplayFlag
	LD	A,(HL)
	OR	193
	LD	(HL),A
	INC	HL
	LD	(HL),255
; 300.	                    UpDisplayFlag=UpDisplayFlag & clr_musicBackGDPic  ;     //by zxs for not refresh the bg
	LD	HL,UpDisplayFlag
	RES	0,(HL)
?0082:
; 301.	                }
; 302.	                break;
	JR	?0100
?0085:
; 303.	
; 304.	            case WaitSetAPointForAB:
; 305.	                musicpSendCommand(MC_SETA_B, SetAPoint); //SET_A
	LD	BC,1
	CALL	LWRD ?0223
; 306.	                break;
	JR	?0100
?0086:
; 307.	
; 308.	            case WaitSetBPointForAB:
; 309.	                if(g_ABMinTimeCNT == 0) //要大于AB最小时间
	LD	A,(g_ABMinTimeCNT)
	OR	A
	JR	NZ,?0088
?0087:
; 310.	                {
; 311.	                    DEBUGP(0xa1);
; 312.	
; 313.	                    if ( musicpSendCommand(MC_SETA_B, SetBPoint) ); //SET_B
	LD	BC,2
	CALL	LWRD ?0223
?0089:
?0090:
; 314.	                    {
; 315.	                        g_AVSetFlag = FALSE;
	XOR	A
	LD	(g_AVSetFlag),A
?0088:
; 316.	                    }
; 317.	                    DEBUGP(0xa2);
; 318.	                }
; 319.	                break;
	JR	?0100
?0091:
; 320.	
; 321.	            case ABLoopPlay:
; 322.	              #ifdef OPT_Sup_follow_fun//支持跟读对比功能
; 323.	                if (g_music_vars.location.disk == 'C')
	LD	A,(g_music_vars+7)
	CP	67
	JR	NZ,?0093
?0092:
; 324.	                {
; 325.	                    //只有当前盘为“C”时才支持跟读对比功能
; 326.	                    musicpSendCommand(MC_GETSTATUS, (int)(& status_buf));
	LD	HL,0
	ADD	HL,SP
	LD	C,L
	LD	B,H
	LD	E,131
	CALL	LWRD ?0221
; 327.	                    if (status_buf.status == PLAYING_REACH_A)
	LD	A,(IX-8)
	CP	7
	JR	NZ,?0095
?0094:
; 328.	                    {
; 329.	                        musicpSendCommand(MC_CALTIME, NULL);
	LD	BC,0
	LD	E,19
	CALL	LWRD ?0215
; 330.	                        musicpSendCommand(MC_PLAY, NULL);
	CALL	LWRD ?BANK_CALL_DIRECT_L08
?0095:
; 331.	                    }
; 332.	                    g_FCexitflag = FALSE;
	XOR	A
	LD	(g_FCexitflag),A
; 333.	                    g_result = ui_follow_compare();
	LD	A,BYTE3 ui_follow_compare
	LD	HL,LWRD ui_follow_compare
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(g_result),HL
; 334.	                    g_music_vars.MusicOpenMod = Nor_Break_open;//都是以断点方式退出的
	LD	A,1
	LD	(g_music_vars+6),A
; 335.	                    g_ReplayTimeCNT = 0;
	XOR	A
	LD	(g_ReplayTimeCNT),A
; 336.	                    if (g_result != 0)
	LD	A,L
	OR	H
	JR	Z,?0098
?0096:
; 337.	                    {
; 338.	                        return g_result;
; 339.	                    }
	JR	?0102
?0097:
; 340.	                }
; 341.	                else
?0093:
; 342.	                {
; 343.	                    //当插卡时不支持跟读对比功能
; 344.	                    musicpSendCommand(MC_SETA_B, ClrABPoint); //CLEAR_AB
	CALL	LWRD ?0222
; 345.	                    RePlayStatus = WaitSetAPointForAB;
	LD	A,1
	LD	(RePlayStatus),A
?0098:
; 346.	                }
; 347.	              #else//OPT_Sup_follow_fun
; 348.	                musicpSendCommand(MC_SETA_B, ClrABPoint); //CLEAR_AB
; 349.	                RePlayStatus = WaitSetAPointForAB;
; 350.	              #endif//OPT_Sup_follow_fun
; 351.	
; 352.	
; 353.	                SetFullInterface();
	XOR	A
	LD	(ui_auto_update),A
	LD	HL,UpDisplayFlag
	LD	A,(HL)
	OR	193
	LD	(HL),A
	INC	HL
	LD	(HL),255
; 354.	               // UpDisplayFlag=UpDisplayFlag & clr_musicBackGDPic  ;     //by zxs for not refresh the bg
; 355.	                if(RePlayStatus!=NormalPlay)           //zxs add for s73
	LD	A,(RePlayStatus)
	OR	A
	JR	Z,?0100
?0099:
; 356.	                   UpDisplayFlag = UpDisplayFlag &clr_musicbitrate;
	LD	HL,UpDisplayFlag
	INC	HL
	RES	5,(HL)
?0100:
; 357.	                //UpDisplayFlag=UpDisplayFlag | up_MPRLmode;
; 358.	                break;
?0101:
; 359.	
; 360.	            default:
; 361.	                break;
?0078:
?0077:
; 362.	        }
; 363.	    }
; 364.	    need_draw = TRUE;
	LD	A,1
	LD	(need_draw),A
; 365.	    return NULL;
	LD	HL,0
; 366.	}
?0102:
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
?0216:
	LD	BC,5
	LD	E,89
?0215:
	LD	A,BYTE3 musicpSendCommand
	LD	HL,LWRD musicpSendCommand
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	BC,0
	LD	E,4
	LD	A,BYTE3 musicpSendCommand
	LD	HL,LWRD musicpSendCommand
	RET
?0228:
	LD	E,1
	LD	A,BYTE3 FadeOut
	LD	HL,LWRD FadeOut
	JP	LWRD ?BANK_CALL_DIRECT_L08
play_key_prev:
; 367.	
; 368.	//======正常播放时的PREV键处理========
; 369.	int play_key_prev( int key )
; 370.	{
	PUSH	BC
	PUSH	DE
; 371.	    wma_play_status_t status_buf;
; 372.	
; 373.	    if (RePlayStatus != NormalPlay)
	LD	A,(RePlayStatus)
	OR	A
	JR	Z,?0104
?0103:
; 374.	    {
; 375.	        musicpSendCommand(MC_SETA_B, ClrABPoint); //clear AB
	CALL	LWRD ?0222
; 376.	
; 377.	        RePlayStatus = WaitSetAPointForAB;
	LD	A,1
	LD	(RePlayStatus),A
; 378.	        UpDisplayFlag = UpDisplayFlag | up_MPRLmode;
	LD	HL,UpDisplayFlag
	INC	HL
	SET	3,(HL)
; 379.	        need_draw = TRUE;
	LD	(need_draw),A
; 380.	        return NULL;
	JR	?0105
; 381.	    }
?0104:
; 382.	
; 383.	    switch (PlayStatus)
	LD	A,(PlayStatus)
	CP	3
	JR	C,?0107
	CP	5
	JR	NC,?0107
?0106:
; 384.	    {
; 385.	        case FBPlaySta:
; 386.	        case FFPlaySta:
; 387.	            musicpSendCommand(MC_STEP, 0);
	LD	BC,0
	LD	E,7
	CALL	LWRD ?0221
; 388.	            PlayStatus = PlaySta;
	LD	A,2
	LD	(PlayStatus),A
; 389.	            break;
	JR	?0105
?0107:
	CP	2
	JR	NZ,?0105
; 390.	
; 391.	        case PlaySta:
; 392.	#ifdef OPT_Sup_FadeOut_fun
; 393.	            FadeOut(TRUE);
	CALL	LWRD ?0228
; 394.	#endif
; 395.	            g_result = PrevMusicInPlay();
	LD	A,BYTE3 PrevMusicInPlay
	LD	HL,LWRD PrevMusicInPlay
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(g_result),HL
; 396.	            if (g_result != 0) return g_result;
	LD	A,L
	OR	H
	JR	NZ,?0111
?0108:
; 397.	            break;
?0109:
?0110:
; 398.	
; 399.	        default:
; 400.	            break;
?0105:
; 401.	    }
; 402.	    return NULL;
	LD	HL,0
; 403.	}
?0111:
	POP	AF
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
ToNextMusic:
; 404.	
; 405.	int ToNextMusic( Music_sel_mod_t mod )
; 406.	{
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	65528
; 407.	    wma_play_status_t status_buf;
; 408.	    output8(0x27,input8(0x27)&0xbf); //For test  zxs 2006.04.07
	IN	A,(39)
	RES	6,A
	OUT	(39),A
; 409.	    musicpSendCommand(MC_STOP, NULL);
	CALL	LWRD ?0217
; 410.	    musicpSendCommand(MC_CLOSE, NULL);
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 411.	    output8(0x27,input8(0x27)|0x40); //For test  zxs 2006.04.07 
	IN	A,(39)
	SET	6,A
	OUT	(39),A
; 412.	    g_result = ChangeMusic(Music_Next, mod);
	LD	C,(IX+2)
	LD	E,3
	CALL	LWRD ?0229
; 413.	    if(!g_result)
	JR	Z,?0195
?0112:
; 414.	    {
; 415.	        return RESULT_UI_STOP;//回到停止界面
; 416.	    }
?0113:
; 417.	    FSELSetMode( FSEL_ALL_REPEATALL );
; 418.	    FSELGetNext(g_music_vars.location.filename);
; 419.	    fselGetLocation(& g_music_vars.location);
; 420.	    GetInformation();
	CALL	LWRD ?0224
; 421.	    memcpy(g_TagInfoBuf1,g_TagInfoBuf,20);
; 422.	    //g_TagInfoBuf1[19]=0;
; 423.	    FSELGetPrev(g_music_vars.location.filename);
; 424.	    fselGetLocation(& g_music_vars.location);
; 425.	    FSELSetMode(g_music_vars.repeat_mode);
; 426.	    GetInformation(); //取文件信息
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 427.	    musicpSendCommand( MC_OPEN,  (int)& g_Openparam );

⌨️ 快捷键说明

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