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

📄 mediaplayeriface.cpp

📁 sigmadesign smp8623 gui source code ,bingo
💻 CPP
字号:
/***************************************** Copyright  2001-2003 Sigma Designs, Inc. All Rights Reserved Proprietary and Confidential *****************************************/#ifndef ALLOW_OS_CODE#define ALLOW_OS_CODE 1#endif //ALLOW_OS_CODE#include "common.h"#include "mediaplayeriface.h"#include "gui/gui.h"#include <stdio.h>#define STATE_TO_STRING(state) \        (state==STATE_CLOSE)?"CLOSE": \	(state==STATE_PLAY)?"PLAY": \	(state==STATE_STOP)?"STOP": \	(state==STATE_PAUSE)?"PAUSE": \	(state==STATE_STEP)?"STEP": \	(state==STATE_FAST_FORWARD)?"FAST_FORWARD": \	(state==STATE_FAST_REWIND)?"FAST_REWIND": \	(state==STATE_SLOW_FORWARD)?"SLOW_FORWARD": "INVALID_STATE"RMmediaPlayerIface::RMmediaPlayerIface(typeCuracaoContext *context, typeMediaPlayer type)	: m_context (context),	  m_initialized (FALSE),	  m_speed(1),	  m_last_speed(0),	  m_state (STATE_CLOSE),	  m_type(type){}RMmediaPlayerIface::~RMmediaPlayerIface(){}int RMmediaPlayerIface::GetUserInputFromRemote(RMremoteHandle rh, RMbool oneDigit){	RMremoteKey rc;	int digit = 0;	RMbool wrongInput;	while(1){		rc = RMFremoteWaitSymbol(rh, MS_REMOTE_TIMEOUT);		if (rc!=RM_HW_TIMEOUT) {			wrongInput = FALSE;			switch (rc){			case RM_HW_ON_OFF:				printf("\nAborted\n");				return -1;			case RM_HW_KEY_1:				digit = digit*10+1;				printf("1");				break;			case RM_HW_KEY_2:				digit = digit*10+2;				printf("2");				break;			case RM_HW_KEY_3:				digit = digit*10+3;				printf("3");				break;			case RM_HW_KEY_4:				digit = digit*10+4;				printf("4");				break;			case RM_HW_KEY_5:				digit = digit*10+5;				printf("5");				break;			case RM_HW_KEY_6:				digit = digit*10+6;				printf("6");				break;			case RM_HW_KEY_7:				digit = digit*10+7;				printf("7");				break;			case RM_HW_KEY_8:				digit = digit*10+8;				printf("8");				break;			case RM_HW_KEY_9:				digit = digit*10+9;				printf("9");				break;			case RM_HW_KEY_0:				digit = digit*10;				printf("0");				break;			case RM_HW_SELECT:			case RM_HW_ENT:				printf("\n");				return digit;			default:				printf("wrong input : type 0 to 9 and enter\n");				wrongInput = TRUE;				break;			}			if(oneDigit &&			   !wrongInput) {				printf("\n");				return digit;			}		}	}}RMint8 RMmediaPlayerIface::GetSpeed(){	return (RMint8) m_speed;}typeMediaPlayerSate RMmediaPlayerIface::GetState(){	return m_state;}void RMmediaPlayerIface::SetState(typeMediaPlayerSate state, void *val){	RMint8 speed = 0;	if(((state == STATE_FAST_FORWARD) ||	   (state ==  STATE_FAST_REWIND) ||	   (state == STATE_SLOW_FORWARD)) &&	   (val != NULL))		speed = *(RMint8*)val;	printf("state %d, old state %d", state, m_state);	if((state != m_state) ||	   ((speed != 0) &&	    (speed != (RMint8) m_last_speed))){		typePlayMode playMode;		printf("Change state : %s -> %s (speed=%i)...\n", STATE_TO_STRING(m_state), STATE_TO_STRING(state), speed);		switch (state){		case STATE_CLOSE:		case STATE_STOP:			m_context->remoteTimeout = MS_REMOTE_TIMEOUT;			break;		case STATE_PAUSE:			m_context->remoteTimeout = MS_REMOTE_TIMEOUT;			break;		case STATE_PLAY:		case STATE_FAST_FORWARD:		case STATE_FAST_REWIND:		case STATE_SLOW_FORWARD:			if(m_type != FILE_PLAYER)				m_context->remoteTimeout = 0;			break;		case STATE_STEP:			m_context->remoteTimeout = MS_REMOTE_TIMEOUT;			break;		default:			printf("Unknown state : %s\n", STATE_TO_STRING(state));			return;		}		printf("... done with state\n");		m_state = state;		m_last_speed = speed;		m_speed = speed;		playMode.state = state;		playMode.val = val;		SendMessage(CURACAO_MESSAGE_PLAY_MODE, (void *)&playMode);	}	else		printf("error!!!!!!!\n");}RMstatus RMmediaPlayerIface::SendMessage(typeCuracaoMessage message, void *val){	if(m_context->gui) {		return m_context->gui->Notify(message, val);	}	return RM_ERROR;}typeMediaPlayer RMmediaPlayerIface::GetType(){	return m_type;}RMstatus RMmediaPlayerIface::UpdateDisplayInfo(){	return RM_ERROR;}RMstatus RMmediaPlayerIface::UpdateMediaInfo(){	return RM_ERROR;}RMstatus RMmediaPlayerIface::GetParameters(void **params){	if(m_context->gui) {		if(m_type == DVDVIDEO_PLAYER){			typeCuracaoDvdParameters p;			if(RMSUCCEEDED(m_context->gui->GetDvdParameters(&p))){				*params = &p;				return RM_OK;			}		}	}	return RM_ERROR;}RMstatus RMmediaPlayerIface::GetInfo(typeCuracaoMessage message, void *val){	return RM_PROPERTY_NOT_SUPPORTED;}RMstatus RMmediaPlayerIface::GetBookmark(RMuint8 *val, RMuint32 size){	return RM_ERROR;}RMstatus RMmediaPlayerIface::ResumeBookmark(RMuint8 *val){	return RM_ERROR;}RMuint32 RMmediaPlayerIface::GetDiscID(){	return 0;}RMstatus RMmediaPlayerIface::GetAudioStreamID(RMuint8 stream, RMascii *str){	return RM_PROPERTY_NOT_SUPPORTED;}RMstatus RMmediaPlayerIface::GetCurrentAudioStream(RMuint8 *stream){	return RM_PROPERTY_NOT_SUPPORTED;}RMbool RMmediaPlayerIface::IsMenu(){	return FALSE;}RMstatus RMmediaPlayerIface::SetStreamInfo(struct RMFileStreamInfo *streamInfo){	return RM_ERROR;}

⌨️ 快捷键说明

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