Example #1
0
int dvr_thmb_dispFullScreen(cdvr_thmb_t *pdvr)
{
	int ret;
	if(!pdvr) {
		pdvr = g_cdvr;
		if(!pdvr)
			return -1;
	}
    printf("%s:%d\n", __FUNCTION__, __LINE__);

	if(pdvr->dispMode == DISP_NO_FILE) {
		return -1;
	}

	dvr_thmb_setDispFullMode(pdvr);
	ret = playback_Set_PIPE_With_CMD(CMD_SET_FULLSCREEN, 1);
	if(g_cmd_ret == -1) {
		g_cmd_ret = dvr_thmb_setMovRecover(pdvr);
		ret = playback_Set_PIPE_With_CMD(CMD_SET_FULLSCREEN, 1);
	}
	dvr_thmb_get_info();
	pdvr->pUrl = FilelistGetFileName(0);
#if CVR_DUAL
	playback_Set_PIPE_With_CMD(CMD_GET_FILE_DUAL_IDX, 1);
#endif

	return ret;
}
Example #2
0
int playback_down_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
			playback_Set_PIPE_With_CMD(CMD_GET_JPEG_SCLIDX, 1);
			if(pdvr->sclIdx == 0) { //will be in thumbnail mode
				//dvr_thmb_setDispThmbMode(pdvr); //enter thmb mode
#if !CVR_DUAL
				dvr_thmb_dispPage(pdvr);
#else //CVR_DUAL mode // to next file
				dvr_thmb_nextIdx(pdvr);
				dvr_thmb_dispFullScreen(pdvr);
#endif
			}
			else { //if not scale down
				playback_Set_PIPE_With_CMD(CMD_SET_SCALE_DOWN, 1);
				playback_Set_PIPE_With_CMD(CMD_GET_JPEG_SCLIDX, 1);
			}
		}
		else if(pdvr->fileType == GP_FILE_TYPE_VIDEO) {
			//dvr_thmb_setDispThmbMode(pdvr); //enter thmb mode
#if !CVR_DUAL
			dvr_thmb_dispPage(pdvr);
#else //CVR_DUAL mode // to next file
			pdvr->pVideoInfo->frameRate = 0;
			dvr_thmb_nextIdx(pdvr);
			dvr_thmb_dispFullScreen(pdvr);
#endif
		}

	}
	else if(pdvr->dispMode == DISP_THMB_SCREEN){
		int curPage = pdvr->cur_page;
		//dvr_thmb_preIdx(pdvr);
		dvr_thmb_nextIdx(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 <= 0) {
			pdvr->pVideoInfo->volume = 0;
		}
		ExtGpVideoEngineSetVolume(pdvr->pVideoInfo->volume);
	}
	else if(pdvr->dispMode == DISP_SCALE_SCREEN) {
		playback_Set_PIPE_With_CMD(CMD_SET_SCALE_DOWN, 1);
		playback_Set_PIPE_With_CMD(CMD_GET_JPEG_SCLIDX, 1);
		if(pdvr->sclIdx == 0) {
			dvr_thmb_setDispFullMode(pdvr); //enter full mode
		}
	}
	pthread_mutex_unlock(&g_cdvr->pb_mutex);
}
Example #3
0
int dvr_thmb_dispFullScreen_Replace(cdvr_thmb_t *pdvr)
{
	int ret;
	if(!pdvr) {
		pdvr = g_cdvr;
		if(!pdvr)
			return -1;
	}

	if(pdvr->dispMode == DISP_NO_FILE) {
		return -1;
	}

	dvr_thmb_setDispFullMode(pdvr);
	ret = playback_Set_PIPE_With_CMD(CMD_SET_FULLSCREEN_REPLACE, 1);
	dvr_thmb_get_info();
	pdvr->pUrl = FilelistGetFileName(0);

	return ret;
}
/**
 * jpeg file : need to updata pdvr->disp_bitmap to display;
 * video: need to call dispFlip();
 **/
int dvr_thmb_dispFullScreen(cdvr_thmb_t *pdvr, char *disp_pData)
{
	int ret = -1;
	SINT64 stime, etime;
	gp_bitmap_t *pbitmap= NULL;
	if(!pdvr) {
		return -1;
	}
	char *purl = NULL;
	int type = -1;
	dvr_thmb_setDispFullMode(pdvr);

	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);
	}
	
	pdvr->pUrl = FilelistGetFilePath(pdvr->pFile, dvr_thmb_getCurIdxOfFile(pdvr));
	pdvr->fileType = checkFileType(pdvr->pUrl);
	printf("[%s:%d]curIdx %d curPage %d pageNum %d type %d\n", __FUNCTION__, __LINE__, pdvr->cur_idx, pdvr->cur_page, pdvr->cur_pageNum, pdvr->fileType);
	purl = pdvr->pUrl;
	type = pdvr->fileType;
	photo_uninit(pdvr->pPhotoInfo); //for jpeg->video->jpeg
	pdvr->pPhotoInfo = NULL;
	if(purl) {
		stime = sysGetCurTime(); 
		ret = -1;

		if(type == GP_FILE_TYPE_VIDEO) {
			pbitmap= &pdvr->disp_bitmap;
			pbitmap->pData = (unsigned char*)pdvr->upFrame;
			ret = mcpGetThumbnail(pbitmap, purl, 0);
		}
		else if(type == GP_FILE_TYPE_JPEG) {
			pdvr->pPhotoInfo = photo_init(purl, &pdvr->disp_bitmap);
			if(pdvr->pPhotoInfo) {
				pdvr->pPhotoInfo->bitmap->pData = (unsigned char*)pdvr->upFrame;
				ret = image_scale(pdvr->pPhotoInfo);
				if(ret == -1) {
				}
			}
		}
		etime = sysGetCurTime();
		printf("thumbnail used time %lld - %lld = %lldms ret %d\n", etime, stime, etime - stime, ret);
		if(ret == -1) {
			//dispCleanFramebuffer(pdvr->hDisp);
			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);
			}
			printf("WARNNING: get fulscreen error!!!!!!!\n");
		}

	}
	dvr_thmb_dispFlip(pdvr);
	return ret;
}