📄 encdec.c
字号:
/* * interface.c * * ============================================================================ * Copyright (c) Texas Instruments Inc 2005 * * Use of this software is controlled by the terms and conditions found in the * license agreement under which this software has been supplied or provided. * ============================================================================ *//* Standard Linux headers */#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <sys/ioctl.h>#include <sys/mman.h>#include <fcntl.h>#include <errno.h>/* Davinci EVM utility libraries */#include <msp430lib.h>#include <simplewidget.h>/* Application header file */#include "interface.h"/* The font size */#define PTSIZE 20/* The 0-7 transparency value to use for the OSD */#define OSD_TRANSPARENCY 0x66/* The demo diagrams to show on the video window */#define DEMO_DIAGRAM_NTSC "data/pics/encodedecode_ntsc.uyvy"#define DEMO_DIAGRAM_PAL "data/pics/encodedecode_pal.uyvy"#define NAV_BUTTON_X 290#define NAV_BUTTON_Y 310#define WRONG_BUTTON_X 325#define WRONG_BUTTON_Y 205/* The strings to draw on the screen */#define DEMONAMESTRING "Encode + Decode"#define H264CODECSTRING "H.264 BP Video"#define NTSCDISPLAYSTRING "NTSC display"#define PALDISPLAYSTRING "PAL display"#define CIFNTSCRESOLUTIONSTRING "CIF (352x240)"#define CIFPALRESOLUTIONSTRING "CIF (352x288)"#define ZOOMNTSCRESOLUTIONSTRING "ZOOM (720x480)"#define ZOOMPALRESOLUTIONSTRING "ZOOM (720x576)"#define SELECTOR_X 420#define SELECTOR_Y YSCALE(85)#define SELECTOR_W 250#define SELECTOR_H YSCALE(30)#define SELECTOR_R 0xff#define SELECTOR_G 0#define SELECTOR_B 0enum InitLevels { CREATEDINTERFACE = 1, MSP430LIBINITIALIZED,};typedef struct Button { simplewidget_png *pressedImgPtr; simplewidget_png *origImgPtr; int x; int y;} Button; /* OSD widgets */static simplewidget_screen simpleScreen = NULL;static simplewidget_png infoImg = NULL;static simplewidget_png navImg = NULL;static simplewidget_png navLeftImg = NULL;static simplewidget_png navRightImg = NULL;static simplewidget_png navUpImg = NULL;static simplewidget_png navDownImg = NULL;static simplewidget_png navOkImg = NULL;static simplewidget_png ctrlImg = NULL;static simplewidget_png ctrlPlayImg = NULL;static simplewidget_png ctrlPauseImg = NULL;static simplewidget_png ctrlStopImg = NULL;static simplewidget_png ctrlRecImg = NULL;static simplewidget_png wrongImg = NULL;static simplewidget_png noWrongImg = NULL;static simplewidget_text demoNameText = NULL;static simplewidget_text videoCodecText = NULL;static simplewidget_text zoomResolutionText = NULL;static simplewidget_text cifResolutionText = NULL;static simplewidget_text displayText = NULL;static int osdTransparency = OSD_TRANSPARENCY;static int osdVisible = 1;enum Buttons { CTRLPLAY, CTRLPAUSE, CTRLREC, CTRLSTOP, NAVPLUS, NAVMINUS, WRONG};static Button buttons[7] = { { &ctrlPlayImg, &ctrlImg, CTRL_BUTTON_X, CTRL_BUTTON_Y }, { &ctrlPauseImg, &ctrlImg, CTRL_BUTTON_X, CTRL_BUTTON_Y }, { &ctrlStopImg, &ctrlImg, CTRL_BUTTON_X, CTRL_BUTTON_Y }, { &ctrlRecImg, &ctrlImg, CTRL_BUTTON_X, CTRL_BUTTON_Y }, { &navRightImg, &navImg, NAV_BUTTON_X, NAV_BUTTON_Y }, { &navLeftImg, &navImg, NAV_BUTTON_X, NAV_BUTTON_Y }, { &wrongImg, &noWrongImg, WRONG_BUTTON_X, WRONG_BUTTON_Y }};static int resolution;/****************************************************************************** * uiPressButton ******************************************************************************/static int uiPressButton(enum Buttons btnIdx){ Button *btnPtr = &buttons[btnIdx]; if (simplewidget_png_show(*btnPtr->pressedImgPtr, simpleScreen, btnPtr->x, YSCALE(btnPtr->y)) == -1) { ERR("Failed to show pressed button png image\n"); return FAILURE; } usleep(500000); if (simplewidget_png_show(*btnPtr->origImgPtr, simpleScreen, btnPtr->x, YSCALE(btnPtr->y)) == -1) { ERR("Failed to show original button png image\n"); return FAILURE; } return SUCCESS;} /****************************************************************************** * uiCreate ******************************************************************************/static int uiCreate(void){ /* Initialize the screens on which to draw widgets */ if (simplewidget_screen_init(getDisplay(), SCREEN_WIDTH, SCREEN_HEIGHT, &simpleScreen) == -1) { ERR("Failed to initialize simplewidget screen\n"); return FAILURE; } /* Create the images for the buttons at the bottom of the screen */ if (simplewidget_png_create(CTRL_BUTTON, &ctrlImg) == -1) { ERR("Failed to create png image\n"); return FAILURE; } if (simplewidget_png_create(CTRL_BUTTON_PLAY_PRESSED, &ctrlPlayImg) == -1) { ERR("Failed to create png image\n"); return FAILURE; } if (simplewidget_png_create(CTRL_BUTTON_REC_PRESSED, &ctrlRecImg) == -1) { ERR("Failed to create png image\n"); return FAILURE; } if (simplewidget_png_create(CTRL_BUTTON_STOP_PRESSED, &ctrlStopImg) == -1) { ERR("Failed to create png image\n"); return FAILURE; } if (simplewidget_png_create(CTRL_BUTTON_PAUSE_PRESSED, &ctrlPauseImg) == -1) { ERR("Failed to create png image\n"); return FAILURE; } /* Create the navigation button in all permutations */ if (simplewidget_png_create(NAV_BUTTON, &navImg) == -1) { ERR("Failed to create png image\n"); return FAILURE; } if (simplewidget_png_create(NAV_BUTTON_LEFT_PRESSED, &navLeftImg) == -1) { ERR("Failed to create png image\n"); return FAILURE; } if (simplewidget_png_create(NAV_BUTTON_RIGHT_PRESSED, &navRightImg) == -1) { ERR("Failed to create png image\n"); return FAILURE; } if (simplewidget_png_create(NAV_BUTTON_UP_PRESSED, &navUpImg) == -1) { ERR("Failed to create png image\n"); return FAILURE; } if (simplewidget_png_create(NAV_BUTTON_DOWN_PRESSED, &navDownImg) == -1) { ERR("Failed to create png image\n"); return FAILURE; } if (simplewidget_png_create(NAV_BUTTON_OK_PRESSED, &navOkImg) == -1) { ERR("Failed to create png image\n"); return FAILURE; } if (simplewidget_png_create(INFO_BUTTON, &infoImg) == -1) { ERR("Failed to create png image\n"); return FAILURE; } if (simplewidget_png_create(WRONG_BUTTON, &noWrongImg) == -1) { ERR("Failed to create png image\n"); return FAILURE; } if (simplewidget_png_create(WRONG_BUTTON_PRESSED, &wrongImg) == -1) { ERR("Failed to create png image\n"); return FAILURE; } if (simplewidget_text_create(COLUMN_3, ROW_1, PTSIZE, DEMONAMESTRING, &demoNameText) == -1) { ERR("Failed to create cpu load text\n"); return FAILURE; } if (simplewidget_text_create(COLUMN_3, ROW_2, PTSIZE, H264CODECSTRING, &videoCodecText) == -1) { ERR("Failed to create cpu load text\n"); return FAILURE; } if (getYFactor() == NTSC) { if (simplewidget_text_create(COLUMN_3, ROW_3, PTSIZE, ZOOMNTSCRESOLUTIONSTRING, &zoomResolutionText) == -1) { ERR("Failed to create kbps text\n"); return FAILURE; } if (simplewidget_text_create(COLUMN_3, ROW_3, PTSIZE, CIFNTSCRESOLUTIONSTRING, &cifResolutionText) == -1) { ERR("Failed to create kbps text\n"); return FAILURE; } if (simplewidget_text_create(COLUMN_3, ROW_4, PTSIZE, NTSCDISPLAYSTRING, &displayText) == -1) { ERR("Failed to create display text\n"); return FAILURE; } } else { // PAL if (simplewidget_text_create(COLUMN_3, ROW_3, PTSIZE, ZOOMPALRESOLUTIONSTRING, &zoomResolutionText) == -1) { ERR("Failed to create kbps text\n"); return FAILURE; } if (simplewidget_text_create(COLUMN_3, ROW_3, PTSIZE, CIFPALRESOLUTIONSTRING, &cifResolutionText) == -1) { ERR("Failed to create kbps text\n"); return FAILURE; } if (simplewidget_text_create(COLUMN_3, ROW_4, PTSIZE, PALDISPLAYSTRING, &displayText) == -1) { ERR("Failed to create display text\n"); return FAILURE; } } return SUCCESS;}/****************************************************************************** * uiDraw
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -