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

📄 guinavigation.cpp.svn-base

📁 sigmadesign smp8623 gui source code ,bingo
💻 SVN-BASE
📖 第 1 页 / 共 5 页
字号:
	stream_t* fd;	RMint32 i;	fd = open_stream_gfx(m_tvList.path, NULL, &i);	if (!fd)		return RM_ERROR;	stream_reset(fd);	stream_seek(fd, 0);	RMuint16 sub_num = 0, n_max = 10;	RMTVListItem* first = (RMTVListItem*) MALLOC(n_max*sizeof(RMTVListItem));	if (!first)	{		return RM_ERROR;	}	while (1)	{		if (sub_num >= n_max)		{			RMTVListItem* _t;			//      	RMuint32 _g = n_max;			//      	RMuint32 g, h;			n_max += 32;			_t = (RMTVListItem*) MALLOC(n_max*sizeof(RMTVListItem));			//           printf("sub num: %d", (RMuint16) sub_num);			RMMemcpy(_t, first, (sub_num) * sizeof(RMTVListItem));			//          for(g = 0; g < (RMuint32)(sub_num - 1); g++)			//         	for(h = 0; h < first[g].lines; h ++)			//        		RFREE(first[g].text[h]);			RFREE(first);			first = _t;			_t = NULL;			// //           first=realloc(first,n_max*sizeof(subtitle));		}		RMTVListItem* sub = &first[sub_num];		RMMemset(sub, '\0', sizeof(RMTVListItem));		//		sub = NULL;		//sub=srp->read(fd,sub);		sub = read_line(fd, sub);		if (!sub)			break; // EOF		sub->number = sub_num + 1;		++sub_num; // Error vs. Valid	}	free_stream(fd);	m_tvList.current = 0;	m_tvList.items = first;	m_tvList.nbItems = sub_num;	m_tvList.firstvisible = m_tvList.nbItems - 1;	m_tvList.rotate = TRUE;	m_tvList.previous = 0;	m_tvList.numItemsPerPage = 9;	m_tvList.lastvisible = m_tvList.numItemsPerPage >= m_tvList.nbItems ? m_tvList.nbItems - 1 : m_tvList.numItemsPerPage - 1;	return RM_OK;}RMstatus RMcuracaoGuiNavigation::GetScreenFormat(guiScreenFormatType *screenFormat){	RMMemcpy(screenFormat, &m_screenFormat, sizeof(guiScreenFormatType));	return RM_OK;}RMstatus RMcuracaoGuiNavigation::InitDisplay(){	RMstatus status;	status = CreateOSDSurface(&m_pOSDSource, &m_OSDProfileAddr, 0); // 0 = osd scaler	if (RMFAILED(status))	{		RMDBGLOG((ENABLE, "Unable to create OSD surface\n"));		return status;	}	RMASSERT(m_pOSDSource && m_OSDProfileAddr);	status = gfxInit(m_pRua);	if (RMFAILED(status))	{		return status;	}	m_gfxInitialized = TRUE;	status = gfxSetOSDParams(m_pRua, m_OSDProfileAddr, m_screenFormat.width, m_screenFormat.height);	if (RMFAILED(status))	{		gfxUnInit(m_pRua);		m_gfxInitialized = FALSE;		return status;	}#ifdef GUI_REFID_2	gfxSetCodePageConvertion(TRUE); // needed by UTF-8 font#endif	m_initialized = TRUE;	return RM_OK;}RMstatus RMcuracaoGuiNavigation::CreateOSDSurface(struct DCCVideoSource **pOSDSource, RMuint32 *pOSDProfileAddr, RMuint32 scalerindex){	RMstatus status;	struct DCCOSDProfile osd_profile;	RMuint32 LumaSize, ChromaAddr, ChromaSize;	RMuint32 surfaceID;	struct DCC *pDCC = m_gui->gui->GetDCCHandle();	// init osd	osd_profile.SamplingMode = EMhwlibSamplingMode_444;	osd_profile.ColorMode = EMhwlibColorMode_TrueColor;	osd_profile.ColorFormat = EMhwlibColorFormat_32BPP;	osd_profile.Width = m_screenFormat.width;	osd_profile.Height = m_screenFormat.height;	osd_profile.ColorSpace = EMhwlibColorSpace_RGB_0_255;	osd_profile.PixelAspectRatio.X = 4;	osd_profile.PixelAspectRatio.Y = 3;	status = DCCOpenOSDVideoSource(pDCC, &osd_profile, &(*pOSDSource));	if (RMFAILED(status))	{		RMDBGLOG((ENABLE, "Cannot open the OSD surface source %d\n", status));		return status;	}	status = DCCClearOSDVideoSource(*pOSDSource);	if (RMFAILED(status))	{		RMDBGLOG((ENABLE, "Cannot clear osd surface %d\n", status));		return status;	}	status = DCCGetScalerModuleID(pDCC, DCCRoute_Main, DCCSurface_OSD, scalerindex, &surfaceID);	if (RMFAILED(status))	{		RMDBGLOG((ENABLE, "Cannot get surface to display video source %d\n", status));		return status;	}	status = DCCSetSurfaceSource(pDCC, surfaceID, *pOSDSource);	if (RMFAILED(status))	{		RMDBGLOG((ENABLE, "Cannot set the surface source %d\n", status));		return status;	}	status = DCCGetOSDVideoSourceInfo(*pOSDSource, pOSDProfileAddr, &LumaSize, &ChromaAddr, &ChromaSize);	if (RMFAILED(status))	{		RMDBGLOG((ENABLE, "Cannot get osd video source info %d\n", status));		return status;	}	if (pOSDProfileAddr == 0)	{		RMDBGLOG((ENABLE, "No OSD profile address!!\n"));		return RM_ERROR;	}	return RM_OK;}RMstatus RMcuracaoGuiNavigation::ReleaseDisplay(){	if (m_pOSDSource != NULL)	{		ClearDisplay();		if (RMFAILED(DCCCloseVideoSource(m_pOSDSource)))			RMDBGLOG((ENABLE, "Faild to close OSD!!\n"));		m_OSDProfileAddr = 0;		m_pOSDSource = NULL;	}	if (m_gfxInitialized)	{		gfxUnInit(m_pRua);		m_gfxInitialized = FALSE;	}	m_initialized = FALSE;	return RM_OK;}RMstatus RMcuracaoGuiNavigation::SetPredefinedIds(){	RMstatus status = RM_ERROR;	// get predefined pages	for (RMuint32 i = 0; i < m_nbOsdPages; i++)	{		if (RMCompareAsciiCaseInsensitively(m_playerParams.mainPage, m_osdPages[i]->name))		{			m_mainPageId = i;			status = RM_OK;			continue;		}		if (RMCompareAsciiCaseInsensitively(MEDIA_LIBRARY_PAGE_NAME, m_osdPages[i]->name))		{			m_medialibraryPageId = i;			continue;		}		if (RMCompareAsciiCaseInsensitively(SETUP_PAGE_NAME, m_osdPages[i]->name))		{			m_setupPageId = i;			continue;		}		if (RMCompareAsciiCaseInsensitively(SCREEN_SAVER_PAGE, m_osdPages[i]->name))		{			m_screenSaverPageId = i;			continue;		}#ifdef GUI_REFID_2		if(RMCompareAsciiCaseInsensitively(QUICK_SETUP_PAGE, m_osdPages[i]->name))		{			m_quickSetupPageId = i;			continue;		}		if(RMCompareAsciiCaseInsensitively(KEYBOARD_SETUP_PAGE, m_osdPages[i]->name))		{			m_keyboardPageId = i;			continue;		}#endif#ifdef GUI_REFID_3		if(RMCompareAsciiCaseInsensitively(ENROL_GROUP_PAGE, m_osdPages[i]->name))		{			m_gui->gui->m_enrolGroupPageId = i;			continue;		}		if(RMCompareAsciiCaseInsensitively(DISC_ENROL_PAGE, m_osdPages[i]->name))		{			m_gui->gui->m_discEnrolPageId = i;			continue;		}#endif	}	// get predefined popups	m_messagePopupId = 0;	if (m_playerParams.messagePopup != (RMascii*) NULL)	{		for (RMuint32 i = 0; i < m_nbPopups; i++)		{			if (RMCompareAsciiCaseInsensitively(m_playerParams.messagePopup, m_Popups[i]->name))			{				m_messagePopupId = m_Popups[i]->id;				break;			}		}	}	else	{#ifdef WITH_WMVHD_SUPPORT		for (RMuint32 i = 0; i < m_nbPopups; i++)		{			if (RMCompareAsciiCaseInsensitively(MESSAGEBOX_POPUP_NAME, m_Popups[i]->name))			{				m_messagePopupId = m_Popups[i]->id;				break;			}		}#endif	}	return status;}#ifndef GUI_REFID_2RMstatus RMcuracaoGuiNavigation::ShowOsd(RMbool bShow){	// disable SPU if bringing OSD up	m_gui->gui->EnableSPU(bShow == FALSE);	if (bShow && !m_osdOn)	{		m_osdOn = TRUE;	}	else if (!bShow && m_osdOn)	{		ClearDisplay();		m_osdOn = FALSE;	}	return RM_OK;}#elseRMstatus RMcuracaoGuiNavigation::ShowOsd(RMbool bShow){	fprintf(stderr, "------------------------------SHOW OSD show: %d, current osd state: %d, PlayerMode: %ld ------------------------\n",			bShow, m_osdOn, m_gui->gui->GetPlayerMode() );	//if(m_gui->gui->GetPlayerMode() == 0)	//	m_gui->gui->SetPlayerMode(1);	if(!m_initialized)	{		fprintf(stderr, "GUI not initialised !!\n");		return RM_ERROR;	}	// disable SPU if bringing OSD up	m_gui->gui->EnableSPU(bShow == FALSE);	if ( bShow && !m_osdOn )	{		fprintf(stderr, "bshow and !m_osdOn\n");		m_osdOn = TRUE;	}	else if ( !bShow && m_osdOn )	{		ClearDisplay();		//FadeOsd(16, bShow);		fprintf(stderr, "!bshow and m_osdOn\n");		m_osdOn = FALSE;	}	return RM_OK;}#endifRMstatus RMcuracaoGuiNavigation::MakeVideoOutCommandList(){	if (m_setupPageId == 0)		return RM_ERROR;	RMuint8 count = 0;	RMstatus status;	for (RMuint8 i = 0; i < m_osdPages[m_setupPageId]->nbMenus; i++)	{		if (RMCompareAsciiCaseInsensitively(m_osdPages[m_setupPageId]->menus[i]->name, NTSC_VIDEO_SETTINGS_MENU_NAME))		{			// go through menu item lists			//[RC] HACK ignore first index which is Active Menu			for (RMuint8 j = 1; j < m_osdPages[m_setupPageId]->menus[i]->nbItems; j++)			{				// go thru button list				for (RMuint8 k = 0; k < m_osdPages[m_setupPageId]->menus[i]->items[j]->nbButtons; k++)				{					for (RMuint8 m = 0; m < m_osdPages[m_setupPageId]->menus[i]->items[j]->buttons[k]->nbEvents; m++)					{						// get command value						if (RMCompareAsciiCaseInsensitively(								m_osdPages[m_setupPageId]->menus[i]->items[j]->buttons[k]->events[m]->name, ACTIVATE_EVENT))						{							// copy cmd id							status = GetCommandByName(m_osdPages[m_setupPageId]->menus[i]->items[j]->buttons[k]->events[m]->command,									&m_NTSCvideoOutCommandList.cmd[count]);							if (RMSUCCEEDED(status))							{								// copy cmd text								RMCopyAscii(m_NTSCvideoOutCommandList.cmdtxt[count],										m_osdPages[m_setupPageId]->menus[i]->items[j]->buttons[k]->object.text);								RMDBGLOG((GUIDBG, "VIDEO OUT: %s\n", m_NTSCvideoOutCommandList.cmdtxt[count]));								//printf("VIDEO OUT: %s\n", m_NTSCvideoOutCommandList->cmdtxt[count]);								m_NTSCvideoOutCommandList.count = ++count;							}							break;						}					}				}			}		}	}	count = 0;	for (RMuint8 i = 0; i < m_osdPages[m_setupPageId]->nbMenus; i++)	{		if (RMCompareAsciiCaseInsensitively(m_osdPages[m_setupPageId]->menus[i]->name, PAL_VIDEO_SETTINGS_MENU_NAME))		{			// go through menu item lists			//[RC] HACK ignore first index which is Active Menu			for (RMuint8 j = 1; j < m_osdPages[m_setupPageId]->menus[i]->nbItems; j++)			{				// go thru button list				for (RMuint8 k = 0; k < m_osdPages[m_setupPageId]->menus[i]->items[j]->nbButtons; k++)				{					for (RMuint8 m = 0; m < m_osdPages[m_setupPageId]->menus[i]->items[j]->buttons[k]->nbEvents; m++)					{						// get command value						if (RMCompareAsciiCaseInsensitively(								m_osdPages[m_setupPageId]->menus[i]->items[j]->buttons[k]->events[m]->name, ACTIVATE_EVENT))						{							// copy cmd id							status = GetCommandByName(m_osdPages[m_setupPageId]->menus[i]->items[j]->buttons[k]->events[m]->command,									&m_PALvideoOutCommandList.cmd[count]);							if (RMSUCCEEDED(status))							{								// copy cmd text								RMCopyAscii(m_PALvideoOutCommandList.cmdtxt[count],										m_osdPages[m_setupPageId]->menus[i]->items[j]->buttons[k]->object.text);								RMDBGLOG((GUIDBG, "VIDEO OUT: %s\n", m_PALvideoOutCommandList.cmdtxt[count]));								//printf("VIDEO OUT: %s\n", m_PALvideoOutCommandList.cmdtxt[count]);								m_PALvideoOutCommandList.count = ++count;							}							break;						}					}				}			}		}	}	return RM_OK;}RMstatus RMcuracaoGuiNavigation::GetVideoOutCommandList(typeVideoOutCommands *videoOutCmdList, RMuint32 tvStandard){

⌨️ 快捷键说明

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