📄 vdoplyapp.c
字号:
ReadValue(NVRAM_VDOPLY_STORAGE, &g_vdoply_cntx.storage, DS_SHORT, &error);
/* init if needed */
if (g_vdoply_cntx.storage == 0xffff)
{
is_inited_before = FALSE;
g_vdoply_cntx.storage = (U16)MMI_PUBLIC_DRV;
}
/* brightness setting */
ReadValue(NVRAM_VDOPLY_OPTION_BRIGHTNESS, &g_vdoply_cntx.brightness, DS_SHORT, &error);
if (g_vdoply_cntx.brightness == 0xffff)
{
g_vdoply_cntx.brightness = MDI_VIDEO_BRIGHTNESS_0;
}
/* contrast setting */
ReadValue(NVRAM_VDOPLY_OPTION_CONTRAST, &g_vdoply_cntx.contrast, DS_SHORT, &error);
if (g_vdoply_cntx.contrast == 0xffff)
{
g_vdoply_cntx.contrast = MDI_VIDEO_CONTRAST_0;
}
/* auto repeat setting */
ReadValue(NVRAM_VDOPLY_OPTION_REPEAT, &g_vdoply_cntx.repeat, DS_SHORT, &error);
if (g_vdoply_cntx.repeat == 0xffff)
{
g_vdoply_cntx.repeat = VDOPLY_REPEAT_OFF;
}
#if defined(__MMI_VIDEO_STREAM__) || defined(__MMI_VIDEO_PDL__)
/* stream */
ReadValue(NVRAM_VDOPLY_PROXY_PORT, &g_vdoply_cntx.proxy_port, DS_DOUBLE, &error);
ReadValue(NVRAM_VDOPLY_DATA_ACCOUNT_ID, &g_vdoply_cntx.data_account_id, DS_BYTE, &error);
ReadValue(NVRAM_VDOPLY_PROXY_IP1, &g_vdoply_cntx.proxy_addr[0], DS_BYTE, &error);
ReadValue(NVRAM_VDOPLY_PROXY_IP2, &g_vdoply_cntx.proxy_addr[1], DS_BYTE, &error);
ReadValue(NVRAM_VDOPLY_PROXY_IP3, &g_vdoply_cntx.proxy_addr[2], DS_BYTE, &error);
ReadValue(NVRAM_VDOPLY_PROXY_IP4, &g_vdoply_cntx.proxy_addr[3], DS_BYTE, &error);
ReadValue(NVRAM_VDOPLY_PROXY_ON_OFF, &g_vdoply_cntx.proxy_on_off, DS_BYTE, &error);
if (!is_inited_before)
{
/* get a default DA id */
g_vdoply_cntx.data_account_id
= mmi_dtcnt_get_first_account_id(DATA_ACCOUNT_BEARER_GPRS | DATA_ACCOUNT_BEARER_WIFI);
g_vdoply_cntx.proxy_port = 0;
g_vdoply_cntx.proxy_on_off = 0;
g_vdoply_cntx.proxy_addr[0] = 0;
g_vdoply_cntx.proxy_addr[1] = 0;
g_vdoply_cntx.proxy_addr[2] = 0;
g_vdoply_cntx.proxy_addr[3] = 0;
}
#endif /* defined(__MMI_VIDEO_STREAM__) || defined(__MMI_VIDEO_PDL__) */
if (!is_inited_before)
{
/* first time init, store the init value */
mmi_vdoply_store_setting();
}
}
/*****************************************************************************
* FUNCTION
* mmi_vdoply_store_setting
* DESCRIPTION
* store storage to NVRAM
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_vdoply_store_setting(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S16 error;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
WriteValue(NVRAM_VDOPLY_STORAGE, &g_vdoply_cntx.storage, DS_SHORT, &error);
WriteValue(NVRAM_VDOPLY_OPTION_BRIGHTNESS, &g_vdoply_cntx.brightness, DS_SHORT, &error);
WriteValue(NVRAM_VDOPLY_OPTION_CONTRAST, &g_vdoply_cntx.contrast, DS_SHORT, &error);
WriteValue(NVRAM_VDOPLY_OPTION_REPEAT, &g_vdoply_cntx.repeat, DS_SHORT, &error);
#if defined(__MMI_VIDEO_STREAM__) || defined(__MMI_VIDEO_PDL__)
/* stream */
WriteValue(NVRAM_VDOPLY_PROXY_PORT, &g_vdoply_cntx.proxy_port, DS_DOUBLE, &error);
WriteValue(NVRAM_VDOPLY_DATA_ACCOUNT_ID, &g_vdoply_cntx.data_account_id, DS_BYTE, &error);
WriteValue(NVRAM_VDOPLY_PROXY_IP1, &g_vdoply_cntx.proxy_addr[0], DS_BYTE, &error);
WriteValue(NVRAM_VDOPLY_PROXY_IP2, &g_vdoply_cntx.proxy_addr[1], DS_BYTE, &error);
WriteValue(NVRAM_VDOPLY_PROXY_IP3, &g_vdoply_cntx.proxy_addr[2], DS_BYTE, &error);
WriteValue(NVRAM_VDOPLY_PROXY_IP4, &g_vdoply_cntx.proxy_addr[3], DS_BYTE, &error);
WriteValue(NVRAM_VDOPLY_PROXY_ON_OFF, &g_vdoply_cntx.proxy_on_off, DS_BYTE, &error);
#endif /* defined(__MMI_VIDEO_STREAM__) || defined(__MMI_VIDEO_PDL__) */
}
/*****************************************************************************
* FUNCTION
* mmi_vdoply_disply_popup
* DESCRIPTION
* display popup. will roate if is horizontal screen
* PARAMETERS
* str_ptr [IN] String pointer
* img_id [IN] Image id
* image_on_bottom [IN] Is image on bottom
* tone_duration [IN] Tone duration
* tone_id [IN] Tine id
* RETURNS
* void
*****************************************************************************/
static void mmi_vdoply_disply_popup(PU8 str_ptr, U16 img_id, U16 image_on_bottom, U16 tone_duration, U16 tone_id)
{
#if defined(__VDOPLY_FEATURE_HORIZONTAL_VIEW__) && defined(__MMI_SCREEN_ROTATE__)
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
DisplayPopupRotated(
(PU8) str_ptr,
(U16) img_id,
(U8) image_on_bottom,
(U32) tone_duration,
(U8) tone_id,
MMI_FRM_SCREEN_ROTATE_270);
#else /* defined(__VDOPLY_FEATURE_HORIZONTAL_VIEW__) && defined(__MMI_SCREEN_ROTATE__) */
DisplayPopup((PU8) str_ptr, (U16) img_id, (U8) image_on_bottom, (U32) tone_duration, (U8) tone_id);
#endif /* defined(__VDOPLY_FEATURE_HORIZONTAL_VIEW__) && defined(__MMI_SCREEN_ROTATE__) */
}
/*****************************************************************************
* FUNCTION
* mmi_vdoply_check_and_display_error_popup
* DESCRIPTION
* display error popup.
* PARAMETERS
* result [IN]
* RETURNS
* void
*****************************************************************************/
static BOOL mmi_vdoply_check_and_display_error_popup(MDI_RESULT result)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (result < 0) /* error happened */
{
switch (result)
{
case MDI_RES_VDOPLY_ERR_SNAPSHOT_DISK_FULL:
mmi_vdoply_disply_popup(
(PU8) GetString(FMGR_FS_DISK_FULL_TEXT),
IMG_GLOBAL_WARNING,
1,
ST_NOTIFYDURATION,
WARNING_TONE);
break;
case MDI_RES_VDOPLY_ERR_SNAPSHOT_ROOT_DIR_FULL:
mmi_vdoply_disply_popup(
(PU8) GetString(FMGR_FS_ROOT_DIR_FULL_TEXT),
IMG_GLOBAL_WARNING,
1,
ST_NOTIFYDURATION,
WARNING_TONE);
break;
case MDI_RES_VDOPLY_ERR_SNAPSHOT_WRITE_PROTECTION:
mmi_vdoply_disply_popup(
(PU8) GetString(STR_ID_VDOPLY_NOTIFY_WRITE_PROTECTION),
IMG_GLOBAL_WARNING,
1,
ST_NOTIFYDURATION,
SUCCESS_TONE);
break;
case MDI_RES_VDOPLY_ERR_SNAPSHOT_NO_DISK:
case MDI_RES_VDOPLY_ERR_SNAPSHOT_FAILED:
mmi_vdoply_disply_popup(
(PU8) GetString(STR_ID_VDOPLY_NOTIFY_SNAPSHOT_FAILED),
IMG_GLOBAL_WARNING,
1,
ST_NOTIFYDURATION,
SUCCESS_TONE);
break;
/* followings are serious error, has to exit app */
case MDI_RES_VDOPLY_ERR_OPEN_FILE_FAILED:
case MDI_RES_VDOPLY_ERR_PLAY_FAILED:
case MDI_RES_VDOPLY_ERR_SEEK_FAILED:
case MDI_RES_VDOPLY_ERR_FAILED:
mmi_vdoply_disply_popup(
(PU8) GetString(STR_ID_VDOPLY_NOTIFY_INVALID_VIDEO_FILE),
IMG_GLOBAL_WARNING,
1,
ST_NOTIFYDURATION,
WARNING_TONE);
DeleteNHistory(1);
break;
default:
MMI_ASSERT(0); /* use assert here, make sure all error case is handled properly */
}
return TRUE;
}
else
{
return FALSE;
}
}
/*****************************************************************************
* FUNCTION
* mmi_vdoply_get_speed_image
* DESCRIPTION
* get speed image
* PARAMETERS
* void
* RETURNS
* U16
*****************************************************************************/
static U16 mmi_vdoply_get_speed_image(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S32 speed;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
speed = mmi_vdoply_get_speed_factor();
#ifndef __VDOPLY_FEATURE_FWD_BWD_SPEED__
switch (speed)
{
case 50:
return IMG_ID_VDOPLY_OSD_SPEED_50;
break;
case 75:
return IMG_ID_VDOPLY_OSD_SPEED_75;
break;
case 100:
return IMG_ID_VDOPLY_OSD_SPEED_100;
break;
case 125:
return IMG_ID_VDOPLY_OSD_SPEED_125;
break;
case 150:
return IMG_ID_VDOPLY_OSD_SPEED_150;
break;
case 200:
return IMG_ID_VDOPLY_OSD_SPEED_200;
break;
case 400:
return IMG_ID_VDOPLY_OSD_SPEED_400;
break;
case 800:
return IMG_ID_VDOPLY_OSD_SPEED_800;
break;
default:
return IMG_ID_VDOPLY_OSD_SPEED_UNDEF;
break;
}
#else /* __VDOPLY_FEATURE_FWD_BWD_SPEED__ */
if (speed > 0)
{
return IMG_ID_VDOPLY_OSD_SPEED_FWD;
}
else if (speed < 0)
{
return IMG_ID_VDOPLY_OSD_SPEED_BWD;
}
else
{
return IMG_ID_VDOPLY_OSD_SPEED_UNDEF;
}
#endif /* __VDOPLY_FEATURE_FWD_BWD_SPEED__ */
}
/*****************************************************************************
* FUNCTION
* mmi_vdoply_highlight_play
* DESCRIPTION
* highlight handler
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
static void mmi_vdoply_highlight_play(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
SetLeftSoftkeyFunction(mmi_vdoply_entry_player_screen, KEY_EVENT_UP);
ClearKeyHandler(KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
}
#ifdef VDOPLY_PDL_DEBUG
U8 pdl_buffer[1024*100];
void mmi_vdoply_pdl_debug_write_file(void)
{
U32 src_file_size;
U32 dest_file_size;
U32 readed;
U32 written;
FS_GetFileSize(pdl_src_file, &src_file_size);
FS_GetFileSize(pdl_dest_file, &dest_file_size);
FS_Read(pdl_src_file, (void*)pdl_buffer, 1024*2, &readed); /* xK once */
FS_Write(pdl_dest_file, (void*)pdl_buffer, readed, &written);
if (readed == 0)
{
g_vdoply_cntx.pdl_dl_state = VDOPLY_PDL_DL_STATE_FINISHED;
return;
}
gui_start_timer(100, mmi_vdoply_pdl_debug_write_file);
}
#endif /* VDOPLY_PDL_DEBUG */
/*****************************************************************************
* FUNCTION
* mmi_vdoply_del_screen_hdlr
* DESCRIPTION
* callback function when someone delete this screen's id
* PARAMETERS
* ptr [?]
* RETURNS
* void
*****************************************************************************/
static U8 mmi_vdoply_del_screen_hdlr
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -