Merge branch 'Branch_S550_GUI' of 192.168.6.216:/linux-em-group/s530-ntk into branch_s550_gui_debug
|
@ -916,6 +916,7 @@
|
|||
#define HUNTING_CAMERA_4G ENABLE//DISABLE
|
||||
#define PHOTO_PREVIEW_SLICE_ENC_FUNC ENABLE
|
||||
#define PHOTO_PREVIEW_SLICE_ENC_VER2_FUNC ENABLE
|
||||
#define PHOTO_PREVIEW_SLICE_ENC_SRC_STAMP ENABLE
|
||||
#define DZOOM_FUNC ENABLE
|
||||
#define HUNTING_MCU_I2C DISABLE
|
||||
#define HUNTING_MCU_UART ENABLE
|
||||
|
|
|
@ -922,31 +922,31 @@ UINT32 BackgroundFormatCard(void)
|
|||
|
||||
#endif
|
||||
//#NT#2016/05/30#Lincy Lin -end
|
||||
vos_util_delay_ms(1000);
|
||||
// vos_util_delay_ms(1000);
|
||||
SysMain_system("sync");
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
//vos_util_delay_ms(1000);
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_SD_FORMAT_SUCCESS);
|
||||
if(sf_get_pir_statu_flag()){
|
||||
vos_util_delay_ms(3000);
|
||||
}
|
||||
// sf_sys_status_led_set(SF_LED_SYS_STATE_SD_FORMAT_SUCCESS);
|
||||
// if(sf_get_pir_statu_flag()){
|
||||
// vos_util_delay_ms(3000);
|
||||
// }
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_SD_FORMAT_FAIL);
|
||||
if(sf_get_pir_statu_flag()){
|
||||
vos_util_delay_ms(3000);
|
||||
}
|
||||
// sf_sys_status_led_set(SF_LED_SYS_STATE_SD_FORMAT_FAIL);
|
||||
// if(sf_get_pir_statu_flag()){
|
||||
// vos_util_delay_ms(3000);
|
||||
// }
|
||||
#endif
|
||||
}
|
||||
MovieExe_ResetFileSN();
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_SD_FORMAT_EXIT);
|
||||
if(sf_get_pir_statu_flag()){
|
||||
vos_util_delay_ms(1000);
|
||||
}
|
||||
// sf_sys_status_led_set(SF_LED_SYS_STATE_SD_FORMAT_EXIT);
|
||||
// if(sf_get_pir_statu_flag()){
|
||||
// vos_util_delay_ms(1000);
|
||||
// }
|
||||
sf_set_card_statu(ret);
|
||||
#endif
|
||||
DBG_FUNC_END("\r\n");
|
||||
|
|
|
@ -73,12 +73,29 @@
|
|||
#else
|
||||
#if PHOTO_PREVIEW_SLICE_ENC_FUNC
|
||||
#define PHOTO_MAX_CAP_SIZE UIAPP_PHOTO_SIZE_40M /* Max slice encode size */
|
||||
#define PHOTO_SLICE_ENC_MIN_CAP_SIZE UIAPP_PHOTO_SIZE_2M /* UI Menu only display options which size is larger than PHOTO_SLICE_ENC_MIN_CAP_SIZE */
|
||||
#define PHOTO_MIN_CAP_SIZE UIAPP_PHOTO_SIZE_2M /* UI Menu only display options which size is larger than PHOTO_SLICE_ENC_MIN_CAP_SIZE */
|
||||
#else
|
||||
#define PHOTO_MAX_CAP_SIZE UIAPP_PHOTO_SIZE_12M
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if PHOTO_PREVIEW_SLICE_ENC_FUNC == ENABLE
|
||||
#define CFG_JPG_PREVIEW_SLICE_ENC_PRIMARY_BUF_WIDTH 1920
|
||||
#define CFG_JPG_PREVIEW_SLICE_ENC_PRIMARY_BUF_HEIGHT 1080
|
||||
#define CFG_JPG_PREVIEW_SLICE_ENC_PRIMARY_BUF_SIZE VDO_YUV_BUFSIZE(CFG_JPG_PREVIEW_SLICE_ENC_PRIMARY_BUF_WIDTH, CFG_JPG_PREVIEW_SLICE_ENC_PRIMARY_BUF_HEIGHT, HD_VIDEO_PXLFMT_YUV420)
|
||||
#define CFG_JPG_PREVIEW_SLICE_ENC_BS_BUF_RATIO JPG_COMERESSED_RATIO_8 /* (yuv size / ratio) + header = bs buf size */
|
||||
#define CFG_JPG_PREVIEW_SLICE_ENC_INIT_QUALITY_PRIMARY 90
|
||||
#define CFG_JPG_PREVIEW_SLICE_ENC_INIT_QUALITY_THUMBNAIL 70
|
||||
#define CFG_JPG_PREVIEW_SLICE_ENC_INIT_QUALITY_SCREENNAIL 70
|
||||
#define CFG_JPG_PREVIEW_SLICE_ENC_QUALITY_STEP 10
|
||||
|
||||
#define CFG_JPG_PREVIEW_SLICE_ENC_RC_SCREENNAIL 1 /* rate control */
|
||||
#define CFG_JPG_PREVIEW_SLICE_ENC_RC_SCREENNAIL_UBOUND (SCREENNAIL_TARGETBYTERATE + (SCREENNAIL_TARGETBYTERATE * 20 / 100))
|
||||
#define CFG_JPG_PREVIEW_SLICE_ENC_RC_SCREENNAIL_LBOUND (SCREENNAIL_TARGETBYTERATE - (SCREENNAIL_TARGETBYTERATE * 20 / 100))
|
||||
#define CFG_JPG_PREVIEW_SLICE_ENC_RC_SCREENNAIL_QUALITY_STEP 2
|
||||
|
||||
#endif
|
||||
|
||||
#define JPG_COMERESSED_RATIO_5 (5)
|
||||
#define JPG_COMERESSED_RATIO_6 (6)
|
||||
#define JPG_COMERESSED_RATIO_7 (7)
|
||||
|
@ -105,22 +122,7 @@
|
|||
#define PRIMARY_TARGETBYTERATE_LBOUND(TBR) (TBR - (TBR * 15 / 100))
|
||||
#define JPG_FILE_BUFFER_SIZE(primary, screenail, thumbnail, exif) (primary + screenail + thumbnail + exif*6)
|
||||
|
||||
#if PHOTO_PREVIEW_SLICE_ENC_FUNC == ENABLE
|
||||
#define CFG_JPG_PREVIEW_SLICE_ENC_PRIMARY_BUF_WIDTH 1920
|
||||
#define CFG_JPG_PREVIEW_SLICE_ENC_PRIMARY_BUF_HEIGHT 1080
|
||||
#define CFG_JPG_PREVIEW_SLICE_ENC_PRIMARY_BUF_SIZE VDO_YUV_BUFSIZE(CFG_JPG_PREVIEW_SLICE_ENC_PRIMARY_BUF_WIDTH, CFG_JPG_PREVIEW_SLICE_ENC_PRIMARY_BUF_HEIGHT, HD_VIDEO_PXLFMT_YUV420)
|
||||
#define CFG_JPG_PREVIEW_SLICE_ENC_BS_BUF_RATIO 8 /* (yuv size / ratio) + header = bs buf size */
|
||||
#define CFG_JPG_PREVIEW_SLICE_ENC_INIT_QUALITY_PRIMARY 90
|
||||
#define CFG_JPG_PREVIEW_SLICE_ENC_INIT_QUALITY_THUMBNAIL 70
|
||||
#define CFG_JPG_PREVIEW_SLICE_ENC_INIT_QUALITY_SCREENNAIL 70
|
||||
#define CFG_JPG_PREVIEW_SLICE_ENC_QUALITY_STEP 3
|
||||
|
||||
#define CFG_JPG_PREVIEW_SLICE_ENC_RC_SCREENNAIL 1 /* rate control */
|
||||
#define CFG_JPG_PREVIEW_SLICE_ENC_RC_SCREENNAIL_UBOUND (SCREENNAIL_TARGETBYTERATE + (SCREENNAIL_TARGETBYTERATE * 20 / 100))
|
||||
#define CFG_JPG_PREVIEW_SLICE_ENC_RC_SCREENNAIL_LBOUND (SCREENNAIL_TARGETBYTERATE - (SCREENNAIL_TARGETBYTERATE * 20 / 100))
|
||||
#define CFG_JPG_PREVIEW_SLICE_ENC_RC_SCREENNAIL_QUALITY_STEP 2
|
||||
|
||||
#endif
|
||||
|
||||
extern UINT32 gPhotoFrameBuf;
|
||||
|
||||
|
|
|
@ -853,7 +853,7 @@ void UiDateImprint_ChkUpdateData(DATE_IMPRINT_INFO *pInfo)
|
|||
DBG_IND("event=%d, bScreenNailEn=%d, bGenEn=%d\r\n",pInfo->pCapInfo->event,bScreenNailEn,bGenEn);
|
||||
|
||||
//if (pInfo->pCapInfo->event == CAP_DS_EVENT_QV || pInfo->pCapInfo->event == CAP_DS_EVENT_SCR) {
|
||||
if (pInfo->pCapInfo->event == CAP_DS_EVENT_QV || bGenEn) {
|
||||
if (pInfo->pCapInfo->event == CAP_DS_EVENT_PRI) {
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
pInfo->isStrDirty = UiDateImprint_UpdateDate(pInfo->StrBuf,sizeof(pInfo->StrBuf));
|
||||
#else
|
||||
|
|
|
@ -1436,7 +1436,7 @@
|
|||
"X": 0,
|
||||
"Y": 0
|
||||
},
|
||||
"source": "sf_wifi_unconnected",
|
||||
"source": "sf_wifi_connected",
|
||||
"styles": [
|
||||
{
|
||||
"part": 0,
|
||||
|
|
|
@ -1682,7 +1682,7 @@
|
|||
"X": 0,
|
||||
"Y": 0
|
||||
},
|
||||
"source": "sf_wifi_unconnected",
|
||||
"source": "sf_wifi_connected",
|
||||
"styles": [
|
||||
{
|
||||
"part": 0,
|
||||
|
@ -1786,7 +1786,7 @@
|
|||
"X": 0,
|
||||
"Y": 0
|
||||
},
|
||||
"source": "sf_wifi_unconnected",
|
||||
"source": "sf_wifi_connected",
|
||||
"styles": [
|
||||
{
|
||||
"part": 0,
|
||||
|
@ -1838,7 +1838,7 @@
|
|||
"X": 0,
|
||||
"Y": 0
|
||||
},
|
||||
"source": "sf_bluetooth_unconnected",
|
||||
"source": "sf_bluetooth_connected",
|
||||
"styles": [
|
||||
{
|
||||
"part": 0,
|
||||
|
|
|
@ -4767,6 +4767,11 @@
|
|||
"filename": "icons/sf_play.bmp",
|
||||
"name": "sf_play"
|
||||
},
|
||||
{
|
||||
"colorFormat": "Indexed 256 in RGB332",
|
||||
"filename": "icons/sf_pwd_down-up.bmp",
|
||||
"name": "sf_pwd_down-up"
|
||||
},
|
||||
{
|
||||
"colorFormat": "Indexed 256 in RGB332",
|
||||
"filename": "icons/sf_qr.bmp",
|
||||
|
|
|
@ -490,6 +490,7 @@ lv_plugin_img_t lv_plugin_UIFlowLVGL_img_table[] =
|
|||
{ &sf_password },
|
||||
{ &sf_picture_upon_daily_report },
|
||||
{ &sf_play },
|
||||
{ &sf_pwd_down_up },
|
||||
{ &sf_qr },
|
||||
{ &sf_reset },
|
||||
{ &sf_right },
|
||||
|
|
|
@ -535,6 +535,7 @@ LV_IMG_DECLARE(sf_operating_time);
|
|||
LV_IMG_DECLARE(sf_password);
|
||||
LV_IMG_DECLARE(sf_picture_upon_daily_report);
|
||||
LV_IMG_DECLARE(sf_play);
|
||||
LV_IMG_DECLARE(sf_pwd_down_up);
|
||||
LV_IMG_DECLARE(sf_qr);
|
||||
LV_IMG_DECLARE(sf_reset);
|
||||
LV_IMG_DECLARE(sf_right);
|
||||
|
@ -1019,38 +1020,39 @@ LV_IMG_DECLARE(work_mode);
|
|||
#define LV_PLUGIN_IMG_ID_SF_PASSWORD 450
|
||||
#define LV_PLUGIN_IMG_ID_SF_PICTURE_UPON_DAILY_REPORT 451
|
||||
#define LV_PLUGIN_IMG_ID_SF_PLAY 452
|
||||
#define LV_PLUGIN_IMG_ID_SF_QR 453
|
||||
#define LV_PLUGIN_IMG_ID_SF_RESET 454
|
||||
#define LV_PLUGIN_IMG_ID_SF_RIGHT 455
|
||||
#define LV_PLUGIN_IMG_ID_SF_SEND_TYPE 456
|
||||
#define LV_PLUGIN_IMG_ID_SF_SENSITVITY 457
|
||||
#define LV_PLUGIN_IMG_ID_SF_SHOOT_1 458
|
||||
#define LV_PLUGIN_IMG_ID_SF_SIGNAL0 459
|
||||
#define LV_PLUGIN_IMG_ID_SF_SIGNAL1 460
|
||||
#define LV_PLUGIN_IMG_ID_SF_SIGNAL2 461
|
||||
#define LV_PLUGIN_IMG_ID_SF_SIGNAL3 462
|
||||
#define LV_PLUGIN_IMG_ID_SF_SIGNAL4 463
|
||||
#define LV_PLUGIN_IMG_ID_SF_SMS_CTRL 464
|
||||
#define LV_PLUGIN_IMG_ID_SF_STOP 465
|
||||
#define LV_PLUGIN_IMG_ID_SF_TAB_RELEASE 466
|
||||
#define LV_PLUGIN_IMG_ID_SF_TAB_SELECT 467
|
||||
#define LV_PLUGIN_IMG_ID_SF_VIDEO_LENGTH 468
|
||||
#define LV_PLUGIN_IMG_ID_SF_VIDEO_SIZE 469
|
||||
#define LV_PLUGIN_IMG_ID_SF_WARNING_BG 470
|
||||
#define LV_PLUGIN_IMG_ID_SF_WARNING_NOT_SELECT 471
|
||||
#define LV_PLUGIN_IMG_ID_SF_WARNING_SELECTED 472
|
||||
#define LV_PLUGIN_IMG_ID_SF_WIFI_CONNECTED 473
|
||||
#define LV_PLUGIN_IMG_ID_SF_WIFI_UNCONNECTED 474
|
||||
#define LV_PLUGIN_IMG_ID_SF_WIFI_UNSUPPORT 475
|
||||
#define LV_PLUGIN_IMG_ID_SY_BG_102X28 476
|
||||
#define LV_PLUGIN_IMG_ID_SY_BG_32X28 477
|
||||
#define LV_PLUGIN_IMG_ID_SY_BG_MSG 478
|
||||
#define LV_PLUGIN_IMG_ID_SY_BG_MSG2 479
|
||||
#define LV_PLUGIN_IMG_ID_SY_LUZHI 480
|
||||
#define LV_PLUGIN_IMG_ID_SY_REDLINE 481
|
||||
#define LV_PLUGIN_IMG_ID_SY_REDLINE2 482
|
||||
#define LV_PLUGIN_IMG_ID_WORK_MODE 483
|
||||
#define LV_PLUGIN_IMG_TABLE_SIZE 484
|
||||
#define LV_PLUGIN_IMG_ID_SF_PWD_DOWN_UP 453
|
||||
#define LV_PLUGIN_IMG_ID_SF_QR 454
|
||||
#define LV_PLUGIN_IMG_ID_SF_RESET 455
|
||||
#define LV_PLUGIN_IMG_ID_SF_RIGHT 456
|
||||
#define LV_PLUGIN_IMG_ID_SF_SEND_TYPE 457
|
||||
#define LV_PLUGIN_IMG_ID_SF_SENSITVITY 458
|
||||
#define LV_PLUGIN_IMG_ID_SF_SHOOT_1 459
|
||||
#define LV_PLUGIN_IMG_ID_SF_SIGNAL0 460
|
||||
#define LV_PLUGIN_IMG_ID_SF_SIGNAL1 461
|
||||
#define LV_PLUGIN_IMG_ID_SF_SIGNAL2 462
|
||||
#define LV_PLUGIN_IMG_ID_SF_SIGNAL3 463
|
||||
#define LV_PLUGIN_IMG_ID_SF_SIGNAL4 464
|
||||
#define LV_PLUGIN_IMG_ID_SF_SMS_CTRL 465
|
||||
#define LV_PLUGIN_IMG_ID_SF_STOP 466
|
||||
#define LV_PLUGIN_IMG_ID_SF_TAB_RELEASE 467
|
||||
#define LV_PLUGIN_IMG_ID_SF_TAB_SELECT 468
|
||||
#define LV_PLUGIN_IMG_ID_SF_VIDEO_LENGTH 469
|
||||
#define LV_PLUGIN_IMG_ID_SF_VIDEO_SIZE 470
|
||||
#define LV_PLUGIN_IMG_ID_SF_WARNING_BG 471
|
||||
#define LV_PLUGIN_IMG_ID_SF_WARNING_NOT_SELECT 472
|
||||
#define LV_PLUGIN_IMG_ID_SF_WARNING_SELECTED 473
|
||||
#define LV_PLUGIN_IMG_ID_SF_WIFI_CONNECTED 474
|
||||
#define LV_PLUGIN_IMG_ID_SF_WIFI_UNCONNECTED 475
|
||||
#define LV_PLUGIN_IMG_ID_SF_WIFI_UNSUPPORT 476
|
||||
#define LV_PLUGIN_IMG_ID_SY_BG_102X28 477
|
||||
#define LV_PLUGIN_IMG_ID_SY_BG_32X28 478
|
||||
#define LV_PLUGIN_IMG_ID_SY_BG_MSG 479
|
||||
#define LV_PLUGIN_IMG_ID_SY_BG_MSG2 480
|
||||
#define LV_PLUGIN_IMG_ID_SY_LUZHI 481
|
||||
#define LV_PLUGIN_IMG_ID_SY_REDLINE 482
|
||||
#define LV_PLUGIN_IMG_ID_SY_REDLINE2 483
|
||||
#define LV_PLUGIN_IMG_ID_WORK_MODE 484
|
||||
#define LV_PLUGIN_IMG_TABLE_SIZE 485
|
||||
|
||||
#define LV_PLUGIN_FONT_ID_LV_FONT_MONTSERRAT_16 1
|
||||
#define LV_PLUGIN_FONT_ID_NOTOSANSCJKSC_BLACK_16_1BPP 2
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
#include "UIInfo/UIInfo.h"
|
||||
#include "UIWnd/UIFlow.h"
|
||||
#include "sf_systemMng.h"
|
||||
// #include "sf_commu_mcu_reg.h"
|
||||
#include "sf_common.h"
|
||||
|
||||
TMDEF_BEGIN_OPTIONS(CAMERA_MODE)
|
||||
TMDEF_OPTION_TEXT_S(CAMERA_MODE_PHOTO, TM_OPTION_ENABLE)
|
||||
|
@ -929,6 +931,9 @@ void Option_DateTime_Key(lv_obj_t* obj, uint32_t key)
|
|||
printf("\033[33m[Option_DateTime_Key]SELECT\033[0m\n");
|
||||
puiPara->DateAuto = SF_DATE_MANUAL;
|
||||
sf_sys_rtc_time_set(&gDateTime);
|
||||
system("hwclock -s");
|
||||
// sf_set_mcu_rtc_flag(1);
|
||||
sf_cardv_set_mcu_rtc_flag();
|
||||
lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0));
|
||||
hidde_DateTime_page();
|
||||
break;
|
||||
|
|
|
@ -1497,7 +1497,7 @@ lv_obj_t* UIFlowMovie_create(){
|
|||
lv_obj_set_drag(image_wifi_connected, false);
|
||||
lv_obj_set_pos(image_wifi_connected, 40, 0);
|
||||
lv_obj_set_size(image_wifi_connected, 48, 40);
|
||||
lv_img_set_src(image_wifi_connected, &sf_wifi_unconnected);
|
||||
lv_img_set_src(image_wifi_connected, &sf_wifi_connected);
|
||||
lv_obj_add_style(image_wifi_connected, 0, &image_wifi_connected_s0);
|
||||
|
||||
image_wifi_connected_scr_uiflowmovie = image_wifi_connected;
|
||||
|
|
|
@ -314,45 +314,70 @@ static void update_camera_message(void)
|
|||
// if((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO))
|
||||
switch (puiPara->ImgSize)
|
||||
{
|
||||
case PHOTO_SIZE_16M:
|
||||
lv_label_set_text(label_5_scr_uiflowmovie, "16M");
|
||||
break;
|
||||
case PHOTO_SIZE_12M:
|
||||
lv_label_set_text(label_5_scr_uiflowmovie, "12M");
|
||||
break;
|
||||
case PHOTO_SIZE_8M:
|
||||
lv_label_set_text(label_5_scr_uiflowmovie, "8M");
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
case PHOTO_SIZE_40M:
|
||||
lv_label_set_text(label_5_scr_uiflowmovie, "40M");
|
||||
break;
|
||||
case PHOTO_SIZE_32M:
|
||||
lv_label_set_text(label_5_scr_uiflowmovie, "32M");
|
||||
break;
|
||||
case PHOTO_SIZE_24M:
|
||||
lv_label_set_text(label_5_scr_uiflowmovie, "24M");
|
||||
break;
|
||||
case PHOTO_SIZE_16M:
|
||||
lv_label_set_text(label_5_scr_uiflowmovie, "16M");
|
||||
break;
|
||||
case PHOTO_SIZE_12M:
|
||||
lv_label_set_text(label_5_scr_uiflowmovie, "12M");
|
||||
break;
|
||||
case PHOTO_SIZE_8M:
|
||||
lv_label_set_text(label_5_scr_uiflowmovie, "8M");
|
||||
break;
|
||||
case PHOTO_SIZE_5M:
|
||||
lv_label_set_text(label_5_scr_uiflowmovie, "5M");
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
switch (puiPara->Multishot)
|
||||
{
|
||||
case 1:
|
||||
lv_label_set_text(label_4_scr_uiflowmovie, "1P");
|
||||
break;
|
||||
case 2:
|
||||
lv_label_set_text(label_4_scr_uiflowmovie, "2P");
|
||||
break;
|
||||
case 3:
|
||||
lv_label_set_text(label_4_scr_uiflowmovie, "3P");
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
case CONTINUE_SHOT_OFF:
|
||||
lv_label_set_text(label_4_scr_uiflowmovie, "1P");
|
||||
break;
|
||||
case CONTINUE_SHOT_BURST_2:
|
||||
lv_label_set_text(label_4_scr_uiflowmovie, "2P");
|
||||
break;
|
||||
case CONTINUE_SHOT_BURST_3:
|
||||
lv_label_set_text(label_4_scr_uiflowmovie, "3P");
|
||||
break;
|
||||
case CONTINUE_SHOT_BURST_4:
|
||||
lv_label_set_text(label_4_scr_uiflowmovie, "4P");
|
||||
break;
|
||||
case CONTINUE_SHOT_BURST_5:
|
||||
lv_label_set_text(label_4_scr_uiflowmovie, "5P");
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
UINT32 freePicNum = 0;
|
||||
// PhotoExe_GetTotalPicNum();
|
||||
if (UIStorageCheck(STORAGE_CHECK_ERROR, NULL) == TRUE)
|
||||
{
|
||||
lv_label_set_text(label_6_scr_uiflowmovie, "NO SD CARD");
|
||||
}
|
||||
else
|
||||
{
|
||||
UIStorageCheck(STORAGE_CHECK_FULL, &freePicNum);
|
||||
lv_label_set_text(label_6_scr_uiflowmovie, Get_FreePicNumString(freePicNum));
|
||||
}
|
||||
UINT32 cardStatus = System_GetState(SYS_STATE_CARD);
|
||||
|
||||
if (cardStatus != CARD_REMOVED)
|
||||
{
|
||||
if (UIStorageCheck(STORAGE_CHECK_ERROR, NULL) == TRUE)
|
||||
{
|
||||
lv_label_set_text(label_6_scr_uiflowmovie, "SD CARD ERROR");
|
||||
}
|
||||
else
|
||||
{
|
||||
UIStorageCheck(STORAGE_CHECK_FULL, &freePicNum);
|
||||
lv_label_set_text(label_6_scr_uiflowmovie, Get_FreePicNumString(freePicNum));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lv_label_set_text(label_6_scr_uiflowmovie, "NO SD CARD");
|
||||
}
|
||||
}
|
||||
|
||||
static void update_rec_time(void)
|
||||
|
@ -733,7 +758,7 @@ static void UIFlowMovie_ScrOpen(lv_obj_t* obj)
|
|||
}
|
||||
//#NT#2018/08/10#KCHong -end
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
if(puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO)
|
||||
if(puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO || puiPara->CamMode == SF_CAM_MODE_VIDEO2)
|
||||
#else
|
||||
if(SysGetFlag(CamMode) == SF_CAM_MODE_PHOTO_VIDEO)
|
||||
#endif
|
||||
|
@ -1382,7 +1407,7 @@ static void UIFlowMovie_NVTMSG(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* m
|
|||
UIFlowMovie_REC_FINISH(obj,msg);
|
||||
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
if(puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO){
|
||||
if(puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO || puiPara->CamMode == SF_CAM_MODE_VIDEO2){
|
||||
#else
|
||||
if(SysGetFlag(CamMode) == SF_CAM_MODE_PHOTO_VIDEO){
|
||||
#endif
|
||||
|
|
|
@ -892,7 +892,7 @@ lv_obj_t* UIFlowPhoto_create(){
|
|||
STYLE_COLOR_PROP(0x3a, 0x01, 0xa2, 0xb1) ; lv_style_set_outline_color(&button_1_s0, LV_STATE_DEFAULT, color);
|
||||
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&button_1_s0, LV_STATE_DEFAULT, color);
|
||||
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&button_1_s0, LV_STATE_DEFAULT, color);
|
||||
STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_value_color(&button_1_s0, LV_STATE_DEFAULT, color);
|
||||
STYLE_COLOR_PROP(0xd3, 0x31, 0x40, 0x4f) ; lv_style_set_value_color(&button_1_s0, LV_STATE_DEFAULT, color);
|
||||
lv_style_set_value_font(&button_1_s0,LV_STATE_DEFAULT,&lv_font_montserrat_16);
|
||||
STYLE_COLOR_PROP(0x3a, 0x01, 0xa2, 0xb1) ; lv_style_set_bg_color(&button_1_s0, LV_STATE_CHECKED, color);
|
||||
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&button_1_s0, LV_STATE_CHECKED, color);
|
||||
|
@ -900,42 +900,42 @@ lv_obj_t* UIFlowPhoto_create(){
|
|||
STYLE_COLOR_PROP(0x3a, 0x01, 0xa2, 0xb1) ; lv_style_set_outline_color(&button_1_s0, LV_STATE_CHECKED, color);
|
||||
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&button_1_s0, LV_STATE_CHECKED, color);
|
||||
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&button_1_s0, LV_STATE_CHECKED, color);
|
||||
STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_value_color(&button_1_s0, LV_STATE_CHECKED, color);
|
||||
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_value_color(&button_1_s0, LV_STATE_CHECKED, color);
|
||||
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&button_1_s0, LV_STATE_FOCUSED, color);
|
||||
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&button_1_s0, LV_STATE_FOCUSED, color);
|
||||
STYLE_COLOR_PROP(0x3a, 0x01, 0xa2, 0xb1) ; lv_style_set_border_color(&button_1_s0, LV_STATE_FOCUSED, color);
|
||||
STYLE_COLOR_PROP(0x3a, 0x01, 0xa2, 0xb1) ; lv_style_set_outline_color(&button_1_s0, LV_STATE_FOCUSED, color);
|
||||
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&button_1_s0, LV_STATE_FOCUSED, color);
|
||||
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&button_1_s0, LV_STATE_FOCUSED, color);
|
||||
STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_value_color(&button_1_s0, LV_STATE_FOCUSED, color);
|
||||
STYLE_COLOR_PROP(0xd3, 0x31, 0x40, 0x4f) ; lv_style_set_value_color(&button_1_s0, LV_STATE_FOCUSED, color);
|
||||
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&button_1_s0, LV_STATE_EDITED, color);
|
||||
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&button_1_s0, LV_STATE_EDITED, color);
|
||||
STYLE_COLOR_PROP(0x3a, 0x01, 0xa2, 0xb1) ; lv_style_set_border_color(&button_1_s0, LV_STATE_EDITED, color);
|
||||
STYLE_COLOR_PROP(0x13, 0x44, 0xd1, 0xb6) ; lv_style_set_outline_color(&button_1_s0, LV_STATE_EDITED, color);
|
||||
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&button_1_s0, LV_STATE_EDITED, color);
|
||||
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&button_1_s0, LV_STATE_EDITED, color);
|
||||
STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_value_color(&button_1_s0, LV_STATE_EDITED, color);
|
||||
STYLE_COLOR_PROP(0xd3, 0x31, 0x40, 0x4f) ; lv_style_set_value_color(&button_1_s0, LV_STATE_EDITED, color);
|
||||
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&button_1_s0, LV_STATE_HOVERED, color);
|
||||
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&button_1_s0, LV_STATE_HOVERED, color);
|
||||
STYLE_COLOR_PROP(0x3a, 0x01, 0xa2, 0xb1) ; lv_style_set_border_color(&button_1_s0, LV_STATE_HOVERED, color);
|
||||
STYLE_COLOR_PROP(0x3a, 0x01, 0xa2, 0xb1) ; lv_style_set_outline_color(&button_1_s0, LV_STATE_HOVERED, color);
|
||||
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&button_1_s0, LV_STATE_HOVERED, color);
|
||||
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&button_1_s0, LV_STATE_HOVERED, color);
|
||||
STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_value_color(&button_1_s0, LV_STATE_HOVERED, color);
|
||||
STYLE_COLOR_PROP(0xd3, 0x31, 0x40, 0x4f) ; lv_style_set_value_color(&button_1_s0, LV_STATE_HOVERED, color);
|
||||
STYLE_COLOR_PROP(0xbc, 0xcc, 0xec, 0xef) ; lv_style_set_bg_color(&button_1_s0, LV_STATE_PRESSED, color);
|
||||
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&button_1_s0, LV_STATE_PRESSED, color);
|
||||
STYLE_COLOR_PROP(0x3a, 0x01, 0xa2, 0xb1) ; lv_style_set_border_color(&button_1_s0, LV_STATE_PRESSED, color);
|
||||
STYLE_COLOR_PROP(0x3a, 0x01, 0xa2, 0xb1) ; lv_style_set_outline_color(&button_1_s0, LV_STATE_PRESSED, color);
|
||||
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&button_1_s0, LV_STATE_PRESSED, color);
|
||||
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&button_1_s0, LV_STATE_PRESSED, color);
|
||||
STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_value_color(&button_1_s0, LV_STATE_PRESSED, color);
|
||||
STYLE_COLOR_PROP(0xd3, 0x31, 0x40, 0x4f) ; lv_style_set_value_color(&button_1_s0, LV_STATE_PRESSED, color);
|
||||
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&button_1_s0, LV_STATE_DISABLED, color);
|
||||
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&button_1_s0, LV_STATE_DISABLED, color);
|
||||
STYLE_COLOR_PROP(0x9c, 0x88, 0x88, 0x88) ; lv_style_set_border_color(&button_1_s0, LV_STATE_DISABLED, color);
|
||||
STYLE_COLOR_PROP(0x3a, 0x01, 0xa2, 0xb1) ; lv_style_set_outline_color(&button_1_s0, LV_STATE_DISABLED, color);
|
||||
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&button_1_s0, LV_STATE_DISABLED, color);
|
||||
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&button_1_s0, LV_STATE_DISABLED, color);
|
||||
STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_value_color(&button_1_s0, LV_STATE_DISABLED, color);
|
||||
STYLE_COLOR_PROP(0x9c, 0x88, 0x88, 0x88) ; lv_style_set_value_color(&button_1_s0, LV_STATE_DISABLED, color);
|
||||
lv_obj_t *button_1 = lv_btn_create(parent, NULL);
|
||||
lv_obj_set_hidden(button_1, false);
|
||||
lv_obj_set_click(button_1, true);
|
||||
|
@ -1216,6 +1216,7 @@ lv_obj_t* UIFlowPhoto_create(){
|
|||
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_3_s0, LV_STATE_DEFAULT, color);
|
||||
STYLE_COLOR_PROP(0xd3, 0x31, 0x40, 0x4f) ; lv_style_set_text_color(&label_3_s0, LV_STATE_DEFAULT, color);
|
||||
lv_style_set_text_font(&label_3_s0,LV_STATE_DEFAULT,&sf_ui_text_medium_16_1bpp);
|
||||
lv_style_set_text_line_space(&label_3_s0,LV_STATE_DEFAULT,-21862);
|
||||
STYLE_COLOR_PROP(0xd3, 0x3b, 0x3e, 0x42) ; lv_style_set_text_sel_color(&label_3_s0, LV_STATE_DEFAULT, color);
|
||||
STYLE_COLOR_PROP(0x3a, 0x01, 0xa2, 0xb1) ; lv_style_set_text_sel_bg_color(&label_3_s0, LV_STATE_DEFAULT, color);
|
||||
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&label_3_s0, LV_STATE_CHECKED, color);
|
||||
|
@ -1719,7 +1720,7 @@ lv_obj_t* UIFlowPhoto_create(){
|
|||
lv_obj_set_drag(image_wifi_connected, false);
|
||||
lv_obj_set_pos(image_wifi_connected, 40, 0);
|
||||
lv_obj_set_size(image_wifi_connected, 48, 40);
|
||||
lv_img_set_src(image_wifi_connected, &sf_wifi_unconnected);
|
||||
lv_img_set_src(image_wifi_connected, &sf_wifi_connected);
|
||||
lv_obj_add_style(image_wifi_connected, 0, &image_wifi_connected_s0);
|
||||
|
||||
image_wifi_connected_scr_uiflowphoto = image_wifi_connected;
|
||||
|
@ -1817,7 +1818,7 @@ lv_obj_t* UIFlowPhoto_create(){
|
|||
lv_obj_set_drag(image_wifi_unconnected, false);
|
||||
lv_obj_set_pos(image_wifi_unconnected, 40, 0);
|
||||
lv_obj_set_size(image_wifi_unconnected, 48, 40);
|
||||
lv_img_set_src(image_wifi_unconnected, &sf_wifi_unconnected);
|
||||
lv_img_set_src(image_wifi_unconnected, &sf_wifi_connected);
|
||||
lv_obj_add_style(image_wifi_unconnected, 0, &image_wifi_unconnected_s0);
|
||||
|
||||
image_wifi_unconnected_scr_uiflowphoto = image_wifi_unconnected;
|
||||
|
@ -1866,7 +1867,7 @@ lv_obj_t* UIFlowPhoto_create(){
|
|||
lv_obj_set_drag(image_bluetooth_unconnected, false);
|
||||
lv_obj_set_pos(image_bluetooth_unconnected, 0, 0);
|
||||
lv_obj_set_size(image_bluetooth_unconnected, 48, 40);
|
||||
lv_img_set_src(image_bluetooth_unconnected, &sf_bluetooth_unconnected);
|
||||
lv_img_set_src(image_bluetooth_unconnected, &sf_bluetooth_connected);
|
||||
lv_obj_add_style(image_bluetooth_unconnected, 0, &image_bluetooth_unconnected_s0);
|
||||
|
||||
image_bluetooth_unconnected_scr_uiflowphoto = image_bluetooth_unconnected;
|
||||
|
|
|
@ -146,14 +146,19 @@ static void update_quality(void)
|
|||
|
||||
static void update_free_pic_number(void)
|
||||
{
|
||||
if(g_PhotoBgInitFileSys == TRUE){
|
||||
#if (FS_FUNC == ENABLE)
|
||||
UIStorageCheck(STORAGE_CHECK_FULL, &g_uiFreePicNum);
|
||||
#endif
|
||||
lv_label_set_text(label_free_pic_scr_uiflowphoto, Get_FreePicNumString(g_uiFreePicNum));
|
||||
}else{
|
||||
lv_label_set_text_fmt(label_free_pic_scr_uiflowphoto, "Check free space ...");
|
||||
}
|
||||
UINT32 cardStatus = System_GetState(SYS_STATE_CARD);
|
||||
|
||||
if (cardStatus != CARD_REMOVED)
|
||||
{
|
||||
if(g_PhotoBgInitFileSys == TRUE){
|
||||
#if (FS_FUNC == ENABLE)
|
||||
UIStorageCheck(STORAGE_CHECK_FULL, &g_uiFreePicNum);
|
||||
#endif
|
||||
lv_label_set_text(label_free_pic_scr_uiflowphoto, Get_FreePicNumString(g_uiFreePicNum));
|
||||
}else{
|
||||
lv_label_set_text_fmt(label_free_pic_scr_uiflowphoto, "Check free space ...");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void update_card(void)
|
||||
|
@ -412,45 +417,71 @@ static void update_camera_message(void)
|
|||
{
|
||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||
// if((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO))
|
||||
switch (puiPara->ImgSize)
|
||||
{
|
||||
case PHOTO_SIZE_16M:
|
||||
lv_label_set_text(label_5_scr_uiflowphoto, "16M");
|
||||
break;
|
||||
case PHOTO_SIZE_12M:
|
||||
lv_label_set_text(label_5_scr_uiflowphoto, "12M");
|
||||
break;
|
||||
case PHOTO_SIZE_8M:
|
||||
lv_label_set_text(label_5_scr_uiflowphoto, "8M");
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
switch (puiPara->ImgSize)
|
||||
{
|
||||
case PHOTO_SIZE_40M:
|
||||
lv_label_set_text(label_4_scr_uiflowphoto, "40M");
|
||||
break;
|
||||
case PHOTO_SIZE_32M:
|
||||
lv_label_set_text(label_4_scr_uiflowphoto, "32M");
|
||||
break;
|
||||
case PHOTO_SIZE_24M:
|
||||
lv_label_set_text(label_4_scr_uiflowphoto, "24M");
|
||||
break;
|
||||
case PHOTO_SIZE_16M:
|
||||
lv_label_set_text(label_4_scr_uiflowphoto, "16M");
|
||||
break;
|
||||
case PHOTO_SIZE_12M:
|
||||
lv_label_set_text(label_4_scr_uiflowphoto, "12M");
|
||||
break;
|
||||
case PHOTO_SIZE_8M:
|
||||
lv_label_set_text(label_4_scr_uiflowphoto, "8M");
|
||||
break;
|
||||
case PHOTO_SIZE_5M:
|
||||
lv_label_set_text(label_4_scr_uiflowphoto, "5M");
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
switch (puiPara->Multishot)
|
||||
{
|
||||
case 1:
|
||||
lv_label_set_text(label_4_scr_uiflowphoto, "1P");
|
||||
break;
|
||||
case 2:
|
||||
lv_label_set_text(label_4_scr_uiflowphoto, "2P");
|
||||
break;
|
||||
case 3:
|
||||
lv_label_set_text(label_4_scr_uiflowphoto, "3P");
|
||||
break;
|
||||
case CONTINUE_SHOT_OFF:
|
||||
lv_label_set_text(label_4_scr_uiflowphoto, "1P");
|
||||
break;
|
||||
case CONTINUE_SHOT_BURST_2:
|
||||
lv_label_set_text(label_4_scr_uiflowphoto, "2P");
|
||||
break;
|
||||
case CONTINUE_SHOT_BURST_3:
|
||||
lv_label_set_text(label_4_scr_uiflowphoto, "3P");
|
||||
break;
|
||||
case CONTINUE_SHOT_BURST_4:
|
||||
lv_label_set_text(label_4_scr_uiflowphoto, "4P");
|
||||
break;
|
||||
case CONTINUE_SHOT_BURST_5:
|
||||
lv_label_set_text(label_4_scr_uiflowphoto, "5P");
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
UINT32 cardStatus = System_GetState(SYS_STATE_CARD);
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (UIStorageCheck(STORAGE_CHECK_ERROR, NULL) == TRUE)
|
||||
{
|
||||
lv_label_set_text(label_6_scr_uiflowphoto, "NO SD CARD");
|
||||
}
|
||||
else
|
||||
{
|
||||
UIStorageCheck(STORAGE_CHECK_FULL, &g_uiFreePicNum);
|
||||
lv_label_set_text(label_6_scr_uiflowphoto, Get_FreePicNumString(g_uiFreePicNum));
|
||||
}
|
||||
if (cardStatus != CARD_REMOVED)
|
||||
{
|
||||
if (UIStorageCheck(STORAGE_CHECK_ERROR, NULL) == TRUE)
|
||||
{
|
||||
lv_label_set_text(label_6_scr_uiflowphoto, "SD CARD ERROR");
|
||||
}
|
||||
else
|
||||
{
|
||||
UIStorageCheck(STORAGE_CHECK_FULL, &g_uiFreePicNum);
|
||||
lv_label_set_text(label_6_scr_uiflowphoto, Get_FreePicNumString(g_uiFreePicNum));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lv_label_set_text(label_6_scr_uiflowphoto, "NO SD CARD");
|
||||
}
|
||||
}
|
||||
|
||||
static void update_wifi(void)
|
||||
|
@ -1332,7 +1363,7 @@ void UIFlowPhoto_UpdateInfo(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* msg)
|
|||
|
||||
UIFlowPhoto_BackPreviewHandle();
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
if(puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO){
|
||||
if(puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO || puiPara->CamMode == SF_CAM_MODE_VIDEO2){
|
||||
#else
|
||||
if(SysGetFlag(CamMode) == SF_CAM_MODE_PHOTO_VIDEO){
|
||||
#endif
|
||||
|
@ -1566,7 +1597,7 @@ void UIFlowPhotoEventCallback(lv_obj_t* obj, lv_event_t event)
|
|||
}
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||
if((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO))
|
||||
if((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO) || (puiPara->CamMode == SF_CAM_MODE_VIDEO2))
|
||||
{
|
||||
sf_rtsp_restart();
|
||||
}
|
||||
|
|
|
@ -1866,6 +1866,7 @@ typedef enum {
|
|||
SF_CAM_MODE_PHOTO = 0x00,
|
||||
SF_CAM_MODE_VIDEO,
|
||||
SF_CAM_MODE_PHOTO_VIDEO,
|
||||
SF_CAM_MODE_VIDEO2,
|
||||
SF_CAM_MODE_MAX,
|
||||
}SF_BOOT_WORK_MODE;
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ typedef struct {
|
|||
|
||||
static PHOTO_SIZE_PARAM g_PhotoCapSizeTable[PHOTO_SIZE_ID_MAX + 2] = {
|
||||
#if PHOTO_PREVIEW_SLICE_ENC_FUNC || POWERON_FAST_SLICE_ENC
|
||||
{7296, 5472, IMAGERATIO_4_3, "40M"}, /* 40M */
|
||||
{7296, 5760, IMAGERATIO_4_3, "40M"}, /* 40M */
|
||||
#endif
|
||||
{6528, 4896, IMAGERATIO_4_3, "32M"}, /* 32M */
|
||||
{5664, 4248, IMAGERATIO_4_3, "24M"}, //16M
|
||||
|
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
|
@ -18,7 +18,13 @@ typedef enum sfHAL_LED_STATE_E
|
|||
SF_HAL_LED_STATE_BUIT,
|
||||
} SF_HAL_LED_STATE_E;
|
||||
|
||||
typedef enum sf_MSG_FORMAT_SD_e
|
||||
{
|
||||
CMD_FORMAT_SD_OK = 0,
|
||||
CMD_FORMAT_SD_STA = 1,
|
||||
CMD_FORMAT_SD_ERR = 10,
|
||||
|
||||
}SF_MSG_FORMAT_SD_E;
|
||||
|
||||
|
||||
SINT32 app_pir_monitoring_start(void);
|
||||
|
@ -59,6 +65,8 @@ BOOL sf_load_bt_ko(void);
|
|||
|
||||
SINT32 sf_in_update(void);
|
||||
|
||||
void sf_set_card_statu(UINT32 val);
|
||||
UINT32 sf_get_card_statu(void);
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
}
|
||||
|
|
|
@ -482,8 +482,9 @@ typedef enum sf_PARA_MESSAGE_TYPE_E
|
|||
SF_PARA_CMD_BATTERY_LEVEL = 0x1F02,
|
||||
SF_PARA_CMD_WAIT = 0x1F03,
|
||||
SF_PARA_CMD_SIG = 0x1F04,
|
||||
SF_PARA_CMD_SIMISINSERT = 0x1F05,
|
||||
SF_PARA_CMD_ISESIM = 0x1F06,
|
||||
SF_PARA_CMD_BLE = 0x1F05,
|
||||
SF_PARA_CMD_SIMISINSERT = 0x1F06,
|
||||
SF_PARA_CMD_ISESIM = 0x1F07,
|
||||
}SF_PARA_MESSAGE_TYPE_E;
|
||||
|
||||
typedef enum sf_WIFI_MESSAGE_TYPE_E
|
||||
|
|
|
@ -1148,7 +1148,7 @@ SINT32 sf_check_ftp_send(UINT8 mode)
|
|||
else
|
||||
{
|
||||
if(((puiPara->CamMode == SF_CAM_MODE_PHOTO) && (puiPara->SendPhotoSwitch == 1)) || ((puiPara->CamMode == SF_CAM_MODE_VIDEO) && (puiPara->SendVideoSwitch == 1))
|
||||
|| ((puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO) && ((puiPara->SendPhotoSwitch == 1) || (puiPara->SendVideoSwitch == 1))))
|
||||
|| (((puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO) || (puiPara->CamMode == SF_CAM_MODE_VIDEO2)) && ((puiPara->SendPhotoSwitch == 1) || (puiPara->SendVideoSwitch == 1))))
|
||||
{
|
||||
if((puiPara->FtpSwitch != 1) && (puiPara->Sim4gApn[0] != '\0'))
|
||||
{
|
||||
|
@ -1206,11 +1206,11 @@ SINT32 sf_send_file_to_ftp(UINT8 mode)
|
|||
|
||||
if(mode == 1 ) //send Original+video
|
||||
{
|
||||
if(((puiPara->CamMode == SF_CAM_MODE_VIDEO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO)) && (puiPara->SendVideoSwitch == 1) && (puiPara->NetGeneration == 4)) //video
|
||||
if(((puiPara->CamMode == SF_CAM_MODE_VIDEO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO) || (puiPara->CamMode == SF_CAM_MODE_VIDEO2)) && (puiPara->SendVideoSwitch == 1) && (puiPara->NetGeneration == 4)) //video
|
||||
{
|
||||
timeout = 120000;
|
||||
}
|
||||
else if((2 == puiPara->SendPicSize) && (((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO)) && (puiPara->SendPhotoSwitch == 1))) //pic(+video)
|
||||
else if((2 == puiPara->SendPicSize) && (((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO) || (puiPara->CamMode == SF_CAM_MODE_VIDEO2)) && (puiPara->SendPhotoSwitch == 1))) //pic(+video)
|
||||
{
|
||||
timeout = 120000;
|
||||
}
|
||||
|
@ -1222,7 +1222,7 @@ SINT32 sf_send_file_to_ftp(UINT8 mode)
|
|||
{
|
||||
if(mode == 1)
|
||||
{
|
||||
if(((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO)) && (puiPara->SendPhotoSwitch == 1)) //pic(+video)
|
||||
if(((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO) || (puiPara->CamMode == SF_CAM_MODE_VIDEO2)) && (puiPara->SendPhotoSwitch == 1)) //pic(+video)
|
||||
{
|
||||
if(smtpUploadPicFlag == 0)
|
||||
{
|
||||
|
@ -1248,7 +1248,7 @@ SINT32 sf_send_file_to_ftp(UINT8 mode)
|
|||
|
||||
printf("[%s:%d]puiPara->NetGeneration=%d\n", __FUNCTION__, __LINE__, puiPara->NetGeneration);
|
||||
|
||||
if(((puiPara->CamMode == SF_CAM_MODE_VIDEO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO)) && (puiPara->SendVideoSwitch == 1) && (puiPara->NetGeneration == 4)) //video
|
||||
if(((puiPara->CamMode == SF_CAM_MODE_VIDEO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO) || (puiPara->CamMode == SF_CAM_MODE_VIDEO2)) && (puiPara->SendVideoSwitch == 1) && (puiPara->NetGeneration == 4)) //video
|
||||
{
|
||||
if(smtpUploadVideoFlag == 0)
|
||||
{
|
||||
|
@ -1388,11 +1388,11 @@ SINT32 sf_connect_ftps_server(void)
|
|||
gprsMode = 0;//puiPara->GprsMode;
|
||||
printf("[%s:%d] ssl:%d,GprsMode:%d\n", __FUNCTION__, __LINE__, ssl, gprsMode);
|
||||
|
||||
if(((puiPara->CamMode == SF_CAM_MODE_VIDEO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO)) && (puiPara->SendVideoSwitch == 1) && (puiPara->NetGeneration == 4)) //video
|
||||
if(((puiPara->CamMode == SF_CAM_MODE_VIDEO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO) || (puiPara->CamMode == SF_CAM_MODE_VIDEO2)) && (puiPara->SendVideoSwitch == 1) && (puiPara->NetGeneration == 4)) //video
|
||||
{
|
||||
timeout = 120000;
|
||||
}
|
||||
else if((2 == puiPara->SendPicSize) && (((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO)) && (puiPara->SendPhotoSwitch == 1))) //pic(+video)
|
||||
else if((2 == puiPara->SendPicSize) && (((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO) || (puiPara->CamMode == SF_CAM_MODE_VIDEO2)) && (puiPara->SendPhotoSwitch == 1))) //pic(+video)
|
||||
{
|
||||
timeout = 120000;
|
||||
}
|
||||
|
|
|
@ -204,7 +204,7 @@ UINT8 sf_message_data_processing(UINT8 strValue[30][32], UINT16 mm, UINT8 *sms_s
|
|||
}
|
||||
else if(strValue[i][4] == '2')
|
||||
{
|
||||
pPara_sms_saved->CamMode = SF_CAM_MODE_PHOTO_VIDEO;
|
||||
pPara_sms_saved->CamMode = SF_CAM_MODE_VIDEO2;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -709,6 +709,9 @@ static SINT32 sf_app_process_cmd_SD(SF_MESSAGE_BUF_S *pMessageBuf)
|
|||
}
|
||||
break;
|
||||
*/
|
||||
case CMD_SD_FORMAT:
|
||||
sf_set_card_statu(pMessageBuf->arg2);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -44,6 +44,7 @@ extern pthread_mutex_t GPIO_mutexLock;
|
|||
static SINT32 IsCardFull = 0;
|
||||
static SINT32 isGoing2Pir = 0;
|
||||
static SINT32 IsCard = 0;
|
||||
static int formatSD = CMD_FORMAT_SD_ERR;
|
||||
|
||||
SF_THREAD_S PirMonitorTskCfg =
|
||||
{
|
||||
|
@ -560,6 +561,16 @@ void sf_set_pir_statu_flag(SINT32 flag)
|
|||
isGoing2Pir = flag;
|
||||
}
|
||||
|
||||
void sf_set_card_statu(UINT32 val)
|
||||
{
|
||||
formatSD = val;
|
||||
}
|
||||
|
||||
UINT32 sf_get_card_statu(void)
|
||||
{
|
||||
return formatSD;
|
||||
}
|
||||
|
||||
static BOOL sf_system_check_usb_host(void)
|
||||
{
|
||||
char command[26] = "lsmod | grep usbcore";
|
||||
|
|
|
@ -110,7 +110,7 @@ SINT32 sf_com_message_send_to_app(SF_MESSAGE_BUF_S *pMessageBuf)
|
|||
|
||||
SINT32 sf_com_message_cardv_init(void)
|
||||
{
|
||||
return message_queue_create((char*)"/tmp/cardv_message",&cardv_msgQueueId);
|
||||
return message_queue_create((char*)"/tmp/cdv_message",&cardv_msgQueueId);
|
||||
}
|
||||
SINT32 sf_com_message_recv_from_cardv(SF_MESSAGE_BUF_S *pMessageBuf)
|
||||
{
|
||||
|
|
|
@ -1538,7 +1538,7 @@ BOOL sf_check_auto_thumb_file(VOID)
|
|||
fileCfg->filecnt = SendFileTotal;
|
||||
for(fileIndex = 0; fileIndex < SendFileTotal; fileIndex++)
|
||||
{
|
||||
if(SF_CAM_MODE_PHOTO_VIDEO == (SendFileList[fileIndex][0] - '0')){
|
||||
if((SF_CAM_MODE_PHOTO_VIDEO == (SendFileList[fileIndex][0] - '0')) || (SF_CAM_MODE_VIDEO2 == (SendFileList[fileIndex][0] - '0'))){
|
||||
fileCfg->stfileattr[fileIndex].enFileTye = SF_FILE_TYPE_PIC_VIDEO;
|
||||
}else if(SF_CAM_MODE_PHOTO == (SendFileList[fileIndex][0] - '0')){
|
||||
fileCfg->stfileattr[fileIndex].enFileTye = SF_FILE_TYPE_PIC_SMALL;
|
||||
|
|
376
code/application/source/sf_app/code/source/sf_blue/src/hciconfig.c
Executable file → Normal file
|
@ -21,13 +21,59 @@
|
|||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
#include "bluetooth.h"
|
||||
#include "hci.h"
|
||||
#include "hci_lib.h"
|
||||
#include "src/util.h"
|
||||
|
||||
static struct hci_dev_info di;
|
||||
static char g_sf_ble_ssid[14] = {0};
|
||||
static void cmd_lecc(int dev_id, char *addr)
|
||||
{
|
||||
int err, dd;
|
||||
bdaddr_t bdaddr;
|
||||
uint16_t interval, latency, max_ce_length, max_interval, min_ce_length;
|
||||
uint16_t min_interval, supervision_timeout, window, handle;
|
||||
uint8_t initiator_filter, own_bdaddr_type, peer_bdaddr_type;
|
||||
|
||||
own_bdaddr_type = LE_RANDOM_ADDRESS;
|
||||
peer_bdaddr_type = LE_RANDOM_ADDRESS;
|
||||
initiator_filter = 1; /* Use peer address */
|
||||
|
||||
dd = hci_open_dev(dev_id);
|
||||
if (dd < 0) {
|
||||
perror("Could not open device");
|
||||
return ;
|
||||
}
|
||||
|
||||
memset(&bdaddr, 0, sizeof(bdaddr_t));
|
||||
if (addr)
|
||||
str2ba(addr, &bdaddr);
|
||||
|
||||
printf("Conn_Address: %02x %02x %02x %02x %02x %02x.\n", bdaddr.b[0], bdaddr.b[1], bdaddr.b[2], bdaddr.b[3], bdaddr.b[4], bdaddr.b[5]);
|
||||
|
||||
interval = htobs(0x0004);
|
||||
window = htobs(0x0004);
|
||||
min_interval = htobs(0x000F);
|
||||
max_interval = htobs(0x000F);
|
||||
latency = htobs(0x0000);
|
||||
supervision_timeout = htobs(0x0C80);
|
||||
min_ce_length = htobs(0x0001);
|
||||
max_ce_length = htobs(0x0001);
|
||||
|
||||
err = hci_le_create_conn(dd, interval, window, initiator_filter,
|
||||
peer_bdaddr_type, bdaddr, own_bdaddr_type, min_interval,
|
||||
max_interval, latency, supervision_timeout,
|
||||
min_ce_length, max_ce_length, &handle, 25000);
|
||||
if (err < 0) {
|
||||
perror("Could not create connection");
|
||||
return ;
|
||||
}
|
||||
|
||||
printf("Connection handle %d\n", handle);
|
||||
|
||||
hci_close_dev(dd);
|
||||
}
|
||||
|
||||
static void cmd_up(int ctl, int hdev)
|
||||
{
|
||||
|
@ -42,48 +88,19 @@ static void cmd_up(int ctl, int hdev)
|
|||
}
|
||||
}
|
||||
|
||||
static void cmd_piscan(int ctl, int hdev)
|
||||
static void cmd_down(int ctl, int hdev)
|
||||
{
|
||||
struct hci_dev_req dr;
|
||||
|
||||
dr.dev_id = hdev;
|
||||
dr.dev_opt = SCAN_DISABLED;
|
||||
dr.dev_opt = SCAN_PAGE | SCAN_INQUIRY;
|
||||
|
||||
if (ioctl(ctl, HCISETSCAN, (unsigned long) &dr) < 0)
|
||||
/* Start HCI device */
|
||||
if (ioctl(ctl, HCIDEVDOWN, hdev) < 0)
|
||||
{
|
||||
fprintf(stderr, "Can't set scan mode on hci%d: %s (%d)\n",
|
||||
if (errno == EALREADY)
|
||||
return;
|
||||
fprintf(stderr, "Can't init device hci%d: %s (%d)\n",
|
||||
hdev, strerror(errno), errno);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void cmd_name(int ctl, int hdev, char *name)
|
||||
{
|
||||
int dd;
|
||||
|
||||
dd = hci_open_dev(hdev);
|
||||
if (dd < 0)
|
||||
{
|
||||
fprintf(stderr, "Can't open device hci%d: %s (%d)\n",
|
||||
hdev, strerror(errno), errno);
|
||||
return;
|
||||
}
|
||||
|
||||
char *opt = name;
|
||||
if (hci_write_local_name(dd, opt, 2000) < 0)
|
||||
{
|
||||
fprintf(stderr, "Can't change local name on hci%d: %s (%d)\n",
|
||||
hdev, strerror(errno), errno);
|
||||
return;
|
||||
}
|
||||
printf("Name: '%s'\n", name);
|
||||
hci_close_dev(dd);
|
||||
}
|
||||
static int sf_ba2str(const bdaddr_t *ba, char *str)
|
||||
{
|
||||
return sprintf(str, "%2.2X%2.2X%2.2X",ba->b[2], ba->b[1], ba->b[0]);
|
||||
}
|
||||
static void cmd_address(int ctl, int hdev, char *ssid)
|
||||
{
|
||||
int dd;
|
||||
|
@ -96,115 +113,185 @@ static void cmd_address(int ctl, int hdev, char *ssid)
|
|||
return;
|
||||
}
|
||||
|
||||
hci_read_bd_addr(dd, &di.bdaddr, 1000);
|
||||
bdaddr_t bdaddr = {0};
|
||||
if (hci_read_bd_addr(dd, &bdaddr, 0) < 0)
|
||||
{
|
||||
fprintf(stderr, "Get bd address on hci%d: %s (%d)\n",
|
||||
hdev, strerror(errno), errno);
|
||||
return;
|
||||
}
|
||||
|
||||
sf_ba2str(&di.bdaddr, ssid);
|
||||
if (NULL != ssid)
|
||||
{
|
||||
ssid[0] = bdaddr.b[5];
|
||||
ssid[1] = bdaddr.b[4];
|
||||
ssid[2] = bdaddr.b[3];
|
||||
ssid[3] = bdaddr.b[2];
|
||||
ssid[4] = bdaddr.b[1];
|
||||
ssid[5] = bdaddr.b[0];
|
||||
|
||||
printf("BT Address: %s.\n", ssid);
|
||||
printf("BT_Address: %02x,%02x,%02x,%02x,%02x,%02x.\n", ssid[0], ssid[1], ssid[2], ssid[3], ssid[4], ssid[5]);
|
||||
}
|
||||
|
||||
hci_close_dev(dd);
|
||||
}
|
||||
|
||||
static void cmd_le_adv(int ctl, int hdev)
|
||||
static void set_random_address(int fd)
|
||||
{
|
||||
struct hci_request rq;
|
||||
le_set_advertise_enable_cp advertise_cp;
|
||||
le_set_advertising_parameters_cp adv_params_cp;
|
||||
uint8_t status;
|
||||
int dd, ret;
|
||||
le_set_random_address_cp cmd;
|
||||
|
||||
if (hdev < 0)
|
||||
hdev = hci_get_route(NULL);
|
||||
memset(&cmd, 0, sizeof(cmd));
|
||||
|
||||
dd = hci_open_dev(hdev);
|
||||
if (dd < 0)
|
||||
{
|
||||
perror("Could not open device");
|
||||
return;
|
||||
int urandom_fd;
|
||||
urandom_fd = open("/dev/urandom", O_RDONLY);
|
||||
if (urandom_fd < 0) {
|
||||
fprintf(stderr, "Failed to open /dev/urandom device\n");
|
||||
cmd.bdaddr.b[5] = 0xc0;
|
||||
cmd.bdaddr.b[4] = 0x55;
|
||||
cmd.bdaddr.b[3] = 0x44;
|
||||
cmd.bdaddr.b[2] = 0x33;
|
||||
cmd.bdaddr.b[1] = 0x22;
|
||||
cmd.bdaddr.b[0] = 0x11;
|
||||
|
||||
} else {
|
||||
ssize_t len;
|
||||
|
||||
len = read(urandom_fd, cmd.bdaddr.b, sizeof(cmd.bdaddr.b));
|
||||
if (len < 0 || len != sizeof(cmd.bdaddr.b)) {
|
||||
fprintf(stderr, "Failed to read random data\n");
|
||||
return;
|
||||
}
|
||||
|
||||
cmd.bdaddr.b[5] &= 0x3f;
|
||||
cmd.bdaddr.b[5] |= 0xc0;
|
||||
}
|
||||
|
||||
memset(&adv_params_cp, 0, sizeof(adv_params_cp));
|
||||
adv_params_cp.min_interval = htobs(0x0800);
|
||||
adv_params_cp.max_interval = htobs(0x0800);
|
||||
adv_params_cp.advtype = 0; //mt set
|
||||
adv_params_cp.chan_map = 7;
|
||||
|
||||
memset(&rq, 0, sizeof(rq));
|
||||
rq.ogf = OGF_LE_CTL;
|
||||
rq.ocf = OCF_LE_SET_ADVERTISING_PARAMETERS;
|
||||
rq.cparam = &adv_params_cp;
|
||||
rq.clen = LE_SET_ADVERTISING_PARAMETERS_CP_SIZE;
|
||||
rq.rparam = &status;
|
||||
rq.rlen = 1;
|
||||
|
||||
ret = hci_send_req(dd, &rq, 1000);
|
||||
if (ret < 0)
|
||||
goto done;
|
||||
|
||||
memset(&advertise_cp, 0, sizeof(advertise_cp));
|
||||
advertise_cp.enable = 0x01;
|
||||
|
||||
memset(&rq, 0, sizeof(rq));
|
||||
rq.ogf = OGF_LE_CTL;
|
||||
rq.ocf = OCF_LE_SET_ADVERTISE_ENABLE;
|
||||
rq.cparam = &advertise_cp;
|
||||
rq.clen = LE_SET_ADVERTISE_ENABLE_CP_SIZE;
|
||||
rq.rparam = &status;
|
||||
rq.rlen = 1;
|
||||
|
||||
ret = hci_send_req(dd, &rq, 1000);
|
||||
|
||||
done:
|
||||
hci_close_dev(dd);
|
||||
|
||||
if (ret < 0)
|
||||
{
|
||||
fprintf(stderr, "Can't set advertise mode on hci%d: %s (%d)\n",
|
||||
hdev, strerror(errno), errno);
|
||||
return;
|
||||
}
|
||||
|
||||
if (status)
|
||||
{
|
||||
fprintf(stderr,
|
||||
"LE set advertise enable on hci%d returned status %d\n",
|
||||
hdev, status);
|
||||
return;
|
||||
}
|
||||
if (hci_send_cmd(fd, OGF_LE_CTL, OCF_LE_SET_RANDOM_ADDRESS, sizeof(cmd),
|
||||
&cmd) < 0)
|
||||
perror("Send msg for set random address error");
|
||||
}
|
||||
|
||||
int hciconfig_open_piscan(void)
|
||||
static void set_adv_parameters(int fd)
|
||||
{
|
||||
int ctl = -1;
|
||||
int hdev = 0;
|
||||
le_set_advertising_parameters_cp cmd;
|
||||
|
||||
/* Open HCI socket */
|
||||
if ((ctl = socket(AF_BLUETOOTH, SOCK_RAW, BTPROTO_HCI)) < 0)
|
||||
cmd.min_interval = cpu_to_le16(0x0001);
|
||||
cmd.max_interval = cpu_to_le16(0x0001);
|
||||
//cmd.min_interval = cpu_to_le16(0x0020);
|
||||
//cmd.max_interval = cpu_to_le16(0x0020);
|
||||
|
||||
/* 0x00: Connectable undirected advertising
|
||||
* 0x03: Non connectable undirected advertising
|
||||
* */
|
||||
cmd.advtype = 0x00;
|
||||
/* 0: public address
|
||||
* 1: random address */
|
||||
cmd.own_bdaddr_type = 0x00;
|
||||
cmd.direct_bdaddr_type = 0x00;
|
||||
memset(cmd.direct_bdaddr.b, 0, 6);
|
||||
cmd.chan_map = 0x07;
|
||||
cmd.filter = 0x00;
|
||||
|
||||
if (hci_send_cmd(fd, OGF_LE_CTL, OCF_LE_SET_ADVERTISING_PARAMETERS,
|
||||
sizeof(cmd), &cmd))
|
||||
perror("Send msg for set adv params error");
|
||||
}
|
||||
|
||||
static void set_scan_enable(int fd, uint8_t enable, uint8_t filter_dup)
|
||||
{
|
||||
le_set_scan_enable_cp scan_cp;
|
||||
//uint8_t status;
|
||||
|
||||
if (enable)
|
||||
enable = 0x01;
|
||||
|
||||
memset(&scan_cp, 0, sizeof(scan_cp));
|
||||
scan_cp.enable = enable;
|
||||
scan_cp.filter_dup = filter_dup;
|
||||
|
||||
if (hci_send_cmd(fd, OGF_LE_CTL, OCF_LE_SET_SCAN_ENABLE, sizeof(scan_cp),
|
||||
&scan_cp) < 0)
|
||||
perror("Send cmd for set scan enable error");
|
||||
}
|
||||
|
||||
static void set_adv_enable(int fd, uint8_t enable)
|
||||
{
|
||||
if (enable)
|
||||
enable = 0x01;
|
||||
|
||||
if (hci_send_cmd(fd, OGF_LE_CTL, OCF_LE_SET_ADVERTISE_ENABLE, 1,
|
||||
&enable) < 0)
|
||||
perror("Send cmd for set adv enable error");
|
||||
}
|
||||
|
||||
static void set_adv_data(int fd, const char* name)
|
||||
{
|
||||
le_set_advertising_data_cp cmd;
|
||||
int i = 0;
|
||||
int n;
|
||||
//const char *name = "ADVTEST";
|
||||
|
||||
cmd.length = 0;
|
||||
memset(cmd.data, 0, sizeof(cmd.data));
|
||||
/* set adv data */
|
||||
cmd.data[i] = 0x02; /* Field length */
|
||||
cmd.length += (1 + cmd.data[i++]);
|
||||
cmd.data[i++] = 0x01; /* Flags */
|
||||
/* LE General Discoverable Mode, BR/EDR Not Supported */
|
||||
cmd.data[i++] = (0x02 | 0x04);
|
||||
|
||||
cmd.data[i] = 0x03;
|
||||
cmd.length += (1 + cmd.data[i++]);
|
||||
cmd.data[i++] = 0x03; /* complete list of 15-bit service class uuids */
|
||||
cmd.data[i++] = 0xa0;
|
||||
cmd.data[i++] = 0x0a;
|
||||
|
||||
n = strlen(name);
|
||||
cmd.data[i] = 1 + n;
|
||||
cmd.length += (1 + cmd.data[i++]);
|
||||
cmd.data[i++] = 0x09; /* complete local name */
|
||||
memcpy(&cmd.data[i], name, n);
|
||||
i += n;
|
||||
|
||||
printf("advertise_data, len=%d:\n", i);
|
||||
for (int k = 0; k < i; k++)
|
||||
{
|
||||
perror("Can't open HCI socket.");
|
||||
return -1;
|
||||
printf("%02x ", cmd.data);
|
||||
}
|
||||
printf("\n");
|
||||
|
||||
if (hci_send_cmd(fd, OGF_LE_CTL, OCF_LE_SET_ADVERTISING_DATA,
|
||||
sizeof(cmd), &cmd))
|
||||
perror("Send cmd for set adv data error");
|
||||
|
||||
}
|
||||
|
||||
int hciconfig_start_advertising(const char *ssid)
|
||||
{
|
||||
int hci_fd;
|
||||
|
||||
//printf("Start advertising\n");
|
||||
|
||||
hci_fd = hci_open_dev(0);
|
||||
if (hci_fd < 0)
|
||||
{
|
||||
perror("Failed to open hci dev");
|
||||
return -1;
|
||||
}
|
||||
|
||||
cmd_up(ctl, hdev);
|
||||
usleep(100*1000);
|
||||
//cmd_name(ctl, hdev, g_sf_ble_ssid);
|
||||
//usleep(100*1000);
|
||||
cmd_piscan(ctl, hdev);
|
||||
usleep(100*1000);
|
||||
set_scan_enable(hci_fd, 0, 1);
|
||||
set_adv_enable(hci_fd, 0);
|
||||
set_adv_data(hci_fd, ssid);
|
||||
set_random_address(hci_fd);
|
||||
set_adv_parameters(hci_fd);
|
||||
set_adv_enable(hci_fd, 1);
|
||||
|
||||
cmd_le_adv(ctl, hdev);
|
||||
//usleep(500*1000);
|
||||
//cmd_le_adv(ctl, hdev);
|
||||
|
||||
close(ctl);
|
||||
printf("blue scan.\n");
|
||||
hci_close_dev(hci_fd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int hciconfig_set_name(char *name)
|
||||
int hciconfig_open_device(void)
|
||||
{
|
||||
snprintf(g_sf_ble_ssid, sizeof(g_sf_ble_ssid), "%s",name);
|
||||
printf("set bluename:%s\n",g_sf_ble_ssid);
|
||||
int ctl = -1;
|
||||
int hdev = 0;
|
||||
|
||||
|
@ -214,11 +301,32 @@ int hciconfig_set_name(char *name)
|
|||
perror("Can't open HCI socket.");
|
||||
return -1;
|
||||
}
|
||||
|
||||
cmd_up(ctl, hdev);
|
||||
cmd_name(ctl, hdev, name);
|
||||
usleep(100*1000);
|
||||
|
||||
close(ctl);
|
||||
printf("set bluename.\n");
|
||||
printf("open hci0 device.\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int hciconfig_close_device(void)
|
||||
{
|
||||
int ctl = -1;
|
||||
int hdev = 0;
|
||||
|
||||
/* Open HCI socket */
|
||||
if ((ctl = socket(AF_BLUETOOTH, SOCK_RAW, BTPROTO_HCI)) < 0)
|
||||
{
|
||||
perror("Can't open HCI socket.");
|
||||
return -1;
|
||||
}
|
||||
|
||||
cmd_down(ctl, hdev);
|
||||
|
||||
close(ctl);
|
||||
printf("close hci0 device.\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -233,15 +341,19 @@ int hciconfig_get_address(char *ssid)
|
|||
perror("Can't open HCI socket.");
|
||||
return -1;
|
||||
}
|
||||
|
||||
cmd_up(ctl, hdev);
|
||||
|
||||
if (ioctl(ctl, HCIGETDEVINFO, (void *) &di)) {
|
||||
perror("Can't get device info");
|
||||
}
|
||||
|
||||
cmd_address(ctl, hdev, ssid);
|
||||
usleep(100*1000);
|
||||
|
||||
close(ctl);
|
||||
printf("get blueaddress.\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int hciconfig_conn_le(char *addr)
|
||||
{
|
||||
cmd_lecc(0, addr);
|
||||
|
||||
printf("connect le.\n");
|
||||
return 0;
|
||||
}
|
||||
|
|
3501
code/application/source/sf_app/code/source/sf_blue/src/hcitool.c
Normal file
81
code/application/source/sf_app/code/source/sf_blue/src/sf_blue_app.c
Executable file → Normal file
|
@ -29,6 +29,8 @@
|
|||
#include "sf_systemMng.h"
|
||||
#include <netinet/in.h>
|
||||
#include <unistd.h> //usleep()
|
||||
#include "sf_device.h"
|
||||
#include "sf_message_queue.h"
|
||||
|
||||
#define MSG_BLE_PRE_FIX 0x55AA
|
||||
#define MSG_BLE_END_FIX 0xFFEE
|
||||
|
@ -40,6 +42,32 @@
|
|||
|
||||
static BLE_APP_PACKET_T gst_msgResult = {0};
|
||||
static unsigned int gmsgResultLen = 0;
|
||||
SF_BLE_STATUS_E BleStatus = SF_BLE_BUTT;
|
||||
SF_BLE_STATUS_E sf_get_ble_status(void)
|
||||
{
|
||||
return BleStatus;
|
||||
}
|
||||
|
||||
void sf_set_ble_status(SF_BLE_STATUS_E enStatus)
|
||||
{
|
||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||
if(enStatus < SF_BLE_BUTT)
|
||||
{
|
||||
if(BleStatus != enStatus)
|
||||
{
|
||||
stMessageBuf.arg2 = enStatus;
|
||||
stMessageBuf.arg1 = SF_PARA_CMD_BLE;
|
||||
stMessageBuf.cmdId = CMD_PARA;
|
||||
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||
}
|
||||
BleStatus = enStatus;
|
||||
}
|
||||
|
||||
else
|
||||
SLOGE("Type format error\n");
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
static void sf_clear_poweroff_time(void)
|
||||
{
|
||||
|
@ -147,7 +175,7 @@ static void sf_blue_command_get_camera_para(MSG_DEV_BLE_Param_Get_Rsp_T *CamPara
|
|||
//printf("[sf_app_Get_Camera_Para],snapnum:%d\n",puiPara->snapnum);
|
||||
CamPara->cmdRet = 0;
|
||||
|
||||
CamPara->zoom = puiPara->Zoom;
|
||||
CamPara->zoom = puiPara->Zoom + 1;
|
||||
|
||||
CamPara->cameraMode = (puiPara->CamMode==2)?1:0;
|
||||
|
||||
|
@ -278,7 +306,7 @@ static signed int sf_blue_command_request_process(U8 *val, unsigned int nval, U8
|
|||
UINT8 paraNeedReboot = 0;
|
||||
UINT8 SendingFile = 0;
|
||||
UINT16 tmp = 0;
|
||||
|
||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
|
||||
BLE_APP_PACKET_T msgParse;
|
||||
BLE_APP_PACKET_T *pMsgStruct = NULL;
|
||||
|
@ -288,6 +316,7 @@ static signed int sf_blue_command_request_process(U8 *val, unsigned int nval, U8
|
|||
UINT16 PreFind=0;
|
||||
UINT16 uTemp=0;
|
||||
UINT16 msgTotolLen=0, msgEndVal=0;
|
||||
SINT8 ret = -1;
|
||||
|
||||
for(offset = 0; offset < nval && offset < sizeof(BLE_APP_PACKET_T);)
|
||||
{
|
||||
|
@ -403,7 +432,7 @@ static signed int sf_blue_command_request_process(U8 *val, unsigned int nval, U8
|
|||
{
|
||||
SLOGI("[BLE_SET_CAMERA_Zoom],Zoom:%d\n",puiPara->Zoom);
|
||||
puiPara->Zoom = pMsgStruct->msgBuf.deviceZoomSet.zoom;
|
||||
puiPara->Zoom = (puiPara->Zoom > 4 ? 1 : puiPara->Zoom);
|
||||
puiPara->Zoom = (puiPara->Zoom > 4 ? 1 : puiPara->Zoom) - 1;
|
||||
|
||||
//forbuild sp5kModeGet(&curMode);
|
||||
//curMode = 0;//forbuild
|
||||
|
@ -447,7 +476,7 @@ static signed int sf_blue_command_request_process(U8 *val, unsigned int nval, U8
|
|||
}
|
||||
else if (tmpMode == 1)
|
||||
{
|
||||
puiPara->CamMode = SF_CAM_MODE_PHOTO_VIDEO;
|
||||
puiPara->CamMode = SF_CAM_MODE_VIDEO2;
|
||||
}
|
||||
else if (tmpMode == 2)
|
||||
{
|
||||
|
@ -803,6 +832,50 @@ static signed int sf_blue_command_request_process(U8 *val, unsigned int nval, U8
|
|||
}
|
||||
break;
|
||||
|
||||
case BLE_CONTROL_CAMERA_FormatSDCard:
|
||||
{
|
||||
SLOGI("[BLE_CONTROL_CAMERA_FormatSDCard],format:%d\n",pMsgStruct->msgBuf.ctrlFormat.format);
|
||||
if(pMsgStruct->msgBuf.ctrlFormat.format == 1)
|
||||
{
|
||||
if((sf_in_card_exist()) && (sf_is_card()))
|
||||
{
|
||||
stMessageBuf.arg1 = CMD_SD_FORMAT;
|
||||
stMessageBuf.cmdId = CMD_SD;
|
||||
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||
}
|
||||
sf_set_card_statu(CMD_FORMAT_SD_STA);
|
||||
// while(CMD_FORMAT_SD_STA == sf_get_card_statu())
|
||||
// {
|
||||
// usleep(100*1000);
|
||||
// }
|
||||
ret = sf_get_card_statu();
|
||||
if(ret == CMD_FORMAT_SD_OK)
|
||||
{
|
||||
ret = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = 0x10;
|
||||
}
|
||||
}
|
||||
msgParse.msgBuf.camreaSetRsp.cmdRet = ret;
|
||||
msgParse.msgBuf.camreaSetRsp.suffix = htons(MSG_BLE_END_FIX);
|
||||
msgParse.msglen = htons(sizeof(MSG_DEV_BLE_SET_Rsp_T) + 2*sizeof(UINT16));
|
||||
respFlag = 1;
|
||||
}
|
||||
break;
|
||||
case BLE_CONTROL_CAMERA_Recovery:
|
||||
{
|
||||
SLOGI("[BLE_CONTROL_CAMERA_Recovery]\n");
|
||||
SF_PDT_PARAM_STATISTICS_S *pSifarPara = sf_statistics_param_get();
|
||||
sf_statistics_param_reset(pSifarPara);
|
||||
stMessageBuf.arg1 = SF_PARA_CMD_RESET;
|
||||
stMessageBuf.cmdId = CMD_PARA;
|
||||
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||
paraNeedReboot = 1;
|
||||
respFlag = 2;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
{
|
||||
msgParse.msgBuf.camreaSetRsp.cmdRet = -1;
|
||||
|
|
65
code/application/source/sf_app/code/source/sf_blue/src/sf_blue_app.h
Executable file → Normal file
|
@ -58,6 +58,10 @@ typedef enum
|
|||
BLE_SET_CAMERA_timeLapse = 0x23, //设置相机缩时摄影
|
||||
BLE_SET_CAMERA_PicUponDailyReport = 0x24, //设置DailyReport时是否发送照片.
|
||||
|
||||
//*APP待增加项
|
||||
BLE_CONTROL_CAMERA_FormatSDCard = 0x30,//格式化SD卡
|
||||
BLE_CONTROL_CAMERA_Recovery = 0x32, //恢复出厂设置
|
||||
|
||||
BLE_CMD_MAX = 0x40,
|
||||
} BLE_CMD_E;
|
||||
|
||||
|
@ -67,6 +71,14 @@ typedef enum
|
|||
BLE_CMD_ERR = 0x01, //command error
|
||||
} BLE_ErrCode_t;
|
||||
|
||||
typedef enum sfBLE_STATUS_E
|
||||
{
|
||||
SF_BLE_OK = 0x01,/*BLE start success*/
|
||||
SF_BLE_CON, /*BLE has been connected*/
|
||||
SF_BLE_FAIL, /*BLE start fail*/
|
||||
SF_BLE_BUTT,
|
||||
} SF_BLE_STATUS_E;
|
||||
|
||||
/*--------------------BLE Module Get CMD-------------------------------*/
|
||||
typedef struct
|
||||
{
|
||||
|
@ -365,6 +377,44 @@ typedef struct
|
|||
UINT16 suffix; /* 0xFFEE */
|
||||
} __attribute__((packed)) MSG_DEV_BLE_DebugMode_Set_T;
|
||||
|
||||
/*******相机控制指令结构体***********/
|
||||
typedef struct
|
||||
{
|
||||
UINT8 format; /* 1:format immediately */
|
||||
UINT16 sufix; /* 0xFFEE */
|
||||
} __attribute__((packed)) MSG_DEV_BLE_FormatSDCard_Ctrl_T;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
UINT8 cmdRet; /* 0: mean cmd OK other:mean cmd error */
|
||||
UINT16 suffix; /* 0xFFEE */
|
||||
} __attribute__((packed)) MSG_DEV_BLE_FormatSDCard_Ctrl_RSP_T;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
UINT8 reboot; /* 1: Reboot */
|
||||
UINT16 sufix; /* 0xFFEE */
|
||||
} __attribute__((packed)) MSG_DEV_BLE_REBOOT_Ctrl_T;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
UINT8 cmdRet; /* 0: mean cmd OK other:mean cmd error */
|
||||
UINT16 suffix; /* 0xFFEE */
|
||||
} __attribute__((packed)) MSG_DEV_BLE_REBOOT_Ctrl_RSP_T;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
UINT8 reset; /* reset */
|
||||
UINT16 sufix; /* 0xFFEE */
|
||||
} __attribute__((packed)) MSG_DEV_BLE_Reset_Ctrl_T;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
UINT8 cmdRet; /* 0: mean cmd OK other:mean cmd error */
|
||||
UINT16 suffix; /* 0xFFEE */
|
||||
} __attribute__((packed)) MSG_DEV_BLE_Reset_Ctrl_RSP_T;
|
||||
|
||||
|
||||
/************* APP_MSG_T 数据结构 **************/
|
||||
typedef struct
|
||||
{
|
||||
|
@ -463,6 +513,19 @@ typedef struct
|
|||
|
||||
/*设置调试模式*/
|
||||
MSG_DEV_BLE_DebugMode_Set_T setDebugMode;
|
||||
|
||||
/*******相机控制指令结构体***********/
|
||||
/*格式化SD卡*/
|
||||
MSG_DEV_BLE_FormatSDCard_Ctrl_T ctrlFormat;
|
||||
MSG_DEV_BLE_FormatSDCard_Ctrl_RSP_T rctrlFormat;
|
||||
|
||||
/*重启*/
|
||||
MSG_DEV_BLE_REBOOT_Ctrl_T ctrlReboot;
|
||||
MSG_DEV_BLE_REBOOT_Ctrl_RSP_T rctrlReboot;
|
||||
|
||||
/*恢复出厂设置*/
|
||||
MSG_DEV_BLE_Reset_Ctrl_T ctrlReset;
|
||||
MSG_DEV_BLE_Reset_Ctrl_RSP_T rctrlReset;
|
||||
};
|
||||
} __attribute__((packed)) BLE_APP_MSG_T;
|
||||
typedef struct
|
||||
|
@ -477,6 +540,8 @@ typedef struct
|
|||
unsigned int sf_blue_app_start(void);
|
||||
unsigned int sf_blue_app_stop(void);
|
||||
int sf_set_ble_name(char *name);
|
||||
void sf_set_ble_status(SF_BLE_STATUS_E enStatus);
|
||||
SF_BLE_STATUS_E sf_get_ble_status(void);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
81
code/application/source/sf_app/code/source/sf_blue/src/sf_blue_hal.c
Executable file → Normal file
|
@ -31,9 +31,11 @@
|
|||
#include <net/if.h>
|
||||
#include "sf_blue_app.h"
|
||||
|
||||
extern int hciconfig_start_advertising(const char *ssid);
|
||||
extern int hciconfig_close_device(void);
|
||||
extern int hciconfig_open_device(void);
|
||||
extern int hciconfig_conn_le(char *addr);
|
||||
extern int hciconfig_get_address(char *ssid);
|
||||
extern int hciconfig_set_name(char *name);
|
||||
extern int hciconfig_open_piscan(void);
|
||||
extern int gatt_service_register(BLE_RD rcb, BLE_WR wcb);
|
||||
|
||||
static pthread_t gblue_piscan_task_pid;
|
||||
|
@ -42,7 +44,9 @@ static pthread_t gblue_disconnect_pid;
|
|||
static BLE_RD gst_ble_rcb = NULL;
|
||||
static BLE_WR gst_ble_wcb = NULL;
|
||||
|
||||
static char g_ble_ssid[14] = {0};
|
||||
static char g_ble_bdaddr[6] = {0};
|
||||
static char g_ble_ssid[16] = {0};
|
||||
static char g_ble_connect = 0;
|
||||
|
||||
/*************************************************
|
||||
Function: sf_bluetooth_disconnect_task
|
||||
|
@ -54,13 +58,33 @@ static char g_ble_ssid[14] = {0};
|
|||
*************************************************/
|
||||
static void *sf_bluetooth_disconnect_task(void *arg)
|
||||
{
|
||||
//int count = 0;
|
||||
while (1)
|
||||
{
|
||||
if (access("/tmp/blue_disconnect", F_OK) == 0)
|
||||
{
|
||||
remove("/tmp/blue_disconnect");
|
||||
remove("/tmp/blue_connect");
|
||||
SLOGI("reset piscan.\n");
|
||||
hciconfig_open_piscan();
|
||||
g_ble_connect = 0;
|
||||
sf_set_ble_status(SF_BLE_OK);
|
||||
|
||||
hciconfig_start_advertising(g_ble_ssid);
|
||||
}
|
||||
else if (access("/tmp/blue_connect", F_OK) == 0)
|
||||
{
|
||||
//SF_BLUE_LOGI("blue_connect.\n");
|
||||
g_ble_connect = 1;
|
||||
//sf_clear_poweroff_time();/*reset power off count time*/
|
||||
sf_set_ble_status(SF_BLE_CON);
|
||||
}
|
||||
|
||||
if (access("/tmp/blue_le", F_OK) == 0)
|
||||
{
|
||||
remove("/tmp/blue_le");
|
||||
//char *addr = "2C:C3:E6:DF:59:C0";
|
||||
char *addr = "C0:59:DF:E6:C3:2C";
|
||||
hciconfig_conn_le(addr);
|
||||
}
|
||||
|
||||
usleep(500*1000);
|
||||
|
@ -83,36 +107,6 @@ static void sf_bluetooth_power_enable(void)
|
|||
// system("echo 1 > /sys/class/gpio/gpio44/value");
|
||||
}
|
||||
|
||||
int sf_getb_mac(char *ifName, UINT8 *pbMacAddr)
|
||||
{
|
||||
struct ifreq ifreq;
|
||||
int sock = 0;
|
||||
int i = 0;
|
||||
|
||||
sock = socket(AF_BLUETOOTH, SOCK_STREAM, 0);
|
||||
if(sock < 0)
|
||||
{
|
||||
MLOGE("error sock");
|
||||
return 2;
|
||||
}
|
||||
|
||||
strcpy(ifreq.ifr_name, ifName);
|
||||
if(ioctl(sock,SIOCGIFHWADDR,&ifreq) < 0)
|
||||
{
|
||||
MLOGE("error ioctl");
|
||||
return 3;
|
||||
}
|
||||
|
||||
for(i = 0; i < 6; i++)
|
||||
{
|
||||
pbMacAddr[i]=(unsigned char)ifreq.ifr_hwaddr.sa_data[i];
|
||||
}
|
||||
|
||||
MLOGI("MAC: %02X-%02X-%02X-%02X-%02X-%02X\n", pbMacAddr[0],pbMacAddr[1],pbMacAddr[2],pbMacAddr[3],pbMacAddr[4],pbMacAddr[5]);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
Function: sf_bluetooth_scaning_task
|
||||
Description: Bluetooth radio on and set to low power mode
|
||||
|
@ -156,10 +150,9 @@ static void *sf_bluetooth_piscan_task(void *arg)
|
|||
}
|
||||
}
|
||||
|
||||
char ssid[14]= {0};
|
||||
hciconfig_get_address(ssid);
|
||||
snprintf(g_ble_ssid, sizeof(g_ble_ssid), "X-PRO_%s",ssid);
|
||||
hciconfig_set_name(g_ble_ssid);
|
||||
hciconfig_get_address(g_ble_bdaddr);
|
||||
|
||||
snprintf(g_ble_ssid, sizeof(g_ble_ssid), "X-PRO_%02X%02X%02X",g_ble_bdaddr[3],g_ble_bdaddr[4],g_ble_bdaddr[5]);
|
||||
sf_set_ble_name(g_ble_ssid);
|
||||
|
||||
system("dbus-daemon --system");
|
||||
|
@ -187,11 +180,17 @@ static void *sf_bluetooth_piscan_task(void *arg)
|
|||
}
|
||||
}
|
||||
}
|
||||
//sleep(15);
|
||||
printf("%s:%d --------------test blu------------\n",__FUNCTION__,__LINE__);
|
||||
sleep(2);
|
||||
hciconfig_open_device();
|
||||
usleep(200*1000);
|
||||
|
||||
hciconfig_open_piscan();
|
||||
//!< start to advertise
|
||||
hciconfig_start_advertising(g_ble_ssid);
|
||||
|
||||
//!< register gatt callback
|
||||
gatt_service_register(gst_ble_rcb, gst_ble_wcb);
|
||||
|
||||
sf_set_ble_status(SF_BLE_OK);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
1
code/application/source/sf_app/code/source/sf_blue/src/sf_blue_hal.h
Executable file → Normal file
|
@ -31,6 +31,7 @@ extern "C" {
|
|||
typedef int (*BLE_RD)(unsigned char **, unsigned int *);
|
||||
typedef int (*BLE_WR)(unsigned char *, unsigned int, unsigned char **, unsigned int *);
|
||||
|
||||
void sf_blue_hal_get_ssid(char *ssid);
|
||||
unsigned int sf_blue_hal_init(BLE_RD rcb, BLE_WR wcb);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
@ -1348,7 +1348,7 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen)
|
|||
}
|
||||
else if (tmpMode == 1)
|
||||
{
|
||||
puiPara->CamMode = SF_CAM_MODE_PHOTO_VIDEO;
|
||||
puiPara->CamMode = SF_CAM_MODE_VIDEO2;
|
||||
}
|
||||
else if (tmpMode == 2)
|
||||
{
|
||||
|
@ -1362,7 +1362,7 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen)
|
|||
int iCurrMode = System_GetState(SYS_STATE_CURRMODE);
|
||||
int iNextMode = PRIMARY_MODE_PHOTO;
|
||||
|
||||
if((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO))
|
||||
if((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_VIDEO2))
|
||||
{
|
||||
iNextMode = PRIMARY_MODE_PHOTO;
|
||||
}
|
||||
|
@ -2652,7 +2652,7 @@ void sf_wifi_hw_init(void)
|
|||
sprintf(sSSID,"REVEAL_%02X%02X%02X",smac[3],smac[4],smac[5]);
|
||||
|
||||
strcpy(SSID_STR, sSSID);
|
||||
|
||||
snprintf((char *)puiPara->strSSID, sizeof(puiPara->strSSID), "%s", (char *)SSID_STR);
|
||||
ret = system("ifconfig wlan0 192.168.1.1 netmask 255.255.255.0 up");
|
||||
//ret = system("hostapd -ddd /appfs/etc/hostapd/hostapd-8189.conf &");
|
||||
//ret = system("udhcpd /appfs/etc/udhcpd-8189.conf");
|
||||
|
@ -2685,6 +2685,7 @@ void sf_wifi_hw_init(void)
|
|||
sprintf(sSSID,"REVEAL_%02X%02X%02X",smac[3],smac[4],smac[5]);
|
||||
|
||||
strcpy(SSID_STR, sSSID);
|
||||
snprintf((char *)puiPara->strSSID, sizeof(puiPara->strSSID), "%s", (char *)SSID_STR);
|
||||
sprintf(scmd,"echo \"ap0 alg_cfg tpc_mode 0\" >/sys/hisys/hipriv ");
|
||||
ret =system(scmd);
|
||||
sprintf(scmd,"echo \"ap0 intrf_mode 0 0 0 0 0\" >/sys/hisys/hipriv ");
|
||||
|
|
|
@ -15,6 +15,14 @@ typedef enum MCU_FLAG_INIT {
|
|||
HD_FLAG_INIT_MAX_CNT = 32, //flag max bit cnt is 32
|
||||
} HD_FLAG_INIT;
|
||||
|
||||
typedef enum sfBLE_STATUS_E
|
||||
{
|
||||
SF_BLE_OK = 0x01,/*BLE start success*/
|
||||
SF_BLE_CON, /*BLE has been connected*/
|
||||
SF_BLE_FAIL, /*BLE start fail*/
|
||||
SF_BLE_BUTT,
|
||||
} SF_BLE_STATUS_E;
|
||||
|
||||
void sf_mode_detect(void);
|
||||
int sf_pir_statu_read(void);
|
||||
void sf_set_pir_power_off_flag(BOOL flag);
|
||||
|
@ -146,4 +154,6 @@ BOOL sf_cmd_para_printf(unsigned char argc, char **argv);
|
|||
BOOL cmd_blu_switch(unsigned char argc, char **argv);
|
||||
BOOL sf_ota_trigger(void);
|
||||
BOOL sf_ota_result(void);
|
||||
SF_BLE_STATUS_E sf_get_ble_status(void);
|
||||
void sf_set_ble_status(SF_BLE_STATUS_E enStatus);
|
||||
#endif
|
||||
|
|
|
@ -95,6 +95,8 @@ static pthread_mutex_t Param_mutexLock;
|
|||
static int shared_condition = 1;
|
||||
static SINT32 WifiSocket = 0;
|
||||
static UINT8 UiparaFlag = 0;
|
||||
static SF_BLE_STATUS_E BleStatus = SF_BLE_BUTT;
|
||||
|
||||
static SF_THREAD_S UpgradeTskParam =
|
||||
{
|
||||
.IsRun = 0,
|
||||
|
@ -303,7 +305,7 @@ void sf_mode_detect(void)
|
|||
//countDownOffFlg = 0;
|
||||
}
|
||||
|
||||
if(puiPara->AutoOffSwitch == 0 || (0x04 == NetWorkFlag/*SF_4G_SENDING*/) || (0x05 == NetWorkFlag/*SF_4G_SEARCHING*/) || (sf_get_fw_update()) || (sf_get_module_update())/*|| (appActiveStateGet() == APP_STATE_CUSTOMER_TRANSFER)*/)
|
||||
if(puiPara->AutoOffSwitch == 0 || SF_BLE_CON == sf_get_ble_status() || (0x04 == NetWorkFlag/*SF_4G_SENDING*/) || (0x05 == NetWorkFlag/*SF_4G_SEARCHING*/) || (sf_get_fw_update()) || (sf_get_module_update())/*|| (appActiveStateGet() == APP_STATE_CUSTOMER_TRANSFER)*/)
|
||||
{
|
||||
AutoOfftime=0;
|
||||
}
|
||||
|
@ -484,7 +486,7 @@ BOOL sf_cmd_video_size(unsigned char argc, char **argv)
|
|||
int iCurrMode = System_GetState(SYS_STATE_CURRMODE);
|
||||
int iNextMode = PRIMARY_MODE_PHOTO;
|
||||
|
||||
if((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO))
|
||||
if((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO) || (puiPara->CamMode == SF_CAM_MODE_VIDEO2))
|
||||
{
|
||||
iNextMode = PRIMARY_MODE_PHOTO;
|
||||
}
|
||||
|
@ -1113,7 +1115,7 @@ BOOL cmd_cam_mode(unsigned char argc, char **argv)
|
|||
int iNextMode = PRIMARY_MODE_PHOTO;
|
||||
if(value < SF_CAM_MODE_MAX){
|
||||
puiPara->CamMode = value;
|
||||
if((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO))
|
||||
if((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_VIDEO2))
|
||||
{
|
||||
iNextMode = PRIMARY_MODE_PHOTO;
|
||||
}
|
||||
|
@ -1703,6 +1705,8 @@ static SINT32 sf_cardv_proccess_cmd_para_update(SF_MESSAGE_BUF_S *pMessageBuf)
|
|||
case SF_PARA_CMD_SIG:
|
||||
sf_cardv_para_signaling_start();
|
||||
break;
|
||||
case SF_PARA_CMD_BLE:
|
||||
|
||||
case SF_PARA_CMD_SIMISINSERT:
|
||||
sf_cardv_set_sim_insert(pMessageBuf->arg2);
|
||||
break;
|
||||
|
@ -2055,6 +2059,8 @@ void sf_hd_flag_clear_done(HD_FLAG_INIT flag)
|
|||
vos_flag_clr(sf_hd_flag_id, (FLGPTN)-1);
|
||||
}
|
||||
|
||||
#if !SF_UBOOT_UPDATA_FW
|
||||
|
||||
static UINT32 sf_fwupdate(void)
|
||||
{
|
||||
DBG_FUNC_BEGIN("\r\n");
|
||||
|
@ -2079,7 +2085,7 @@ static UINT32 sf_fwupdate(void)
|
|||
DBG_FUNC_END("\r\n");
|
||||
return result;
|
||||
}
|
||||
|
||||
#else
|
||||
BOOL sf_ota_trigger(void)
|
||||
{
|
||||
UINT32 uiUserData = WDT_OTA_MAKEFOURCC(WDT_OTA_STS_LINUX_TRIGGER);
|
||||
|
@ -2087,7 +2093,7 @@ BOOL sf_ota_trigger(void)
|
|||
|
||||
Ux_PostEvent(NVTEVT_ALGMSG_FOCUSEND, 0);
|
||||
|
||||
sprintf(cmd, "mem w %x %x",WDT_REG_ADDR(WDT_DATA_OFS),uiUserData);
|
||||
sprintf(cmd, "mem w %x %lx",WDT_REG_ADDR(WDT_DATA_OFS),uiUserData);
|
||||
system(cmd);
|
||||
system("watchdog -T 1 -t 5 /dev/watchdog");
|
||||
|
||||
|
@ -2141,6 +2147,8 @@ BOOL sf_ota_result(void)
|
|||
|
||||
return TRUE;
|
||||
}
|
||||
#endif
|
||||
|
||||
void* sf_sys_do_upgrade(void *arg)
|
||||
{
|
||||
//int s32Ret = 0;
|
||||
|
@ -2678,7 +2686,7 @@ void* sf_cardv_cap_thread(void *arg)
|
|||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||
int iCurrMode = System_GetState(SYS_STATE_CURRMODE);
|
||||
int iNextMode = PRIMARY_MODE_PHOTO;
|
||||
if((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO))
|
||||
if((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_VIDEO2))
|
||||
{
|
||||
iNextMode = PRIMARY_MODE_PHOTO;
|
||||
}
|
||||
|
@ -3202,3 +3210,21 @@ BOOL cmd_blu_switch(unsigned char argc, char **argv)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
SF_BLE_STATUS_E sf_get_ble_status(void)
|
||||
{
|
||||
return BleStatus;
|
||||
}
|
||||
|
||||
void sf_set_ble_status(SF_BLE_STATUS_E enStatus)
|
||||
{
|
||||
if(enStatus < SF_BLE_BUTT)
|
||||
{
|
||||
BleStatus = enStatus;
|
||||
}
|
||||
|
||||
else
|
||||
SLOGE("Type format error\n");
|
||||
return;
|
||||
|
||||
}
|
|
@ -209,6 +209,10 @@ UINT32 DrvGPIO_GetPhotoMovieModeFromMonitor(void)
|
|||
{
|
||||
g_uiBootMode = DX_HUNTING_MODE_MOVIE;
|
||||
}
|
||||
else if(SF_CAM_MODE_VIDEO2 == puiPara->CamMode)
|
||||
{
|
||||
g_uiBootMode = DX_HUNTING_MODE_MOVIE2;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_uiBootMode = DX_HUNTING_MODE_PHOTO_MOVIE;
|
||||
|
|
|
@ -33,10 +33,11 @@
|
|||
enum _DX_HUNTING_MODE //Must match with _HUNTING_MODE in UIInfo.h
|
||||
{
|
||||
/* for hunting camera application */
|
||||
DX_HUNTING_MODE_PHOTO = 0,
|
||||
DX_HUNTING_MODE_MOVIE,
|
||||
DX_HUNTING_MODE_PHOTO_MOVIE,
|
||||
DX_HUNTING_MODE_OTHER,
|
||||
DX_HUNTING_MODE_PHOTO = 0, /* PhotoFast */
|
||||
DX_HUNTING_MODE_MOVIE, /* MovieFast */
|
||||
DX_HUNTING_MODE_PHOTO_MOVIE, /* PhotoFast -> MovieFast */
|
||||
DX_HUNTING_MODE_OTHER, /* for boot linux */
|
||||
DX_HUNTING_MODE_MOVIE2, /* MovieFast + sensor sized photo with slice encode */
|
||||
/* for life camera application */
|
||||
DX_HUNTING_MODE_CAMERA_PHOTO = 100,
|
||||
DX_HUNTING_MODE_CAMERA_MOVIE,
|
||||
|
|
|
@ -851,55 +851,13 @@ void flow_preview_get_path(HD_PATH_ID *pPath, FLOW_PREIVEW_PATH PathType, UINT32
|
|||
|
||||
extern void Set_NIGHTMODE(UINT32 id, UINT8 isSnapVideo);
|
||||
extern void DrvGOIO_Turn_Onoff_IRCUT(UINT8 onoff);
|
||||
int flow_preview(void)
|
||||
|
||||
INT32 flow_preview_load_sen_cfg(void)
|
||||
{
|
||||
int ret;
|
||||
// int join_ret;
|
||||
VK_TASK_HANDLE handle_sensor = 0;
|
||||
VK_TASK_HANDLE handle_cap_proc = 0;
|
||||
VK_TASK_HANDLE handle_preview = 0;
|
||||
// int policy;
|
||||
INT32 ret = E_OK;
|
||||
HD_RESULT hd_ret = HD_OK;
|
||||
PHOTO_SENSOR_INFO sen_cfg = {0};
|
||||
PHOTO_SENSOR_INFO *pSenCfg = &sen_cfg;
|
||||
HD_RESULT hd_ret;
|
||||
// struct sched_param schedparam = {0};
|
||||
T_CFLG cflg = {0};
|
||||
FLGPTN flag_ptn;
|
||||
|
||||
#if (_PACKAGE_DISPLAY_)
|
||||
VK_TASK_HANDLE handle_videoout = 0;
|
||||
#endif
|
||||
|
||||
if(!flag_task){
|
||||
if ((ret = vos_flag_create(&flag_task, &cflg, "flow_preview")) != E_OK) {
|
||||
DBG_ERR("create flag failed!(%d)\n", ret);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
// quick sensor setup
|
||||
vos_flag_clr(flag_task, FLAG_SENSOR_TASK_EXIT);
|
||||
handle_sensor = vos_task_create(thread_sensor, NULL, "init_sensor", 10, DEFAULT_TASK_STACK_SIZE);
|
||||
if(!handle_sensor){
|
||||
DBG_ERR("create thread_sensor failed\r\n");
|
||||
return -1;
|
||||
}
|
||||
else
|
||||
vos_task_resume(handle_sensor);
|
||||
|
||||
//hd_common_init(including vds), must wait until insmod_capture()
|
||||
fastboot_wait_done(BOOT_INIT_CAPTURE);
|
||||
|
||||
// init hdal
|
||||
ret = fastflow_common_init();
|
||||
if (ret != HD_OK) {
|
||||
DBG_ERR("init fail\r\n");
|
||||
}
|
||||
ret = flowpreview_mem_relayout();
|
||||
if (ret != HD_OK) {
|
||||
DBG_ERR("relayout fail\r\n");
|
||||
}
|
||||
|
||||
//load ae/awb/iq
|
||||
System_GetSensorInfo(0, SENSOR_AE_PATH, &(sen_cfg.ae_path));
|
||||
System_GetSensorInfo(0, SENSOR_AWB_PATH, &(sen_cfg.awb_path));
|
||||
|
@ -988,8 +946,59 @@ int flow_preview(void)
|
|||
if ((hd_ret = vendor_isp_uninit()) != HD_OK) {
|
||||
DBG_ERR("vendor_isp_uninit fail(%d)\n", hd_ret);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
int flow_preview(void)
|
||||
{
|
||||
int ret;
|
||||
// int join_ret;
|
||||
VK_TASK_HANDLE handle_sensor = 0;
|
||||
VK_TASK_HANDLE handle_cap_proc = 0;
|
||||
VK_TASK_HANDLE handle_preview = 0;
|
||||
// int policy;
|
||||
// PHOTO_SENSOR_INFO sen_cfg = {0};
|
||||
// PHOTO_SENSOR_INFO *pSenCfg = &sen_cfg;
|
||||
// HD_RESULT hd_ret;
|
||||
// struct sched_param schedparam = {0};
|
||||
T_CFLG cflg = {0};
|
||||
FLGPTN flag_ptn;
|
||||
|
||||
#if (_PACKAGE_DISPLAY_)
|
||||
VK_TASK_HANDLE handle_videoout = 0;
|
||||
#endif
|
||||
|
||||
if(!flag_task){
|
||||
if ((ret = vos_flag_create(&flag_task, &cflg, "flow_preview")) != E_OK) {
|
||||
DBG_ERR("create flag failed!(%d)\n", ret);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
// quick sensor setup
|
||||
vos_flag_clr(flag_task, FLAG_SENSOR_TASK_EXIT);
|
||||
handle_sensor = vos_task_create(thread_sensor, NULL, "init_sensor", 10, DEFAULT_TASK_STACK_SIZE);
|
||||
if(!handle_sensor){
|
||||
DBG_ERR("create thread_sensor failed\r\n");
|
||||
return -1;
|
||||
}
|
||||
else
|
||||
vos_task_resume(handle_sensor);
|
||||
|
||||
//hd_common_init(including vds), must wait until insmod_capture()
|
||||
fastboot_wait_done(BOOT_INIT_CAPTURE);
|
||||
|
||||
// init hdal
|
||||
ret = fastflow_common_init();
|
||||
if (ret != HD_OK) {
|
||||
DBG_ERR("init fail\r\n");
|
||||
}
|
||||
ret = flowpreview_mem_relayout();
|
||||
if (ret != HD_OK) {
|
||||
DBG_ERR("relayout fail\r\n");
|
||||
}
|
||||
|
||||
flow_preview_load_sen_cfg();
|
||||
vos_flag_clr(flag_task, FLAG_CAP_PROC_TASK_EXIT);
|
||||
handle_cap_proc = vos_task_create(thread_cap_proc, NULL, "cap_proc", 10, DEFAULT_TASK_STACK_SIZE);
|
||||
if(!handle_cap_proc){
|
||||
|
|
|
@ -19,4 +19,5 @@ extern void flow_preview_close_module(void);
|
|||
extern void flow_preview_uninit_module(void);
|
||||
extern void flow_preview_set_stop_flag(BOOL flag);
|
||||
extern BOOL flow_preview_get_stop_flag(void);
|
||||
extern INT32 flow_preview_load_sen_cfg(void);
|
||||
#endif
|
|
@ -634,7 +634,7 @@ static void insmod_encoder(void)
|
|||
|
||||
vos_perf_list_mark(__func__, __LINE__, 1);
|
||||
} else { //fastboot
|
||||
fwload_wait_done(CODE_SECTION_05);
|
||||
fwload_wait_done(CODE_SECTION_06);
|
||||
|
||||
/* media encoder */
|
||||
#if (_PACKAGE_VIDEO_)
|
||||
|
@ -967,7 +967,7 @@ static void fastboot(void)
|
|||
vos_task_resume(handle_photo_filenaming);
|
||||
|
||||
break;
|
||||
|
||||
case DX_HUNTING_MODE_MOVIE2:
|
||||
case DX_HUNTING_MODE_MOVIE:
|
||||
case DX_HUNTING_MODE_CAMERA_MOVIE:
|
||||
|
||||
|
@ -984,11 +984,7 @@ static void fastboot(void)
|
|||
// #endif
|
||||
#endif
|
||||
|
||||
// wait all text-code loaded
|
||||
fwload_wait_done(CODE_SECTION_10);
|
||||
|
||||
System_OnPowerPreInit();
|
||||
System_OnVideoFastbootInit();
|
||||
fwload_wait_done(CODE_SECTION_06);
|
||||
|
||||
handle_movie_filenaming = vos_task_create(MovieFast_InitFileNamingThread, "init_fn", NULL, 10, 8192);
|
||||
if (!handle_movie_filenaming) {
|
||||
|
@ -997,7 +993,6 @@ static void fastboot(void)
|
|||
else
|
||||
vos_task_resume(handle_movie_filenaming);
|
||||
|
||||
fastboot_wait_done(BOOT_INIT_FILENAMINGOK);
|
||||
|
||||
handle_movie_moviemode = vos_task_create(MovieFast_InitMovieModeThread, "init_movie", NULL, 10, 8192);
|
||||
if (!handle_movie_moviemode) {
|
||||
|
@ -1006,6 +1001,10 @@ static void fastboot(void)
|
|||
else
|
||||
vos_task_resume(handle_movie_moviemode);
|
||||
|
||||
/* GxTime, for stamp */
|
||||
fwload_wait_done(CODE_SECTION_10);
|
||||
System_OnPowerPreInit();
|
||||
System_OnVideoFastbootInit();
|
||||
break;
|
||||
|
||||
case DX_HUNTING_MODE_OTHER: /* boot linux only */
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#include "PrjCfg.h"
|
||||
#include "sys_fwload.h"
|
||||
#include "sys_storage_partition.h"
|
||||
#include "DxHunting.h"
|
||||
|
||||
//#NT#PARTIAL_COMPRESS, we use rtos-main size + 1 block size
|
||||
#define FW_PARTIAL_COMPRESS_WORK_BUF_SIZE 0x320000
|
||||
|
@ -30,11 +31,16 @@ static ID fwload_flg_id = 0;
|
|||
static UINT32 UserSection_Load[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||
|
||||
//This array is sort by loading order
|
||||
static UINT32 UserSection_Order_full[] = {
|
||||
static UINT32 UserSection_Order_common[] = {
|
||||
CODE_SECTION_02, CODE_SECTION_03, CODE_SECTION_04, CODE_SECTION_05, CODE_SECTION_06,
|
||||
CODE_SECTION_07, CODE_SECTION_08, CODE_SECTION_09, CODE_SECTION_10, FWSRV_PL_BURST_END_TAG
|
||||
};
|
||||
|
||||
static UINT32 UserSection_Order_movie_fast_mode2[] = {
|
||||
CODE_SECTION_02, CODE_SECTION_03, CODE_SECTION_04, CODE_SECTION_06, CODE_SECTION_05,
|
||||
CODE_SECTION_07, CODE_SECTION_08, CODE_SECTION_09, CODE_SECTION_10, FWSRV_PL_BURST_END_TAG
|
||||
};
|
||||
|
||||
int fwload_init(void)
|
||||
{
|
||||
vos_flag_create(&fwload_flg_id, NULL, "fwload_flg_id");
|
||||
|
@ -168,7 +174,14 @@ int fwload_partload(void)
|
|||
|
||||
// start partial load
|
||||
void (*LoadCallback)(const UINT32 Idx) = UserSection_LoadCb;
|
||||
UINT32 *SecOrderTable = UserSection_Order_full;
|
||||
UINT32 *SecOrderTable = NULL;
|
||||
|
||||
if(DrvGPIO_GetPhotoMovieModeFromMonitor() == DX_HUNTING_MODE_MOVIE2){
|
||||
SecOrderTable = UserSection_Order_movie_fast_mode2;
|
||||
}
|
||||
else{
|
||||
SecOrderTable = UserSection_Order_common;
|
||||
}
|
||||
|
||||
LoadCallback(CODE_SECTION_01); // 1st part has loaded by loader
|
||||
|
||||
|
|
|
@ -6,9 +6,12 @@
|
|||
#include "SysSensor.h"
|
||||
#include <kwrap/debug.h>
|
||||
#include "flow_boot_logo.h"
|
||||
#include "UIApp/PhotoFast/PhotoFastSliceEncode.h"
|
||||
#include "UIAppPhoto_Param.h"
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
#include "sf_mcu.h"
|
||||
#include <sf_mcu.h>
|
||||
#endif
|
||||
#include "DxHunting.h"
|
||||
//#define ENABLE 1
|
||||
//#define DISABLE 0
|
||||
|
||||
|
@ -106,7 +109,22 @@
|
|||
|
||||
static HD_COMMON_MEM_INIT_CONFIG mem_cfg = {0};
|
||||
|
||||
static void Movie_CommPoolInit_Mode1(void);
|
||||
static void Movie_CommPoolInit_Mode2(void);
|
||||
|
||||
void Movie_CommPoolInit(void)
|
||||
{
|
||||
UINT32 mode = DrvGPIO_GetPhotoMovieModeFromMonitor();
|
||||
|
||||
if(mode == DX_HUNTING_MODE_MOVIE || mode == DX_HUNTING_MODE_PHOTO_MOVIE){
|
||||
Movie_CommPoolInit_Mode1();
|
||||
}
|
||||
else{ /* DX_HUNTING_MODE_MOVIE2 */
|
||||
Movie_CommPoolInit_Mode2();
|
||||
}
|
||||
}
|
||||
|
||||
static void Movie_CommPoolInit_Mode1(void)
|
||||
{
|
||||
UINT32 id=0;
|
||||
UINT32 vcap_buf_size = 0;
|
||||
|
@ -226,6 +244,78 @@ void Movie_CommPoolInit(void)
|
|||
|
||||
ImageApp_MovieMulti_Config(MOVIE_CONFIG_MEM_POOL_INFO, (UINT32)&mem_cfg);
|
||||
}
|
||||
|
||||
static void Movie_CommPoolInit_Mode2(void)
|
||||
{
|
||||
UINT32 id=0;
|
||||
UINT32 vcap_buf_size = 0;
|
||||
HD_VIDEO_PXLFMT vcap_fmt = HD_VIDEO_PXLFMT_RAW12;
|
||||
|
||||
const UINT32 vdo_size_w = 2592;
|
||||
const UINT32 vdo_size_h = 1944;
|
||||
|
||||
const UINT32 main_size_w = 1920;
|
||||
const UINT32 main_size_h = 1080;
|
||||
|
||||
const UINT32 clone_size_w = 640;
|
||||
const UINT32 clone_size_h = 360;
|
||||
|
||||
|
||||
/*******************************************************************
|
||||
* VCap + Main
|
||||
*******************************************************************/
|
||||
|
||||
System_GetSensorInfo(id, SENSOR_CAPOUT_FMT, &vcap_fmt);
|
||||
|
||||
/* yuv */
|
||||
if (HD_VIDEO_PXLFMT_CLASS(vcap_fmt) == HD_VIDEO_PXLFMT_CLASS_YUV) {
|
||||
vcap_buf_size = VDO_YUV_BUFSIZE(vdo_size_w, vdo_size_h, vcap_fmt);
|
||||
}
|
||||
/* raw */
|
||||
else {
|
||||
vcap_buf_size = VDO_RAW_BUFSIZE(vdo_size_w, vdo_size_h, vcap_fmt);
|
||||
}
|
||||
|
||||
#if (MOVIE_DIRECT_FUNC == ENABLE)
|
||||
if (id == 0) {
|
||||
vcap_buf_size = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
mem_cfg.pool_info[id].type = HD_COMMON_MEM_COMMON_POOL;
|
||||
mem_cfg.pool_info[id].blk_size = DBGINFO_BUFSIZE() +
|
||||
vcap_buf_size +
|
||||
VDO_CA_BUF_SIZE(CA_WIN_NUM_W, CA_WIN_NUM_H) +
|
||||
VDO_LA_BUF_SIZE(LA_WIN_NUM_W, LA_WIN_NUM_H);
|
||||
mem_cfg.pool_info[id].blk_cnt = 6;
|
||||
mem_cfg.pool_info[id].ddr_id = DDR_ID0;
|
||||
|
||||
/*******************************************************************
|
||||
* Main
|
||||
*******************************************************************/
|
||||
id ++;
|
||||
mem_cfg.pool_info[id].type = HD_COMMON_MEM_COMMON_POOL;
|
||||
mem_cfg.pool_info[id].blk_size = DBGINFO_BUFSIZE() + VDO_YUV_BUFSIZE(main_size_w, main_size_h, HD_VIDEO_PXLFMT_YUV420);
|
||||
mem_cfg.pool_info[id].blk_cnt = 4;
|
||||
mem_cfg.pool_info[id].ddr_id = DDR_ID0;
|
||||
|
||||
/*******************************************************************
|
||||
* Clone
|
||||
*******************************************************************/
|
||||
id ++;
|
||||
mem_cfg.pool_info[id].type = HD_COMMON_MEM_COMMON_POOL;
|
||||
mem_cfg.pool_info[id].blk_size = DBGINFO_BUFSIZE() + VDO_YUV_BUFSIZE(clone_size_w, clone_size_h, HD_VIDEO_PXLFMT_YUV420);
|
||||
mem_cfg.pool_info[id].blk_cnt = 4;
|
||||
mem_cfg.pool_info[id].ddr_id = DDR_ID0;
|
||||
|
||||
|
||||
extern MOVIE_ALG_INFO gMovie_Alg_Info[];
|
||||
UIAPP_PHOTO_SENSOR_INFO *sensor_info = UIAppPhoto_get_SensorInfo(0);
|
||||
gMovie_Alg_Info[0].path13.ImgSize = (USIZE) {sensor_info->sSize.w, sensor_info->sSize.h};
|
||||
|
||||
ImageApp_MovieMulti_Config(MOVIE_CONFIG_MEM_POOL_INFO, (UINT32)&mem_cfg);
|
||||
}
|
||||
|
||||
void Movie_CommPool_AI2_Init(void)
|
||||
{
|
||||
#if (ALG_FUNC_AI2 == ENABLE)
|
||||
|
|
|
@ -32,7 +32,12 @@
|
|||
#include "DxHunting.h"
|
||||
#include "flow_preview.h"
|
||||
#include <kwrap/cmdsys.h>
|
||||
|
||||
#include "UIApp/PhotoFast/PhotoFast.h"
|
||||
#include "UIApp/PhotoFast/PhotoFastSliceEncode.h"
|
||||
#include "UIApp/PhotoFast/PhotoFastCapDateImprint.h"
|
||||
#include "UIAppPhoto_Param.h"
|
||||
#include "sys_fwload.h"
|
||||
#include "../lfqueue/lfqueue.h"
|
||||
#if defined(_UI_STYLE_LVGL_)
|
||||
#include "flow_lvgl.h"
|
||||
#endif
|
||||
|
@ -57,14 +62,30 @@
|
|||
#define FLG_EXE_MOVIE_RECSTART FLGPTN_BIT(1) ///< trigger display task
|
||||
#define FLG_EXE_MOVIE_RECSTOP FLGPTN_BIT(2) ///< stop task
|
||||
|
||||
#define VDO_YUV_BUFSIZE(w, h, pxlfmt) ALIGN_CEIL_4(((w) * (h) * HD_VIDEO_PXLFMT_BPP(pxlfmt)) / 8)
|
||||
|
||||
typedef enum {
|
||||
MOVIEFAST_IQ_VIDEO,
|
||||
MOVIEFAST_IQ_PHOTO,
|
||||
} MOVIEFAST_IQ_CFG;
|
||||
|
||||
typedef struct {
|
||||
void* va;
|
||||
UINT32 size;
|
||||
char path[256];
|
||||
HD_VIDEO_FRAME frame;
|
||||
HD_PATH_ID vprc_path_id;
|
||||
} MOVIEFAST_WRITE_QUEUE_PARAM;
|
||||
/**********************************************************************************
|
||||
* independent thumbnail
|
||||
*********************************************************************************/
|
||||
|
||||
static char thumb_current_path_main[256] = {'\0'};
|
||||
static char thumb_current_path_clone[256] = {'\0'};
|
||||
static lfqueue_t write_queue = {0};
|
||||
|
||||
#define MOVIE_ROOT_PATH "A:\\Novatek\\"
|
||||
#define MOIVE2_YUV_PATH "A:\\MOVIE2.yuv420"
|
||||
#define FILE_SN_MAX 99999
|
||||
#define FILEDB_MAX_NUM 5000
|
||||
#define MOVIE_THUMB_WIDTH 640
|
||||
|
@ -78,9 +99,13 @@ static UINT32 g_moviefast_tsk_run = 1;
|
|||
static UINT32 g_moviefast_poweroff_tsk_run = 1;
|
||||
static THREAD_HANDLE g_moviefast_tsk_id = 0;
|
||||
static THREAD_HANDLE g_moviefast_power_off_tsk_id = 0;
|
||||
static THREAD_HANDLE g_moviefast_write_tsk_id = 0;
|
||||
static BOOL g_bIsRecStatus = FALSE;
|
||||
static VOS_TICK g_rec_start_tick = 0;
|
||||
|
||||
static VOS_TICK g_alg_start_time= 0;
|
||||
static VOS_TICK g_alg_end_time= 0;
|
||||
static VOS_TICK g_vprc_trigger_frm_time= 0;
|
||||
static UINT32 g_vprc_trigger_frm_count= 0;
|
||||
|
||||
//local function
|
||||
static void MovieFast_OnRecStart(void);
|
||||
|
@ -89,6 +114,7 @@ static void MovieFast_CmdTsk_Exit(void);
|
|||
static int MovieFast_GetWaterLogoSource(const UINT32 recWidth,WATERLOGO_BUFFER *waterSrc);
|
||||
static void MovieFast_ShutDown(void);
|
||||
static void MovieFast_Close(void);
|
||||
static void MovieFast_Load_Sen_Cfg(MOVIEFAST_IQ_CFG cfg);
|
||||
|
||||
static VOID MovieFast_Set_RecStartTick(VOS_TICK tick)
|
||||
{
|
||||
|
@ -247,6 +273,14 @@ static void MovieFast_ShutDown(void)
|
|||
#if POWERON_BOOT_REPORT == ENABLE
|
||||
|
||||
DBG_DUMP("PhotoMovie mode = %u\n", mode);
|
||||
VOS_TICK tick;
|
||||
|
||||
PhotoFast_GetTick(g_vprc_trigger_frm_count, &tick);
|
||||
|
||||
DBG_DUMP("\n\n**********************************************************\n"
|
||||
" Trigger Speed(vcap frame count = %lu) : %lu us alg_start_time = %lu g_alg_end_time = %lu, perf tick = %lu us\n"
|
||||
"**********************************************************\n",
|
||||
g_vprc_trigger_frm_count, g_vprc_trigger_frm_time, g_alg_start_time, g_alg_end_time, tick);
|
||||
|
||||
vos_perf_list_dump();
|
||||
|
||||
|
@ -284,6 +318,15 @@ static void MovieFast_ShutDown(void)
|
|||
|
||||
#if POWERON_BOOT_REPORT == ENABLE
|
||||
|
||||
VOS_TICK tick;
|
||||
|
||||
PhotoFast_GetTick(g_vprc_trigger_frm_count, &tick);
|
||||
|
||||
DBG_DUMP("\n\n**********************************************************\n"
|
||||
" Trigger Speed(vcap frame count = %lu) : %lu us alg_start_time = %lu g_alg_end_time = %lu, perf tick = %lu us\n"
|
||||
"**********************************************************\n",
|
||||
g_vprc_trigger_frm_count, g_vprc_trigger_frm_time, g_alg_start_time, g_alg_end_time, tick);
|
||||
|
||||
vos_perf_list_dump();
|
||||
if(mode == DX_HUNTING_MODE_PHOTO_MOVIE){
|
||||
MovieFast_PV_Info_Dump();
|
||||
|
@ -464,7 +507,7 @@ static void MovieFast_RecMovieStamp(void)
|
|||
NULL);
|
||||
#endif
|
||||
}
|
||||
#if 1
|
||||
#if 0
|
||||
// set rawenc path 1st movie stamp
|
||||
if (movie_rec_mask & mask) {
|
||||
Width = gMovie_Rec_Info[i].size.w;
|
||||
|
@ -664,6 +707,7 @@ static void MovieFast_OnRecStart(void)
|
|||
}
|
||||
|
||||
#if defined(_UI_STYLE_LVGL_)
|
||||
fwload_wait_done(CODE_SECTION_05);
|
||||
flow_lv_init();
|
||||
#endif
|
||||
|
||||
|
@ -821,6 +865,45 @@ static void MovieFast_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName)
|
|||
}
|
||||
}
|
||||
|
||||
static void MovieFast_WriteFile_Task(void* arg)
|
||||
{
|
||||
lfqueue_t* queue = (lfqueue_t*)arg;
|
||||
MOVIEFAST_WRITE_QUEUE_PARAM* param;
|
||||
|
||||
fastboot_wait_done(BOOT_INIT_FILESYSOK);
|
||||
|
||||
while(1)
|
||||
{
|
||||
param = (MOVIEFAST_WRITE_QUEUE_PARAM*) lfqueue_deq(queue);
|
||||
if(param == NULL){
|
||||
vos_util_delay_ms(5);
|
||||
continue;
|
||||
}
|
||||
|
||||
if(param->va){
|
||||
DBG_DUMP("Write %s\n", param->path);
|
||||
|
||||
FST_FILE fp = FileSys_OpenFile(param->path, FST_OPEN_ALWAYS | FST_OPEN_WRITE);
|
||||
FileSys_WriteFile(fp, (UINT8*)param->va, ¶m->size, 0, NULL);
|
||||
FileSys_CloseFile(fp);
|
||||
|
||||
free(param->va);
|
||||
}
|
||||
else if(param->frame.phy_addr[0]){
|
||||
DBG_DUMP("Write %s\n", param->path);
|
||||
|
||||
FST_FILE fp = FileSys_OpenFile(param->path, FST_OPEN_ALWAYS | FST_OPEN_WRITE);
|
||||
FileSys_WriteFile(fp, (UINT8*)param->frame.phy_addr[0], ¶m->size, 0, NULL);
|
||||
FileSys_CloseFile(fp);
|
||||
|
||||
hd_videoproc_release_out_buf(param->vprc_path_id, ¶m->frame);
|
||||
}
|
||||
|
||||
if(param){
|
||||
free(param);
|
||||
}
|
||||
}
|
||||
}
|
||||
static void MovieFast_UserEventCb(UINT32 id, MOVIE_USER_CB_EVENT event_id, UINT32 value)
|
||||
{
|
||||
//static UINT32 u32Cnt = 0;
|
||||
|
@ -860,8 +943,6 @@ static void MovieFast_UserEventCb(UINT32 id, MOVIE_USER_CB_EVENT event_id, UINT3
|
|||
|
||||
case MOVIE_USER_CB_EVENT_JENC_DONE:{
|
||||
|
||||
fastboot_wait_done(BOOT_INIT_FILESYSOK);
|
||||
|
||||
MOVIE_JPEG_INFO *ptr = (MOVIE_JPEG_INFO*)value;
|
||||
|
||||
if(ptr->sign == MAKEFOURCC('T', 'H', 'U', 'M')){
|
||||
|
@ -892,11 +973,26 @@ static void MovieFast_UserEventCb(UINT32 id, MOVIE_USER_CB_EVENT event_id, UINT3
|
|||
#endif
|
||||
DBG_DUMP("MOVIE_USER_CB_EVENT_JENC_DONE %s\n", tmp);
|
||||
|
||||
FST_FILE fp = FileSys_OpenFile(tmp, FST_CREATE_ALWAYS | FST_OPEN_WRITE);
|
||||
MOVIEFAST_WRITE_QUEUE_PARAM* param = (MOVIEFAST_WRITE_QUEUE_PARAM*) malloc(sizeof(MOVIEFAST_WRITE_QUEUE_PARAM));
|
||||
|
||||
FileSys_WriteFile(fp, (UINT8*)ptr->addr_va, &ptr->size, 0, NULL);
|
||||
FileSys_FlushFile(fp);
|
||||
FileSys_CloseFile(fp);
|
||||
if(param){
|
||||
|
||||
memset(param, 0, sizeof(MOVIEFAST_WRITE_QUEUE_PARAM));
|
||||
param->size = ptr->size;
|
||||
param->va = (void *)malloc(param->size);
|
||||
snprintf(param->path, sizeof(param->path), tmp);
|
||||
if(param->va){
|
||||
memcpy(param->va, (void*)ptr->addr_va, param->size);
|
||||
while (lfqueue_enq(&write_queue, (void*) param) == -1)
|
||||
{
|
||||
DBG_ERR("ENQ Full ?\r\n");
|
||||
}
|
||||
}
|
||||
else{
|
||||
DBG_ERR("malloc thumb va err!\n");
|
||||
free(param);
|
||||
}
|
||||
}
|
||||
thumb_current_path[0] = '\0';
|
||||
}
|
||||
}
|
||||
|
@ -939,6 +1035,7 @@ int MovieFast_GetWaterLogoSource(const UINT32 recWidth,WATERLOGO_BUFFER *waterSr
|
|||
return E_OK;
|
||||
}
|
||||
|
||||
|
||||
THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg)
|
||||
{
|
||||
if(DrvGPIO_GetPhotoMovieModeFromMonitor() != DX_HUNTING_MODE_PHOTO_MOVIE ){
|
||||
|
@ -979,21 +1076,62 @@ void MovieFast_Set_Shutdown_flag(void)
|
|||
vos_flag_set(MOVIEFAST_FLG_ID, FLGMOVIEFAST_SHUTDOWN);
|
||||
}
|
||||
|
||||
static void MovieFast_Load_Sen_Cfg(MOVIEFAST_IQ_CFG cfg)
|
||||
{
|
||||
MOVIE_SENSOR_INFO sen_cfg = {0};
|
||||
MOVIE_SENSOR_INFO *pSenCfg = &sen_cfg;
|
||||
UINT32 size = sizeof(pSenCfg->iq_path.path) - 1;
|
||||
|
||||
for (int i = 0; i < SENSOR_CAPS_COUNT; i++) {
|
||||
// get sensor info
|
||||
sen_cfg.rec_id = _CFG_REC_ID_1 + i;
|
||||
System_GetSensorInfo(i, SENSOR_DRV_CFG, &(sen_cfg.vcap_cfg));
|
||||
System_GetSensorInfo(i, SENSOR_SENOUT_FMT, &(sen_cfg.senout_pxlfmt));
|
||||
System_GetSensorInfo(i, SENSOR_CAPOUT_FMT, &(sen_cfg.capout_pxlfmt));
|
||||
System_GetSensorInfo(i, SENSOR_DATA_LANE, &(sen_cfg.data_lane));
|
||||
System_GetSensorInfo(i, SENSOR_AE_PATH, &(sen_cfg.ae_path));
|
||||
System_GetSensorInfo(i, SENSOR_AWB_PATH, &(sen_cfg.awb_path));
|
||||
System_GetSensorInfo(i, SENSOR_IQ_PATH, &(sen_cfg.iq_path));
|
||||
System_GetSensorInfo(i, SENSOR_IQ_SHADING_PATH, &(sen_cfg.iq_shading_path));
|
||||
System_GetSensorInfo(i, SENSOR_IQ_DPC_PATH, &(sen_cfg.iq_dpc_path));
|
||||
System_GetSensorInfo(i, SENSOR_IQ_LDC_PATH, &(sen_cfg.iq_ldc_path));
|
||||
|
||||
if(cfg == MOVIEFAST_IQ_VIDEO){
|
||||
strncpy(pSenCfg->iq_path.path, "/isp/iq/os05b10_iq_0_vid", size);
|
||||
}
|
||||
else{ /* MOVIEFAST_IQ_PHOTO */
|
||||
|
||||
if(sf_is_night_mode(0) ==TRUE)
|
||||
strncpy(pSenCfg->iq_path.path, "/isp/iq/os05b10_iq_0", size);
|
||||
else
|
||||
strncpy(pSenCfg->iq_path.path, "/isp/iq/os05b10_iq_0_cap", size);
|
||||
}
|
||||
|
||||
ImageApp_MovieMulti_Config(MOVIE_CONFIG_SENSOR_INFO, (UINT32)&sen_cfg);
|
||||
}
|
||||
}
|
||||
|
||||
THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg)
|
||||
{
|
||||
UINT32 i;
|
||||
MOVIEMULTI_MAX_LINK_INFO MaxLinkInfo = {1, 0, 0, 1, 0}; //Img, Disp, Wifi, AudCap, EthCam
|
||||
MOVIE_SENSOR_INFO sen_cfg = {0};
|
||||
MOVIE_SENSOR_INFO *pSenCfg = &sen_cfg;
|
||||
HD_RESULT hd_ret;
|
||||
|
||||
DBG_FUNC("\r\n");
|
||||
UINT32 rec_type = MovieMapping_GetRecType(UI_GetData(FL_MOVIE_SIZE));
|
||||
|
||||
Movie_CommPoolInit();
|
||||
|
||||
if(DrvGPIO_GetPhotoMovieModeFromMonitor() == DX_HUNTING_MODE_MOVIE2){
|
||||
|
||||
//UI_SetData(FL_MOVIE_SIZE, MOVIE_SIZE_CLONE_1920x1080P30_1280x720P30);
|
||||
Set_NIGHTMODE(0, 0);
|
||||
}
|
||||
else{
|
||||
Set_NIGHTMODE(0, 1);
|
||||
Set_AEMODE(0);
|
||||
}
|
||||
|
||||
MovieFast_SetRecInfoByUISetting();
|
||||
Set_NIGHTMODE(0, 1);
|
||||
Set_AEMODE(0);
|
||||
|
||||
#if (_PACKAGE_DISPLAY_)
|
||||
gMovie_Disp_Info.vout_ctrl = GxVideo_GetDeviceCtrl(DOUT1,DISPLAY_DEVCTRL_CTRLPATH);
|
||||
|
@ -1007,49 +1145,16 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg)
|
|||
MaxLinkInfo.MaxDispLink = 1;
|
||||
#endif
|
||||
ImageApp_MovieMulti_Config(MOVIE_CONFIG_MAX_LINK_INFO, (UINT32) &MaxLinkInfo);
|
||||
for (i = 0; i < SENSOR_CAPS_COUNT; i++) {
|
||||
ImageApp_MovieMulti_Config(MOVIE_CONFIG_RECORD_INFO, (UINT32)&gMovie_Rec_Info[i]);
|
||||
ImageApp_MovieMulti_Config(MOVIE_CONFIG_RECORD_INFO, (UINT32)&gMovie_Clone_Info[i]);
|
||||
ImageApp_MovieMulti_Config(MOVIE_CONFIG_ALG_INFO, (UINT32)&gMovie_Alg_Info[0]);
|
||||
// get sensor info
|
||||
sen_cfg.rec_id = _CFG_REC_ID_1 + i;
|
||||
System_GetSensorInfo(i, SENSOR_DRV_CFG, &(sen_cfg.vcap_cfg));
|
||||
System_GetSensorInfo(i, SENSOR_SENOUT_FMT, &(sen_cfg.senout_pxlfmt));
|
||||
System_GetSensorInfo(i, SENSOR_CAPOUT_FMT, &(sen_cfg.capout_pxlfmt));
|
||||
System_GetSensorInfo(i, SENSOR_DATA_LANE, &(sen_cfg.data_lane));
|
||||
System_GetSensorInfo(i, SENSOR_AE_PATH, &(sen_cfg.ae_path));
|
||||
System_GetSensorInfo(i, SENSOR_AWB_PATH, &(sen_cfg.awb_path));
|
||||
System_GetSensorInfo(i, SENSOR_IQ_PATH, &(sen_cfg.iq_path));
|
||||
System_GetSensorInfo(i, SENSOR_IQ_SHADING_PATH, &(sen_cfg.iq_shading_path));
|
||||
System_GetSensorInfo(i, SENSOR_IQ_DPC_PATH, &(sen_cfg.iq_dpc_path));
|
||||
System_GetSensorInfo(i, SENSOR_IQ_LDC_PATH, &(sen_cfg.iq_ldc_path));
|
||||
ImageApp_MovieMulti_Config(MOVIE_CONFIG_SENSOR_INFO, (UINT32)&sen_cfg);
|
||||
#if (SENSOR_SIEPATGEN == ENABLE)
|
||||
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1, MOVIEMULTI_PARAM_VCAP_PAT_GEN, HD_VIDEOCAP_SEN_PAT_COLORBAR);
|
||||
#endif
|
||||
ImageApp_MovieMulti_Config(MOVIE_CONFIG_RECORD_INFO, (UINT32)&gMovie_Rec_Info[0]);
|
||||
ImageApp_MovieMulti_Config(MOVIE_CONFIG_RECORD_INFO, (UINT32)&gMovie_Clone_Info[0]);
|
||||
ImageApp_MovieMulti_Config(MOVIE_CONFIG_ALG_INFO, (UINT32)&gMovie_Alg_Info[0]);
|
||||
|
||||
if(DrvGPIO_GetPhotoMovieModeFromMonitor() != DX_HUNTING_MODE_MOVIE2){
|
||||
MovieFast_Load_Sen_Cfg(MOVIEFAST_IQ_VIDEO);
|
||||
}
|
||||
|
||||
if ((hd_ret = vendor_isp_init()) != HD_OK) {
|
||||
DBG_ERR("vendor_isp_init fail(%d)\n", hd_ret);
|
||||
}
|
||||
if (strlen(pSenCfg->iq_path.path) != 0) {
|
||||
IQT_DTSI_INFO iq_dtsi_info;
|
||||
iq_dtsi_info.id = pSenCfg->iq_path.id;
|
||||
|
||||
strncpy(iq_dtsi_info.node_path, "/isp/iq/os05b10_iq_0_vid", 31);
|
||||
strncpy(iq_dtsi_info.file_path, "null", DTSI_NAME_LENGTH);
|
||||
|
||||
//DBG_ERR("vendor_isp_set_iq %s\r\n",iq_dtsi_info.node_path);
|
||||
|
||||
iq_dtsi_info.buf_addr = (UINT8 *)pSenCfg->iq_path.addr;
|
||||
if ((hd_ret = vendor_isp_set_iq(IQT_ITEM_RLD_DTSI, &iq_dtsi_info)) != HD_OK) {
|
||||
DBG_ERR("vendor_isp_set_iq fail(%d)\r\n", hd_ret);
|
||||
}
|
||||
}
|
||||
if ((hd_ret = vendor_isp_uninit()) != HD_OK) {
|
||||
DBG_ERR("vendor_isp_uninit fail(%d)\n", hd_ret);
|
||||
}
|
||||
|
||||
else{
|
||||
MovieFast_Load_Sen_Cfg(MOVIEFAST_IQ_PHOTO);
|
||||
}
|
||||
MovieMapping_GetStreamInfo(UI_GetData(FL_MOVIE_SIZE), (UINT32)&gMovie_Strm_Info);
|
||||
ImageApp_MovieMulti_Config(MOVIE_CONFIG_STREAM_INFO, (UINT32)&gMovie_Strm_Info);
|
||||
ImageApp_MovieMulti_Config(MOVIE_CONFIG_AUDIO_INFO, (UINT32)&gMovie_Audio_Info);
|
||||
|
@ -1063,7 +1168,6 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg)
|
|||
// User Callback
|
||||
ImageApp_MovieMulti_RegUserCB(MovieFast_UserEventCb);
|
||||
|
||||
ImageApp_MovieMulti_SetParam(_CFG_CTRL_ID, MOVIEMULTI_PARAM_FILE_UTC_AUTO_EN, TRUE);
|
||||
|
||||
#if (MOVIE_DIRECT_FUNC == ENABLE)
|
||||
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1, MOVIEMULTI_PARAM_VCAP_OUTFUNC, HD_VIDEOCAP_OUTFUNC_DIRECT);
|
||||
|
@ -1071,10 +1175,34 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg)
|
|||
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1, MOVIEMULTI_PRARM_FILEDB_MAX_MUM, 5000);
|
||||
|
||||
|
||||
MOVIEMULTI_IPL_SIZE_INFO ipl_size={{2560,1440}, 30};
|
||||
if(DrvGPIO_GetPhotoMovieModeFromMonitor() != DX_HUNTING_MODE_MOVIE2){
|
||||
MOVIEMULTI_IPL_SIZE_INFO ipl_size={{2560,1440}, 30};
|
||||
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1 , MOVIEMULTI_PARAM_IPL_USER_IMG_SIZE, (UINT32)&ipl_size);
|
||||
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1 , MOVIEMULTI_PARAM_IPL_FORCED_IMG_SIZE, MOVIE_IPL_SIZE_USER);
|
||||
ImageApp_MovieMulti_SetParam(_CFG_CTRL_ID, MOVIEMULTI_PARAM_FILE_UTC_AUTO_EN, TRUE);
|
||||
}
|
||||
else{
|
||||
UIAPP_PHOTO_SENSOR_INFO *sensor_info = UIAppPhoto_get_SensorInfo(0);
|
||||
MOVIEMULTI_IPL_SIZE_INFO ipl_size={{sensor_info->sSize.w, sensor_info->sSize.h}, 60};
|
||||
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1 , MOVIEMULTI_PARAM_IPL_USER_IMG_SIZE, (UINT32)&ipl_size);
|
||||
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1 , MOVIEMULTI_PARAM_IPL_FORCED_IMG_SIZE, MOVIE_IPL_SIZE_USER);
|
||||
|
||||
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1 , MOVIEMULTI_PARAM_IPL_USER_IMG_SIZE, (UINT32)&ipl_size);
|
||||
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1 , MOVIEMULTI_PARAM_IPL_FORCED_IMG_SIZE, MOVIE_IPL_SIZE_USER);
|
||||
|
||||
MOVIEMULTI_IME_CROP_INFO crop_info = {0};
|
||||
|
||||
/* 4:3 -> 16:9 */
|
||||
crop_info.IMESize = (USIZE){1920, 1440};
|
||||
crop_info.IMEWin = (URECT){0, 180, 1920, 1080};
|
||||
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1 , MOVIEMULTI_PARAM_MAIN_IME_CROP, (UINT32)&crop_info);
|
||||
if(MOVIE_REC_TYPE_CLONE == rec_type)
|
||||
{
|
||||
/* 4:3 -> 16:9 */
|
||||
crop_info.IMESize = (USIZE){640, 480};
|
||||
crop_info.IMEWin = (URECT){0, 60, 640, 360};
|
||||
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1 , MOVIEMULTI_PARAM_CLONE_IME_CROP, (UINT32)&crop_info);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#if (ANR_FUNC == ENABLE)
|
||||
HD_AUDIOCAP_ANR audio_cfg_param = {0};
|
||||
|
@ -1099,7 +1227,41 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg)
|
|||
ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1 + i, MOVIEMULTI_PARAM_FILE_FRONT_MOOV_FLUSH_SEC, 2);
|
||||
}
|
||||
|
||||
if (1){//gMovie_Alg_Info[_CFG_REC_ID_1 + i].path13.ImgSize.w && gMovie_Alg_Info[_CFG_REC_ID_1 + i].path13.ImgSize.h) {
|
||||
|
||||
if(DrvGPIO_GetPhotoMovieModeFromMonitor() == DX_HUNTING_MODE_MOVIE2){
|
||||
|
||||
HD_PATH_ID vprc_in_id = ImageApp_MovieMulti_GetVprc3DNRPort(_CFG_REC_ID_1);
|
||||
HD_PATH_ID vprc_main_id = ImageApp_MovieMulti_GetVprcPort(_CFG_REC_ID_1, IAMOVIE_VPRC_EX_MAIN);
|
||||
HD_PATH_ID vprc_alg_id = ImageApp_MovieMulti_GetVprcPort(_CFG_REC_ID_1, IAMOVIE_VPRC_EX_ALG);
|
||||
HD_PATH_ID vprc_clone_id = ImageApp_MovieMulti_GetVprcPort(_CFG_REC_ID_1, IAMOVIE_VPRC_EX_CLONE);
|
||||
HD_VIDEOPROC_OUT_EX vprc_out = {0};
|
||||
HD_VIDEOPROC_IN vprc_in = {0};
|
||||
|
||||
hd_videoproc_get(vprc_in_id, HD_VIDEOPROC_PARAM_IN, &vprc_in);
|
||||
vprc_in.frc = HD_VIDEO_FRC_RATIO(30, 60);
|
||||
hd_videoproc_set(vprc_in_id, HD_VIDEOPROC_PARAM_IN, &vprc_in);
|
||||
|
||||
/* alg */
|
||||
hd_videoproc_get(vprc_alg_id, HD_VIDEOPROC_PARAM_OUT_EX, &vprc_out);
|
||||
vprc_out.frc = HD_VIDEO_FRC_RATIO(1, 1);
|
||||
hd_videoproc_set(vprc_alg_id, HD_VIDEOPROC_PARAM_OUT_EX, &vprc_out);
|
||||
|
||||
/* main */
|
||||
hd_videoproc_get(vprc_main_id, HD_VIDEOPROC_PARAM_OUT_EX, &vprc_out);
|
||||
vprc_out.frc = HD_VIDEO_FRC_RATIO(1, 1);
|
||||
// vprc_out.depth = 0; /* raw encode */
|
||||
hd_videoproc_set(vprc_main_id, HD_VIDEOPROC_PARAM_OUT_EX, &vprc_out);
|
||||
if(MOVIE_REC_TYPE_CLONE == rec_type)
|
||||
{
|
||||
/* clone */
|
||||
hd_videoproc_get(vprc_clone_id, HD_VIDEOPROC_PARAM_OUT_EX, &vprc_out);
|
||||
vprc_out.frc = HD_VIDEO_FRC_RATIO(1, 1);
|
||||
// vprc_out.depth = 0;
|
||||
hd_videoproc_set(vprc_clone_id, HD_VIDEOPROC_PARAM_OUT_EX, &vprc_out);
|
||||
}
|
||||
}
|
||||
|
||||
if (1){//gMovie_Alg_Info[_CFG_REC_ID_1 + i].path13.ImgSize.w && gMovie_Alg_Info[_CFG_REC_ID_1 + i].path13.ImgSize.h) {
|
||||
ImageApp_MovieMulti_ImgLinkForAlg((_CFG_REC_ID_1 ), _CFG_ALG_PATH3, ENABLE, TRUE);
|
||||
}
|
||||
|
||||
|
@ -1114,9 +1276,95 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg)
|
|||
//ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1, MOVIEMULTI_PARAM_IMGCAP_THUM_WITH_EXIF, TRUE); // enable if wants exif in mp4 thumbnail
|
||||
MovieExe_InitExif();
|
||||
#endif
|
||||
if(lfqueue_init(&write_queue)){
|
||||
DBG_ERR("init write_queue failed\n");
|
||||
}
|
||||
else{
|
||||
if ((g_moviefast_write_tsk_id = vos_task_create(MovieFast_WriteFile_Task, &write_queue, "MovieFastThumTsk", PRI_MOVIEFAST_CMDTSK, STKSIZE_MOVIEFAST_CMDTSK)) == 0) {
|
||||
DBG_ERR("MovieFast_Thumb_Task create failed.\r\n");
|
||||
} else {
|
||||
vos_task_resume(g_moviefast_write_tsk_id);
|
||||
}
|
||||
}
|
||||
|
||||
MovieFast_InstallID();
|
||||
vos_util_delay_ms(132);
|
||||
|
||||
{
|
||||
HD_VIDEO_FRAME frame;
|
||||
HD_PATH_ID alg_path;
|
||||
BOOL stop = FALSE;
|
||||
UINT32 ae_cnt = 0;
|
||||
UINT32 stop_cnt = 0;
|
||||
BOOL ae_locked = FALSE;
|
||||
|
||||
if(DrvGPIO_GetPhotoMovieModeFromMonitor() == DX_HUNTING_MODE_MOVIE2){
|
||||
ae_cnt = 6;
|
||||
stop_cnt = 12;
|
||||
}
|
||||
else{
|
||||
ae_cnt = 9999;
|
||||
stop_cnt = 12;
|
||||
}
|
||||
|
||||
alg_path = ImageApp_MovieMulti_GetAlgDataPort(_CFG_REC_ID_1, _CFG_ALG_PATH3);
|
||||
|
||||
vos_perf_mark(&g_alg_start_time);
|
||||
|
||||
do {
|
||||
|
||||
hd_videoproc_pull_out_buf(alg_path, &frame, PHOTOFAST_HD_PUSH_PULL_TIMEOUT_MS);
|
||||
|
||||
DBG_DUMP("count = %llu, timestamp = %llu\n", frame.count, frame.timestamp);
|
||||
|
||||
if(frame.count >= ae_cnt && ae_locked == FALSE){
|
||||
DBG_DUMP("timestamp = %llu count = %llu\n", frame.timestamp, frame.count);
|
||||
Set_AEMODE(1);
|
||||
setet_preset_param();
|
||||
ae_locked = TRUE;
|
||||
}
|
||||
|
||||
if(frame.count >= stop_cnt){
|
||||
|
||||
UIAPP_PHOTO_SENSOR_INFO *sensor_info = UIAppPhoto_get_SensorInfo(0);
|
||||
UINT32 buf_size = 0;
|
||||
|
||||
buf_size = VDO_YUV_BUFSIZE(sensor_info->sSize.w, sensor_info->sSize.h , HD_VIDEO_PXLFMT_YUV420);
|
||||
#if 0
|
||||
VOS_TICK t1, t2;
|
||||
vos_perf_mark(&t1);
|
||||
FST_FILE fp = FileSys_OpenFile(MOIVE2_YUV_PATH, FST_OPEN_ALWAYS | FST_OPEN_WRITE);
|
||||
FileSys_WriteFile(fp, (UINT8*)frame.phy_addr[0], &buf_size, 0, NULL);
|
||||
FileSys_CloseFile(fp);
|
||||
vos_perf_mark(&t2);
|
||||
DBG_DUMP("write = %lu us\n", vos_perf_duration(t1, t2));
|
||||
#endif
|
||||
|
||||
MOVIEFAST_WRITE_QUEUE_PARAM* param = (MOVIEFAST_WRITE_QUEUE_PARAM*) malloc(sizeof(MOVIEFAST_WRITE_QUEUE_PARAM));
|
||||
if(param){
|
||||
memcpy((void*)¶m->frame, (void*)&frame, sizeof(HD_VIDEO_FRAME));
|
||||
param->va = NULL;
|
||||
param->vprc_path_id = alg_path;
|
||||
param->size = buf_size;
|
||||
sprintf(param->path, MOIVE2_YUV_PATH);
|
||||
}
|
||||
|
||||
g_vprc_trigger_frm_time = (VOS_TICK)frame.timestamp;
|
||||
g_vprc_trigger_frm_count = (UINT32)frame.count;
|
||||
|
||||
while (lfqueue_enq(&write_queue, (void*) param) == -1)
|
||||
{
|
||||
DBG_ERR("ENQ Full ?\r\n");
|
||||
}
|
||||
|
||||
stop = TRUE;
|
||||
}
|
||||
else{
|
||||
hd_videoproc_release_out_buf(alg_path, &frame);
|
||||
}
|
||||
} while(stop == FALSE);
|
||||
|
||||
vos_perf_mark(&g_alg_end_time);
|
||||
}
|
||||
|
||||
if ((g_moviefast_power_off_tsk_id = vos_task_create(MovieFast_PowerOffTsk, 0, "MovieFastPwrTsk", PRI_MOVIEFAST_CMDTSK, STKSIZE_MOVIEFAST_CMDTSK)) == 0) {
|
||||
DBG_ERR("MovieFast_PowerOffTsk create failed.\r\n");
|
||||
|
@ -1147,6 +1395,65 @@ static void MovieFast_Close(void)
|
|||
|
||||
ImageApp_MovieMulti_Close();
|
||||
|
||||
if(DrvGPIO_GetPhotoMovieModeFromMonitor() == DX_HUNTING_MODE_MOVIE2){
|
||||
|
||||
HD_PATH_ID alg_path = ImageApp_MovieMulti_GetAlgDataPort(_CFG_REC_ID_1, _CFG_ALG_PATH3);
|
||||
UIAPP_PHOTO_SENSOR_INFO *sensor_info = UIAppPhoto_get_SensorInfo(0);
|
||||
UINT32 buf_pa = 0;
|
||||
void* buf_va = 0;
|
||||
|
||||
PhotoFast_Movie_Init();
|
||||
|
||||
PhotoFast_SliceEncode_Open(alg_path);
|
||||
PhotoFast_SliceEncode2_Open(alg_path, 1);
|
||||
|
||||
HD_VIDEO_FRAME frame = {0};
|
||||
UINT32 addr_dst[HD_VIDEO_MAX_PLANE] = {0};
|
||||
UINT32 loff_dst[HD_VIDEO_MAX_PLANE] = {0};
|
||||
UINT32 buf_size = 0;
|
||||
|
||||
HD_COMMON_MEM_VB_BLK blk = 0;
|
||||
buf_size = VDO_YUV_BUFSIZE(sensor_info->sSize.w, sensor_info->sSize.h , HD_VIDEO_PXLFMT_YUV420);
|
||||
blk = hd_common_mem_get_block(HD_COMMON_MEM_COMMON_POOL, buf_size, DDR_ID0); // Get block from mem pool
|
||||
if (blk == HD_COMMON_MEM_VB_INVALID_BLK) {
|
||||
DBG_ERR("hd_common_mem_get_block failed!(size=%lx)\n", buf_size);
|
||||
}
|
||||
|
||||
buf_pa = hd_common_mem_blk2pa(blk);
|
||||
if (buf_pa == 0) {
|
||||
DBG_ERR("hd_common_mem_blk2pa failed!(blk=0x%x)\n", blk);
|
||||
}
|
||||
|
||||
buf_va = (void*)hd_common_mem_mmap(HD_COMMON_MEM_MEM_TYPE_CACHE, buf_pa, buf_size);
|
||||
if (buf_va == 0) {
|
||||
DBG_ERR("hd_common_mem_mmap failed!\r\n");
|
||||
}
|
||||
|
||||
if(buf_pa){
|
||||
/* dst img */
|
||||
addr_dst[0] = buf_pa;
|
||||
loff_dst[0] = sensor_info->sSize.w;
|
||||
addr_dst[1] = addr_dst[0] + loff_dst[0] * sensor_info->sSize.h;
|
||||
loff_dst[1] = sensor_info->sSize.w;
|
||||
vf_init_ex(&frame, sensor_info->sSize.w, sensor_info->sSize.h, HD_VIDEO_PXLFMT_YUV420, loff_dst, addr_dst);
|
||||
|
||||
FST_FILE fp = FileSys_OpenFile(MOIVE2_YUV_PATH, FST_OPEN_READ);
|
||||
if(fp){
|
||||
FileSys_ReadFile(fp, (UINT8*)buf_va, &buf_size, 0, NULL);
|
||||
FileSys_CloseFile(fp);
|
||||
|
||||
PhotoFast_Sliceencode2_Enq_Frame(&frame);
|
||||
PhotoFast_SliceEncode2_Close();
|
||||
}
|
||||
else{
|
||||
DBG_ERR("%s not found!\n", MOIVE2_YUV_PATH);
|
||||
}
|
||||
}
|
||||
else{
|
||||
DBG_ERR("allocate %lx failed!\n", buf_size);
|
||||
}
|
||||
}
|
||||
|
||||
DCF_Close(g_dcf_hdl);
|
||||
DCF_UnInstallID();
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
#include "vf_gfx.h"
|
||||
#include "GxTime.h"
|
||||
#include "hd_type.h"
|
||||
#include "sys_fwload.h"
|
||||
|
||||
#if MOVIE_ISP_LOG
|
||||
#include "vendor_isp.h"
|
||||
|
@ -328,6 +329,8 @@ static void MovieStamp_get_isp_status(UINT32 id, char* Buf, UINT32 BufLen)
|
|||
#endif
|
||||
UINT32 MovieStamp_TriggerUpdateChk(void)
|
||||
{
|
||||
extern int fwload_wait_done(CODE_SECTION section);
|
||||
fwload_wait_done(CODE_SECTION_10);
|
||||
|
||||
struct tm CurDateTime;
|
||||
GxTime_GetTime(&CurDateTime);
|
||||
|
@ -1490,7 +1493,7 @@ void MovieStamp_VsFontConfig(UINT32 uiVEncOutPortId)
|
|||
YUV_GET_RGB(y, u, v, r, g, b);
|
||||
|
||||
#if defined(_UI_STYLE_LVGL_)
|
||||
g_VsFontIn[uiVEncOutPortId].ciTransparet = ((LV_COLOR_GET_A32((lv_color32_t){.full = LV_USER_CFG_MOVIE_DATESTAMP_COLOR_BACKGROUND}) >> 4) << 12) | ((g>>4)<<4) | (b>>4); //0x0000;
|
||||
g_VsFontIn[uiVEncOutPortId].ciTransparet = ((LV_COLOR_GET_A32((lv_color32_t){.full = LV_USER_CFG_STAMP_COLOR_BACKGROUND}) >> 4) << 12) | ((g>>4)<<4) | (b>>4); //0x0000;
|
||||
#else
|
||||
g_VsFontIn[uiVEncOutPortId].ciTransparet = ((r>>4)<<8) | ((g>>4)<<4) | (b>>4); //0x0000;
|
||||
#endif
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
#else
|
||||
#if PHOTO_PREVIEW_SLICE_ENC_FUNC || POWERON_FAST_SLICE_ENC
|
||||
#define PHOTO_MAX_CAP_SIZE UIAPP_PHOTO_SIZE_40M /* Max slice encode size */
|
||||
#define PHOTO_SLICE_ENC_MIN_CAP_SIZE UIAPP_PHOTO_SIZE_2M /* UI Menu only display options which size is larger than PHOTO_SLICE_ENC_MIN_CAP_SIZE */
|
||||
#define PHOTO_MIN_CAP_SIZE UIAPP_PHOTO_SIZE_2M /* UI Menu only display options which size is larger than PHOTO_SLICE_ENC_MIN_CAP_SIZE */
|
||||
#else
|
||||
#define PHOTO_MAX_CAP_SIZE UIAPP_PHOTO_SIZE_12M
|
||||
#endif
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
#include "PhotoFastCapDateImprint.h"
|
||||
#include "DCF.h"
|
||||
#include "flow_boot_linux.h"
|
||||
#include "UIAppPhoto_Param.h"
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
#include <sf_mcu.h>
|
||||
#include "sf_led.h"
|
||||
|
@ -116,7 +117,7 @@ INT32 PhotoFast_FileNaming_MakePath(UINT32 filetype, CHAR *pPath, UINT32 uiPathI
|
|||
INT32 PhotoFast_Phy2LogID(UINT32 id);
|
||||
THREAD_RETTYPE PhotoFast_EncodeBsPullThread(void *ptr);
|
||||
UINT32 PhotoFast_GetExpectSize_RhoBRCrtl(UINT32 ImgIdx, BOOL bPrimaryOnly);
|
||||
INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId);
|
||||
INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId, char* Path);
|
||||
static void PhotoFast_ShutDown(void);
|
||||
void Set_NIGHTMODE(UINT32 id, UINT8 isSnapVideo);
|
||||
void Set_AEMODE(UINT32 id);
|
||||
|
@ -847,7 +848,7 @@ void PhotoFast_FileNaming_SetSortBySN(CHAR *pDelimStr, UINT32 nDelimCount, UINT3
|
|||
DBG_ERR("No set Delim String!!\r\n");
|
||||
}
|
||||
|
||||
INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId)
|
||||
INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId, char* Path)
|
||||
{
|
||||
FST_FILE fp;
|
||||
INT32 rt;
|
||||
|
@ -857,19 +858,26 @@ INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId)
|
|||
UINT32 open_flag;
|
||||
UINT32 nextFolderID = 0, nextFileID = 0;
|
||||
|
||||
if (DCF_GetDBInfo(DCF_INFO_IS_9999)) {
|
||||
DBG_ERR("Exceed max dcf file!\r\n");
|
||||
return FST_STA_NOFREE_SPACE;
|
||||
}
|
||||
else {
|
||||
if (Fmt == HD_CODEC_TYPE_RAW){
|
||||
fileType = DCF_FILE_TYPE_RAW;
|
||||
}
|
||||
else{
|
||||
fileType = DCF_FILE_TYPE_JPG;
|
||||
}
|
||||
DCF_GetNextID(&nextFolderID,&nextFileID);
|
||||
DCF_MakeObjPath(nextFolderID, nextFileID, fileType, FilePath);
|
||||
if(Path == NULL){
|
||||
if (DCF_GetDBInfo(DCF_INFO_IS_9999)) {
|
||||
DBG_ERR("Exceed max dcf file!\r\n");
|
||||
return FST_STA_NOFREE_SPACE;
|
||||
}
|
||||
else {
|
||||
if (Fmt == HD_CODEC_TYPE_RAW){
|
||||
fileType = DCF_FILE_TYPE_RAW;
|
||||
}
|
||||
else{
|
||||
fileType = DCF_FILE_TYPE_JPG;
|
||||
}
|
||||
DCF_GetNextID(&nextFolderID,&nextFileID);
|
||||
DCF_MakeObjPath(nextFolderID, nextFileID, fileType, FilePath);
|
||||
DCF_AddDBfile(FilePath);
|
||||
DBG_DUMP("%s added to DCF\r\n", FilePath);
|
||||
}
|
||||
}
|
||||
else{
|
||||
strncpy(FilePath, Path, sizeof(FilePath));
|
||||
}
|
||||
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
|
@ -897,8 +905,8 @@ INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId)
|
|||
FileSys_FlushFile(fp);
|
||||
FileSys_CloseFile(fp);
|
||||
if (rt == FST_STA_OK) {
|
||||
DCF_AddDBfile(FilePath);
|
||||
DBG_DUMP("%s added to DCF\r\n", FilePath);
|
||||
// DCF_AddDBfile(FilePath);
|
||||
// DBG_DUMP("%s added to DCF\r\n", FilePath);
|
||||
} else {
|
||||
DBG_ERR("Addr=0x%x,Size=0x%x,Fmt=%d\r\n", Addr, Size, Fmt);
|
||||
}
|
||||
|
@ -1343,7 +1351,7 @@ static void PhotoFast_CaptureStart(HD_VIDEO_FRAME *p_video_frame)
|
|||
GxImgFile_CombineJPG(&exif_data, &pri_jpg, &scr_jpg, &dst_jpg_file);
|
||||
|
||||
fastboot_wait_done(BOOT_INIT_FILENAMINGOK);
|
||||
PhotoFast_WriteFile(dst_jpg_file.addr, dst_jpg_file.size, NAMERULE_FMT_JPG, 0);
|
||||
PhotoFast_WriteFile(dst_jpg_file.addr, dst_jpg_file.size, NAMERULE_FMT_JPG, 0, 0);
|
||||
|
||||
for (i=0; i < PHOTO_ENC_JPG_TYPE_MAX_ID; i++) {
|
||||
hd_ret = hd_videoenc_release_out_buf(g_video_enc_path[i], &g_bs_data_pull[i]);
|
||||
|
@ -1684,7 +1692,11 @@ THREAD_RETTYPE PhotoFast_FlowPreviewThread(void *arg)
|
|||
//#endif
|
||||
start_cap = TRUE;
|
||||
|
||||
DBG_DUMP("*** trigger frame count = %llu (start from 1)\n", video_cap_frame.count); /* UINT64, use %llu */
|
||||
VOS_TICK tick;
|
||||
|
||||
PhotoFast_GetTick(video_cap_frame.count, &tick);
|
||||
|
||||
DBG_DUMP("*** trigger frame count = %llu (start from 1) frame timestamp = %llu, tick=%lu ms , \n", video_cap_frame.count, video_cap_frame.timestamp, tick); /* UINT64, use %llu */
|
||||
//Set_AEMODE(1);
|
||||
}
|
||||
|
||||
|
@ -2033,7 +2045,6 @@ void Set_NIGHTMODE(UINT32 id, UINT8 isSnapVideo)
|
|||
void Set_AEMODE(UINT32 id)
|
||||
{
|
||||
AET_MANUAL ae_manual = {0};
|
||||
AWBT_MANUAL manual = {0};
|
||||
AWBT_STATUS status = {0};
|
||||
ISPT_C_GAIN c_gain = {0};
|
||||
HD_RESULT hd_ret;
|
||||
|
@ -2102,20 +2113,6 @@ void Set_AEMODE(UINT32 id)
|
|||
c_gain.gain[1] = status.status.cur_g_gain;
|
||||
c_gain.gain[2] = status.status.cur_b_gain;
|
||||
vendor_isp_set_common(ISPT_ITEM_C_GAIN, &c_gain);
|
||||
manual.id = 0;
|
||||
if (id == 1)
|
||||
{
|
||||
manual.manual.en = 1;
|
||||
manual.manual.r_gain = status.status.cur_r_gain;
|
||||
manual.manual.g_gain = status.status.cur_g_gain;
|
||||
manual.manual.b_gain = status.status.cur_b_gain;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
manual.manual.en = 0;
|
||||
}
|
||||
vendor_isp_set_awb(AWBT_ITEM_MANUAL, &manual);
|
||||
}
|
||||
}
|
||||
if ((hd_ret = vendor_isp_uninit()) != HD_OK) {
|
||||
|
@ -2189,5 +2186,75 @@ UINT32 PhotoFast_GetTickBufSize(void)
|
|||
return VD_TICK_BUF_SIZE;
|
||||
}
|
||||
|
||||
#include "vendor_common.h"
|
||||
#define DBGINFO_BUFSIZE() (0x200)
|
||||
|
||||
ER PhotoFast_Movie_Init(void)
|
||||
{
|
||||
PhotoFast_InitExif();
|
||||
PhotoFastCapDateImprint_InitBuff();
|
||||
hd_gfx_init();
|
||||
|
||||
|
||||
HD_COMMON_MEM_INIT_CONFIG mem_cfg = {0};
|
||||
UINT32 id = 0;
|
||||
|
||||
/*******************************************************************
|
||||
* Slice encode thumbnail
|
||||
*******************************************************************/
|
||||
|
||||
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||
UINT32 blk_size = DBGINFO_BUFSIZE() + VDO_YUV_BUFSIZE(sf_get_screen_nail_width(puiPara->SendPicSize), sf_get_screen_nail_height(puiPara->SendPicSize), HD_VIDEO_PXLFMT_YUV420);
|
||||
#else
|
||||
UINT32 blk_size = DBGINFO_BUFSIZE() + VDO_YUV_BUFSIZE(CFG_SCREENNAIL_W, CFG_SCREENNAIL_H, HD_VIDEO_PXLFMT_YUV420);
|
||||
#endif
|
||||
mem_cfg.pool_info[id].type = HD_COMMON_MEM_COMMON_POOL;
|
||||
mem_cfg.pool_info[id].blk_size = blk_size;
|
||||
mem_cfg.pool_info[id].blk_cnt = 1;
|
||||
mem_cfg.pool_info[id].ddr_id = DDR_ID0;
|
||||
|
||||
/*******************************************************************
|
||||
* Slice encode slice yuv buffer
|
||||
*******************************************************************/
|
||||
id ++;
|
||||
mem_cfg.pool_info[id].type = HD_COMMON_MEM_COMMON_POOL;
|
||||
mem_cfg.pool_info[id].blk_size = PhotoFast_SliceEncode_Get_Max_Dst_Slice_Buffer_Size(HD_VIDEO_PXLFMT_YUV420);
|
||||
mem_cfg.pool_info[id].blk_cnt = 1;
|
||||
mem_cfg.pool_info[id].ddr_id = DDR_ID0;
|
||||
|
||||
|
||||
// config common pool (screennail image)
|
||||
id ++;
|
||||
mem_cfg.pool_info[id].type = HD_COMMON_MEM_COMMON_POOL;
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
mem_cfg.pool_info[id].blk_size = DBGINFO_BUFSIZE()+VDO_YUV_BUFSIZE(sf_get_screen_nail_width(puiPara->SendPicSize), sf_get_screen_nail_height(puiPara->SendPicSize), HD_VIDEO_PXLFMT_YUV420);
|
||||
|
||||
#else
|
||||
mem_cfg.pool_info[id].blk_size = DBGINFO_BUFSIZE()+VDO_YUV_BUFSIZE(CFG_SCREENNAIL_W, CFG_SCREENNAIL_H, HD_VIDEO_PXLFMT_YUV420);
|
||||
#endif
|
||||
mem_cfg.pool_info[id].blk_cnt = 1;
|
||||
mem_cfg.pool_info[id].ddr_id = DDR_ID0;
|
||||
|
||||
// config common pool (EXIF)
|
||||
id++;
|
||||
mem_cfg.pool_info[id].type = HD_COMMON_MEM_COMMON_POOL;
|
||||
mem_cfg.pool_info[id].blk_size = DBGINFO_BUFSIZE()+CFG_JPG_HEADER_SIZE;
|
||||
mem_cfg.pool_info[id].blk_cnt = 1;
|
||||
mem_cfg.pool_info[id].ddr_id = DDR_ID0;
|
||||
|
||||
UIAPP_PHOTO_SENSOR_INFO *sensor_info = UIAppPhoto_get_SensorInfo(0);
|
||||
id++;
|
||||
mem_cfg.pool_info[id].type = HD_COMMON_MEM_COMMON_POOL;
|
||||
mem_cfg.pool_info[id].blk_size = DBGINFO_BUFSIZE()+VDO_YUV_BUFSIZE(sensor_info->sSize.w, sensor_info->sSize.h , HD_VIDEO_PXLFMT_YUV420);
|
||||
mem_cfg.pool_info[id].blk_cnt = 1;
|
||||
mem_cfg.pool_info[id].ddr_id = DDR_ID0;
|
||||
|
||||
vendor_common_mem_relayout(&mem_cfg);
|
||||
|
||||
return E_OK;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -56,10 +56,11 @@ extern THREAD_RETTYPE PhotoFast_EncodeBsPullThread(void *arg);
|
|||
extern THREAD_RETTYPE PhotoFast_FlowPreviewThread(void *arg);
|
||||
extern void PhotoFast_PhotoClose(void);
|
||||
|
||||
extern BOOL PhotoFast_SetTick(UINT32 cnt, VOS_TICK tick); /* start from 0 */
|
||||
extern BOOL PhotoFast_GetTick(UINT32 cnt, VOS_TICK* tick); /* start from 0 */
|
||||
extern BOOL PhotoFast_SetTick(UINT32 cnt, VOS_TICK tick); /* start from 1 */
|
||||
extern BOOL PhotoFast_GetTick(UINT32 cnt, VOS_TICK* tick); /* start from 1 */
|
||||
extern BOOL PhotoFast_SetTriggerFrmCnt(UINT32 cnt); /* trigger vcap frame count , get from HD_VIDEO_FRAME */
|
||||
UINT32 PhotoFast_GetTriggerFrmCnt(VOID);
|
||||
extern UINT32 PhotoFast_GetTickBufSize(void);
|
||||
|
||||
ER PhotoFast_Movie_Init(void);
|
||||
|
||||
#endif //_UIAPP_PHOTO_H_
|
||||
|
|
|
@ -234,7 +234,7 @@ static UINT32 PhotoFast_SliceEncode_Get_Max_Dst_Slice_Info(PhotoFast_SliceSize_I
|
|||
|
||||
UINT8 cap_idx = 0;
|
||||
|
||||
for(cap_idx = PHOTO_MAX_CAP_SIZE ; cap_idx <= PHOTO_SLICE_ENC_MIN_CAP_SIZE ; cap_idx++)
|
||||
for(cap_idx = PHOTO_MAX_CAP_SIZE ; cap_idx <= PHOTO_MIN_CAP_SIZE ; cap_idx++)
|
||||
{
|
||||
HD_DIM tmp_cap_size = {0};
|
||||
PhotoFast_SliceSize_Info tmp_slice_info = {0};
|
||||
|
|
|
@ -19,43 +19,43 @@ TMDEF_BEGIN_OPTIONS(PHOTO_SIZE)
|
|||
|
||||
#if PHOTO_PREVIEW_SLICE_ENC_FUNC || POWERON_FAST_SLICE_ENC
|
||||
|
||||
#if(PHOTO_MAX_CAP_SIZE > PHOTO_SLICE_ENC_MIN_CAP_SIZE)
|
||||
#if(PHOTO_MAX_CAP_SIZE > PHOTO_MIN_CAP_SIZE)
|
||||
#error "please check PHOTO_MAX_CAP_SIZE in UIAppPhoto.h"
|
||||
#endif
|
||||
|
||||
#if (PHOTO_SLICE_ENC_MIN_CAP_SIZE < UIAPP_PHOTO_SIZE_40M)//PHOTO_SIZE_40M
|
||||
#if (PHOTO_MIN_CAP_SIZE < UIAPP_PHOTO_SIZE_40M)//PHOTO_SIZE_40M
|
||||
TMDEF_OPTION_TEXT_S(PHOTO_SIZE_40M, TM_OPTION_DISABLE)
|
||||
#else
|
||||
TMDEF_OPTION_TEXT_S(PHOTO_SIZE_40M, TM_OPTION_ENABLE)
|
||||
#endif
|
||||
|
||||
#if (PHOTO_SLICE_ENC_MIN_CAP_SIZE < UIAPP_PHOTO_SIZE_12M)//PHOTO_SIZE_12M
|
||||
#if (PHOTO_MIN_CAP_SIZE < UIAPP_PHOTO_SIZE_12M)//PHOTO_SIZE_12M
|
||||
TMDEF_OPTION_TEXT_S(PHOTO_SIZE_12M, TM_OPTION_DISABLE)
|
||||
#else
|
||||
TMDEF_OPTION_TEXT_S(PHOTO_SIZE_12M, TM_OPTION_ENABLE)
|
||||
#endif
|
||||
#if (PHOTO_SLICE_ENC_MIN_CAP_SIZE < UIAPP_PHOTO_SIZE_10M)//PHOTO_SIZE_10M
|
||||
#if (PHOTO_MIN_CAP_SIZE < UIAPP_PHOTO_SIZE_10M)//PHOTO_SIZE_10M
|
||||
TMDEF_OPTION_TEXT_S(PHOTO_SIZE_10M, TM_OPTION_DISABLE)
|
||||
#else
|
||||
TMDEF_OPTION_TEXT_S(PHOTO_SIZE_10M, TM_OPTION_ENABLE)
|
||||
#endif
|
||||
#if (PHOTO_SLICE_ENC_MIN_CAP_SIZE < UIAPP_PHOTO_SIZE_8M)//PHOTO_SIZE_8M
|
||||
#if (PHOTO_MIN_CAP_SIZE < UIAPP_PHOTO_SIZE_8M)//PHOTO_SIZE_8M
|
||||
TMDEF_OPTION_TEXT_S(PHOTO_SIZE_8M, TM_OPTION_DISABLE)
|
||||
#else
|
||||
TMDEF_OPTION_TEXT_S(PHOTO_SIZE_8M, TM_OPTION_ENABLE)
|
||||
#endif
|
||||
#if (PHOTO_SLICE_ENC_MIN_CAP_SIZE < UIAPP_PHOTO_SIZE_5M)//PHOTO_SIZE_5M
|
||||
#if (PHOTO_MIN_CAP_SIZE < UIAPP_PHOTO_SIZE_5M)//PHOTO_SIZE_5M
|
||||
TMDEF_OPTION_TEXT_S(PHOTO_SIZE_5M, TM_OPTION_DISABLE)
|
||||
#else
|
||||
TMDEF_OPTION_TEXT_S(PHOTO_SIZE_5M, TM_OPTION_ENABLE)
|
||||
#endif
|
||||
#if (PHOTO_SLICE_ENC_MIN_CAP_SIZE < UIAPP_PHOTO_SIZE_3M)//PHOTO_SIZE_3M
|
||||
#if (PHOTO_MIN_CAP_SIZE < UIAPP_PHOTO_SIZE_3M)//PHOTO_SIZE_3M
|
||||
TMDEF_OPTION_TEXT_S(PHOTO_SIZE_3M, TM_OPTION_DISABLE)
|
||||
#else
|
||||
TMDEF_OPTION_TEXT_S(PHOTO_SIZE_3M, TM_OPTION_ENABLE)
|
||||
#endif
|
||||
|
||||
#if (PHOTO_SLICE_ENC_MIN_CAP_SIZE < UIAPP_PHOTO_SIZE_VGA)//PHOTO_SIZE_VGA
|
||||
#if (PHOTO_MIN_CAP_SIZE < UIAPP_PHOTO_SIZE_VGA)//PHOTO_SIZE_VGA
|
||||
TMDEF_OPTION_TEXT_S(PHOTO_SIZE_VGA, TM_OPTION_DISABLE)
|
||||
#else
|
||||
TMDEF_OPTION_TEXT_S(PHOTO_SIZE_VGA, TM_OPTION_ENABLE)
|
||||
|
|
|
@ -1866,6 +1866,7 @@ typedef enum {
|
|||
SF_CAM_MODE_PHOTO = 0x00,
|
||||
SF_CAM_MODE_VIDEO,
|
||||
SF_CAM_MODE_PHOTO_VIDEO,
|
||||
SF_CAM_MODE_VIDEO2,
|
||||
SF_CAM_MODE_MAX,
|
||||
}SF_BOOT_WORK_MODE;
|
||||
|
||||
|
|
|
@ -164,6 +164,7 @@ SECTIONS
|
|||
libdrv_storage.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
libsifar.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
/* kdrv */
|
||||
libker_pkg.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
libkdrv_comm.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
libarb_protected.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
libkdrv_cpu.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
|
@ -175,7 +176,7 @@ SECTIONS
|
|||
libkdrv_interrupt.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
/* os */
|
||||
./SrcCode/Startup/bin_info.o(.got*)
|
||||
libker_pkg.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
/*libker_pkg.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)*/
|
||||
libkwrap.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
libvos.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
/* freertos.a must be located after kwrap.a for linking text.xEventGroup* */
|
||||
|
@ -295,17 +296,6 @@ SECTIONS
|
|||
libexif.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
libgximagefile.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
|
||||
/* audio */
|
||||
#if (_PACKAGE_AUDIO_)
|
||||
libkflow_audiocap.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
libkflow_audioenc.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
libnvt_audio.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
libnvt_kdrv_audio.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
libaud_aec.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
libaud_aace.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
libaudlib_IIR.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
#endif
|
||||
|
||||
liblvgl.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
./SrcCode/FastFlow/flow_lvgl.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
./SrcCode/UIApp/lv_user_font_conv/lv_user_font_conv.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
|
@ -324,6 +314,35 @@ SECTIONS
|
|||
{
|
||||
_section_05_size = ABSOLUTE(.) - _section_05_addr;
|
||||
_section_06_addr = ABSOLUTE(.);
|
||||
|
||||
/* app */
|
||||
./SrcCode/UIApp/MovieFast/MovieFast.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
./SrcCode/UIApp/Movie/UIAppMovie_Exe.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
./SrcCode/UIApp/Movie/UIAppMovie_CommPoolInit.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
./SrcCode/UIApp/Movie/UIAppMovie_RecSetting.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
./SrcCode/UIApp/MovieStamp/MovieStamp.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
./SrcCode/UIApp/MovieStamp/MovieStampID.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
./SrcCode/UIApp/MovieStamp/MovieStampTsk.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
./SrcCode/UIApp/MovieStamp/BG_Watermark_640x480.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
./SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIMovieMapping.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
|
||||
/* lib */
|
||||
libimageapp_moviemulti.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
libimageapp_common.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
libfileout.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
libbsmux.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
libavfile.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
|
||||
/* audio */
|
||||
#if (_PACKAGE_AUDIO_)
|
||||
libkflow_audiocap.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
libkflow_audioenc.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
libnvt_audio.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
libnvt_kdrv_audio.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
libaud_aec.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
libaud_aace.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
libaudlib_IIR.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||
#endif
|
||||
}
|
||||
|
||||
. = ALIGN(4);
|
||||
|
@ -484,3 +503,13 @@ GROUP(libgcc.a libc.a libdrv_portable.a libfreertos.a libkwrap.a libkdrv_comm.a
|
|||
|
||||
EXTERN("_init")
|
||||
EXTERN("SwTimer_Open")
|
||||
EXTERN("vendor_videoenc_set")
|
||||
EXTERN("vendor_audiocap_set")
|
||||
EXTERN("vendor_audioenc_set")
|
||||
EXTERN("vendor_videoproc_set")
|
||||
EXTERN("vendor_videodec_set")
|
||||
EXTERN("eac_init")
|
||||
EXTERN("dai_disableclk")
|
||||
EXTERN("aud_open")
|
||||
EXTERN("h264Enc_queryMemSize")
|
||||
EXTERN("aud_set_default_setting")
|
||||
|
|
|
@ -101,6 +101,7 @@ typedef enum {
|
|||
IAMOVIE_VPRC_EX_ALG,
|
||||
IAMOVIE_VPRC_EX_DISP2,
|
||||
IAMOVIE_VPRC_EX_ALG2,
|
||||
IAMOVIE_VPRC_EX_MAX,
|
||||
ENUM_DUMMY4WORD(IAMOVIE_VPRC_EX_PATH)
|
||||
} IAMOVIE_VPRC_EX_PATH;
|
||||
|
||||
|
@ -884,6 +885,7 @@ extern HD_PATH_ID ImageApp_MovieMulti_GetVprcInPort(MOVIE_CFG_REC_ID id);
|
|||
extern HD_PATH_ID ImageApp_MovieMulti_GetVprc3DNRPort(MOVIE_CFG_REC_ID id);
|
||||
extern HD_PATH_ID ImageApp_MovieMulti_GetVdoEncPort(MOVIE_CFG_REC_ID id);
|
||||
extern HD_PATH_ID ImageApp_MovieMulti_GetRawEncPort(MOVIE_CFG_REC_ID id);
|
||||
extern HD_PATH_ID ImageApp_MovieMulti_GetVprcPort(MOVIE_CFG_REC_ID id, IAMOVIE_VPRC_EX_PATH path);
|
||||
extern HD_PATH_ID ImageApp_MovieMulti_GetAlgDataPort(MOVIE_CFG_REC_ID id, MOVIE_CFG_ALG_PATH path);
|
||||
extern HD_PATH_ID ImageApp_MovieMulti_GetAudEncPort(MOVIE_CFG_REC_ID id);
|
||||
extern void ImageApp_MovieMulti_Root_Path(CHAR *prootpath, UINT32 rec_id);
|
||||
|
|