int playback_up_key_active(cdvr_thmb_t *pdvr) { printf("%s:%d dispmode %d\n", __FUNCTION__, __LINE__, pdvr->dispMode); pthread_mutex_lock(&g_cdvr->pb_mutex); if(pdvr->dispMode == DISP_FULL_SCREEN) { if(pdvr->fileType == GP_FILE_TYPE_JPEG) { // jpeg for scale up function #if !CVR_DUAL dvr_thmb_setDispScaleMode(pdvr); //image_scale_up(pdvr->pPhotoInfo); playback_Set_PIPE_With_CMD(CMD_SET_SCALE_UP, 1); dvr_thmb_getScaleIndex(pdvr); #else dvr_thmb_preIdx(pdvr); dvr_thmb_dispFullScreen(pdvr); #endif } else if(pdvr->fileType == GP_FILE_TYPE_VIDEO) { #if CVR_DUAL pdvr->pVideoInfo->frameRate = 0; dvr_thmb_preIdx(pdvr); dvr_thmb_dispFullScreen(pdvr); #endif } } else if(pdvr->dispMode == DISP_THMB_SCREEN){ int curPage = pdvr->cur_page; //dvr_thmb_nextIdx(pdvr); dvr_thmb_preIdx(pdvr); if(curPage != pdvr->cur_page) { dvr_thmb_dispPage(pdvr); } } else if(pdvr->dispMode == DISP_VIDEO_SCREEN) { pdvr->pVideoInfo->volume += VIDEO_PLAY_VOLUME_STEP; if(pdvr->pVideoInfo->volume >= 8) { pdvr->pVideoInfo->volume = 8; } ExtGpVideoEngineSetVolume(pdvr->pVideoInfo->volume); } else if(pdvr->dispMode == DISP_SCALE_SCREEN) { //now only in photo playback_Set_PIPE_With_CMD(CMD_SET_SCALE_UP, 1); dvr_thmb_getScaleIndex(pdvr); } pthread_mutex_unlock(&g_cdvr->pb_mutex); }
int dvr_thmb_setFileNumber(cdvr_thmb_t *pdvr, int file_num, int reset) { if(!pdvr) { return -1; } //int lastFileNum = pdvr->file_number; int idx = dvr_thmb_getCurIdxOfFile(pdvr); printf("f:%d idx %d\n",pdvr->file_number, idx); if(pdvr->file_number == idx) { //delete last file reset = 1; } pdvr->file_number = file_num; pdvr->disp_page = file_num/(pdvr->disp_number); if(file_num%(pdvr->disp_number)) { pdvr->disp_page++; } #if 0 if(pdvr->cur_idx == -1) { pdvr->cur_idx = 0; } else if(pdvr->cur_idx >= pdvr->file_number) { pdvr->cur_idx = 0; pdvr->cur_page = 0; } if(pdvr->cur_page == -1) { pdvr->cur_page = pdvr->disp_page-1; } if(pdvr->cur_page == pdvr->disp_page-1) { pdvr->cur_pageNum = pdvr->file_number % pdvr->disp_number; pdvr->cur_pageNum = pdvr->cur_pageNum?pdvr->cur_pageNum:pdvr->disp_number; } else { pdvr->cur_pageNum = pdvr->disp_number; } #else if(pdvr->disp_page) { if(reset) { pdvr->cur_page = pdvr->disp_page-1; pdvr->cur_pageNum = pdvr->file_number%pdvr->disp_number; pdvr->cur_pageNum = pdvr->cur_pageNum?pdvr->cur_pageNum:pdvr->disp_number; pdvr->cur_idx = pdvr->cur_pageNum-1; } else { //not reset and not delete the last file //if(pdvr->cur_idx-1) //pdvr->cur_page = pdvr->disp_page-1; //pdvr->cur_pageNum = pdvr->file_number%pdvr->disp_number; //pdvr->cur_pageNum = pdvr->cur_pageNum?pdvr->cur_pageNum:pdvr->disp_number; } //pdvr->cur_idx = pdvr->cur_pageNum-1; if(fileMode && pdvr->file_number > 1) { idx = dvr_thmb_getCurIdxOfFile(pdvr); if(FileNameMatch(FilelistGetFilePath(pdvr->pFile, idx), FilelistGetFilePath2(pdvr->pFile, idx-1)) >= 0) { dvr_thmb_preIdx(pdvr); } } } #endif printf("[%s:%d]curIdx %d curPage %d pageNum %d \n", __FUNCTION__, __LINE__, pdvr->cur_idx, pdvr->cur_page, pdvr->cur_pageNum); pdvr->dispMode = DISP_FULL_SCREEN; if(!pdvr->disp_page) { pdvr->dispMode = DISP_NO_FILE; if(DispBufManage.DispDev == C_DISP_BUFFER) { pdvr->upFrame = (unsigned char *)get_idle_buffer(0); clean_buffer(pdvr->upFrame, 0); } else { pdvr->upFrame = (char *)dispGetFramebuffer(pdvr->hDisp); dispCleanFramebuffer(pdvr->hDisp); } pdvr->disp_page = -1; pdvr->cur_idx = -1; pdvr->cur_page = -1; pdvr->cur_pageNum = -1; dvr_thmb_dispFlip(pdvr); } else { pdvr->pUrl = FilelistGetFilePath(pdvr->pFile, dvr_thmb_getCurIdxOfFile(pdvr)); } return 0; }
int playback_up_L_key_active(cdvr_thmb_t *pdvr) { int speed; printf("%s:%d\n", __FUNCTION__, __LINE__); pthread_mutex_lock(&g_cdvr->pb_mutex); if(pdvr->dispMode == DISP_FULL_SCREEN) { if(pdvr->fileType == GP_FILE_TYPE_JPEG) { // jpeg for scale up function //dvr_thmb_nextIdx(pdvr); dvr_thmb_preIdx(pdvr); dvr_thmb_dispFullScreen(pdvr); } else if(pdvr->fileType == GP_FILE_TYPE_VIDEO) { //dvr_thmb_nextIdx(pdvr); pdvr->pVideoInfo->frameRate = 0; dvr_thmb_preIdx(pdvr); dvr_thmb_dispFullScreen(pdvr); } } else if(pdvr->dispMode == DISP_THMB_SCREEN){ dvr_thmb_prePage(pdvr); //dvr_thmb_nextPage(pdvr); dvr_thmb_dispPage(pdvr); } else if(pdvr->dispMode == DISP_VIDEO_SCREEN) { if(pdvr->pVideoInfo->videoMode == VIDEO_PLAY || pdvr->pVideoInfo->videoMode == VIDEO_SPEED) { speed = pdvr->pVideoInfo->speed; speed++; if(speed == VIDEO_PLAY_SPEED_STEP) { speed = VIDEO_PLAY_SPEED_STEP-1; } else { g_SetSpeed = -1; ExtGpVideoEngineSetSpeed(speed); if(g_SetSpeed != 0) { if(g_SetSpeed == -1) { //-2 is not set pdvr->pVideoInfo->speed = speed; } printf("%s:%d change speed to %d error ret: %d!!!\n", __FUNCTION__, __LINE__, speed, g_SetSpeed); } else { pdvr->pVideoInfo->videoMode = VIDEO_SPEED; pdvr->pVideoInfo->speed = speed; } } } else if(pdvr->pVideoInfo->videoMode == VIDEO_REVERSE){ speed = pdvr->pVideoInfo->speed; speed--; if(speed == 0) { ExtGpVideoEngineReversePlay(0); //disable reversed play // disable reversed mode, if at the last sec, it can not // change video mode. if(pdvr->pVideoInfo->videoMode == VIDEO_PLAY) { g_SetSpeed = -1; ExtGpVideoEngineSetSpeed(speed); if(g_SetSpeed != 0) { if(g_SetSpeed == -1) { //-2 is not set pdvr->pVideoInfo->speed = speed; } printf("%s:%d change speed to %d error ret: %d!!!\n", __FUNCTION__, __LINE__, speed, g_SetSpeed); } else { pdvr->pVideoInfo->speed = speed; } } } else { pdvr->pVideoInfo->videoMode = VIDEO_REVERSE; g_SetSpeed = -1; ExtGpVideoEngineSetSpeed(speed); if(g_SetSpeed != 0) { if(g_SetSpeed == -1) { //-2 is not set pdvr->pVideoInfo->speed = speed; } printf("%s:%d change speed to %d error ret: %d!!!\n", __FUNCTION__, __LINE__, speed, g_SetSpeed); } else { pdvr->pVideoInfo->speed = speed; } } } } else if(pdvr->dispMode == DISP_SCALE_SCREEN) { } pthread_mutex_unlock(&g_cdvr->pb_mutex); }