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

📄 key_handler_dvda.c

📁 SAMSUNG 5009的源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
/****************************************************************************** *   Filename    : Change_key_dvda.c *   Start       : 2002. 11. 6. *   By          : Taejin Kwon *   Contact     : tj1kwon@samsung.co.kr *   Description : Key to UI command for Dvd audio. ****************************************************************************** *//****************************************************** *       INCLUDES *****************************************************/#include "Basic_typedefs.h"#include "CUSTOM/Custom_option.h"#include "OS/OS_abstract.h"#include "API/SH_types.h"#include "API/SH_api.h"#include "COMMON/Common.h"#include "MAIN/Appl_types.h"#include "MAIN/Global_state.h"#include "MAIN/Uop_msg.h"#include "CUSTOM/Osd_types.h"#include "CUSTOM/Osd_if.h"#include "CUSTOM/Key_handler_setup.h"#include "CUSTOM/Key_receive.h"#include "CUSTOM/Key_defs.h"#include "DRIVER/FS/Fs_api.h"#include "MAIN/DVD/Dvd_predef.h"#include "MAIN/DVD/Dvd_common.h"#include "MAIN/MMP/Mmp_common.h"/****************************************************** *       Global variables / functions *****************************************************//****************************************************** *       Extern variables  *****************************************************//****************************************************** *       Extern variables  *****************************************************/extern SysQueue_t		gQ_gui;/****************************************************** *       functions *****************************************************/#if _APP_CAP_NAV_DVD_AUDIO/*  * GUI command lookup table for DVD Video *   Key_def.h file has the index of key list for thist arrary. */VOID (*GuiDvdaCmd[])( UCHAR param ) = { 	GuiDvdaNum0,			/* 0x00 */	GuiDvdaNum1,	GuiDvdaNum2, 	GuiDvdaNum3,	GuiDvdaNum4,	GuiDvdaNum5, 	GuiDvdaNum6,	GuiDvdaNum7, 	GuiDvdaNum8,	GuiDvdaNum9,		GuiNullFunction,	GuiPower, 	GuiOpenClose,	GuiPlayPause,	GuiDvdaPause,	GuiPlayPause,	GuiNullFunction,	GuiStop,	GuiDvdaSetup, 	GuiDvdaAudioId, 	GuiDvdaSubtitleId,		/* 0x10 */	GuiDvdaAngleId,	GuiDvdaTitleMenu, 	GuiDvdaRootMenu, 	GuiDvdaPrevChapter, 	GuiDvdaNextChapter,	GuiDvdaScanForward, 	GuiDvdaScanBackward, 	GuiDvdaDisplay, 	GuiNullFunction,	GuiDvdaProgram,	GuiDvdaRepeat,	GuiDvdaRepeatAB, 	GuiDvdaBookmark, 	GuiDvdaReturn,	GuiDvdaUp, 	GuiDvdaDown, 	GuiDvdaLeft,			/* 0x20 */	GuiDvdaRight, 	GuiDvdaEnter,	GuiDvdaClear, 	GuiNullFunction,     	GuiDvdaZoom,	GuiDvda3D, 	GuiDvdaSlow,			/* 0x27 */	GuiNullFunction,	GuiNullFunction,	GuiNullFunction,	GuiNullFunction,	GuiNullFunction,	GuiNullFunction,	GuiNullFunction,	GuiNullFunction,	GuiNullFunction,	GuiNullFunction,	GuiNullFunction,	GuiNullFunction};/****************************************************************************** *  Function name : ChangeKeyToDvdaCommand *  Arguments     : mode : key mode *					data : key input data *  Return        : VOID *  By            : Taejin Kwon *  Description   : Send Power control to GUI queue *  Revisions     : ****************************************************************************** */VOID ChangeKeyToDvdaCommand( UCHAR data, UCHAR param ){	UCHAR par;		if( GuiDvdvHandleSpecialOsd(data) ) /* (yanglu, 051024) */		return;		if(IsMenuDomainKeyForbidden( data ))		return;		par = param;	if( data < RC_KEY_UNKNOWN )			(*GuiDvdaCmd[data])( par );}/****************************************************************************** *  Function name : GuiDvdaPrevChapter *  Arguments     :  *  Return        : VOID *  By            : Taejin Kwon *  Description   : go to previous ****************************************************************************** */VOID GuiDvdaPrevChapter( UCHAR param ){	UiCmdGeneral( UOP_DVDA_PREV_TRACK);   /*JSB, link track*/ }/****************************************************************************** *  Function name : GuiDvdaNextChapter *  Arguments     :  *  Return        : VOID *  By            : Taejin Kwon *  Description   : Go to next ****************************************************************************** */VOID GuiDvdaNextChapter( UCHAR param ){	UiCmdGeneral( UOP_DVDA_NEXT_TRACK);   /*JSB, link track*/}/****************************************************************************** *  Function name : GuiDvdaSlowForward *  Arguments     :  *  Return        : VOID *  By            : Taejin Kwon *  Description   :  ****************************************************************************** */VOID GuiDvdaSlowForward( UCHAR param ){	ScanCtrl_t	scan;	UCHAR	speed;	UCHAR	direction;	GetScanControlState( &scan );	speed = scan.speed;	direction = scan.direction;	switch( speed )	{		case PM_SPEED_X1_32:			speed = PM_SPEED_X1_16;			break;		case PM_SPEED_X1_16:			speed = PM_SPEED_X1_8;			break;					case PM_SPEED_X1_8:			speed = PM_SPEED_X1_4;			break;		case PM_SPEED_X1_4:			speed = PM_SPEED_X1_2;			break;		case PM_SPEED_X1_2:			speed = PM_SPEED_X1; /* return to first speed */			break;		default:			speed = PM_SPEED_X1_32;			break;	}	UiScanForward( UOP_DVDA_FORWARD_SCAN, speed );}/****************************************************************************** *  Function name : GuiDvdaSlowBackward *  Arguments     :  *  Return        : VOID *  By            : Taejin Kwon *  Description   :  ****************************************************************************** */VOID GuiDvdaSlowBackward( UCHAR param ){	ScanCtrl_t	scan;	UCHAR	speed;	UCHAR	direction;	GetScanControlState( &scan );	speed = scan.speed;	direction = scan.direction;	switch( speed )	{		case PM_SPEED_X1_8:			speed = PM_SPEED_X1_4;			break;		case PM_SPEED_X1_4:			speed = PM_SPEED_X1_2;			break;		case PM_SPEED_X1_2:			speed = PM_SPEED_X1; /* return to first speed */			break;		default:			speed = PM_SPEED_X1_8;			break;	}	UiScanForward( UOP_DVDA_BACKWARD_SCAN, speed );}/****************************************************************************** *  Function name : GuiDvdaScanForward *  Arguments     :  *  Return        : VOID *  By            : Taejin Kwon *  Description   :  ****************************************************************************** */VOID GuiDvdaScanForward( UCHAR param ){	GuiDvdvScan(RC_KEY_FF, param);#if 0	ScanCtrl_t		scan;	UCHAR			speed;	UCHAR			direction;	UCHAR			par;	SetMainState_t 	main;	par = param;	/* Check previous main state */	/* In slow motion, use another routine by their direction.*/	main = GetMainState();	if( main == MAIN_SF )	{		GuiDvdaSlowForward( par );		return;	}	else if( main == MAIN_SR )	{		UiScanForward( UOP_DVDA_FORWARD_SCAN, PM_SPEED_X1_8 );		return;	}	/* Set new fast forward scan speed */	SysPrintf("\nDVDA Fast Forward Scan key.");	GetScanControlState( &scan );	speed = scan.speed;	direction = scan.direction;	if( scan.direction == PM_DIR_BACKWARD)	{		speed = PM_SPEED_X1;		direction = PM_DIR_FORWARD;	} else {		switch( speed )		{			case PM_SPEED_X1:				speed = PM_SPEED_X2;				break;			case PM_SPEED_X2:				speed = PM_SPEED_X4;				break;			case PM_SPEED_X4:				speed = PM_SPEED_X8;				break;			case PM_SPEED_X8:				speed = PM_SPEED_X16;				break;			case PM_SPEED_X16:				speed = PM_SPEED_X32;				break;			case PM_SPEED_X32:				speed = PM_SPEED_X128;				break;			case PM_SPEED_X128:				/* This is maximum speed, so don't use this key */				SysPrintf("\nCannot speed up");				return;			default:				speed = PM_SPEED_X1;				break;		}	}	SysPrintf("\nGuiDvdaScanForward new speed is %d", speed);	UiScanForward( UOP_DVDA_FORWARD_SCAN, speed );#endif}/****************************************************************************** *  Function name : GuiDvdaScanBackward *  Arguments     :  *  Return        : VOID *  By            : Taejin Kwon *  Description   :  ****************************************************************************** */VOID GuiDvdaScanBackward( UCHAR param ){	GuiDvdvScan(RC_KEY_FR, param);#if 0	ScanCtrl_t		scan;	UCHAR			speed;	UCHAR			direction;	UCHAR			par;	SetMainState_t 	main;	par = param;	/* Check previous main state */	/* In slow motion, use another routine by their direction.*/	main = GetMainState();	if( main == MAIN_SF )	{		UiScanForward( UOP_DVDA_BACKWARD_SCAN, PM_SPEED_X1_8 );		return;	}	else if( main == MAIN_SR )	{		GuiDvdaSlowBackward( par );		return;	}	/* Set new fast backward scan speed */	SysPrintf("\nDVDA Fast Backward Scan key.");	GetScanControlState( &scan );	speed = scan.speed;	direction = scan.direction;	if( scan.direction == PM_DIR_FORWARD )	{		speed = PM_SPEED_X1;		direction = PM_DIR_BACKWARD;	} else {		switch( speed )		{			case PM_SPEED_X1:				speed = PM_SPEED_X2;				break;			case PM_SPEED_X2:				speed = PM_SPEED_X4;				break;			case PM_SPEED_X4:				speed = PM_SPEED_X8;				break;			case PM_SPEED_X8:				speed = PM_SPEED_X16;				break;			case PM_SPEED_X16:				speed = PM_SPEED_X32;				break;			case PM_SPEED_X32:				speed = PM_SPEED_X128;				break;			case PM_SPEED_X128:				/* This is maximum speed, so don't use this key */				SysPrintf("\nCannot speed up");				return;			default:				speed = PM_SPEED_X1;				break;		}	}	SysPrintf("\nGuiDvdaScanBackward new speed is %d", speed);	UiScanBackward( UOP_DVDA_BACKWARD_SCAN, speed );#endif}/****************************************************************************** *  Function name : GuiDvdaSlow *  Arguments     :  *  Return        : VOID *  By            : Taejin Kwon *  Description   :  ****************************************************************************** */VOID GuiDvdaSlow( UCHAR param ){	SetMainState_t main;	ScanCtrl_t	scan;	UCHAR	direction;		/* Check previous main state */	main = GetMainState();	if( main != MAIN_PLAY ) /* Slow can start when normal play */		return;	SysPrintf("\nSlow motion key.");	GetScanControlState( &scan );	direction = scan.direction;	UiScanForward( UOP_DVDA_FORWARD_SCAN, PM_SPEED_X1_8 );}/****************************************************************************** *  Function name : GuiDvdaTitleMenu *  Arguments     :  *  Return        : VOID *  By            : Taejin Kwon *  Description   :  *  Revisions     : ****************************************************************************** */VOID GuiDvdaTitleMenu( UCHAR param ){	Uop_t	tx;	SysPrintf("\nDVDA Title Menu key.");	tx.uop_id = UOP_DVDA_MENU;	tx.param.dvdv_menu.menu_id = PARAM_MENU_ID_TITLE;	SysSendMsg( &gQ_gui, &tx, sizeof(Uop_t), SYS_NO_WAIT, 0 );}/****************************************************************************** *  Function name : GuiDvdaRootMenu *  Arguments     :  *  Return        : VOID *  By            : Taejin Kwon *  Description   :  *  Revisions     : ****************************************************************************** */VOID GuiDvdaRootMenu( UCHAR param ){	Uop_t	tx;	SysPrintf("\nDVDA Root Menu key.");	tx.uop_id = UOP_DVDA_MENU;	tx.param.dvdv_menu.menu_id = PARAM_MENU_ID_ROOT;	SysSendMsg( &gQ_gui, &tx, sizeof(Uop_t), SYS_NO_WAIT, 0 );}/****************************************************************************** *  Function name : GuiDvdaSetup *  Arguments     :  *  Return        : VOID *  By            : Taejin Kwon *  Description   :  *  Revisions     : ****************************************************************************** */VOID GuiDvdaSetup( UCHAR param ){	SetMainState_t main;		main = GetMainState();	if( main != MAIN_STOP ) /* Setup can use in stop mode. */	{		SysPrintf("[KEY CHANGE DVDA] Available in STOP mode");		return;	}	GuiSetUp();}/****************************************************************************** *  Function name : GuiDvdaEnter *  Arguments     :  *  Return        : VOID *  By            : Taejin Kwon *  Description   :  *  Revisions     : ****************************************************************************** */VOID GuiDvdaEnter( UCHAR param ){	TempKeeper_t data;	GetTempValueState( &data );	UiCmdGeneral( UOP_DVDA_BTN_ACTIVATE );}/****************************************************************************** *  Function name : GuiDvdaPause *  Arguments     :  *  Return        : VOID *  By            : Shanbin Jiang *  Description   :  *  Revisions     : ****************************************************************************** */VOID GuiDvdaPause( UCHAR param ){#if _APP_CAP_KEY_SEPERATE_PLAY	UiCmdGeneral( UOP_PAUSE);	#else	UiCmdGeneral( UOP_PLAYPAUSE );#endif}/****************************************************************************** *  Function name : GuiDvdaUp *  Arguments     :  *  Return        : VOID *  By            : Taejin Kwon *  Description   :  *  Revisions     : ****************************************************************************** */VOID GuiDvdaUp( UCHAR param ){	OSD_State_st *osd_state;	osd_state = OSD_GetState();	switch( osd_state->etCur_dsp )	{		case DISPLAY_SUBTITLE:			break;		default:			UiCmdGeneral( UOP_DVDA_BTN_UP );			break;	}}/****************************************************************************** *  Function name : GuiDvdaDown *  Arguments     :  *  Return        : VOID *  By            : Taejin Kwon *  Description   :  *  Revisions     : ****************************************************************************** */VOID GuiDvdaDown( UCHAR param ){	OSD_State_st *osd_state;	osd_state = OSD_GetState();	switch( osd_state->etCur_dsp )	{		case DISPLAY_SUBTITLE:			break;		default:			UiCmdGeneral( UOP_DVDA_BTN_DOWN );			break;	}}/****************************************************************************** *  Function name : GuiDvdaLeft *  Arguments     : 

⌨️ 快捷键说明

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