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

📄 startosd.c

📁 神龙卡开发原代码
💻 C
字号:
 /* * C Source file for the main code * Copyright (c) Sigma Designs 2002-2003.  All Rights Reserved. */#include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <sys/wait.h>#include "OsdWindow.h"#include "startosd.h"void endapp(OSD_WINDOW *wPtr,DATA_POINTER d);void endapp(OSD_WINDOW *wPtr,DATA_POINTER d){	OsdEndApp();}void OsdKbHandler(OSD_WINDOW *wPtr, DATA_POINTER ptr){    GR_EVENT *event;	unsigned int rk;	char buf[3];		    event = wPtr->lastevent;		rk = event->keystroke.ch;	if (rk == SHOW_PLAY_INFO_UPDATE) return;		// Display Message and allow OSD, Volume to come through	switch (rk) {	case SHOW_ABORT_MSG:	case SHOW_INVALID_REGION_MSG:	case SHOW_BOOK_MARK_MSG:	case SHOW_CANNOT_PLAYBACK_FROM_CURRENT_POSITION_MSG:	case SHOW_PARENTAL_LEVEL_MSG:	case SHOW_CANNOT_PLAYBACK_AT_CURRENT_RESOLUTION_MSG:		MapMsgHandler(wPtr, (DATA_POINTER)rk);		return;	case SHOW_CLEAR_MSG:		ClearMsg(wPtr);		return;	}		// Display Volume will ClearOSD but not CancelOsd.	ClearOsd(wPtr);		// Handle volume stuff first	if (rk == SHOW_VOLUP_KEYDOWN || rk == SHOW_VOLDOWN_KEYDOWN) {		DrawVolBar(wPtr);		return;	}			// Display OSD or digits will ClearOsd, CancelVolume		CancelVolume(wPtr);					// Handle digits for VCD here	if (rk >= SHOW_ZERO_KEYDOWN && rk <= SHOW_NINE_KEYDOWN) {		char digit;				digit = 0x30 + rk - SHOW_ZERO_KEYDOWN;				switch (digitCnt) {		case 1:			digitStr[1] = digitStr[2];			break;		case 2:			digitStr[0] = digitStr[1];			digitStr[1] = digitStr[2];			break;		}		digitStr[2] = digit;		digitCnt++;		//Display digit string		GrFillRect(wPtr->wid,wPtr->gc_pal6,445,40,90,50);		GrSetGCFont(wPtr->gc, OSD_DEFAULT_FONT_36);		GrText(wPtr->wid,wPtr->gc,465,75,digitStr,-1,GR_TFASCII);		//GrText(wPtr->wid,wPtr->gc,440,35,digitStr,-1,GR_TFASCII);		GrSetGCFont(wPtr->gc, OSD_DEFAULT_FONT_NO);		return;	}	else {		if (digitCnt) {				digitCnt = 0;			digitStr[0] = '-';		digitStr[1] = '-';			digitStr[2] = '-';		digitStr[3] = '\0';		}		}		if (rk == SHOW_CLEAR_DIGIT) {		GrFillRect(wPtr->wid,wPtr->gc_pal0,445,40,90,50);		//GrFillRect(wPtr->wid,wPtr->gc_pal0,340,40,300,54);		RedrawOsd(wPtr);		return;	}		// Handle mute stuff here	if (rk == SHOW_MUTE_KEYDOWN) {		DrawStickyOsd(wPtr, "img/mute.png"); 		return;	}		if (rk == SHOW_MUTE_OFF) {		CancelStickyOsd(wPtr); 		return;	}	switch (rk) {	case SHOW_LOADING: DrawOsd(wPtr,"img/wait.png",OSD_NO_TIMEOUT); return;	case SHOW_NOT_LOADING: 	CancelNonStickyOsd(wPtr); return;			case SHOW_OPEN_KEYDOWN:		GrClearWindow(wPtr->wid, GR_FALSE);		CancelNonStickyOsd(wPtr);	    DrawOsd(wPtr,"img/open.png",OSD_RES_TIMEOUT);		return;		case SHOW_POWER_KEYDOWN:		CancelNonStickyOsd(wPtr);			GrClearWindow(wPtr->wid, GR_FALSE);	    //DrawOsd(wPtr,"img/power.png",OSD_RES_TIMEOUT);		//	printf("Powered off...\n");		return;			case SHOW_CLOSE_KEYDOWN:		DrawOsd(wPtr,"img/close.png",OSD_RES_TIMEOUT);		return;			case SHOW_LIB_KEYDOWN:		ShowJpeg("img/lib/libbackground.jpg");			MapLibHandler(wPtr, (DATA_POINTER)GR_TRUE);		return;	case SHOW_SETUP_KEYDOWN:		//DrawOsd(wPtr,"img/wait.png",OSD_NO_TIMEOUT);		ShowJpeg("img/setupbackground.jpg");		MapSetupHandler(wPtr, (DATA_POINTER)GR_TRUE);		return;			case SHOW_VCD_SEARCH_KEYDOWN:		MapSearchHandler(wPtr, (DATA_POINTER)VCD_SEARCH);		return;	case SHOW_DVD_SEARCH_KEYDOWN:		MapSearchHandler(wPtr, (DATA_POINTER)DVD_SEARCH);		return;		case SHOW_SPECIAL_MENU_KEYDOWN:		MapSpecialMenuHandler(wPtr, NULL);		return;			case SHOW_TIME_SEARCH_KEYDOWN:		MapSearchHandler(wPtr, (DATA_POINTER)TIME_SEARCH);		return;	case SHOW_PASSWORD_ENTRY_KEYDOWN:		MapPwdChkHandler(wPtr, NULL);		return;		//case SHOW_PROGRAM_KEYDOWN:	//	MapProgramPlaylistHandler(wPtr, NULL);	//	return;		case SHOW_DVD_INFO_KEYDOWN:	case SHOW_VCD_INFO_KEYDOWN:	case SHOW_AUDIO_CD_INFO_KEYDOWN:		MapShowInfoHandler(wPtr, (DATA_POINTER)rk);		return;			default:		if (rk >= SHOW_FIRST_TIMEOUT_OSD && rk <= SHOW_LAST_TIMEOUT_OSD) {			int timeout;						if (rk & 0x4000)				timeout = OSD_RES_TIMEOUT;			else if (rk & 0x8000)				timeout = OSD_TIMEOUT;			else				timeout = OSD_NO_TIMEOUT;						if (rk == SHOW_PLAY_KEYDOWN || rk == SHOW_STOP_KEYDOWN) {								//Cancel no-time-out osd				CancelNonStickyOsd(wPtr);			}						DrawOsd(wPtr,osdTOImg[rk & 0xFF],timeout);			return;		}		else if (rk >= SHOW_FIRST_NOTIMEOUT_OSD && rk <= SHOW_LAST_NOTIMEOUT_OSD) {			DrawOsd(wPtr,osdNoTOImg[rk & 0xFF],OSD_NO_TIMEOUT);			return;		}		else if (rk >= SHOW_SUBTITLE1_KEYDOWN && rk <= SHOW_SUBTITLEOFF_KEYDOWN) {			if (rk == SHOW_SUBTITLEOFF_KEYDOWN)				DrawOsd(wPtr,"img/subtitleoff.png",OSD_TIMEOUT);			else {							DrawOsd(wPtr,"img/subtitle.png",OSD_TIMEOUT);								GrSetGCFont(wPtr->gc_pal244, OSD_DEFAULT_FONT_36);				itoa(rk-SHOW_SUBTITLE1_KEYDOWN+1,buf,2);				GrText(wPtr->wid,wPtr->gc_pal244,550,78,buf,2,GR_TFASCII);				GrSetGCFont(wPtr->gc_pal244, OSD_DEFAULT_FONT_NO);			}		}				else if (rk >= SHOW_ANGLE1_KEYDOWN && rk <= SHOW_ANGLE9_KEYDOWN) {			GrSetGCFont(wPtr->gc_pal244, OSD_DEFAULT_FONT_36);			itoa(rk-SHOW_ANGLE1_KEYDOWN+1,buf,2);			DrawOsd(wPtr,"img/angle.png",OSD_TIMEOUT);			GrText(wPtr->wid,wPtr->gc_pal244,500,78,buf,2,GR_TFASCII);			GrSetGCFont(wPtr->gc_pal244, OSD_DEFAULT_FONT_NO);		}				else if (rk >= SHOW_AUDIO1_KEYDOWN && rk <= SHOW_AUDIO8_KEYDOWN) {			GrSetGCFont(wPtr->gc_pal244, OSD_DEFAULT_FONT_36);			itoa(rk-SHOW_AUDIO1_KEYDOWN+1,buf,2);			DrawOsd(wPtr,"img/audio.png",OSD_TIMEOUT);			GrText(wPtr->wid,wPtr->gc_pal244,500,78,buf,2,GR_TFASCII);			GrSetGCFont(wPtr->gc_pal244, OSD_DEFAULT_FONT_NO);		}		else if (rk >= SHOW_ZOOM1_KEYDOWN && rk <= SHOW_ZOOMOFF_KEYDOWN) {			if (rk == SHOW_ZOOMOFF_KEYDOWN)				DrawOsd(wPtr,"img/zoomoff.png",OSD_TIMEOUT);			else {				GrSetGCFont(wPtr->gc_pal244, OSD_DEFAULT_FONT_36);				itoa(rk-SHOW_ZOOM1_KEYDOWN+1,buf,2);				DrawOsd(wPtr,"img/zoom.png",OSD_TIMEOUT);				GrText(wPtr->wid,wPtr->gc_pal244,500,78,buf,2,GR_TFASCII);				GrSetGCFont(wPtr->gc_pal244, OSD_DEFAULT_FONT_NO);			}				}			}	}void MapMainWindow(OSD_WINDOW *wPtr, DATA_POINTER ptr){		wPtr->KbdHandler=OsdKbHandler;		if (ptr)		GrClearWindow(main_window->wid, GR_FALSE);	return;}int initgui (int argc,char **argv){	main_window = OsdAppInitialize();	MapMainWindow(main_window, 0);	return 0;}

⌨️ 快捷键说明

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