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

📄 dec.c

📁 codec engine中的视频操作界面的历程
💻 C
📖 第 1 页 / 共 2 页
字号:
        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(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;    }    /* Create the text strings to be displayed at the top of the screen */    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,                                 &h264VideoCodecText) == -1) {        ERR("Failed to create video codec text\n");        return FAILURE;    }    if (simplewidget_text_create(COLUMN_3, ROW_2, PTSIZE, MPEG4CODECSTRING,                                 &mpeg4VideoCodecText) == -1) {        ERR("Failed to create video codec text\n");        return FAILURE;    }    if (simplewidget_text_create(COLUMN_3, ROW_2, PTSIZE, MPEG2CODECSTRING,                                 &mpeg2VideoCodecText) == -1) {        ERR("Failed to create video codec text\n");        return FAILURE;    }    if (simplewidget_text_create(COLUMN_3, ROW_3, PTSIZE, AACCODECSTRING,                                 &aacAudioCodecText) == -1) {        ERR("Failed to create video codec text\n");        return FAILURE;    }    if (simplewidget_text_create(COLUMN_3, ROW_3, PTSIZE, MPEG1L2CODECSTRING,                                 &mpeg1l2AudioCodecText) == -1) {        ERR("Failed to create video codec text\n");        return FAILURE;    }    if (simplewidget_text_create(COLUMN_3, ROW_3, PTSIZE, G711CODECSTRING,                                 &g711SpeechCodecText) == -1) {        ERR("Failed to create video codec text\n");        return FAILURE;    }    if (simplewidget_text_create(COLUMN_3, ROW_4, PTSIZE, RESOLUTIONSTRING,                                 &resolutionText) == -1) {        ERR("Failed to create kbps text\n");        return FAILURE;    }    if (simplewidget_text_create(COLUMN_3, ROW_5, PTSIZE, DISPLAYSTRING,                                 &displayText) == -1) {        ERR("Failed to create kbps text\n");        return FAILURE;    }    if (simplewidget_text_create(COLUMN_3, ROW_6, PTSIZE, AUDIOSAMFREQSTRING,                                 &audioSampleFreqText) == -1) {        ERR("Failed to create kbps text\n");        return FAILURE;    }    if (simplewidget_text_create(COLUMN_3, ROW_6, PTSIZE, SPEECHSAMFREQSTRING,                                 &speechSampleFreqText) == -1) {        ERR("Failed to create kbps text\n");        return FAILURE;    }    if (gbl.yFactor == NTSC) {        strncpy(fileCombos[0].videoFile, DAVINCIEFFECT_MPEG2_NTSC,                MAX_FILENAME_LENGTH);        strncpy(fileCombos[1].videoFile, DAVINCIEFFECT_H264_NTSC,                MAX_FILENAME_LENGTH);        strncpy(fileCombos[2].videoFile, DAVINCIEFFECT_MPEG4_NTSC,                MAX_FILENAME_LENGTH);    }    else {        strncpy(fileCombos[0].videoFile, DAVINCIEFFECT_MPEG2_PAL,                MAX_FILENAME_LENGTH);        strncpy(fileCombos[1].videoFile, DAVINCIEFFECT_H264_PAL,                MAX_FILENAME_LENGTH);        strncpy(fileCombos[2].videoFile, DAVINCIEFFECT_MPEG4_PAL,                MAX_FILENAME_LENGTH);    }    strncpy(fileCombos[0].soundFile, DAVINCIEFFECT_MPEG1L2,            MAX_FILENAME_LENGTH);    strncpy(fileCombos[1].soundFile, DAVINCIEFFECT_AAC,            MAX_FILENAME_LENGTH);    strncpy(fileCombos[2].soundFile, DAVINCIEFFECT_G711,            MAX_FILENAME_LENGTH);    strncpy(fileCombos[3].videoFile, USERMADE_MPEG4,            MAX_FILENAME_LENGTH);    strncpy(fileCombos[3].soundFile, USERMADE_MPEG4_G711,            MAX_FILENAME_LENGTH);    strncpy(fileCombos[4].videoFile, USERMADE_H264,            MAX_FILENAME_LENGTH);    strncpy(fileCombos[4].soundFile, USERMADE_H264_G711,            MAX_FILENAME_LENGTH);    DBG("Successfully created OSD\n");    return SUCCESS;}/****************************************************************************** * uiDraw ******************************************************************************/static int uiDraw(void){    /* Clear the OSD window (s) */    simplewidget_screen_clear(simpleScreen, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);    if (simplewidget_png_show(ctrlImg, simpleScreen,                              CTRL_BUTTON_X, YSCALE(CTRL_BUTTON_Y)) == -1) {        ERR("Failed to show png image\n");        return FAILURE;    }    if (simplewidget_png_show(navImg, simpleScreen,                              NAV_BUTTON_X, YSCALE(NAV_BUTTON_Y)) == -1) {        ERR("Failed to show png image\n");        return FAILURE;    }    if (simplewidget_png_show(infoImg, simpleScreen,                              INFO_BUTTON_X, YSCALE(INFO_BUTTON_Y)) == -1) {        ERR("Failed to show png image\n");        return FAILURE;    }    if (simplewidget_text_show(demoNameText, simpleScreen) == -1) {        ERR("Failed to show capture resolution text\n");        return FAILURE;    }    if (simplewidget_text_show(resolutionText, simpleScreen) == -1) {        ERR("Failed to show capture resolution text\n");        return FAILURE;    }    if (simplewidget_text_show(displayText, simpleScreen) == -1) {        ERR("Failed to show capture resolution text\n");        return FAILURE;    }    if (simplewidget_text_show(audioSampleFreqText, simpleScreen) == -1) {        ERR("Failed to show capture resolution text\n");        return FAILURE;    }    drawSelection();    return SUCCESS;}/****************************************************************************** * uiDelete ******************************************************************************/static int uiDelete(void){    if (demoNameText) {        simplewidget_text_delete(demoNameText);    }    if (displayText) {        simplewidget_text_delete(displayText);    }    if (resolutionText) {        simplewidget_text_delete(resolutionText);    }    if (h264VideoCodecText) {        simplewidget_text_delete(h264VideoCodecText);    }    if (mpeg2VideoCodecText) {        simplewidget_text_delete(mpeg2VideoCodecText);    }    if (mpeg4VideoCodecText) {        simplewidget_text_delete(mpeg4VideoCodecText);    }    if (aacAudioCodecText) {        simplewidget_text_delete(aacAudioCodecText);    }    if (mpeg1l2AudioCodecText) {        simplewidget_text_delete(mpeg1l2AudioCodecText);    }    if (g711SpeechCodecText) {        simplewidget_text_delete(g711SpeechCodecText);    }    if (ctrlRecImg) {        simplewidget_png_delete(ctrlRecImg);    }     if (ctrlPauseImg) {        simplewidget_png_delete(ctrlPauseImg);    }    if (ctrlStopImg) {        simplewidget_png_delete(ctrlStopImg);    }     if (ctrlPlayImg) {        simplewidget_png_delete(ctrlPlayImg);    }    if (ctrlImg) {        simplewidget_png_delete(ctrlImg);    }    if (infoImg) {        simplewidget_png_delete(infoImg);    }    if (wrongImg) {        simplewidget_png_delete(wrongImg);    }    if (noWrongImg) {        simplewidget_png_delete(noWrongImg);    }    if (navRightImg) {        simplewidget_png_delete(navRightImg);    }    if (navLeftImg) {        simplewidget_png_delete(navLeftImg);    }    if (navImg) {        simplewidget_png_delete(navImg);    }    if (simpleScreen) {        simplewidget_screen_exit(simpleScreen);    }    return SUCCESS;}/****************************************************************************** * keyAction ******************************************************************************/static int keyAction(enum msp430lib_keycode key, DemoEnv *envp, int *quitPtr){    switch(key) {        case MSP430LIB_KEYCODE_PLAY:            if (uiPressButton(CTRLPLAY) == FAILURE) {                return FAILURE;            }            if (videoAvail && soundAvail) {                *quitPtr = TRUE;            }            break;        case MSP430LIB_KEYCODE_STOP:            *quitPtr = NOSELECTION;            break;        case MSP430LIB_KEYCODE_VOLINC:            fileComboIdx = (fileComboIdx + 1) % NUM_FILE_COMBOS;            drawSelection();            if (uiPressButton(NAVPLUS) == FAILURE) {                return FAILURE;            }            break;        case MSP430LIB_KEYCODE_VOLDEC:            if (fileComboIdx - 1 < 0) {                fileComboIdx = NUM_FILE_COMBOS - 1;            }            else {                fileComboIdx--;            }            drawSelection();            if (uiPressButton(NAVMINUS) == FAILURE) {                return FAILURE;            }            break;        case MSP430LIB_KEYCODE_INFOSELECT:            DBG("Menu done or info/select command received.\n");            if (osdVisible) {                setOsdTransparency(0x0);                osdVisible = 0;            }            else {                setOsdTransparency(osdTransparency);                osdVisible = 1;            }               break;        default:            DBG("Unknown button pressed.\n");            if (uiPressButton(WRONG) == FAILURE) {                return FAILURE;            }    }    return SUCCESS;}/****************************************************************************** * decodeFxn ******************************************************************************/int decodeFxn(DemoEnv *envp){    enum InitLevels        initLevel = 0;    int                    status    = SUCCESS;    int                    quit      = 0;    enum msp430lib_keycode key;    if (getYFactor() == NTSC) {        if (drawDiagram(DEMO_DIAGRAM_NTSC) == FAILURE) {            CLEANUP(FAILURE);        }    }    else {        if (drawDiagram(DEMO_DIAGRAM_PAL) == FAILURE) {            CLEANUP(FAILURE);        }    }    if (uiCreate() == FAILURE) {        CLEANUP(FAILURE);    }    initLevel = CREATEDINTERFACE;    if (setOsdTransparency(osdTransparency) == FAILURE) {        CLEANUP(FAILURE);    }    if (uiDraw() == FAILURE) {        CLEANUP(FAILURE);    }    if (msp430lib_init() == MSP430LIB_FAILURE) {        ERR("Failed to initialize msp430lib.\n");        CLEANUP(FAILURE);    }    initLevel = MSP430LIBINITIALIZED;    while (!quit) {        /* See if an IR remote key has been pressed */        if (msp430lib_get_ir_key(&key) == MSP430LIB_FAILURE) {            ERR("Failed to get IR value.\n");        }        DBG("Got IR key %#x from the MSP430\n", key);        /* If an IR key had been pressed, service it */        if (key != 0) {            if (keyAction(key, envp, &quit) == FAILURE) {                BREAK_LOOP(FAILURE);            }        }        usleep(500000);    }    envp->videoFile = fileCombos[fileComboIdx].videoFile;     envp->soundFile = fileCombos[fileComboIdx].soundFile;     if (quit == NOSELECTION) {        status = NOSELECTION;    }cleanup:    if (initLevel >= MSP430LIBINITIALIZED) {        msp430lib_exit();    }    if (initLevel >= CREATEDINTERFACE) {        uiDelete();    }    return status;}

⌨️ 快捷键说明

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