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

📄 encdec.c

📁 codec engine中的视频操作界面的历程
💻 C
📖 第 1 页 / 共 2 页
字号:
/* * 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 + -