Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
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;
}
Exemplo n.º 3
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);
	
}