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

📄 fipuser.c

📁 sm86xx rootfs来源包括补丁( GPL )的
💻 C
字号:
/*  * Sample FIP user level program  */#include <stdio.h>#include <fcntl.h>#include <stdlib.h>#include <unistd.h>#include <signal.h>#include <sys/ioctl.h>#include "fiplib.h"/* Signal handler */static void terminate(int sig_no){	printf("Got signal %d, exiting ...\n", sig_no);	fipRelease();	exit(1); }static void install_sig_handler(void){	signal(SIGBUS, terminate);	signal(SIGFPE, terminate);	signal(SIGHUP, terminate);	signal(SIGILL, terminate);	signal(SIGINT, terminate);	signal(SIGIOT, terminate);	signal(SIGPIPE, terminate);	signal(SIGQUIT, terminate);	signal(SIGSEGV, terminate);	signal(SIGSYS, terminate);	signal(SIGTERM, terminate);	signal(SIGTRAP, terminate);	signal(SIGUSR1, terminate);	signal(SIGUSR2, terminate);}#define ITER_KEYS	10int main(int argc, char *argv[]){	int i, h, m, s;	char tt[2];	unsigned long key_status;	char *text = NULL;	if ((argc != 1) && (argc != 2)) {		printf("usage: %s [display_text]\n", argv[0]);		return(-1);	} else if (argc == 2)		text = argv[1];	if (fipInit(0 /* Non-block */, NULL /* Default device name */) != 0) {		printf("Cannot open fip device.\n");		return(-1);	}	if (text != NULL) {		fipWriteText(text);		goto done;	}			install_sig_handler();	/* Read the key input */	i = 0;	printf("Please press any button from Front Panel (%d/%d): ", 			i + 1, ITER_KEYS);	fflush(stdout);	while (1) {		if ((key_status = fipGetKey()) != 0) {			switch(key_status) {				case FIP_KEY_EJECT:					printf("EJECT pressed\n");					break;				case FIP_KEY_PREV:					printf("PREV pressed\n");					break;				case FIP_KEY_NEXT:					printf("NEXT pressed\n");					break;				case FIP_KEY_FBWD:					printf("FAST BACKWARD pressed\n");					break;				case FIP_KEY_FFWD:					printf("FAST FORWARD pressed\n");					break;				case FIP_KEY_PLAYPAUSE:					printf("PLAY/PAUSE pressed\n");					break;				default:					printf("Unknown key 0x%08lx\n", key_status);					break;			}			i++;			if (i >= ITER_KEYS)				break;			printf("Please press any button from Front Panel (%d/%d): ", 				i + 1, ITER_KEYS);			fflush(stdout);		}	} #ifdef CONFIG_EM86XX_FIP_REF1	for (i = DVD_FIP_ON; i <= NTSC_FIP_ON; i++) {		fipShowSymbol(i, 1);		usleep(200000);	}	for (i = DVD_FIP_ON; i <= NTSC_FIP_ON; i++) {		fipShowSymbol(i, 0);		usleep(100000);	}	for (i = DVD_FIP_ON; i <= NTSC_FIP_ON; i++) {		fipShowSymbol(i, 1);	}#endif		tt[1] = '\0';	for (i = 'a'; i <= 'z'; i++) {		tt[0] = i;		fipWriteText(tt);		usleep(500000);	}	for (i = 'A'; i <= 'Z'; i++) {		tt[0] = i;		fipWriteText(tt);		usleep(500000);	}	for (i = 0; i < 7200; i++) {		h = i / 3600;		m = (i - h * 3600) / 60;		s = i - h * 3600 - m * 60;		fipShowHMS(h, m, s);		usleep(10000);	}done:	fipRelease();	return(0);}

⌨️ 快捷键说明

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