-/**--------------------------------------------------------------------------*
-** Include Files *
-**--------------------------------------------------------------------------*/
-#include "mmi_app_phone_trc.h"
#include "mmiphone_export.h"
#include "window_parse.h"
-#include "guiblock.h"
-#include "mmiidle_export.h"
-#include "mmi_id.h"
-#include "mmieng_export.h"
-#include "mmipub.h"
#include "mmi_aigc_internal.h"
+#include "../../../../../../MS_Ref/source/aud_dev/inc/cjson.h"
#ifdef MMI_CUSTOM_AIGC_SUPPORT
static BOOLEAN s_aigc_chat_ws_open_flag = FALSE;
static BOOLEAN s_aigc_tts_ws_open_flag = FALSE;
+static void mmi_aigc_send_trans_start_data_process(void * data_ptr, uint32 data_len);
+static void mmi_aigc_send_trans_audio_data_process(void * data_ptr, uint32 data_len);
+static void mmi_aigc_send_trans_stop_data_process(void * data_ptr, uint32 data_len);
+static void mmi_aigc_send_chat_text_data_process(void * data_ptr, uint32 data_len);
+static void mmi_aigc_send_tts_text_data_process(void * data_ptr, uint32 data_len);
+
+
void mmi_aigc_trans_websocket_open(void)
{
if(FALSE == s_aigc_trans_ws_open_flag)
-#endif
-
-#if 0
-#ifdef MULTI_SIM_GSM_CTA_SUPPORT
-extern BOOLEAN g_is_sim_only_check_status[MMI_DUAL_SYS_MAX];
-#endif
-extern MMISET_PWD_OPERATE_TYPE_E g_mmiset_pwd_type;
-
-
-// the window for startup normal
-WINDOW_TABLE( PHONE_STARTUP_NORMAL_WIN_TAB ) =
+static int mmi_aigc_trans_websocket_send_text_data(void * data_ptr, uint32 data_len)
{
- //CLEAR_LCD,
- WIN_PRIO( WIN_THREE_LEVEL ),
- WIN_FUNC( (uint32)HandleNormalStartupWindow ),
- WIN_ID( PHONE_STARTUP_NORMAL_WIN_ID ),
- WIN_HIDE_STATUS,
- WIN_STYLE(WS_DISABLE_HWICON),
- WIN_MOVE_STYLE(MOVE_FORBIDDEN),
- WIN_SUPPORT_ANGLE( WIN_SUPPORT_ANGLE_INIT ),
- END_WIN
-};
-
-// the window for startup alarm
-WINDOW_TABLE( PHONE_STARTUP_ALARM_WIN_TAB ) =
+ return 0;
+}
+static int mmi_aigc_trans_websocket_send_binary_data(void * data_ptr, uint32 data_len)
{
- //CLEAR_LCD,
- //WIN_PRIO( WIN_ONE_LEVEL ),
- WIN_FUNC( (uint32)HandleAlarmStartupWindow ),
- WIN_ID( PHONE_STARTUP_ALARM_WIN_ID ),
- WIN_HIDE_STATUS,
- END_WIN
-};
-
-// the window for power off
-WINDOW_TABLE( PHONE_POWER_OFF_WIN_TAB ) =
+ return 0;
+}
+static int mmi_aigc_chat_websocket_send_text_data(void * data_ptr, uint32 data_len)
{
- //CLEAR_LCD,
- WIN_PRIO( WIN_THREE_LEVEL ),
- WIN_FUNC( (uint32)HandlePowerOffWindow ),
-// WIN_STYLE(WS_DISABLE_LCD_SWITCH),
- WIN_MOVE_STYLE(MOVE_FORBIDDEN),
- WIN_ID( PHONE_POWER_OFF_WIN_ID ),
- WIN_STYLE(WS_DISABLE_HWICON),
- WIN_HIDE_STATUS,
- WIN_SUPPORT_ANGLE( WIN_SUPPORT_ANGLE_INIT ),
- END_WIN
-};
-/*****************************************************************************/
-// Description : ÄÖÁåÆô¶¯¿ª»ú½çÃæµÄ³õʼ»¯
-// Global resource dependence :
-// Author: Jassmine
-// Note:
-/*****************************************************************************/
-void MMIAPIPHONE_AlarmInit(void)
+ return 0;
+}
+static int mmi_aigc_tts_websocket_send_text_data(void * data_ptr, uint32 data_len)
{
- GUI_LCD_DEV_INFO lcd_dev_info = {GUI_LCD_0, GUI_BLOCK_0};
-
- lcd_dev_info.lcd_id = GUI_MAIN_LCD_ID;
- lcd_dev_info.block_id = GUI_BLOCK_MAIN;
-
- // ¼Ç¼¿ª»ú·½Ê½
- s_startup_condition = STARTUP_ALARM;
- MMIDEFAULT_InitDefault(FALSE); //¹Ø»úÄÖÖÓÏ죬lcd±³¹âĬÈÏÊǹرյÄ
-
- if(!MMIALMSVC_StartService()/*MMIAPIALM_StartAlarm(FALSE)*/)
- {
- //¹Ø»ú
- MMIDEFAULT_TurnOffBackLight();
- POWER_PowerOff();
- }
+ return 0;
}
-/*****************************************************************************/
-// Description : ASSERTÆô¶¯µÄ³õʼ»¯,Ö±½Ó½øÈëidle½çÃæ
-// Global resource dependence :
-// Author: Jassmine
-// Note:
-/*****************************************************************************/
-void MMIAPIPHONE_AssertInit(void)
-{
- // ¼Ç¼¿ª»ú·½Ê½,ËäÈ»ÊÇASSERT¿ª»ú£¬µ«Êdzý¿ª»úÁ÷³Ì²»Ò»ÑùÖ®Í⣬ÆäÓà¶¼Ò»ÑùµÄ
- s_startup_condition = STARTUP_NORMAL;//STARTUP_ASSERT;
-#ifndef SUBLCD_SIZE_NONE
- MMISUB_IsPermitUpdate(TRUE);
-#endif
- // ½øÈëidle½çÃæ
- MMIAPIIDLE_OpenIdleWin();
- MMIDEFAULT_AllowTurnOffBackLight(TRUE);
-}
-/*****************************************************************************/
-// Description : Õý³£¿ª»úУ׼ºó½çÃæµÄ³õʼ»¯
-// Global resource dependence :
-// Author: Robert
-// Note:
-/*****************************************************************************/
-void MMIAPIPHONE_NormalInitAfterCoordinate(void)
-{
-
- if (MMIAPISET_GetPowerOnPwdStatus())//¿ª»úÃÜÂ뿪Æô
- {
- g_mmiset_pwd_type = MMISET_PWD_NORMAL;
-
- //open input power on password window
- MMIAPISET_OpenPowerOnPwdWin();
- }
- else
- {
- if (MMIAPISET_GetFlyModeSetPowerOn())
- {
- MMIAPISET_SetFlyModeOpenPhone();
- }
- else
- {
- MMIAPIPHONE_NormalInitAfterPwd();
- }
+// send task
+static BLOCK_ID s_aigc_data_send_task_id = SCI_INVALID_BLOCK_ID;
+
+static void mmi_aigc_data_send_task_msg_send(MMI_AIGC_DATA_SEND_MSG_ID_E msg_id, void * param, uint32 param_size)
+{
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: msg_id=%d\n",__FUNCTION__,__LINE__, msg_id);
+
+ if(SCI_INVALID_BLOCK_ID != s_aigc_data_send_task_id)
+ {
+ MMI_AIGC_DATA_SIG_T * signal = PNULL;
+ void * temp_ptr = PNULL;
+
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ if(NULL != param && 0 != param_size)
+ {
+ temp_ptr = SCI_ALLOC_APPZ(param_size + 1);
+ if(NULL == temp_ptr)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc fail\n", __FUNCTION__, __LINE__);
+ return;
+ }
+ SCI_MEMSET(temp_ptr, 0x0, param_size + 1);
+ SCI_MEMCPY(temp_ptr, param, param_size);
+ }
+
+ signal = SCI_ALLOC_APPZ(sizeof (MMI_AIGC_DATA_SIG_T));
+ SCI_MEMSET(signal, 0x0, sizeof (MMI_AIGC_DATA_SIG_T));
+ signal->SignalCode = msg_id;
+ signal->SignalSize = sizeof (*signal);
+ signal->Sender = SCI_IdentifyThread();
+ signal->data_ptr = temp_ptr;
+ signal->data_size = param_size;
+ SCI_SendSignal (signal, s_aigc_data_send_task_id);
}
}
-/*****************************************************************************/
-// Description : init a virtual window
-// Global resource dependence :
-// Author:
-// Note:
-/*****************************************************************************/
-PUBLIC void MMIAPIPHONE_VirtualWinInit(void)
+static void mm_aigc_data_send_task_handle(void * param)
{
- MMI_APPLET_START_T start ={0};
-
- start.guid = SPRD_IDLE_APPLET_ID;
-
- MMK_StartApplet( &start );
+ MMI_AIGC_DATA_SIG_T * signal = (MMI_AIGC_DATA_SIG_T *)param;
+ MMI_AIGC_DATA_SEND_MSG_ID_E msg_id = signal->SignalCode;
+ void * msg_param = signal->data_ptr;
+ uint32 param_size = signal->data_size;
+
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: msg_id=%d\n",__FUNCTION__,__LINE__, msg_id);
+ switch(msg_id)
+ {
+ case MMI_AIGC_MSG_TRANS_START_SEND:
+ mmi_aigc_send_trans_start_data_process(msg_param, param_size);
+ break;
+
+ case MMI_AIGC_MSG_TRANS_AUDIO_SEND:
+ mmi_aigc_send_trans_audio_data_process(msg_param, param_size);
+ break;
+
+ case MMI_AIGC_MSG_TRANS_STOP_SEND:
+ //mmi_aigc_send_trans_stop_data_process(msg_param, param_size);
+ break;
+
+ case MMI_AIGC_MSG_CHAT_TEXT_SEND:
+ mmi_aigc_send_chat_text_data_process(msg_param, param_size);
+ break;
+
+ case MMI_AIGC_MSG_TTS_TEXT_SEND:
+ mmi_aigc_send_tts_text_data_process(msg_param, param_size);
+ break;
+
+ default:
+ break;
+ }
}
-/*****************************************************************************/
-// Description : Õý³£¿ª»ú½çÃæµÄ³õʼ»¯
-// Global resource dependence :
-// Author: Jassmine
-// Note:
-/*****************************************************************************/
-void MMIAPIPHONE_NormalInit(void)
+static void mm_aigc_data_send_task_entry(uint32 argc, void *argv)
{
- // ¼Ç¼¿ª»ú·½Ê½
- s_startup_condition = STARTUP_NORMAL;
-#ifndef SUBLCD_SIZE_NONE
- //×ÓÆÁ¿ª»úͼ»,²»ÔÊÐíˢРSUBLCDˢбØÐëÔÚ³õʼ»¯Ö®ºó
- MMISUB_DisplayIdlePic();
- MMISUB_IsPermitUpdate(TRUE);
-#endif
-#ifdef MMI_SIM_LOCK_SUPPORT
- if(!MNPHONE_SIMLockDataIntegrityCheck())
- {
- /*sim lock data error,the ME alert "sim Locked" then power off*/
- MMIPHONE_SIMLockedOpenShutOffWin();
+ while(SCI_INVALID_BLOCK_ID == s_aigc_data_send_task_id)
+ {
return;
}
- else
- {
- MN_SIM_LOCK_STATUS_T* sim_unlock_data = MMIAPIPHONE_GetSIMUnlockConfigDataPtr();
-
- /*³õʼ»¯SIM Lock Data*/
- SCI_MEMSET(sim_unlock_data,0x00,sizeof(MN_SIM_LOCK_STATUS_T));
- MMIAPIPHONE_UpdateSIMUnlockData();
- }
-#endif
-#if defined TOUCH_PANEL_SUPPORT && !defined TOUCHPANEL_TYPE_MULTITP
- // Åж¨ÊÇ·ñµÚÒ»´Î¿ª»ú£¬ ÊÇ´ò¿ªÐ£×¼´°¿Ú
- if (MMIAPITP_IsPowerOnFirst() && !POWER_IsAutoTestMode())
- {
- MMIAPITP_COORDINATE_OpenWin(TRUE);
- }
- else
-#endif
- {
- if (MMIAPISET_GetPowerOnPwdStatus())//¿ª»úÃÜÂ뿪Æô
- {
- g_mmiset_pwd_type = MMISET_PWD_NORMAL;
-
- //open input power on password window
- MMIAPISET_OpenPowerOnPwdWin();
- }
- else
- {
- if (MMIAPISET_GetFlyModeSetPowerOn())
- {
- MMIAPISET_SetFlyModeOpenPhone();
- }
- else
- {
- MMIAPIPHONE_NormalInitAfterPwd();
- }
- }
+ while(1)
+ {
+ // receive message
+ xSignalHeaderRec * sig_ptr = SCI_GetSignal(s_aigc_data_send_task_id);
+ if(PNULL != sig_ptr)
+ {
+ MMI_AIGC_DATA_SIG_T * signal = (MMI_AIGC_DATA_SIG_T *)sig_ptr;
+ mm_aigc_data_send_task_handle(signal);
+
+ if(PNULL != signal->data_ptr)
+ SCI_FREE(signal->data_ptr);
+ SCI_FREE(signal);
+ }
}
+
+ SCI_ThreadExit();
}
-/*****************************************************************************/
-// Description : Õý³£¿ª»úÊäÈ뿪»úÃÜÂëºó½çÃæµÄ³õʼ»¯
-// Global resource dependence :
-// Author: Jassmine
-// Note:
-/*****************************************************************************/
-void MMIAPIPHONE_NormalInitAfterPwd(void)
-{
-#ifdef MULTI_SIM_GSM_CTA_SUPPORT
- uint32 i = 0;
-
- for (i = 0; i < MMI_DUAL_SYS_MAX; i++)
- {
- g_is_sim_only_check_status[i] = TRUE;
- }
-#ifndef SUBLCD_SIZE_NONE
- //×ÓÆÁ¿ª»úͼ»,²»ÔÊÐíË¢ÐÂ
- MMISUB_DisplayIdlePic();
- MMISUB_IsPermitUpdate(TRUE);
-#endif
- MMIAPIPHONE_StartUpPsAccordingToSetting(TRUE, FALSE);
-#else
-#ifndef APSYS_ONLY
-MMIAPIPHONE_StartUpPsAccordingToSetting(TRUE, TRUE);
-#endif
-#ifndef SUBLCD_SIZE_NONE
- //×ÓÆÁ¿ª»úͼ»,²»ÔÊÐíË¢ÐÂ
- MMISUB_DisplayIdlePic();
- MMISUB_IsPermitUpdate(TRUE);
-#endif
- // ´ò¿ªÕý³£¿ª»ú´°¿Ú
- MMIAPIPHONE_OpenNormalStartUpWin();
-#endif
+void mmi_aigc_data_send_task_create(void)
+{
+ if(SCI_INVALID_BLOCK_ID != s_aigc_data_send_task_id)
+ return;
+
+ s_aigc_data_send_task_id = SCI_CreateThread("T_AIGC_DATA_SEND_TASK",
+ "Q_AIGC_DATA_SEND_TASK",
+ mm_aigc_data_send_task_entry,
+ 0,
+ 0,
+ MMI_AIGC_DATA_SEND_TASK_STACK_SIZE,
+ MMI_AIGC_DATA_SEND_TASK_MSG_QUEUE_SIZE,
+ MMI_AIGC_DATA_SEND_TASK_PRIORITY,
+ SCI_PREEMPT,
+ SCI_AUTO_START);
+
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: task_id=0x%x\n",__FUNCTION__,__LINE__, s_aigc_data_send_task_id);
}
+void mmi_aigc_data_send_task_delete(void)
+{
+ if(SCI_INVALID_BLOCK_ID != s_aigc_data_send_task_id)
+ {
+ SCI_DeleteThread(s_aigc_data_send_task_id);
+ s_aigc_data_send_task_id = SCI_INVALID_BLOCK_ID;
+ }
+}
+
+
-/*****************************************************************************/
-// Description : get phone start up condition
-// Global resource dependence :
-// Author: bruce.chi
-// Note:
-/*****************************************************************************/
-PUBLIC PHONE_STARTUP_CONDITION_E MMIAPIPHONE_GetStartUpCondition(void)
+// trans
+void mmi_aigc_send_trans_start_msg(void * param, uint32 param_size)
{
- return s_startup_condition;
+ mmi_aigc_data_send_task_msg_send(MMI_AIGC_MSG_TRANS_START_SEND, NULL, 0);
}
-/*****************************************************************************/
-// Description : set phone start up condition
-// Global resource dependence :
-// Author: bruce.chi
-// Note:
-/*****************************************************************************/
-PUBLIC void MMIAPIPHONE_SetStartUpCondition(PHONE_STARTUP_CONDITION_E e_start_cond)
+void mmi_aigc_send_trans_audio_msg(void * param, uint32 param_size)
{
- if(e_start_cond >= STARTUP_MAX)
- {
- //SCI_TRACE_LOW:"[POWERONOFF]:MMIAPIPHONE_IsNetworkSelecting e_start_cond = %d"
- SCI_TRACE_ID(TRACE_TOOL_CONVERT,MMIPHONE_ONOFF_381_112_2_18_2_45_25_223,(uint8*)"d",e_start_cond);
- return ;
- }
-
- s_startup_condition = e_start_cond;
+ mmi_aigc_data_send_task_msg_send(MMI_AIGC_MSG_TRANS_AUDIO_SEND, param, param_size);
}
-/*****************************************************************************/
-// Description : ´¦ÀíÕý³£¿ª»ú½çÃæµÄÏûÏ¢(³ýPSÖ®Íâ)
-// Global resource dependence :
-// Author: Jassmine
-// Note:
-/*****************************************************************************/
-LOCAL MMI_RESULT_E HandleNormalStartupWindow(
- MMI_WIN_ID_T win_id, // STARTUP NORMAL´°¿ÚµÄID
- MMI_MESSAGE_ID_E msg_id, // ´°¿ÚµÄÄÚ²¿ÏûÏ¢ID
- DPARAM param // ÏàÓ¦ÏûÏ¢µÄ²ÎÊý
- )
-{
- MMI_RESULT_E result = MMI_RESULT_TRUE;
- MMISET_POWER_ON_OFF_ANIM_INFO_T power_on_off_anim_info = {0};
-
- switch (msg_id)
- {
- case MSG_OPEN_WINDOW:
-#ifdef MAINLCD_SIZE_128X64 //added by taiping.lai 2011/01/07
- {
- GUI_LCD_DEV_INFO lcd_dev_info = {GUI_LCD_0, GUI_BLOCK_0};
- GUI_RECT_T rect = {0, 0, MMI_MAINSCREEN_WIDTH-1, MMI_MAINSCREEN_HEIGHT-1};
-
- LCD_FillRect((const GUI_LCD_DEV_INFO*)&lcd_dev_info, rect, MMI_WHITE_COLOR);
- }
-#endif
- MMIDEFAULT_AllowTurnOffBackLight(FALSE);
- MMIDEFAULT_TurnOnBackLight();
-#ifdef UI_MULTILAYER_SUPPORT
- UILAYER_SetMainLayerType(DATA_TYPE_RGB565);
-#endif
- //s_is_play_default = TRUE;
-#ifndef MMI_POWERONOFFMP4_ENABLE
- s_is_play_power_on_mp4 = TRUE;
- SCI_MEMSET(&power_on_off_anim_info,0,sizeof( MMISET_POWER_ON_OFF_ANIM_INFO_T));
- MMIAPISET_GetPowerOnOffAnimInfo(&power_on_off_anim_info, TRUE);
-
- //SCI_TRACE_LOW:"[POWERONOFF]:HandleNormalStartupWindow type=%d"
- SCI_TRACE_ID(TRACE_TOOL_CONVERT,MMIPHONE_ONOFF_421_112_2_18_2_45_25_224,(uint8*)"d",power_on_off_anim_info.anim_type);
- MMI_SetATempImage(IMAGE_POWER_ON, win_id);
-
- if (MMISET_POWER_ON_OFF_ANIM_DEFAULT == power_on_off_anim_info.anim_type)
- {
- PlayDefaultPowerOnOffAnimation(TRUE);
- }
- else if((MMISET_POWER_ON_OFF_ANIM_MORE == power_on_off_anim_info.anim_type)
- || (MMISET_POWER_ON_OFF_PIC_MORE == power_on_off_anim_info.anim_type))
- {
- if(!MMIAPIFMM_IsFileExist(power_on_off_anim_info.more_anim_info.name_wstr,power_on_off_anim_info.more_anim_info.name_wstr_len))
- {
- PlayDefaultPowerOnOffAnimation(TRUE);
- }
- else
- {
- uint16 suffix_wstr[MMIFMM_FILENAME_LEN + 1] = {0};
- uint16 suffix_len = MMIFMM_FILENAME_LEN;
- #ifdef DRM_SUPPORT
- MIME_TYPE_E drmmime = MMIAPIDRM_GetDRMFileMimeType(0, power_on_off_anim_info.more_anim_info.name_wstr);
- #endif
-
- MMIAPIFMM_SplitFileName(power_on_off_anim_info.more_anim_info.name_wstr,
- power_on_off_anim_info.more_anim_info.name_wstr_len,
- PNULL, PNULL, suffix_wstr, &suffix_len);
-
- if(MMIFMM_FILE_TYPE_PICTURE == MMIAPIFMM_ConvertFileType(suffix_wstr,suffix_len)
- #ifdef DRM_SUPPORT
- || (MMIFMM_FILE_TYPE_DRM == MMIAPIFMM_ConvertFileType(suffix_wstr,suffix_len)
- &&( drmmime <= MIME_TYPE_IMAGE_IEF && drmmime >= MIME_TYPE_IMAGE_ANY))
- #endif
- )
- {
- PlayMorePowerOnOffAnimation(TRUE,&power_on_off_anim_info);
- }
- }
- }
-#endif
- if (s_phone_startup_timer_id != 0)
- {
- MMK_StopTimer(s_phone_startup_timer_id);
- s_phone_startup_timer_id = 0;
- }
- s_phone_startup_timer_id = MMK_CreateTimer(PHONE_STARTUP_DURING_TIME, FALSE);
- PlayPowerOnOffMP4(TRUE);
- break;
-
- case MSG_TIMER:
- if (s_phone_startup_timer_id == *((uint8 *) param))
- {
- s_phone_startup_timer_id = 0;
-
- // ¼ì²éAlarmµÄÇé¿ö
- MMIAPIALM_CheckAndStartDelayedAlarm();
-
- // ¹Ø±Õ±¾´°¿Ú
- //MMK_CloseWin(win_id);
-
- SCI_MEMSET(&power_on_off_anim_info, 0, sizeof(MMISET_POWER_ON_OFF_ANIM_INFO_T));
- MMIAPISET_GetPowerOnOffAnimInfo(&power_on_off_anim_info, TRUE);
-#ifdef VIDEO_PLAYER_SUPPORT
- if((MMISET_POWER_ON_OFF_ANIM_MORE == power_on_off_anim_info.anim_type)
- || (MMISET_POWER_ON_OFF_PIC_MORE == power_on_off_anim_info.anim_type))
- {
- uint16 suffix_wstr[MMIFMM_FILENAME_LEN + 1] = {0};
- uint16 suffix_len = MMIFMM_FILENAME_LEN;
- MMIAPIFMM_SplitFileName(power_on_off_anim_info.more_anim_info.name_wstr,
- power_on_off_anim_info.more_anim_info.name_wstr_len,
- PNULL, PNULL, suffix_wstr, &suffix_len);
- if(MMIFMM_FILE_TYPE_PICTURE == MMIAPIFMM_ConvertFileType(suffix_wstr,suffix_len))
- {
- PlayPowerOnOffMP4CallBack(VP_PLAY_END_END_SUCCESS);
- }
- else
- {
-#ifdef MMI_POWERONOFFMP4_ENABLE
- MMIAPIVP_ExitPlay();
-#else
- //if(s_is_play_default)//cr151078
- //{
- PlayPowerOnOffMP4CallBack(VP_PLAY_END_END_SUCCESS);
- //}
-#endif
- }
- }
- else if(MMISET_POWER_ON_OFF_ANIM_DEFAULT == power_on_off_anim_info.anim_type)
- {
-
-#ifdef MMI_POWERONOFFMP4_ENABLE
- MMIAPIVP_ExitPlay();
-#else
- PlayPowerOnOffMP4CallBack(VP_PLAY_END_END_SUCCESS);
-#endif
- }
-#else
- PlayPowerOnOffMP4CallBack();
-#endif
- // ´ò¿ªIDLE½çÃæ
- }
- else
- {
- result = MMI_RESULT_FALSE;
- }
- break;
-
- case MSG_LOSE_FOCUS:
-#ifdef UI_MULTILAYER_SUPPORT
- UILAYER_SetMainLayerType(MMITHEME_GetMainLayerDefaultType());
-#endif
-#ifdef VIDEO_PLAYER_SUPPORT
- MMIAPIVP_ExitPlay();
-#endif
- //cr124655, µ±¿ª»ú´°¿Ú±»´ò¶Ï£¬ÐèÒªÖÐÖ¹¿ª»úÁåÉù
- MMIAPISET_StopRing(MMISET_RING_TYPE_POWER);
- MMIAPIIDLE_OpenIdleWin();
- MMK_CloseWin(win_id);
- break;
-
- case MSG_CLOSE_WINDOW:
- MMI_ReleaseTempImage();
-
-#ifdef UI_MULTILAYER_SUPPORT
- UILAYER_SetMainLayerType(MMITHEME_GetMainLayerDefaultType());
+void mmi_aigc_send_trans_stop_msg(void * param, uint32 param_size)
+{
+ //mmi_aigc_data_send_task_msg_send(MMI_AIGC_MSG_TRANS_STOP_SEND, NULL, 0);
+}
+
+static void mmi_aigc_send_trans_start_data_process(void * data_ptr, uint32 data_len)
+{
+ int ret = 0;
+ char send_ptr[512] = {0};
+ int send_len = 0;
+
+ send_len = sprintf(send_ptr, "{\"header\":{\"event\":\"StartTranscription\",\"trace_id\":\"3fa6b9e6a30b407ea38ad7ae69e6c291\"},\"payload\":{\"format\":\"amr\",\"sample_rate\":8000}}");
+
+ ret = mmi_aigc_trans_websocket_send_text_data(send_ptr, send_len);
+ if(0 > ret)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: error=%d,send fail\n", __FUNCTION__, __LINE__, ret);
+
+ mmi_aigc_trans_text_start_msg_send_fail();
+ }
+}
+
+static void mmi_aigc_send_trans_audio_data_process(void * data_ptr, uint32 data_len)
+{
+ int ret = 0;
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d,data=%s\n", __FUNCTION__, __LINE__, data_len, data_ptr);
+
+ ret = mmi_aigc_trans_websocket_send_binary_data(data_ptr, data_len);
+ if(0 > ret)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: error=%d,send fail\n", __FUNCTION__, __LINE__, ret);
+
+ mmi_aigc_trans_text_audio_msg_send_fail();
+ }
+}
+
+static void mmi_aigc_send_trans_stop_data_process(void * data_ptr, uint32 data_len)
+{
+#if 0
+ char send_ptr[512] = {0};
+ int send_len = 0;
+
+ send_len = sprintf(send_ptr, "{\"header\":{\"event\":\"StopTranscription\",\"trace_id\":\"3fa6b9e6a30b407ea38ad7ae69e6c291\"}}");
+
+ int ret = mmi_aigc_trans_websocket_send_text_data(send_ptr, send_len);
+ if(0 > ret)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: error=%d,send fail\n", __FUNCTION__, __LINE__, ret);
+ }
#endif
- // ¹Ø±Õ¿ª»ú´°¿Ú¶¨Ê±Æ÷
- if( 0 != s_phone_startup_timer_id )
- {
- // ¼ì²éAlarmµÄÇé¿ö
- MMIAPIALM_CheckAndStartDelayedAlarm();
- MMK_StopTimer(s_phone_startup_timer_id);
- s_phone_startup_timer_id = 0;
- MMIAPIIDLE_OpenIdleWin();
- }
-#ifdef VIDEO_PLAYER_SUPPORT
- MMIAPIVP_ExitPlay();
+}
+
+void mmi_aigc_trans_websocket_recv_data_handler(char * data_ptr, int data_len)
+{
+ cJSON * json_root = PNULL;
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d\n", __FUNCTION__, __LINE__, data_len);
+
+ if(NULL == data_ptr)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: no data\n", __FUNCTION__, __LINE__);
+ return;
+ }
+
+#ifdef MMI_AIGC_DEBUG_TO_FILE
+ mmi_debug_info_write_to_file(AIGC_RECV_TRANS_FILE, data_ptr, data_len);
#endif
-#if defined(MMI_POWERONOFFMP4_ENABLE)
- if (PNULL != s_poweronoff_buffer_ptr)
+
+ json_root = cJSON_Parse(data_ptr);
+ if(NULL != json_root)
+ {
+ // "event"
+ char * value_event_str = cJSON_GetStringValue(cJSON_GetObjectItem(json_root, "event"));
+ if(0 == strncmp(value_event_str, "TranscriptionStarted", strlen("TranscriptionStarted")))
{
- SCI_FREE(s_poweronoff_buffer_ptr);
- s_poweronoff_buffer_ptr = PNULL;
+ // start
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: transcription start\n", __FUNCTION__, __LINE__);
+ mmi_aigc_trans_text_msg_send_action();
}
-#endif
- //cr124655, µ±¿ª»ú´°¿Ú±»´ò¶Ï£¬ÐèÒªÖÐÖ¹¿ª»úÁåÉù
- MMIAPISET_StopRing(MMISET_RING_TYPE_POWER);
- MMIAPIPHONE_SetPowerAnimMpeg4Flag(FALSE);
-#ifdef MSDC_CARD_SUPPORT
- MMIAPISD_CheckAllDelayedDevice();
-#endif
- //MMIAPIPHONE_ResumeAllDelaiedEvent();
-// if (MMIAPIUdisk_IsUSBDelay())
-// {
-// MMIAPIUdisk_OpenUsbOperWindow();
-// MMIAPIUdisk_SetUSBDelay(FALSE);
-// }
- //MMIDEFAULT_EnableKeyRing(TRUE);
- //MMIDEFAULT_EnableTpRing(TRUE);
- MMIDEFAULT_AllowTurnOffBackLight(TRUE);
- MMI_RestoreFreq();
- break;
-
-#ifdef LCD_SLIDE_SUPPORT
- case MSG_KEYDOWN_SLIDE:
- case MSG_KEYUP_SLIDE:
-#endif
- case MSG_KEYDOWN_UPSIDE:
- case MSG_KEYDOWN_DOWNSIDE:
- case MSG_KEYREPEAT_UPSIDE:
- case MSG_KEYREPEAT_DOWNSIDE:
- case MSG_APP_RED:
- case MSG_KEYLONG_RED:
- break;
-
-#ifdef FLIP_PHONE_SUPPORT //close flip ring codes, just open for flip phone.
- case MSG_APP_FLIP:
- MMIDEFAULT_HandleFlipKey(FALSE);
- break;
-#endif
-
- default:
- result = MMI_RESULT_FALSE;
- break;
- }
-
- return (result);
+ else if(0 == strncmp(value_event_str, "Changed", strlen("Changed")))
+ {
+ // changed
+ cJSON * json_result = cJSON_GetObjectItem(json_root, "result");
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: changed\n", __FUNCTION__, __LINE__);
+ if(NULL != json_result)
+ {
+ char * value_result_str = cJSON_GetStringValue(cJSON_GetObjectItem(json_result, "result"));
+ uint32 value_result_len = strlen(value_result_str);
+
+ if(true == mmi_aigc_trans_result_text_store(value_result_str, value_result_len, false))
+ {
+ // refresh ui
+ //mmi_aigc_trans_text_middle_screen_update();
+ }
+ }
+ }
+ else if(0 == strncmp(value_event_str, "SentenceEnd", strlen("SentenceEnd")))
+ {
+ // end
+ cJSON * json_result = cJSON_GetObjectItem(json_root, "result");
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: transcription end\n", __FUNCTION__, __LINE__);
+ if(NULL != json_result)
+ {
+ char * value_result_str = cJSON_GetStringValue(cJSON_GetObjectItem(json_result, "result"));
+ uint32 value_result_len = strlen(value_result_str);
+
+ if(true == mmi_aigc_trans_result_text_store(value_result_str, value_result_len, true))
+ {
+ // refresh ui
+ mmi_aigc_trans_text_stop_screen_update();
+ }
+ }
+ }
+ else if(0 == strncmp(value_event_str, "TranscriptionCompleted", strlen("TranscriptionCompleted")))
+ {
+ // stop
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: transcription stop\n", __FUNCTION__, __LINE__);
+
+ }
+ }
+
+EXIT_AND_FREE:
+ if(NULL != json_root)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: free json root\n", __FUNCTION__, __LINE__);
+ cJSON_Delete(json_root);
+ json_root = PNULL;
+ }
}
-/*****************************************************************************/
-// Description : ´¦ÀíÄÖÁåÆô¶¯¿ª»ú½çÃæµÄÏûÏ¢(³ýPSÖ®Íâ)
-// Global resource dependence :
-// Author: Jassmine
-// Note:
-/*****************************************************************************/
-LOCAL MMI_RESULT_E HandleAlarmStartupWindow (
- MMI_WIN_ID_T win_id, // STARTUP ALARM´°¿ÚµÄID
- MMI_MESSAGE_ID_E msg_id, // ´°¿ÚµÄÄÚ²¿ÏûÏ¢ID
- DPARAM param // ÏàÓ¦ÏûÏ¢µÄ²ÎÊý
- )
+
+
+// chat
+void mmi_aigc_send_chat_text_msg(void * param, uint32 param_size)
{
- MMI_RESULT_E result = MMI_RESULT_TRUE;
- GUI_LCD_DEV_INFO lcd_dev_info = {GUI_LCD_0, GUI_BLOCK_0};
-
- lcd_dev_info.lcd_id = GUI_MAIN_LCD_ID;
- lcd_dev_info.block_id = GUI_BLOCK_MAIN;
-
- switch (msg_id)
- {
- case MSG_OPEN_WINDOW:
- MMK_StopTimer(s_3sec_timer_id);
- s_3sec_timer_id = 0;
- break;
-
- case MSG_FULL_PAINT:
- //ÉèÖÃÄÖÖÓ±³¾°Í¼
- if(MMK_IsOpenWin(MMIPUB_QUERY_WIN_ID))
- {
- MMK_CloseWin(MMIPUB_QUERY_WIN_ID);
- }
- //ѯÎÊÊÇ·ñ¿ª»ú!!
- MMIPUB_OpenQueryWinByTextId(TXT_STARTUP_OR_NOT,IMAGE_PUBWIN_QUERY,PNULL,HandleStartOrNotWindow);
- if (s_3sec_timer_id != 0)
- {
- MMK_StopTimer(s_3sec_timer_id);
- s_3sec_timer_id = 0;
- }
- s_3sec_timer_id = MMK_CreateTimer(ALM_3SEC_TIME, FALSE);
- break;
-
- case MSG_TIMER:
- if (s_3sec_timer_id == *((uint8 *)param))
- {
- MMK_StopTimer(s_3sec_timer_id);
- s_3sec_timer_id = 0;
-
- //¹Ø±ÕѯÎÊ´°¿Ú
- MMIPUB_CloseQuerytWin(PNULL);
-
- //destroyÄÖÁå½çÃæ
- MMK_CloseWin(PHONE_STARTUP_ALARM_WIN_ID);
-
- if (STARTUP_ALARM == MMIAPIPHONE_GetStartUpCondition() || STARTUP_CHARGE == MMIAPIPHONE_GetStartUpCondition())
- {
- //POWER_PowerOff()֮ǰ¹Ø±Õ±³¹â
- MMIDEFAULT_TurnOffBackLight();
- MMIDEFAULT_SetKeybadBackLight(FALSE);
-
- // ¹Ø»ú
- POWER_PowerOff();
- }
- }
- else
- {
- result = MMI_RESULT_FALSE;
- }
- break;
-
- case MSG_PROMPTWIN_OK:
- case MSG_KEYLONG_RED:
- MMK_StopTimer(s_3sec_timer_id);
- s_3sec_timer_id = 0;
- //¹Ø±ÕѯÎÊ´°¿Ú
- MMIPUB_CloseQuerytWin(PNULL);
-
- //destroyÄÖÁå½çÃæ
- MMK_CloseWin(PHONE_STARTUP_ALARM_WIN_ID);
-
- // ¿ª»ú
- MMIAPIPHONE_PowerReset();
- // ¼Ç¼¿ª»ú·½Ê½
- MMIAPIPHONE_SetStartUpCondition(STARTUP_NORMAL);
- break;
-
- case MSG_PROMPTWIN_CANCEL:
- case MSG_APP_RED:
-#ifdef FLIP_PHONE_SUPPORT //close flip ring codes, just open for flip phone.
- case MSG_APP_FLIP:
-#endif
- MMK_StopTimer(s_3sec_timer_id);
- s_3sec_timer_id = 0;
-
-#ifdef FLIP_PHONE_SUPPORT //close flip ring codes, just open for flip phone.
- if(MSG_APP_FLIP == msg_id)
- {
- MMIDEFAULT_HandleFlipKey(FALSE);
- }
-#endif
-
- //¹Ø±ÕѯÎÊ´°¿Ú
- MMIPUB_CloseQuerytWin(PNULL);
-
- //destroyÄÖÁå½çÃæ
- MMK_CloseWin(PHONE_STARTUP_ALARM_WIN_ID);
-
- if (STARTUP_ALARM == MMIAPIPHONE_GetStartUpCondition() || STARTUP_CHARGE == MMIAPIPHONE_GetStartUpCondition())
- {
- //POWER_PowerOff()֮ǰ¹Ø±Õ±³¹â
- MMIDEFAULT_TurnOffBackLight();
- MMIDEFAULT_SetKeybadBackLight(FALSE);
-
- // ¹Ø»ú
- POWER_PowerOff();
- }
- break;
- case MSG_CLOSE_WINDOW:
- if(0!=s_3sec_timer_id)
- {
- MMK_StopTimer(s_3sec_timer_id);
- s_3sec_timer_id = 0;
- }
- break;
-
- default:
- result = MMI_RESULT_FALSE;
- break;
- }
-
- return (result);
+ mmi_aigc_data_send_task_msg_send(MMI_AIGC_MSG_CHAT_TEXT_SEND, param, param_size);
}
-/*****************************************************************************/
-// Description : ¹Ø»úÄÖÖÓºó£¬ÊÇ·ñ¿ª»úѯÎÊ´°¿Ú´¦Àíº¯Êý
-// Global resource dependence :
-// Author: Jassmine
-// Note:
-/*****************************************************************************/
-LOCAL MMI_RESULT_E HandleStartOrNotWindow(
- MMI_WIN_ID_T win_id,
- MMI_MESSAGE_ID_E msg_id,
- DPARAM param
- )
+static void mmi_aigc_send_chat_text_data_process(void * data_ptr, uint32 data_len)
{
- MMI_RESULT_E result = MMI_RESULT_TRUE;
-
- switch(msg_id)
- {
- case MSG_KEYLONG_RED:
- //¹Ø±ÕѯÎÊ´°¿Ú
- MMIPUB_CloseQuerytWin(PNULL);
-
- //destroyÄÖÁå½çÃæ
- MMK_CloseWin(PHONE_STARTUP_ALARM_WIN_ID);
-
- // ¿ª»ú
- MMIAPIPHONE_PowerReset();
- // ¼Ç¼¿ª»ú·½Ê½
- MMIAPIPHONE_SetStartUpCondition(STARTUP_NORMAL);
- break;
-
-#ifdef FLIP_PHONE_SUPPORT //close flip ring codes, just open for flip phone.
- case MSG_APP_FLIP:
- MMIDEFAULT_HandleFlipKey(FALSE);
- //¹Ø±ÕѯÎÊ´°¿Ú
- MMIPUB_CloseQuerytWin(PNULL);
-
- //destroyÄÖÁå½çÃæ
- MMK_CloseWin(PHONE_STARTUP_ALARM_WIN_ID);
-
- if (STARTUP_ALARM == MMIAPIPHONE_GetStartUpCondition())
- {
- // ¹Ø»ú
- MMIDEFAULT_TurnOffBackLight();
- MMIDEFAULT_SetKeybadBackLight(FALSE);
- POWER_PowerOff();
- }
- break;
-#endif
-
- default:
- result = MMIPUB_HandleQueryWinMsg(win_id,msg_id,param);
- break;
- }
-
- return (result);
+ int ret = 0;
+ uint32 temp_len = 0;
+ uint32 send_buff_len = data_len + 128;
+ char * send_buff_ptr = SCI_ALLOC_APPZ(send_buff_len);
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d,data=%s\n", __FUNCTION__, __LINE__, data_len, data_ptr);
+
+ if(NULL == send_buff_ptr)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc fail\n", __FUNCTION__, __LINE__);
+ return;
+ }
+ SCI_MEMSET(send_buff_ptr, 0x0, send_buff_len);
+
+ temp_len = sprintf(send_buff_ptr, "{\"type\":\"chat\",\"content\":\"%s\"}", data_ptr);
+
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: send_len=%d\n", __FUNCTION__, __LINE__, temp_len);
+ ret = mmi_aigc_chat_websocket_send_text_data(send_buff_ptr, temp_len);
+ if(0 > ret)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: error=%d,send fail\n", __FUNCTION__, __LINE__, ret);
+ }
+
+ if(NULL != send_buff_ptr)
+ {
+ SCI_FREE(send_buff_ptr);
+ send_buff_ptr = NULL;
+ }
}
-/*****************************************************************************/
-// Description : ´¦Àí¹Ø»ú½çÃæ
-// Global resource dependence :
-// Author: Jassmine
-// Note:
-/*****************************************************************************/
-LOCAL MMI_RESULT_E HandlePowerOffWindow(
- MMI_WIN_ID_T win_id, // STARTUP NORMAL´°¿ÚµÄID
- MMI_MESSAGE_ID_E msg_id, // ´°¿ÚµÄÄÚ²¿ÏûÏ¢ID
- DPARAM param // ÏàÓ¦ÏûÏ¢µÄ²ÎÊý
- )
-{
- MMI_RESULT_E result = MMI_RESULT_TRUE;
- static uint8 s_power_off_timer_id = 0; // ¹Ø»ú½çÃæ³ÖÐøÊ±¼äµÄIDºÅ
- MMISET_POWER_ON_OFF_ANIM_INFO_T power_on_off_anim_info = {0};
-
- switch (msg_id)
- {
- case MSG_OPEN_WINDOW:
-#ifdef UI_MULTILAYER_SUPPORT
- UILAYER_SetMainLayerType(DATA_TYPE_RGB565);
-#endif
-#ifdef MAINLCD_SIZE_128X64 //added by taiping.lai 2011/01/12
- {
- GUI_LCD_DEV_INFO lcd_dev_info = {GUI_LCD_0, GUI_BLOCK_0};
- GUI_RECT_T rect = {0, 0, MMI_MAINSCREEN_WIDTH-1, MMI_MAINSCREEN_HEIGHT-1};
-
- LCD_FillRect((const GUI_LCD_DEV_INFO*)&lcd_dev_info, rect, MMI_WHITE_COLOR);
- }
-#endif
- MMIDEFAULT_AllowTurnOffBackLight(FALSE);
- MMIAPISET_StopAllRing(TRUE);
- //s_is_play_default = TRUE;
-#ifndef MMI_POWERONOFFMP4_ENABLE
- s_is_play_power_on_mp4 = FALSE;
- SCI_MEMSET(&power_on_off_anim_info,0,sizeof( MMISET_POWER_ON_OFF_ANIM_INFO_T));
- MMIAPISET_GetPowerOnOffAnimInfo(&power_on_off_anim_info, FALSE);
- if (MMISET_POWER_ON_OFF_ANIM_DEFAULT == power_on_off_anim_info.anim_type)
- {
- PlayDefaultPowerOnOffAnimation(FALSE);
- }
- else if((MMISET_POWER_ON_OFF_ANIM_MORE == power_on_off_anim_info.anim_type)
- || (MMISET_POWER_ON_OFF_PIC_MORE == power_on_off_anim_info.anim_type))
- {
- if(!MMIAPIFMM_IsFileExist(power_on_off_anim_info.more_anim_info.name_wstr,power_on_off_anim_info.more_anim_info.name_wstr_len))
- {
- PlayDefaultPowerOnOffAnimation(FALSE);
- }
- else
- {
- uint16 suffix_wstr[MMIFMM_FILENAME_LEN + 1] = {0};
- uint16 suffix_len = MMIFMM_FILENAME_LEN;
- #ifdef DRM_SUPPORT
- MIME_TYPE_E drmmime = MMIAPIDRM_GetDRMFileMimeType(0, power_on_off_anim_info.more_anim_info.name_wstr);
- #endif
- MMIAPIFMM_SplitFileName(power_on_off_anim_info.more_anim_info.name_wstr,
- power_on_off_anim_info.more_anim_info.name_wstr_len,
- PNULL, PNULL, suffix_wstr, &suffix_len);
-
- if(MMIFMM_FILE_TYPE_PICTURE == MMIAPIFMM_ConvertFileType(suffix_wstr,suffix_len)
- #ifdef DRM_SUPPORT
- || (MMIFMM_FILE_TYPE_DRM == MMIAPIFMM_ConvertFileType(suffix_wstr,suffix_len)
- &&( drmmime <= MIME_TYPE_IMAGE_IEF && drmmime >= MIME_TYPE_IMAGE_ANY))
- #endif
- )
- {
- PlayMorePowerOnOffAnimation(FALSE,&power_on_off_anim_info);
- }
- }
-
- }
-#endif
- // ¿ªÆô´°¿Ú¶¨Ê±Æ÷
- if (s_power_off_timer_id != 0)
- {
- MMK_StopTimer(s_power_off_timer_id);
- s_power_off_timer_id = 0;
- }
- s_power_off_timer_id = MMK_CreateTimer(PHONE_POWER_OFF_DURING_TIME, FALSE);
- break;
-
- case MSG_FULL_PAINT:
-
- #ifdef VIDEO_PLAYER_SUPPORT
- MMIAPIVP_ExitPlay();//andy.he_crNEWMS00116228
- #endif
-
- PlayPowerOnOffMP4(FALSE);
- break;
-
- case MSG_TIMER:
- if (s_power_off_timer_id == *((uint8 *) param))
- {
- // ¹Ø±Õ¹Ø»ú´°¿Ú¶¨Ê±Æ÷
- MMK_StopTimer(s_power_off_timer_id);
- s_power_off_timer_id = 0;
- SCI_MEMSET(&power_on_off_anim_info, 0, sizeof(MMISET_POWER_ON_OFF_ANIM_INFO_T));
- MMIAPISET_GetPowerOnOffAnimInfo(&power_on_off_anim_info, FALSE);
-#ifdef VIDEO_PLAYER_SUPPORT
- if((MMISET_POWER_ON_OFF_ANIM_MORE == power_on_off_anim_info.anim_type)
- || (MMISET_POWER_ON_OFF_PIC_MORE == power_on_off_anim_info.anim_type))
- {
- uint16 suffix_wstr[MMIFMM_FILENAME_LEN + 1] = {0};
- uint16 suffix_len = MMIFMM_FILENAME_LEN;
- MMIAPIFMM_SplitFileName(power_on_off_anim_info.more_anim_info.name_wstr,
- power_on_off_anim_info.more_anim_info.name_wstr_len,
- PNULL, PNULL, suffix_wstr, &suffix_len);
- if(MMIFMM_FILE_TYPE_PICTURE == MMIAPIFMM_ConvertFileType(suffix_wstr,suffix_len))
- {
- PlayPowerOnOffMP4CallBack(VP_PLAY_END_END_SUCCESS);
- }
- else
- {
-#ifdef MMI_POWERONOFFMP4_ENABLE
- MMIAPIVP_ExitPlay();
-#else
- //if(s_is_play_default)//cr151078
- //{
- PlayPowerOnOffMP4CallBack(VP_PLAY_END_END_SUCCESS);
- //}
-#endif
- }
-
- }
- else if(MMISET_POWER_ON_OFF_ANIM_DEFAULT == power_on_off_anim_info.anim_type)
- {
-#ifdef MMI_POWERONOFFMP4_ENABLE
- MMIAPIVP_ExitPlay();
-#else
- PlayPowerOnOffMP4CallBack(VP_PLAY_END_END_SUCCESS);
-#endif
- }
-#else
- PlayPowerOnOffMP4CallBack();
-#endif
-
- }
- else
- {
- result = MMI_RESULT_FALSE;
- }
- break;
-
- case MSG_GET_FOCUS:
- MMK_CloseWin(win_id);
- break;
-
- case MSG_LOSE_FOCUS:
-#ifdef UI_MULTILAYER_SUPPORT
- UILAYER_SetMainLayerType(MMITHEME_GetMainLayerDefaultType());
-#endif
-#ifdef VIDEO_PLAYER_SUPPORT
- MMIAPIVP_ExitPlay();
-#endif
- break;
-
- case MSG_CLOSE_WINDOW:
-#ifdef UI_MULTILAYER_SUPPORT
- UILAYER_SetMainLayerType(MMITHEME_GetMainLayerDefaultType());
-#endif
- // ¹Ø±Õ¹Ø»ú´°¿Ú¶¨Ê±Æ÷
- if (s_power_off_timer_id != 0)
- {
- MMK_StopTimer(s_power_off_timer_id);
- s_power_off_timer_id = 0;
- }
-
-#ifdef VIDEO_PLAYER_SUPPORT
- MMIAPIVP_ExitPlay();
+
+void mmi_aigc_chat_websocket_recv_data_handler(char * data_ptr, int data_len)
+{
+ cJSON * json_root = PNULL;
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d\n", __FUNCTION__, __LINE__, data_len);
+
+ if(NULL == data_ptr)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: no data\n", __FUNCTION__, __LINE__);
+ return;
+ }
+
+#ifdef MMI_AIGC_DEBUG_TO_FILE
+ mmi_debug_info_write_to_file(AIGC_RECV_CHAT_FILE, data_ptr, data_len);
#endif
-#if defined(MMI_POWERONOFFMP4_ENABLE)
- if (PNULL != s_poweronoff_buffer_ptr)
+
+ json_root = cJSON_Parse(data_ptr);
+ if(NULL != json_root)
+ {
+ // "type"
+ char * value_type_str = cJSON_GetStringValue(cJSON_GetObjectItem(json_root, "type"));
+ if(0 == strncmp(value_type_str, "start", strlen("start")))
{
- SCI_FREE(s_poweronoff_buffer_ptr);
- s_poweronoff_buffer_ptr = PNULL;
+ // start
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: chat start\n", __FUNCTION__, __LINE__);
+
}
-#endif
- //¹Ø»ú
- MMIDEFAULT_TurnOffBackLight();
- MMIDEFAULT_SetKeybadBackLight(FALSE);
- //any way
- //MMIDEFAULT_EnableKeyRing(TRUE);
- //MMIDEFAULT_EnableTpRing(TRUE);
- MMIDEFAULT_AllowTurnOffBackLight(TRUE);
- //ΪÁËÏû³ý¶ú»úģʽÇé¿öϳöÏÖµÄpuÒô
- MMIAPISET_StopAllRing(TRUE);
- SCI_Sleep(2000);
-#ifdef ENG_SUPPORT
- MMIAPIENG_SaveLastTime();
-#endif
- POWER_PowerOff();
- break;
-
-#ifdef LCD_SLIDE_SUPPORT
- case MSG_KEYDOWN_SLIDE:
- case MSG_KEYUP_SLIDE:
-#endif
- case MSG_KEYDOWN_UPSIDE:
- case MSG_KEYDOWN_DOWNSIDE:
- case MSG_KEYREPEAT_UPSIDE:
- case MSG_KEYREPEAT_DOWNSIDE:
- case MSG_APP_RED:
- case MSG_KEYLONG_RED:
- case MSG_KEYUP_RED:
- break;
-
-#ifdef FLIP_PHONE_SUPPORT //close flip ring codes, just open for flip phone.
- case MSG_APP_FLIP:
- MMIDEFAULT_HandleFlipKey(FALSE);
- break;
-#endif
-
- default:
- result = MMI_RESULT_FALSE;
- break;
- }
-
- return (result);
+ else if(0 == strncmp(value_type_str, "middle", strlen("middle")))
+ {
+ // middle
+ char * value_content_str = cJSON_GetStringValue(cJSON_GetObjectItem(json_root, "content"));
+ uint32 value_content_len = strlen(value_content_str);
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: chat middle\n", __FUNCTION__, __LINE__);
+
+ if(true == mmi_aigc_chat_result_text_store(value_content_str, value_content_len))
+ {
+ // refresh ui
+ //mmi_aigc_chat_text_middle_screen_update();
+ }
+ }
+ else if(0 == strncmp(value_type_str, "end", strlen("end")))
+ {
+ // stop
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: chat stop\n", __FUNCTION__, __LINE__);
+
+ // refresh ui
+ mmi_aigc_chat_text_stop_screen_update();
+ }
+ }
+
+EXIT_AND_FREE:
+ if(NULL != json_root)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: free json root\n", __FUNCTION__, __LINE__);
+ cJSON_Delete(json_root);
+ json_root = NULL;
+ }
}
-/*****************************************************************************/
-// Description : Play mpeg4 as power on off animation.
-// Global resource dependence :
-// Author: bruce.chi
-// Note: Modified by apple.zhang
-/*****************************************************************************/
-LOCAL BOOLEAN PlayPowerOnOffMP4(BOOLEAN is_power_on_off) //TRUE:power on, FALSE:power off
+
+
+// tts
+void mmi_aigc_send_tts_text_msg(void * param, uint32 param_size)
{
-#ifdef VIDEO_PLAYER_SUPPORT
- MMIAUD_RING_DATA_INFO_T file_info = {0};/*lint !e64*/
- uint8 power_midi_volume = MMISET_VOL_ZERO;
- VP_PLAY_PARAM_T play_param = {0};
- MMISET_POWER_ON_OFF_ANIM_INFO_T power_on_off_anim_info = {0};
- GUI_RECT_T full_rect = {0};
-
-
- s_is_play_power_on_mp4 = is_power_on_off;
- //SCI_TRACE_LOW:"[POWERONOFF]:PlayPowerOnOffMP4:is_power_on=%d"
- SCI_TRACE_ID(TRACE_TOOL_CONVERT,MMIPHONE_ONOFF_970_112_2_18_2_45_26_225,(uint8*)"d", is_power_on_off);
-
- SCI_MEMSET(&file_info, 0, sizeof(MMIAUD_RING_DATA_INFO_T));
- SCI_MEMSET(&power_on_off_anim_info,0,sizeof(MMISET_POWER_ON_OFF_ANIM_INFO_T));
-
- MMIAPISET_GetPowerOnOffAnimInfo(
- &power_on_off_anim_info,
- is_power_on_off
- );
-
- if(0 == MMIAPIENVSET_GetActiveModeOptValue(MN_DUAL_SYS_1,POWER_RING_SWITCH))
- {
- power_midi_volume = MMIAPIENVSET_GetActiveModeRingVol(MMISET_RING_TYPE_POWER);
- }
- MMIAPIPHONE_SetPowerAnimMpeg4Flag(TRUE);
-
- SCI_MEMSET(&play_param,0,sizeof(VP_PLAY_PARAM_T));
- play_param.dual_sys = MN_DUAL_SYS_1;
- play_param.is_random_play = FALSE;
- play_param.mode = VP_REPEAT_PLAY_MODE_CLOSE;
- play_param.url_ptr = PNULL;
- play_param.display_param.audioSupport = 1;
- play_param.display_param.videoSupport = 1;
- play_param.is_scal_up = TRUE;
- play_param.display_param.RotateAngle = GUILCD_GetLogicAngle(GUI_MAIN_LCD_ID);
- full_rect = MMITHEME_GetFullScreenRect();
-
- if (LCD_ANGLE_0 == play_param.display_param.RotateAngle)
- {
- play_param.display_param.RotateAngle = LCD_ANGLE_90;
- play_param.display_param.disp_rect.dy = full_rect.right - full_rect.left + 1;
- play_param.display_param.disp_rect.dx = full_rect.bottom - full_rect.top + 1;
- }
- else if(LCD_ANGLE_180 == play_param.display_param.RotateAngle)
- {
- play_param.display_param.RotateAngle = LCD_ANGLE_270;
- play_param.display_param.disp_rect.dy = full_rect.right - full_rect.left + 1;
- play_param.display_param.disp_rect.dx = full_rect.bottom - full_rect.top + 1;
- }
- else
- {
- play_param.display_param.disp_rect.dx = full_rect.right - full_rect.left + 1;
- play_param.display_param.disp_rect.dy = full_rect.bottom - full_rect.top + 1;
- }
-
-
-
- play_param.display_param.target_rect.x = play_param.display_param.disp_rect.x;
- play_param.display_param.target_rect.y = play_param.display_param.disp_rect.y;
- play_param.display_param.target_rect.dx = play_param.display_param.disp_rect.dx;
- play_param.display_param.target_rect.dy = play_param.display_param.disp_rect.dy;
-
- play_param.display_param.disp_mode = DPLAYER_DISP_CUSTOMIZE;
-
- switch (power_on_off_anim_info.anim_type)
- {
- case MMISET_POWER_ON_OFF_ANIM_DEFAULT:
-#if defined(MMI_POWERONOFFMP4_ENABLE)
- MMI_GetRingInfo(OPEN_MP4, &file_info);
- play_param.play_type = VP_PLAY_FROM_BUFFER;
- play_param.video_buf_info.type = MMICOM_VIDEO_TYPE_3GP;
- play_param.video_buf_info.video_buf_len = file_info.data_len;
- play_param.video_buf_info.video_buf_ptr = SCI_ALLOCA(file_info.data_len);
- if (PNULL == play_param.video_buf_info.video_buf_ptr)
- {
- PlayPowerOnOffMP4CallBack(VP_PLAY_END_END_SUCCESS);
- break;
- }
- SCI_MEMSET(play_param.video_buf_info.video_buf_ptr,0,file_info.data_len);
- SCI_MEMCPY(play_param.video_buf_info.video_buf_ptr,file_info.data_ptr,file_info.data_len);
- s_poweronoff_buffer_ptr = play_param.video_buf_info.video_buf_ptr;
- play_param.vol = power_midi_volume;
- if(!MMIAPIVP_Play(&play_param, HandleVideoPowerOnOffMsg, 0))
- {
- PlayPowerOnOffMP4CallBack(VP_PLAY_END_END_SUCCESS);
- }
+ mmi_aigc_data_send_task_msg_send(MMI_AIGC_MSG_TTS_TEXT_SEND, param, param_size);
+}
+
+static void mmi_aigc_send_tts_text_data_process(void * data_ptr, uint32 data_len)
+{
+ int ret = 0;
+ uint32 temp_len = 0;
+ uint32 send_buff_len = data_len + 256;
+ char * send_buff_ptr = SCI_ALLOC_APPZ(send_buff_len);
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d\n", __FUNCTION__, __LINE__, data_len);
+
+ if(NULL == send_buff_ptr)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc fail\n", __FUNCTION__, __LINE__);
+ return;
+ }
+ SCI_MEMSET(send_buff_ptr, 0x0, send_buff_len);
+
+ temp_len = 0;
+ temp_len += sprintf(send_buff_ptr + temp_len, "{\"header\":{\"event\":\"LongTextStream\",\"trace_id\":\"3fa6b9e6a30b407ea38ad7ae69e6c291\"},");
+ temp_len += sprintf(send_buff_ptr + temp_len, "\"payload\":{\"voice\":\"xiaoyun\",\"format\":\"mp3\",\"sample_rate\":8000,\"volume\":50,\"speech_rate\":2,"); // 0,");
+ temp_len += sprintf(send_buff_ptr + temp_len, "\"text\":\"%s\"}}", data_ptr); // 185 + data_len
+
+#ifdef MMI_AIGC_DEBUG_TO_FILE
+ mmi_debug_info_write_to_file(AIGC_SEND_TTS_TEXT_FILE, send_buff_ptr, temp_len);
+#endif
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: send_len=%d\n", __FUNCTION__, __LINE__, temp_len);
+ ret = mmi_aigc_tts_websocket_send_text_data(send_buff_ptr, temp_len);
+ if(0 > ret)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: error=%d,send fail\n", __FUNCTION__, __LINE__, ret);
+ //mmi_aigc_list_screen_signal_weak_prompt();
+ }
+
+ if(NULL != send_buff_ptr)
+ {
+ SCI_FREE(send_buff_ptr);
+ send_buff_ptr = NULL;
+ }
+}
+
+void mmi_aigc_tts_websocket_recv_data_handler(char * data_ptr, int data_len)
+{
+ cJSON * json_root = PNULL;
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d\n", __FUNCTION__, __LINE__, data_len);
+
+ if(NULL == data_ptr)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: no data\n", __FUNCTION__, __LINE__);
+ return;
+ }
+
+#ifdef MMI_AIGC_DEBUG_TO_FILE
+ mmi_debug_info_write_to_file(AIGC_RECV_TTS_FILE, data_ptr, data_len);
#endif
- break;
-
-
- case MMISET_POWER_ON_OFF_ANIM_MORE:
- case MMISET_POWER_ON_OFF_PIC_MORE:
- if(MMIAPIFMM_IsFileExist(power_on_off_anim_info.more_anim_info.name_wstr,power_on_off_anim_info.more_anim_info.name_wstr_len))
- {
- uint16 suffix_wstr[MMIFMM_FILENAME_LEN + 1] = {0};
- uint16 suffix_len = MMIFMM_FILENAME_LEN;
- #ifdef DRM_SUPPORT
- MIME_TYPE_E drmmime = MMIAPIDRM_GetDRMFileMimeType(0, power_on_off_anim_info.more_anim_info.name_wstr);
- #endif
- MMIAPIFMM_SplitFileName(power_on_off_anim_info.more_anim_info.name_wstr,
- power_on_off_anim_info.more_anim_info.name_wstr_len,
- PNULL, PNULL, suffix_wstr, &suffix_len);
-
- if(MMIFMM_FILE_TYPE_PICTURE == MMIAPIFMM_ConvertFileType(suffix_wstr,suffix_len)
- #ifdef DRM_SUPPORT
- || (MMIFMM_FILE_TYPE_DRM == MMIAPIFMM_ConvertFileType(suffix_wstr,suffix_len)
- &&( drmmime <= MIME_TYPE_IMAGE_IEF && drmmime >= MIME_TYPE_IMAGE_ANY))
- #endif
- )
- {
- PlayMorePowerOnOffAnimation(is_power_on_off,&power_on_off_anim_info);
- }
- else
- {
- play_param.play_type = VP_PLAY_FROM_FILE;
- play_param.full_path_len = power_on_off_anim_info.more_anim_info.name_wstr_len;
- play_param.full_path_ptr = power_on_off_anim_info.more_anim_info.name_wstr;
- play_param.vol = power_midi_volume;
- //s_is_play_default = FALSE;
- if(!MMIAPIVP_Play(&play_param, HandleVideoPowerOnOffMsg, 0))
- {
- PlayPowerOnOffMP4CallBack(VP_PLAY_END_END_SUCCESS);
- }
- }
- }
- else
- {
- #if defined(MMI_POWERONOFFMP4_ENABLE)
- MMI_GetRingInfo(OPEN_MP4, &file_info);
- play_param.play_type = VP_PLAY_FROM_BUFFER;
- play_param.video_buf_info.type = MMICOM_VIDEO_TYPE_3GP;
- play_param.video_buf_info.video_buf_len = file_info.data_len;
- play_param.video_buf_info.video_buf_ptr = SCI_ALLOCA(file_info.data_len);
- if (PNULL == play_param.video_buf_info.video_buf_ptr)
+
+ json_root = cJSON_Parse(data_ptr);
+ if(NULL != json_root)
+ {
+ cJSON * json_header = cJSON_GetObjectItem(json_root, "header");
+ if(NULL != json_header)
+ {
+ char * value_event_str = cJSON_GetStringValue(cJSON_GetObjectItem(json_header, "event"));
+ if(0 == strncmp(value_event_str, "EndSynthesis", strlen("EndSynthesis")))
{
- PlayPowerOnOffMP4CallBack(VP_PLAY_END_END_SUCCESS);
- break;
+ // end
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: EndSynthesis\n", __FUNCTION__, __LINE__);
+
+ mmi_aigc_tts_end_synthesis_action();
}
- SCI_MEMSET(play_param.video_buf_info.video_buf_ptr,0,file_info.data_len);
- SCI_MEMCPY(play_param.video_buf_info.video_buf_ptr,file_info.data_ptr,file_info.data_len);
- s_poweronoff_buffer_ptr = play_param.video_buf_info.video_buf_ptr;
-
- play_param.vol = power_midi_volume;
- if(!MMIAPIVP_Play(&play_param, HandleVideoPowerOnOffMsg, 0))
- {
- PlayPowerOnOffMP4CallBack(VP_PLAY_END_END_SUCCESS);
- }
- #endif
- }
- break;
-
- default:
- //SCI_TRACE_LOW:"[POWERONOFF]:PlayPowerOnOffMP4:anim_type=%d"
- SCI_TRACE_ID(TRACE_TOOL_CONVERT,MMIPHONE_ONOFF_1086_112_2_18_2_45_27_226,(uint8*)"d", power_on_off_anim_info.anim_type);
- break;
- }
-
-#endif
- return TRUE;
+ }
+ }
+ else
+ {
+ // tts data
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: tts data\n", __FUNCTION__, __LINE__);
+ if(true == mmi_aigc_tts_audio_store(data_ptr, data_len))
+ {
+
+ }
+ }
+
+ if(NULL != json_root)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: free json root\n", __FUNCTION__, __LINE__);
+ cJSON_Delete(json_root);
+ json_root = NULL;
+ }
}
#include "mn_api.h"
#include "guictrl_api.h"
#include "mmidisplay_data.h"
+#include "guianim.h"
#include "mmi_aigc_internal.h"
+#include "mmi_link.h"
#ifdef MMI_CUSTOM_AIGC_SUPPORT
static MMI_AIGC_UI_STATE_E s_aigc_ui_state = MMI_AIGC_UI_STATE_NONE;
+static MMI_AIGC_UI_ITEM_INFO_T s_aigc_self_item_t = {0};
+static MMI_AIGC_UI_ITEM_INFO_T s_aigc_other_item_t = {0};
+
+static char * s_aigc_record_buffer = PNULL;
+static uint32 s_aigc_record_size = 0;
+static wchar s_aigc_record_file[64] = {0};
+static MMISRV_HANDLE_T s_aigc_record_handle = INVALID_HANDLE;
+static MMISRV_HANDLE_T s_aigc_audio_handle = INVALID_HANDLE;
+
+static uint8 s_aigc_timer_id = 0;
+
+static uint32 s_aigc_recording_sent_size = 0;
+static uint32 s_aigc_tts_text_sent_size = 0;
+static BOOLEAN s_aigc_trans_text_end = FALSE;
+static BOOLEAN s_aigc_tts_audio_playing = FALSE;
+
+static MMI_LINK_NODE_T * s_aigc_tts_audio_ll_ptr = PNULL;
+
+
+#define MMI_AIGC_SEND_TTS_TEXT_MAX (150) // 50
+#define MMI_AIGC_SEND_TTS_TEXT_MIN (99) // 33
+
+
+#define MMI_AIGC_SELF_ITEM_BACKGROUND_COLOR (GUI_RGB2RGB565(79, 195, 76))
+#define MMI_AIGC_OTHER_ITEM_BACKGROUND_COLOR (GUI_RGB2RGB565(25, 25, 25))
+
+
+//#define __RECORD_USE_BUF__
+
+
+static void mmi_aigc_chat_text_download_requst(void);
+static void mmi_aigc_tts_audio_download_requst(void);
+static void mmi_aigc_tts_audio_ll_clean(void);
+static MMI_LINK_NODE_T * mmi_aigc_tts_audio_ll_add_tail_node(void);
+LOCAL void mmi_aigc_audio_play_start(void);
+LOCAL void mmi_aigc_audio_record_stop(void);
+LOCAL void mmi_aigc_update_to_list_win(void);
+LOCAL void mmi_aigc_update_to_thinking_win(void);
/*
*/
-
-
-LOCAL void mmi_aigc_thinking_win_display(void)
+static void mmi_aigc_all_data_clean(void)
{
- MMI_WIN_ID_T win_id = MMI_AIGC_MAIN_WIN_ID;
- GUI_LCD_DEV_INFO *dev_info_ptr = MMITHEME_GetDefaultLcdDev();
- GUI_RECT_T full_rect = MMITHEME_GetFullScreenRect();
- GUI_FONT_ALL_T font_all = {SONG_FONT_30, MMI_WHITE_COLOR};
- GUI_BG_T ctrl_bg = {0};
- GUI_RECT_T ctrl_rect = {0};
- MMI_STRING_T display_text = {0};
- uint16 image_width = 0;
- uint16 image_height = 0;
- GUI_POINT_T display_point = {0};
- MMI_IMAGE_ID_T image_id = IMAGE_NULL;
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ if(PNULL != s_aigc_self_item_t.text_data_ptr)
+ {
+ SCI_FREE(s_aigc_self_item_t.text_data_ptr);
+ s_aigc_self_item_t.text_data_ptr = PNULL;
+ }
+ s_aigc_self_item_t.text_data_size = 0;
- MMIDEFAULT_AllowTurnOffBackLight(FALSE);
+ if(PNULL != s_aigc_other_item_t.text_data_ptr)
+ {
+ SCI_FREE(s_aigc_other_item_t.text_data_ptr);
+ s_aigc_other_item_t.text_data_ptr = PNULL;
+ }
+ s_aigc_other_item_t.text_data_size = 0;
- // background
- GUI_FillRect(dev_info_ptr, full_rect, MMI_BLACK_COLOR);
+#ifdef __RECORD_USE_BUF__
+ if(PNULL != s_aigc_record_buffer)
+ {
+ SCI_FREE(s_aigc_record_buffer);
+ s_aigc_record_buffer = PNULL;
+ }
+ s_aigc_record_size = 0;
+#else
+ if(TRUE == MMIAPIFMM_IsFileExist(s_aigc_record_file, MMIAPICOM_Wstrlen(s_aigc_record_file)))
+ {
+ MMIAPIFMM_DeleteFile(s_aigc_record_file, PNULL);
+ }
+#endif
+
+ mmi_aigc_tts_audio_ll_clean();
+}
+BOOLEAN mmi_aigc_listening_stop(BOOLEAN is_cancel)
+{
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ mmi_aigc_audio_record_stop();
+ if(true == is_cancel)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ #ifdef __RECORD_USE_BUF__
+ if(PNULL != s_aigc_record_buffer)
+ {
+ SCI_FREE(s_aigc_record_buffer);
+ s_aigc_record_buffer = PNULL;
+ }
+ s_aigc_record_size = 0;
+ #else
+ if(TRUE == MMIAPIFMM_IsFileExist(s_aigc_record_file, MMIAPICOM_Wstrlen(s_aigc_record_file)))
+ {
+ MMIAPIFMM_DeleteFile(s_aigc_record_file, PNULL);
+ }
+ #endif
+
+ return FALSE;
+ }
+ return TRUE;
}
-LOCAL void mmi_aigc_listening_win_display(void)
+char * mmi_aigc_trans_result_text_get(uint32 * data_len)
{
- MMI_WIN_ID_T win_id = MMI_AIGC_MAIN_WIN_ID;
- GUI_LCD_DEV_INFO *dev_info_ptr = MMITHEME_GetDefaultLcdDev();
- GUI_RECT_T full_rect = MMITHEME_GetFullScreenRect();
- GUI_FONT_ALL_T font_all = {SONG_FONT_30, MMI_WHITE_COLOR};
- GUI_BG_T ctrl_bg = {0};
- GUI_RECT_T ctrl_rect = {0};
- MMI_STRING_T display_text = {0};
- uint16 image_width = 0;
- uint16 image_height = 0;
- GUI_POINT_T display_point = {0};
- MMI_IMAGE_ID_T image_id = IMAGE_NULL;
+ * data_len = s_aigc_self_item_t.text_data_size;
+ return (s_aigc_self_item_t.text_data_ptr);
+}
+BOOLEAN mmi_aigc_trans_result_text_store(char * data_buff, uint32 data_len, BOOLEAN is_end)
+{
+ char * temp_ptr = PNULL;
- MMIDEFAULT_AllowTurnOffBackLight(FALSE);
+ if(NULL == data_buff || 0 == data_len)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ return FALSE;
+ }
- // background
- GUI_FillRect(dev_info_ptr, full_rect, MMI_BLACK_COLOR);
+ if(TRUE == s_aigc_trans_text_end)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ return FALSE;
+ }
+ s_aigc_trans_text_end = is_end;
+ temp_ptr = SCI_ALLOC_APPZ(data_len + 1);
+ if(NULL == temp_ptr)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: alloc memory fail\n", __FUNCTION__, __LINE__);
+ return FALSE;
+ }
+ SCI_MEMSET(temp_ptr, 0x0, data_len + 1);
+ SCI_MEMCPY(temp_ptr, data_buff, data_len);
+
+ if(PNULL != s_aigc_self_item_t.text_data_ptr)
+ {
+ SCI_FREE(s_aigc_self_item_t.text_data_ptr);
+ s_aigc_self_item_t.text_data_ptr = NULL;
+ }
+ s_aigc_self_item_t.text_data_ptr = temp_ptr;
+ s_aigc_self_item_t.text_data_size = data_len;
+
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d,ptr=0x%x\n", __FUNCTION__, __LINE__, s_aigc_self_item_t.text_data_size, s_aigc_self_item_t.text_data_ptr);
+#ifdef MMI_AIGC_DEBUG_TO_FILE
+ mmi_debug_info_write_to_file(AIGC_RECV_TRANS_RESULT_FILE, s_aigc_self_item_t.text_data_ptr, s_aigc_self_item_t.text_data_size);
+#endif
+ return TRUE;
}
-LOCAL void mmi_aigc_default_win_display(void)
+void mmi_aigc_trans_text_middle_screen_update(void)
{
- MMI_WIN_ID_T win_id = MMI_AIGC_MAIN_WIN_ID;
- GUI_LCD_DEV_INFO *dev_info_ptr = MMITHEME_GetDefaultLcdDev();
- GUI_RECT_T full_rect = MMITHEME_GetFullScreenRect();
- GUI_FONT_ALL_T font_all = {SONG_FONT_30, MMI_WHITE_COLOR};
- GUI_BG_T ctrl_bg = {0};
- GUI_RECT_T ctrl_rect = {0};
- MMI_STRING_T display_text = {0};
- uint16 image_width = 0;
- uint16 image_height = 0;
- GUI_POINT_T display_point = {0};
- MMI_IMAGE_ID_T image_id = IMAGE_NULL;
+#if 0
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: ui_state=%d\n", __FUNCTION__, __LINE__, s_aigc_ui_state);
+
+ if(MMI_AIGC_UI_STATE_LISTENING == s_aigc_ui_state || MMI_AIGC_UI_STATE_LISTENING_MIDDLE == s_aigc_ui_state)
+ {
+ if(0 != mmi_aigc_msg_count_get())
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ mmi_aigc_listening_middle_screen_display();
+ }
+ }
+#endif
+}
- MMIDEFAULT_AllowTurnOffBackLight(FALSE);
+void mmi_aigc_trans_text_stop_screen_update(void)
+{
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: ui_state=%d\n", __FUNCTION__, __LINE__, s_aigc_ui_state);
- // background
- GUI_FillRect(dev_info_ptr, full_rect, MMI_BLACK_COLOR);
+ // wb
+ mmi_aigc_trans_websocket_close();
+ mmi_aigc_chat_websocket_open();
- // label 0
- ctrl_rect.left = 0;
- ctrl_rect.right = MMI_MAINSCREEN_WIDTH;
- ctrl_rect.top = 50;
- ctrl_rect.bottom = ctrl_rect.top + 40;
- GUILABEL_SetRect( MMI_AIGC_LABEL_0_CTRL_ID, &ctrl_rect, FALSE);
- ctrl_bg.bg_type = GUI_BG_NONE;
- //ctrl_bg.img_id = ;
- GUILABEL_SetBg( MMI_AIGC_LABEL_0_CTRL_ID, &ctrl_bg);
- GUILABEL_SetFont( MMI_AIGC_LABEL_0_CTRL_ID, font_all.font, font_all.color);
- MMI_GetLabelTextByLang(TXT_AIGC_ASSITANT, &display_text);
- GUILABEL_SetText( MMI_AIGC_LABEL_0_CTRL_ID, &display_text, FALSE);
+ mmi_aigc_chat_text_download_requst();
+ //s_aigc_timer_id = MMK_CreateTimerCallback(1500, mmi_aigc_listening_middle_win_timer_cb, 0, FALSE);
+}
-/*
- // image
- image_id = IMAGE_AIGC_DEFAULT;
- GUIRES_GetImgWidthHeight(&image_width, &image_height, image_id, win_id);
- display_point.x = (MMI_MAINSCREEN_WIDTH - image_width) / 2;
- display_point.y = (MMI_MAINSCREEN_HEIGHT- image_height) / 2 - 30;
- IMG_EnableTransparentColor(TRUE);
- GUIRES_DisplayImg(&display_point,
- PNULL,
- PNULL,
- win_id,
- image_id,
- dev_info_ptr);
- IMG_EnableTransparentColor(FALSE);
-*/
- // label 1
- image_id = IMAGE_AIGC_DEFAULT;
- GUIRES_GetImgWidthHeight(&image_width, &image_height, image_id, win_id);
- ctrl_rect.top = (MMI_MAINSCREEN_HEIGHT- image_height) / 2 - 30;
- ctrl_rect.bottom = ctrl_rect.top + image_height;
- GUILABEL_SetRect( MMI_AIGC_LABEL_2_CTRL_ID, &ctrl_rect, FALSE);
- ctrl_bg.bg_type = GUI_BG_IMG;
- ctrl_bg.img_id = IMAGE_AIGC_PROMPT;
- GUILABEL_SetBg( MMI_AIGC_LABEL_2_CTRL_ID, &ctrl_bg);
- GUILABEL_SetFont( MMI_AIGC_LABEL_2_CTRL_ID, font_all.font, font_all.color);
- MMI_GetLabelTextByLang(TXT_AIGC_OPEN_FAIL, &display_text);
- GUILABEL_SetText( MMI_AIGC_LABEL_2_CTRL_ID, &display_text, FALSE);
+void mmi_aigc_trans_text_msg_send_action(void)
+{
+#ifndef __RECORD_USE_BUF__
+ char * temp_buf = PNULL;
+ uint32 temp_size = 0;
+ MMIFILE_HANDLE file_handle = SFS_INVALID_HANDLE;
+ MMIFILE_ERROR_E file_error = SFS_NO_ERROR;
- // label 2
- GUIAPICTRL_SetState(MMI_AIGC_LABEL_2_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
+ if(TRUE != MMIAPIFMM_IsFileExist(s_aigc_record_file, MMIAPICOM_Wstrlen(s_aigc_record_file)))
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ goto EXIT_AND_FREE;
+ }
- // label 3
- ctrl_rect.top = 250;
- ctrl_rect.bottom = ctrl_rect.top + 50;
- GUILABEL_SetRect( MMI_AIGC_LABEL_3_CTRL_ID, &ctrl_rect, FALSE);
- ctrl_bg.bg_type = GUI_BG_IMG;
- ctrl_bg.img_id = IMAGE_AIGC_RECORD_BUTTON_DEFAULT;
- GUILABEL_SetBg( MMI_AIGC_LABEL_3_CTRL_ID, &ctrl_bg);
- GUILABEL_SetFont( MMI_AIGC_LABEL_3_CTRL_ID, font_all.font, font_all.color);
- MMI_GetLabelTextByLang(TXT_AIGC_CONVERSATION, &display_text);
- GUILABEL_SetText( MMI_AIGC_LABEL_3_CTRL_ID, &display_text, FALSE);
-
- // anim
- GUIAPICTRL_SetState(MMI_AIGC_ANIM_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
+ temp_buf = SCI_ALLOC_APPZ(MMI_AIGC_DATA_RECORD_SIZE_MAX);
+ if(PNULL == temp_buf)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ goto EXIT_AND_FREE;
+ }
+ SCI_MEMSET(temp_buf, 0x0, MMI_AIGC_DATA_RECORD_SIZE_MAX);
+ temp_size = 0;
+
+ file_handle = MMIAPIFMM_CreateFile(temp_buf, SFS_MODE_OPEN_EXISTING|SFS_MODE_READ, 0, 0);
+ if (SFS_INVALID_HANDLE == file_handle)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ goto EXIT_AND_FREE;
+ }
+ file_error = MMIAPIFMM_ReadFile(file_handle, temp_buf, MMI_AIGC_DATA_RECORD_SIZE_MAX, &temp_size, 0);
+ if (SFS_NO_ERROR != file_error)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: file_error=%d\n", __FUNCTION__, __LINE__, file_error);
+ goto EXIT_AND_FREE;
+ }
+
+ mmi_aigc_send_trans_audio_msg(temp_buf, temp_size);
+
+EXIT_AND_FREE:
+ if(PNULL != temp_buf)
+ {
+ SCI_FREE(temp_buf);
+ temp_buf = PNULL;
+ }
+ if(SFS_INVALID_HANDLE != file_handle)
+ {
+ MMIAPIFMM_CloseFile(file_handle);
+ }
+#endif
}
-LOCAL void mmi_aigc_no_network_win_display(void)
+void mmi_aigc_trans_text_start_msg_send_fail(void)
{
- MMI_WIN_ID_T win_id = MMI_AIGC_MAIN_WIN_ID;
- GUI_LCD_DEV_INFO *dev_info_ptr = MMITHEME_GetDefaultLcdDev();
- GUI_RECT_T full_rect = MMITHEME_GetFullScreenRect();
- GUI_FONT_ALL_T font_all = {SONG_FONT_30, MMI_WHITE_COLOR};
- GUI_BG_T ctrl_bg = {0};
- GUI_RECT_T ctrl_rect = {0};
- MMI_STRING_T display_text = {0};
- char text_ptr[64] = {0};
- wchar text_dis[64] = {0};
- uint16 image_width = 0;
- uint16 image_height = 0;
- GUI_POINT_T display_point = {0};
- MMI_IMAGE_ID_T image_id = IMAGE_NULL;
+ mmi_aigc_trans_websocket_close();
+ //mmi_aigc_listening_stop(true);
+ //mmi_aigc_update_to_default_win();
+}
- // background
- GUI_FillRect(dev_info_ptr, full_rect, MMI_BLACK_COLOR);
-
- // label 0
- ctrl_rect.left = 0;
- ctrl_rect.right = MMI_MAINSCREEN_WIDTH;
- ctrl_rect.top = 50;
- ctrl_rect.bottom = ctrl_rect.top + 40;
- GUILABEL_SetRect( MMI_AIGC_LABEL_0_CTRL_ID, &ctrl_rect, FALSE);
- ctrl_bg.bg_type = GUI_BG_NONE;
- //ctrl_bg.img_id = ;
- GUILABEL_SetBg( MMI_AIGC_LABEL_0_CTRL_ID, &ctrl_bg);
- GUILABEL_SetFont( MMI_AIGC_LABEL_0_CTRL_ID, font_all.font, font_all.color);
- MMI_GetLabelTextByLang(TXT_AIGC_ASSITANT, &display_text);
- GUILABEL_SetText( MMI_AIGC_LABEL_0_CTRL_ID, &display_text, FALSE);
+void mmi_aigc_trans_text_audio_msg_send_fail(void)
+{
+ mmi_aigc_trans_websocket_close();
+ mmi_aigc_trans_websocket_open();
+}
-/*
- // image
- image_id = IMAGE_AIGC_PROMPT;
- GUIRES_GetImgWidthHeight(&image_width, &image_height, image_id, win_id);
- display_point.x = (MMI_MAINSCREEN_WIDTH - image_width) / 2;
- display_point.y = 100;
- IMG_EnableTransparentColor(TRUE);
- GUIRES_DisplayImg(&display_point,
- PNULL,
- PNULL,
- win_id,
- image_id,
- dev_info_ptr);
- IMG_EnableTransparentColor(FALSE);
-*/
- // label 1
- image_id = IMAGE_AIGC_PROMPT;
- GUIRES_GetImgWidthHeight(&image_width, &image_height, image_id, win_id);
- ctrl_rect.top = 100;
- ctrl_rect.bottom = ctrl_rect.top + image_height;
- GUILABEL_SetRect( MMI_AIGC_LABEL_2_CTRL_ID, &ctrl_rect, FALSE);
- ctrl_bg.bg_type = GUI_BG_IMG;
- ctrl_bg.img_id = IMAGE_AIGC_PROMPT;
- GUILABEL_SetBg( MMI_AIGC_LABEL_2_CTRL_ID, &ctrl_bg);
- GUILABEL_SetFont( MMI_AIGC_LABEL_2_CTRL_ID, font_all.font, font_all.color);
- MMI_GetLabelTextByLang(TXT_AIGC_OPEN_FAIL, &display_text);
- GUILABEL_SetText( MMI_AIGC_LABEL_2_CTRL_ID, &display_text, FALSE);
- // label 2
- ctrl_rect.top = MMI_MAINSCREEN_HEIGHT/ 2;
- ctrl_rect.bottom = ctrl_rect.top + 70;
- GUILABEL_SetRect( MMI_AIGC_LABEL_2_CTRL_ID, &ctrl_rect, FALSE);
- ctrl_bg.bg_type = GUI_BG_NONE;
- //ctrl_bg.img_id = ;
- GUILABEL_SetBg( MMI_AIGC_LABEL_2_CTRL_ID, &ctrl_bg);
- GUILABEL_SetFont( MMI_AIGC_LABEL_2_CTRL_ID, font_all.font, font_all.color);
- MMI_GetLabelTextByLang(TXT_AIGC_OPEN_FAIL, &display_text);
- GUILABEL_SetText( MMI_AIGC_LABEL_2_CTRL_ID, &display_text, FALSE);
-
- // label 3
- ctrl_rect.top = 250;
- ctrl_rect.bottom = ctrl_rect.top + 50;
- GUILABEL_SetRect( MMI_AIGC_LABEL_3_CTRL_ID, &ctrl_rect, FALSE);
- ctrl_bg.bg_type = GUI_BG_IMG;
- ctrl_bg.img_id = IMAGE_AIGC_RECORD_BUTTON_PRESSED;
- GUILABEL_SetBg( MMI_AIGC_LABEL_3_CTRL_ID, &ctrl_bg);
- GUILABEL_SetFont( MMI_AIGC_LABEL_3_CTRL_ID, font_all.font, font_all.color);
- MMI_GetLabelTextByLang(TXT_COMMON_OK, &display_text);
- GUILABEL_SetText( MMI_AIGC_LABEL_3_CTRL_ID, &display_text, FALSE);
-
- // anim
- GUIAPICTRL_SetState(MMI_AIGC_ANIM_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
+char * mmi_aigc_chat_result_text_get(uint32 * data_len)
+{
+ * data_len = s_aigc_other_item_t.text_data_size;
+ return (s_aigc_other_item_t.text_data_ptr);
}
-LOCAL void mmi_aigc_main_win_open(void)
+BOOLEAN mmi_aigc_chat_result_text_store(char * data_buff, uint32 data_len)
{
- if((FALSE == MMIAPIPHONE_IsSimAvailable(MN_DUAL_SYS_1))
- #if defined MULTI_SIM_SYS_DUAL
- && (FALSE == MMIAPIPHONE_IsSimAvailable(MN_DUAL_SYS_2))
- #endif
- )
+ if(NULL == data_buff || 0 == data_len)
{
- s_aigc_ui_state = MMI_AIGC_UI_STATE_OPEN_FAIL;
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ return FALSE;
+ }
+
+ if(NULL == s_aigc_other_item_t.text_data_ptr)
+ {
+ char * temp_ptr = SCI_ALLOC_APPZ(data_len + 1);
+ if(PNULL == temp_ptr)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: alloc memory fail\n", __FUNCTION__, __LINE__);
+ return FALSE;
+ }
+ SCI_MEMSET(temp_ptr, 0x0, data_len + 1);
+ SCI_MEMCPY(temp_ptr, data_buff, data_len);
+
+ s_aigc_other_item_t.text_data_ptr = temp_ptr;
+ s_aigc_other_item_t.text_data_size = data_len;
}
else
{
- s_aigc_ui_state = MMI_AIGC_UI_STATE_NONE;
+ char * temp_ptr = SCI_REALLOC(s_aigc_other_item_t.text_data_ptr, s_aigc_other_item_t.text_data_size + data_len + 1);
+ if(NULL == temp_ptr)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: realloc memory fail\n", __FUNCTION__, __LINE__);
+ return FALSE;
+ }
+ SCI_MEMSET(temp_ptr + s_aigc_other_item_t.text_data_size, 0x0, data_len + 1);
+ SCI_MEMCPY(temp_ptr + s_aigc_other_item_t.text_data_size, data_buff, data_len);
+
+ s_aigc_other_item_t.text_data_ptr = temp_ptr;
+ s_aigc_other_item_t.text_data_size += data_len;
}
+
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d,ptr=0x%x\n", __FUNCTION__, __LINE__, s_aigc_other_item_t.text_data_size, s_aigc_other_item_t.text_data_ptr);
+
+#ifdef MMI_AIGC_DEBUG_TO_FILE
+ mmi_debug_info_write_to_file(AIGC_RECV_CHAT_RESULT_FILE, s_aigc_other_item_t.text_data_ptr, s_aigc_other_item_t.text_data_size);
+#endif
+
+ return TRUE;
}
-LOCAL void mmi_aigc_main_win_display(void)
+void mmi_aigc_chat_text_middle_screen_update(void)
{
- switch(s_aigc_ui_state)
+#if 0
+ if(MMI_AIGC_UI_STATE_THINKING == s_aigc_ui_state)
{
- case MMI_AIGC_UI_STATE_NONE:
- mmi_aigc_default_win_display();
- break;
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ if(NULL != ext->thinking_task_p)
+ {
+ lv_task_del(ext->thinking_task_p);
+ ext->thinking_task_p = NULL;
+ }
- case MMI_AIGC_UI_STATE_OPEN_FAIL:
- mmi_aigc_no_network_win_display();
- break;
-
- case MMI_AIGC_UI_STATE_LISTENING:
- mmi_aigc_listening_win_display();
- break;
+ mmi_aigc_list_screen_display();
+ }
+ else if(MMI_AIGC_UI_STATE_LIST == s_aigc_ui_state)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
- case MMI_AIGC_UI_STATE_THINKING:
- mmi_aigc_thinking_win_display();
- break;
-
- case MMI_AIGC_UI_STATE_CONNECT_TIMEOUT:
-
- break;
+ mmi_aigc_msg_item_info_t * msg_item = &(s_aigc_info_p->msg_item[1]);
+ char * file_buf = msg_item->text_data_ptr;
+ lv_label_set_text(ext->list_other_label, file_buf);
}
+#endif
}
-LOCAL void mmi_aigc_main_win_key_menu_process(void)
+void mmi_aigc_chat_text_stop_screen_update(void)
{
- switch(s_aigc_ui_state)
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: ui_state=%d\n", __FUNCTION__, __LINE__, s_aigc_ui_state);
+
+ // wb
+ mmi_aigc_chat_websocket_close();
+ mmi_aigc_tts_websocket_open();
+
+ if((MMI_AIGC_UI_STATE_THINKING == s_aigc_ui_state) || (MMI_AIGC_UI_STATE_LIST == s_aigc_ui_state))
{
- case MMI_AIGC_UI_STATE_NONE:
- s_aigc_ui_state = MMI_AIGC_UI_STATE_LISTENING;
- if(MMK_IsFocusWin(MMI_AIGC_MAIN_WIN_ID))
- {
- MMK_SendMsg(MMI_AIGC_MAIN_WIN_ID, MSG_FULL_PAINT, PNULL);
- }
- break;
+ mmi_aigc_update_to_list_win();
- case MMI_AIGC_UI_STATE_OPEN_FAIL:
- //if(MMK_IsOpenWin(MMI_AIGC_MAIN_WIN_ID))
- if(MMK_IsFocusWin(MMI_AIGC_MAIN_WIN_ID))
- {
- MMK_SendMsg(MMI_AIGC_MAIN_WIN_ID, MSG_APP_CANCEL, PNULL);
- //MMK_PostMsg
- }
- break;
+ mmi_aigc_tts_audio_download_requst();
+ }
+}
- case MMI_AIGC_UI_STATE_LISTENING:
+static void mmi_aigc_chat_text_download_requst(void)
+{
+ uint32 data_len = 0;
+ char * data_ptr = mmi_aigc_trans_result_text_get(&data_len);
- break;
+ if(NULL != data_ptr && 0 != data_len)
+ {
+ mmi_aigc_send_chat_text_msg(data_ptr, data_len);
+ }
+}
- case MMI_AIGC_UI_STATE_THINKING:
- s_aigc_ui_state = MMI_AIGC_UI_STATE_NONE;
- if(MMK_IsFocusWin(MMI_AIGC_MAIN_WIN_ID))
- {
- MMK_SendMsg(MMI_AIGC_MAIN_WIN_ID, MSG_FULL_PAINT, PNULL);
- }
- break;
-
- case MMI_AIGC_UI_STATE_CONNECT_TIMEOUT:
- s_aigc_ui_state = MMI_AIGC_UI_STATE_NONE;
- if(MMK_IsFocusWin(MMI_AIGC_MAIN_WIN_ID))
- {
- MMK_SendMsg(MMI_AIGC_MAIN_WIN_ID, MSG_FULL_PAINT, PNULL);
- }
- break;
+static void mmi_utf8_complete_character_judge(char * data_ptr, uint32 data_len, uint32 * output_len)
+{
+ uint32 i = 0;
+ uint32 p = 0;
+ char ch = 0;
+ while(1)
+ {
+ ch = data_ptr[i];
+
+ //#1111110x
+ if(ch >= 252)
+ p = p + 6;
+ //#111110xx
+ else if(ch >= 248)
+ p = p + 5;
+ //#11110xxx
+ else if(ch >= 240)
+ p = p + 4;
+ //#1110xxxx
+ else if(ch >= 224)
+ p = p + 3;
+ //#110xxxxx
+ else if(ch >= 192)
+ p = p + 2;
+ else
+ p = p + 1;
+
+ if(p >= data_len)
+ break;
+ else
+ i = p;
}
+ * output_len = i;
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: output_len=%d\n", __FUNCTION__, __LINE__, *output_len);
}
-LOCAL void mmi_aigc_main_win_key_ok_process(void)
+void mmi_aigc_send_tts_text_seperate(char * data_ptr, uint32 data_len, uint32 * output_len)
{
+ // cn ,
+ char cn_comma_str[4] = {0};
+ // cn .
+ char cn_period_str[4] = {0};
+ // cn ?
+ char cn_query_str[4] = {0};
+ // cn !
+ char cn_mark_str[4] = {0};
+ char * temp_ptr = PNULL;
+ char * offset_ptr = PNULL;
+
+ cn_comma_str[0] = 0XEF;
+ cn_comma_str[1] = 0XBC;
+ cn_comma_str[2] = 0X8C;
+
+ cn_period_str[0] = 0XE3;
+ cn_period_str[1] = 0X80;
+ cn_period_str[2] = 0X82;
+
+ cn_query_str[0] = 0XEF;
+ cn_query_str[1] = 0XBC;
+ cn_query_str[2] = 0X9F;
+
+ cn_mark_str[0] = 0XEF;
+ cn_mark_str[1] = 0XBC;
+ cn_mark_str[2] = 0X81;
+
+
+ if(MMI_AIGC_SEND_TTS_TEXT_MAX >= data_len)
+ {
+ * output_len = data_len;
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: output_len=%d\n", __FUNCTION__, __LINE__, *output_len);
+ return;
+ }
+
+ temp_ptr = SCI_ALLOC_APPZ(MMI_AIGC_SEND_TTS_TEXT_MAX + 1);
+ if(NULL == temp_ptr)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: alloc memory fail\n", __FUNCTION__, __LINE__);
+ return ;
+ }
+ SCI_MEMSET(temp_ptr, 0x0, (MMI_AIGC_SEND_TTS_TEXT_MAX + 1));
+ SCI_MEMCPY(temp_ptr, data_ptr, MMI_AIGC_SEND_TTS_TEXT_MAX);
+
+ offset_ptr = strstr(temp_ptr, cn_comma_str);
+ if(NULL != offset_ptr)
+ {
+ * output_len = offset_ptr - temp_ptr + 2;
+ goto EXIT;
+ }
+
+ offset_ptr = strstr(temp_ptr, cn_period_str);
+ if(NULL != offset_ptr)
+ {
+ * output_len = offset_ptr - temp_ptr + 2;
+ goto EXIT;
+ }
+
+ offset_ptr = strstr(temp_ptr, cn_query_str);
+ if(NULL != offset_ptr)
+ {
+ * output_len = offset_ptr - temp_ptr + 2;
+ goto EXIT;
+ }
+
+ offset_ptr = strstr(temp_ptr, cn_mark_str);
+ if(NULL != offset_ptr)
+ {
+ * output_len = offset_ptr - temp_ptr + 2;
+ goto EXIT;
+ }
+
+ if(NULL == offset_ptr)
+ {
+ mmi_utf8_complete_character_judge(temp_ptr, MMI_AIGC_SEND_TTS_TEXT_MIN, output_len);
+ }
+EXIT:
+ SCI_FREE(temp_ptr);
+ temp_ptr = NULL;
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: output_len=%d\n", __FUNCTION__, __LINE__, *output_len);
}
-LOCAL void mmi_aigc_main_win_close(void)
+uint32 mmi_aigc_send_tts_text_data_escape_character(char * data_buff, int data_len, char * output_data)
{
- mmi_aigc_trans_websocket_close();
- mmi_aigc_chat_websocket_close();
- mmi_aigc_tts_websocket_close();
-
- s_aigc_ui_state = MMI_AIGC_UI_STATE_NONE;
+ uint32 curr_p = 0, i = 0;
+
+ if (NULL == data_buff || 0 == data_len)
+ return;
+
+ for(i = 0; i < data_len; i++)
+ {
+ if(0X0A == data_buff[i]) // 0X0A -> 0X5C 0X6E
+ {
+ output_data[curr_p++] = 0X5C;
+ output_data[curr_p++] = 0X6E;
+ }
+ else if(0X22 == data_buff[i]) // 0X22 -> 0X5C 0X22
+ {
+ output_data[curr_p++] = 0X5C;
+ output_data[curr_p++] = 0X22;
+ }
+ else
+ {
+ output_data[curr_p++] = data_buff[i];
+ }
+ }
- MMIDEFAULT_AllowTurnOffBackLight(TRUE);
+ return curr_p;
}
-LOCAL MMI_RESULT_E mmi_aigc_main_win_handle(MMI_WIN_ID_T win_id, MMI_MESSAGE_ID_E msg_id, DPARAM param)
+void mmi_aigc_send_tts_text_action(char * data_ptr, uint32 data_len)
{
- MMI_RESULT_E result = MMI_RESULT_TRUE;
+ uint32 output_len = 0;
+ uint32 send_len = 0;
+ char * send_ptr = PNULL;
+
+ mmi_aigc_send_tts_text_seperate(data_ptr, data_len, &output_len);
+
+ send_ptr = SCI_ALLOC_APPZ((output_len + output_len / 9 + 1));
+ if(PNULL == send_ptr)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: alloc memory fail\n", __FUNCTION__, __LINE__);
+ return ;
+ }
+ SCI_MEMSET(send_ptr, 0x0, (output_len + output_len / 9 + 1));
+ send_len = mmi_aigc_send_tts_text_data_escape_character(data_ptr, output_len, send_ptr);
- switch (msg_id)
- {
- case MSG_OPEN_WINDOW:
- mmi_aigc_main_win_open();
- break;
+ mmi_aigc_send_tts_text_msg(send_ptr, send_len);
+ s_aigc_tts_text_sent_size += output_len;
- case MSG_FULL_PAINT:
- mmi_aigc_main_win_display();
- break;
+ SCI_FREE(send_ptr);
+ send_ptr = NULL;
+}
- case MSG_APP_MENU:
- case MSG_APP_WEB:
- case MSG_CTL_MIDSK:
- mmi_aigc_main_win_key_menu_process();
- break;
+void mmi_aigc_send_tts_text_action_pre(void)
+{
+ uint32 node_total = MMILINK_GetListNodesNum(s_aigc_tts_audio_ll_ptr);
+ uint32 data_len = 0;
+ char * data_ptr = mmi_aigc_chat_result_text_get(&data_len);
- case MSG_APP_OK:
- case MSG_CTL_OK:
- mmi_aigc_main_win_key_ok_process();
- break;
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: data_len=%d,sent_len=%d, node_total=%d\n", __FUNCTION__, __LINE__, data_len, s_aigc_tts_text_sent_size, node_total);
+ if((NULL != data_ptr) && (data_len > s_aigc_tts_text_sent_size))
+ {
+ //mmi_aigc_tts_audio_ll_new_tail_node();
+
+ mmi_aigc_send_tts_text_action(data_ptr + s_aigc_tts_text_sent_size, data_len - s_aigc_tts_text_sent_size);
+ }
+}
- case MSG_APP_CANCEL:
- case MSG_CTL_CANCEL:
- MMK_CloseWin(win_id);
- break;
+static void mmi_aigc_tts_audio_download_requst(void)
+{
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
- case MSG_APP_RED:
- MMK_CloseWin(win_id);
- break;
+ s_aigc_tts_text_sent_size = 0;
+ s_aigc_tts_audio_playing = false;
+ mmi_aigc_tts_audio_ll_clean();
+ mmi_aigc_tts_audio_ll_add_tail_node();
+ mmi_aigc_send_tts_text_action_pre();
+}
- case MSG_CLOSE_WINDOW:
- mmi_aigc_main_win_close();
- break;
-
- default:
- result = MMI_RESULT_FALSE;
- break;
+static void mmi_aigc_tts_ll_destroy_cb(MMI_LINK_NODE_T const * node_ptr)
+{
+ MMI_AIGC_TTS_LL_NODE_T * node_data_ptr = (MMI_AIGC_TTS_LL_NODE_T *)(node_ptr->data);
+ if(PNULL != node_data_ptr->audio_data_ptr)
+ {
+ SCI_FREE(node_data_ptr->audio_data_ptr);
+ node_data_ptr->audio_data_ptr = PNULL;
}
-
- return (result);
+ node_data_ptr->audio_data_size = 0;
}
-WINDOW_TABLE(MMI_AIGC_MAIN_WIN_TAB) =
+static void mmi_aigc_tts_audio_ll_clean(void)
{
- WIN_FUNC((uint32)mmi_aigc_main_win_handle),
- WIN_ID(MMI_AIGC_MAIN_WIN_ID),
- //WIN_STATUSBAR,
- WIN_HIDE_STATUS,
- WIN_TITLE(TXT_NULL),
- WIN_SOFTKEY(TXT_NULL, TXT_NULL, TXT_NULL),
- //WIN_STYLE(WS_DISABLE_COMMON_BG | WS_DISABLE_RETURN_WIN),
- CREATE_LABEL_CTRL(GUILABEL_ALIGN_MIDDLE, MMI_AIGC_LABEL_0_CTRL_ID),
- CREATE_LABEL_CTRL(GUILABEL_ALIGN_MIDDLE, MMI_AIGC_LABEL_1_CTRL_ID),
- CREATE_LABEL_CTRL(GUILABEL_ALIGN_MIDDLE, MMI_AIGC_LABEL_2_CTRL_ID),
- CREATE_LABEL_CTRL(GUILABEL_ALIGN_MIDDLE, MMI_AIGC_LABEL_3_CTRL_ID),
- CREATE_ANIM_CTRL(MMI_AIGC_ANIM_CTRL_ID, MMI_AIGC_MAIN_WIN_ID),
- //CREATE_TEXT_CTRL(MMI_AIGC_TEXT_0_CTRL_ID),
- //CREATE_BUTTON_CTRL(IMAGE_AIGC_RECORD_BUTTON_DEFAULT, MMI_AIGC_BUTTON_0_CTRL_ID),
- END_WIN
-};
+ if(PNULL != s_aigc_tts_audio_ll_ptr)
+ {
+ MMILINK_DestroyLink(s_aigc_tts_audio_ll_ptr, mmi_aigc_tts_ll_destroy_cb);
+ s_aigc_tts_audio_ll_ptr = PNULL;
+ }
+}
-PUBLIC void MMIAPIAIGC_EnterWin(void)
+static MMI_LINK_NODE_T * mmi_aigc_tts_audio_ll_add_tail_node(void)
{
- SCI_TRACE_LOW("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ MMI_LINK_NODE_T * node_ptr = PNULL;
+ MMI_AIGC_TTS_LL_NODE_T * node_data_ptr = PNULL;
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ node_data_ptr = (MMI_AIGC_TTS_LL_NODE_T *)SCI_ALLOC_APPZ(sizeof(MMI_AIGC_TTS_LL_NODE_T));
+ if (PNULL == node_data_ptr)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: alloc memory fail\n", __FUNCTION__, __LINE__);
+ return PNULL;
+ }
+ SCI_MEMSET(node_data_ptr, 0x0, sizeof(MMI_AIGC_TTS_LL_NODE_T));
- if(MMK_IsOpenWin(MMI_AIGC_MAIN_WIN_ID))
+ if(PNULL == s_aigc_tts_audio_ll_ptr)
{
- MMK_CloseWin(MMI_AIGC_MAIN_WIN_ID);
+ node_ptr = MMILINK_CreateHead((uint32)node_data_ptr);
+ if (PNULL == node_ptr)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: create head fail\n", __FUNCTION__, __LINE__);
+ return PNULL;
+ }
+ s_aigc_tts_audio_ll_ptr = node_ptr;
+ }
+ else
+ {
+ node_ptr = MMILINK_CreateNode((uint32)node_data_ptr);
+ if (PNULL == node_ptr)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: create node fail\n", __FUNCTION__, __LINE__);
+ return PNULL;
+ }
+ MMILINK_AddNodeBeforeBaseNode(s_aigc_tts_audio_ll_ptr, node_ptr);
}
- MMK_CreateWin((uint32 *) MMI_AIGC_MAIN_WIN_TAB, PNULL);
+ return node_ptr;
}
-#if 0
-/*****************************************************************************/
-// Description : ´¦ÀíÊäÈëµÄPINÂë
-// Global resource dependence :
-// Author: Jassmine
-// Note:
-/*****************************************************************************/
-LOCAL void HandlePinInputingString(
- MMI_STRING_T *pin_ptr
- )
+void mmi_aigc_tts_audio_ll_remove_head_node(void)
{
- MN_BLOCK_T pin_value = {0};
- MMI_STRING_T wait_text = {0};
-
- if(PNULL == pin_ptr)
- {
- //SCI_TRACE_LOW:"HandlePinInputingString pin_ptr is NULL"
- SCI_TRACE_ID(TRACE_TOOL_CONVERT,MMIPHONE_WINTAB_1209_112_2_18_2_45_30_230,(uint8*)"");
- return;
- }
-
- SCI_MEMSET(&pin_value, 0, sizeof(MN_BLOCK_T));
-
- //ת»»PINµÄ½á¹¹
- pin_value.blocklen = pin_ptr->wstr_len;
-
- MMI_WSTRNTOSTR((uint8 *)pin_value.blockbuf,
- MN_MAX_BLOCK_LEN,
- pin_ptr->wstr_ptr,
- pin_value.blocklen,
- pin_value.blocklen);
-
-#ifdef MMI_SIM_LOCK_SUPPORT
- SCI_MEMCPY(&g_pin_value[MMIAPIPHONE_GetCurResponsePinSimID()],
- &pin_value,
- sizeof(MN_BLOCK_T)); //¼Ç¼ÐµÄpin1Âë
-#endif
+ if(PNULL != s_aigc_tts_audio_ll_ptr)
+ {
+ MMI_LINK_NODE_T * new_head_ptr = MMILINK_RemoveNode(s_aigc_tts_audio_ll_ptr, s_aigc_tts_audio_ll_ptr);
+ MMI_AIGC_TTS_LL_NODE_T * node_data_ptr = (MMI_AIGC_TTS_LL_NODE_T *)(s_aigc_tts_audio_ll_ptr->data);
- //response pin before receive signal of sim is ready
- MNPHONE_ResponsePinEx(MMIAPIPHONE_GetCurResponsePinSimID(), MNSIM_PIN1, FALSE, &pin_value, PNULL);
-
- MMK_CloseWin(PHONE_PIN_WAIT_WIN_ID);
-
- //½øÈëµÈ´ý½çÃæ
- MMI_GetLabelTextByLang(TXT_COMMON_WAITING, &wait_text);
- MMIPUB_OpenWaitWin(1,&wait_text,PNULL,PNULL,PHONE_PIN_WAIT_WIN_ID,IMAGE_NULL,
- ANIM_PUBWIN_WAIT,WIN_ONE_LEVEL,MMIPUB_SOFTKEY_NONE,HandlePukWaitingWindow);
+ if(PNULL != node_data_ptr->audio_data_ptr)
+ {
+ SCI_FREE(node_data_ptr->audio_data_ptr);
+ node_data_ptr->audio_data_ptr = PNULL;
+ }
+ SCI_FREE(s_aigc_tts_audio_ll_ptr);
+ s_aigc_tts_audio_ll_ptr = PNULL;
- MMK_SetWinDisplayStyleState(PHONE_PIN_WAIT_WIN_ID, WS_DISABLE_RETURN_WIN, TRUE);
+ s_aigc_tts_audio_ll_ptr = new_head_ptr;
+ }
}
+BOOLEAN mmi_aigc_tts_audio_store(char * data_buff, uint32 data_len)
+{
+ MMI_LINK_NODE_T * node_ptr = s_aigc_tts_audio_ll_ptr->prev_ptr;
+ MMI_AIGC_TTS_LL_NODE_T * node_data_ptr = PNULL;
+ char * temp_ptr = PNULL;
+
+ if(PNULL == data_buff || 0 == data_len)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ return FALSE;
+ }
+
+ if(PNULL == node_ptr)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: no node\n", __FUNCTION__, __LINE__);
+ return FALSE;
+ }
+
+ node_data_ptr = (MMI_AIGC_TTS_LL_NODE_T *)(node_ptr->data);
+ if(PNULL == node_data_ptr->audio_data_ptr)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ temp_ptr = SCI_ALLOC_APPZ(data_len + 1);
+ if(NULL == temp_ptr)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: alloc memory fail\n", __FUNCTION__, __LINE__);
+ return FALSE;
+ }
+ SCI_MEMSET(temp_ptr, 0x0, data_len + 1);
+ SCI_MEMCPY(temp_ptr, data_buff, data_len);
+
+ node_data_ptr->audio_data_ptr = temp_ptr;
+ node_data_ptr->audio_data_size = data_len;
+ }
+ else
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ temp_ptr = SCI_REALLOC(node_data_ptr->audio_data_ptr, node_data_ptr->audio_data_size + data_len + 1);
+ if(NULL == temp_ptr)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: realloc memory fail\n", __FUNCTION__, __LINE__);
+ return FALSE;
+ }
+ SCI_MEMSET(temp_ptr + node_data_ptr->audio_data_size, 0x0, data_len + 1);
+ SCI_MEMCPY(temp_ptr + node_data_ptr->audio_data_size, data_buff, data_len);
+
+ node_data_ptr->audio_data_ptr = temp_ptr;
+ node_data_ptr->audio_data_size += data_len;
+ }
-/*****************************************************************************/
-// Description : ´¦ÀíÊäÈëµÄPuk modify pinÂë
-// **05*PUK*NEW_PIN*NEW_PIN# to change pin **052*PUK2*NEW_PIN2*NEW_PIN2# to change pin2
-// Global resource dependence :
-// Author: Jassmine
-// Note:
-/*****************************************************************************/
-LOCAL void HandlePukModifyPin(
- uint8 *puk_pin_str
- )
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d,ptr=0x%x\n", __FUNCTION__, __LINE__, node_data_ptr->audio_data_size, node_data_ptr->audio_data_ptr);
+
+ return TRUE;
+}
+
+LOCAL void mmi_aigc_audio_play_stop(void)
{
- MMI_PIN_INFO_T pin_info = {0};
- MMI_STRING_T wait_text = {0};
-
- SCI_MEMSET(((void*)&pin_info), 0, sizeof(MMI_PIN_INFO_T));
-
- //parse input str
- if (PARS_RESULT_SUCCESS == MMIAPIPARSE_ParsePukAndPinStr((char *)puk_pin_str,&pin_info))
- {
- //response pin before receive signal of sim is ready
- MNPHONE_ResponsePinEx(MMIAPIPHONE_GetCurResponsePinSimID(), MNSIM_PIN1, TRUE, &(pin_info.pin_value), &(pin_info.ext_pin_value));
-
- MMK_CloseWin(PHONE_PIN_WAIT_WIN_ID);
-
- //½øÈëµÈ´ý½çÃæ
- MMI_GetLabelTextByLang(TXT_COMMON_WAITING, &wait_text);
- MMIPUB_OpenWaitWin(1,&wait_text,PNULL,PNULL,PHONE_PIN_WAIT_WIN_ID,IMAGE_NULL,
- ANIM_PUBWIN_WAIT,WIN_ONE_LEVEL,MMIPUB_SOFTKEY_NONE,HandlePukWaitingWindow);
-
- MMK_SetWinDisplayStyleState(PHONE_PIN_WAIT_WIN_ID, WS_DISABLE_RETURN_WIN, TRUE);
- }
- else
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ if (INVALID_HANDLE != s_aigc_audio_handle)
{
- MMIPUB_OpenAlertWinByTextId(PNULL,TXT_INPUT_ERROR,TXT_NULL,IMAGE_PUBWIN_WARNING,PNULL,PNULL,MMIPUB_SOFTKEY_ONE,HandlePukAlertWindow);
-
- //Çå¿Õpassword
- GUIEDIT_ClearAllStr(PHONE_PUK_EDITBOX_CTRL_ID);
+ MMISRVAUD_Stop(s_aigc_audio_handle);
+ MMISRVMGR_Free(s_aigc_audio_handle);
+ s_aigc_audio_handle = INVALID_HANDLE;
}
}
-/*****************************************************************************/
-// Description : PUKÊäÈë½çÃæ´ò¿ªÊ±£¬µÈ´ý½çÃæ²»ÔÊÐí·µ»Ø£¬pin£¬new pin½çÃæ²»ÔÊÐíred key,flip·µ»Ø
-// Global resource dependence :
-// Author: Jassmine
-// Note:
-/*****************************************************************************/
-LOCAL MMI_RESULT_E HandlePukWaitingWindow (
- MMI_WIN_ID_T win_id, // ´°¿ÚµÄID
- MMI_MESSAGE_ID_E msg_id, // ´°¿ÚµÄÄÚ²¿ÏûÏ¢ID
- DPARAM param // ÏàÓ¦ÏûÏ¢µÄ²ÎÊý
- )
+LOCAL void mmi_aigc_audio_play_end_cb(void)
{
- MMI_RESULT_E result = MMI_RESULT_TRUE;
-
- switch (msg_id)
- {
- case MSG_APP_RED://pukÊäÈë½çÃæ´æÔÚ,wait window²»ÔÊÐí·µ»Ø
- break;
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ mmi_aigc_audio_play_stop();
+ s_aigc_tts_audio_playing = false;
-#ifdef FLIP_PHONE_SUPPORT //close flip ring codes, just open for flip phone.
- case MSG_APP_FLIP:
- MMIDEFAULT_HandleFlipKey(FALSE);
- break;
-#endif
+ mmi_aigc_tts_audio_ll_remove_head_node();
- case MSG_OPEN_WINDOW:
- MMK_SetWinDisplayStyleState(win_id, WS_DISABLE_RETURN_WIN, TRUE);
- result = MMIPUB_HandleWaitWinMsg(win_id, msg_id, param);
- break;
-
- default:
- result = MMIPUB_HandleWaitWinMsg(win_id, msg_id, param);
- break;
- }
-
- return (result);
+ mmi_aigc_audio_play_start();
}
-/*****************************************************************************/
-// Description : PUKÊäÈë½çÃæ´ò¿ªÊ±£¬alert½çÃæ.²»ÔÊÐíred key,flip·µ»Ø(Æô¶¯¹ý³Ì)
-// Global resource dependence :
-// Author: Jassmine
-// Note:
-/*****************************************************************************/
-LOCAL MMI_RESULT_E HandlePukAlertWindow(
- MMI_WIN_ID_T win_id, // ´°¿ÚµÄID
- MMI_MESSAGE_ID_E msg_id, // ´°¿ÚµÄÄÚ²¿ÏûÏ¢ID
- DPARAM param // ÏàÓ¦ÏûÏ¢µÄ²ÎÊý
- )
+LOCAL void mmi_aigc_audio_play_notify(MMISRV_HANDLE_T handle, MMISRVMGR_NOTIFY_PARAM_T *param)
{
- MMI_RESULT_E result = MMI_RESULT_TRUE;
-
- switch (msg_id)
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d,%d,%d\n", __FUNCTION__, __LINE__, param->event, param->ind_data, param->data);
+ if(param != PNULL && handle > 0)
{
- case MSG_APP_RED://puk½çÃæ´æÔÚ£¬red and flip²»ÔÊÐí·µ»Ø
- if (MMK_IsOpenWin(PHONE_PUK_INPUT_WIN_ID))
- {
- MMK_CloseWin(win_id);
- }
- else
- {
- result = MMI_RESULT_FALSE;
- }
- break;
-
-#ifdef FLIP_PHONE_SUPPORT //close flip ring codes, just open for flip phone.
- case MSG_APP_FLIP:
- if (MMK_IsOpenWin(PHONE_PUK_INPUT_WIN_ID))
- {
- MMIDEFAULT_HandleFlipKey(FALSE);
- MMK_CloseWin(win_id);
- }
- else
- {
- result = MMI_RESULT_FALSE;
+ MMISRVAUD_REPORT_T * report_ptr = (MMISRVAUD_REPORT_T *)param->data;
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d,%d,%d\n", __FUNCTION__, __LINE__, report_ptr->report, report_ptr->data1, report_ptr->data2);
+
+ if(report_ptr != PNULL)
+ {
+ switch(report_ptr->report)
+ {
+ case MMISRVAUD_REPORT_END:
+ mmi_aigc_audio_play_end_cb();
+ break;
+
+ case MMISRVAUD_REPORT_PLAY:
+ case MMISRVAUD_REPORT_STOP:
+ case MMISRVAUD_REPORT_RESUME:
+ case MMISRVAUD_REPORT_PAUSE:
+ default:
+ break;
+ }
}
- break;
-#endif
-
- default:
- result = MMIPUB_HandleAlertWinMsg(win_id,msg_id,param);
- break;
}
-
- return (result);
}
-/*****************************************************************************/
-// Description : ´¦Àínew pin INPUTINGµÄÏûÏ¢
-// Global resource dependence :
-// Author: Jassmine
-// Note:
-/*****************************************************************************/
-LOCAL MMI_RESULT_E HandleNewPinInputWindow (
- MMI_WIN_ID_T win_id, // new pin input´°¿ÚµÄID
- MMI_MESSAGE_ID_E msg_id, // ´°¿ÚµÄÄÚ²¿ÏûÏ¢ID
- DPARAM param // ÏàÓ¦ÏûÏ¢µÄ²ÎÊý
- )
+LOCAL void mmi_aigc_audio_play_start(void)
{
- MMI_RESULT_E result = MMI_RESULT_TRUE;
- MMI_STRING_T puk_value = {0};
- MMI_STRING_T new_pin_value = {0};
- MMI_STRING_T new_pin_again_value = {0};
- GUI_BOTH_RECT_T edit_both_rect = {0};
- BOOLEAN is_input_emergency_call = FALSE;
- uint16 emergency_call_len = 0;
-
- switch (msg_id)
- {
- case MSG_OPEN_WINDOW:
- MMIDEFAULT_AllowOpenKeylocWin(FALSE);
-#ifdef MAINLCD_SIZE_128X64 //added by taiping.lai 2011/01/03
- {
- GUI_RECT_T title_rect = GetPasswordTitleRect();
-
- GUIWIN_SetTitleRect(win_id, title_rect);
+ MMI_LINK_NODE_T * node_ptr = s_aigc_tts_audio_ll_ptr;
+ MMI_AIGC_TTS_LL_NODE_T * node_data_ptr = PNULL;
- }
- edit_both_rect = GetPinPukEditRect(win_id, FALSE);
-#else
- edit_both_rect = GetPinPukEditRect(win_id, FALSE);
-#endif
- GUIAPICTRL_SetBothRect(PHONE_NEW_PIN_EDITBOX_CTRL_ID, &edit_both_rect);
-
- GUIEDIT_SetPasswordStyle(PHONE_NEW_PIN_EDITBOX_CTRL_ID,GUIEDIT_PASSWORD_STYLE_DIGITAL_PIN);
+ if(TRUE == s_aigc_tts_audio_playing)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ return ;
+ }
- //set left softkey
- GUIEDIT_SetSoftkey(PHONE_NEW_PIN_EDITBOX_CTRL_ID, 0, MMI_PIN_MIN_LENGTH,TXT_NULL,TXT_COMMON_OK, PinPukInputWinSoftkey);
- MMK_SetAtvCtrl(win_id,PHONE_NEW_PIN_EDITBOX_CTRL_ID);
- break;
+ if(PNULL == node_ptr)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ return ;
+ }
+ node_data_ptr = (MMI_AIGC_TTS_LL_NODE_T *)(node_ptr->data);
+ if((PNULL != node_data_ptr->audio_data_ptr) && (0 != node_data_ptr->audio_data_size))
+ {
+ MMISRVMGR_SERVICE_REQ_T req = {0};
+ MMISRVAUD_TYPE_T audio_srv = {0};
+ MMISRV_HANDLE_T handle = INVALID_HANDLE;
+
+ // req
+ req.pri = MMISRVAUD_PRI_HIGH;
+ req.is_async = FALSE;
+ req.is_auto_resume_off = TRUE;
+ req.is_auto_free = TRUE;
+ req.notify = mmi_aigc_audio_play_notify;
+
+ // audio
+ audio_srv.volume = MMISRVAUD_VOLUME_LEVEL_MAX;
+ audio_srv.play_times = 1;
+ audio_srv.all_support_route = MMISRVAUD_ROUTE_SPEAKER | MMISRVAUD_ROUTE_EARPHONE | MMISRVAUD_ROUTE_EARFREE;
+ audio_srv.default_route = MMISRVAUD_ROUTE_SPEAKER;
+
+ audio_srv.info.type = MMISRVAUD_TYPE_RING_BUF;
+ audio_srv.info.ring_buf.type = MMISRVAUD_TYPE_RING_BUF;
+ audio_srv.info.ring_buf.fmt = MMI_AIGC_DATA_AUDIO_FORMAT;
+ audio_srv.info.ring_buf.data = node_data_ptr->audio_data_ptr;
+ audio_srv.info.ring_buf.data_len = node_data_ptr->audio_data_size;
+
+ //construct handle
+ handle = MMISRVMGR_Request(STR_SRV_AUD_NAME, &req, &audio_srv);
+ //if handle > 0 && play success
+ if((handle > 0) && (MMISRVAUD_RET_OK == MMISRVAUD_Play(handle, 0)))
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: play success\n", __FUNCTION__, __LINE__);
+ s_aigc_audio_handle = handle;
+ s_aigc_tts_audio_playing = TRUE;
+ }
+ else
+ {
+ //destroy handle
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: play fail\n", __FUNCTION__, __LINE__);
+ if(handle > 0)
+ {
+ MMISRVMGR_Free(handle);
+ handle = INVALID_HANDLE;
+ }
+ }
+ }
+}
-#if 0
-#ifdef MMI_PDA_SUPPORT
- case MSG_NOTIFY_EDITBOX_UPDATE_STRNUM:
- {
- MMI_STRING_T str_info = {0};
- GUIEDIT_GetString(PHONE_NEW_PIN_EDITBOX_CTRL_ID, &str_info);
-
- is_input_emergency_call = MMIAPICC_IsInputEmergencyCall(&str_info, &emergency_call_len, MMIAPIPHONE_GetCurResponsePinSimID());
- if ((is_input_emergency_call) &&
- (str_info.wstr_len == emergency_call_len))
- {
- MMIPUB_SetWinSoftkey(win_id, TXT_SOS, STXT_RETURN,TRUE);
- }
- else
- {
- MMIPUB_SetWinSoftkey(win_id, TXT_COMMON_OK, STXT_RETURN,TRUE);
- }
- }
- break;
-#endif
-#endif
-
-#ifndef MMI_PDA_SUPPORT
- case MSG_FULL_PAINT:
- SetPasswordBackground(win_id,PHONE_NEW_PIN_EDITBOX_CTRL_ID,FALSE);
- break;
-#endif
+void mmi_aigc_tts_end_synthesis_action(void)
+{
+ mmi_aigc_tts_audio_ll_add_tail_node();
+ mmi_aigc_send_tts_text_action_pre();
+
+ //
+ mmi_aigc_audio_play_start();
+}
-#ifdef TOUCH_PANEL_SUPPORT //IGNORE9527
- case MSG_CTL_PENOK:
-#endif //TOUCH_PANEL_SUPPORT //IGNORE9527
- case MSG_CTL_MIDSK:
- case MSG_CTL_OK:
- case MSG_APP_OK:
- case MSG_APP_WEB:
- case MSG_APP_GREEN:
- case MSG_APP_CALL2:
- case MSG_APP_CALL3:
- case MSG_APP_CALL4:
- // get the value about new PIN
- GUIEDIT_GetString(PHONE_NEW_PIN_EDITBOX_CTRL_ID,&new_pin_value);
-
- is_input_emergency_call = MMIAPICC_IsInputEmergencyCall(&new_pin_value, &emergency_call_len, MMIAPIPHONE_GetCurResponsePinSimID());
-
- if ((is_input_emergency_call) &&
- (new_pin_value.wstr_len == emergency_call_len))
- {
- MakeEmergencyCall(&new_pin_value);
- }
- else if (PIN_LEN_IS_IN_RANGE(new_pin_value.wstr_len)
- && MSG_APP_GREEN != msg_id
- && MSG_APP_CALL2 != msg_id
- && MSG_APP_CALL3 != msg_id
- && MSG_APP_CALL4 != msg_id)
- {
- //open the window of input new pin again
- MMK_CreatePubEditWin((uint32*)PHONE_NEW_PIN_AGAIN_INPUTING_WIN_TAB,PNULL);
- }
- break;
-
- case MSG_SET_NEW_PIN_AGAIN:
- // get the value about new PIN again
- GUIEDIT_GetString(PHONE_NEW_PIN_AGAIN_EDITBOX_CTRL_ID,&new_pin_again_value);
-
- // get the value about new PIN
- GUIEDIT_GetString(PHONE_NEW_PIN_EDITBOX_CTRL_ID,&new_pin_value);
-
- //±È½ÏÁ½¸öPINÊÇ·ñÏàͬ
- if( MMIAPICOM_StrCompare( &new_pin_value, &new_pin_again_value ) )
- //if (MMIAPICOM_CompareTwoTeleNum( new_pin_again_value.wstr_ptr, new_pin_again_value.wstr_len, new_pin_value.wstr_ptr, new_pin_value.wstr_len))
- {
- // get the value about PUK
- GUIEDIT_GetString(PHONE_PUK_EDITBOX_CTRL_ID,&puk_value);
-
- HandlePukAndNewPin(&puk_value,&new_pin_value);
-
- //close input new pin and input new pin again window
- MMK_CloseWin(PHONE_NEW_PIN_INPUT_WIN_ID);
- MMK_CloseWin(PHONE_NEW_PIN_AGAIN_INPUT_WIN_ID);
- }
- else
- {
- //Ìáʾ´íÎó´°¿Ú,Á½´ÎÊäÈëµÄPIN²»Ò»ÖÂ
- #ifdef MMI_PDA_SUPPORT
- MMIPUB_OpenAlertWinByTextId(PNULL,TXT_INPUT_CONFLICT,TXT_NULL,IMAGE_PUBWIN_WARNING,PNULL,PNULL,MMIPUB_SOFTKEY_ONE,HandlePukAlertWindow);
- #else
- MMIPUB_OpenAlertWinByTextId(PNULL,TXT_MSGBOX_PIN_CONFLICT,TXT_NULL,IMAGE_PUBWIN_WARNING,PNULL,PNULL,MMIPUB_SOFTKEY_ONE,HandlePukAlertWindow);
- #endif
- //Çå¿Õpassword
- GUIEDIT_ClearAllStr(PHONE_NEW_PIN_EDITBOX_CTRL_ID);
-
- //close input new pin again window
- MMK_CloseWin(PHONE_NEW_PIN_AGAIN_INPUT_WIN_ID);
-
- MMK_SetAtvCtrl(win_id,PHONE_NEW_PIN_EDITBOX_CTRL_ID);
- }
- break;
-
- case MSG_CTL_CANCEL:
- case MSG_APP_CANCEL:
- MMK_CloseWin( win_id );
- break;
-
- case MSG_APP_RED://puk½çÃæ´æÔÚ£¬red and flip²»ÔÊÐí·µ»Ø
- if (!MMK_IsOpenWin(PHONE_PUK_INPUT_WIN_ID))
- {
- result = MMI_RESULT_FALSE;
- }
- break;
+LOCAL void mmi_aigc_audio_record_stop(void)
+{
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
-#ifdef FLIP_PHONE_SUPPORT //close flip ring codes, just open for flip phone.
- case MSG_APP_FLIP:
- if (!MMK_IsOpenWin(PHONE_PUK_INPUT_WIN_ID))
- {
- result = MMI_RESULT_FALSE;
- }
- else
- {
- MMIDEFAULT_HandleFlipKey(FALSE);
- }
- break;
-#endif
-
- case MSG_GET_FOCUS:
- MMIDEFAULT_AllowOpenKeylocWin(FALSE);
- break;
-
- case MSG_CLOSE_WINDOW:
- MMIDEFAULT_AllowOpenKeylocWin(TRUE);
- break;
-
- default:
- result = MMI_RESULT_FALSE;
- break;
+ if (INVALID_HANDLE != s_aigc_record_handle)
+ {
+ MMISRVAUD_Stop(s_aigc_record_handle);
+ MMISRVMGR_Free(s_aigc_record_handle);
+ s_aigc_record_handle = INVALID_HANDLE;
}
-
- return (result);
}
-
-/*****************************************************************************/
-// Description : ´¦ÀíÊäÈëµÄPuk and new pinÂë
-// Global resource dependence :
-// Author: Jassmine
-// Note:
-/*****************************************************************************/
-LOCAL void HandlePukAndNewPin(
- MMI_STRING_T *puk_ptr,
- MMI_STRING_T *pin_ptr
- )
+LOCAL void mmi_aigc_audio_record_notify(MMISRV_HANDLE_T handle, MMISRVMGR_NOTIFY_PARAM_T *param)
{
- MN_BLOCK_T puk_value = {0};
- MN_BLOCK_T pin_value = {0};
- MMI_STRING_T wait_text = {0};
-
- if(PNULL == pin_ptr ||PNULL == puk_ptr)
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d,%d,%d\n", __FUNCTION__, __LINE__, param->event, param->ind_data, param->data);
+ if(param != PNULL && handle > 0)
{
- //SCI_TRACE_LOW:"HandlePinInputingString pin_ptr=%d ||puk_ptr=%d"
- SCI_TRACE_ID(TRACE_TOOL_CONVERT,MMIPHONE_WINTAB_1899_112_2_18_2_45_32_231,(uint8*)"dd", pin_ptr, puk_ptr);
- return;
+ MMISRVAUD_REPORT_T * report_ptr = (MMISRVAUD_REPORT_T *)param->data;
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d,%d,%d\n", __FUNCTION__, __LINE__, report_ptr->report, report_ptr->data1, report_ptr->data2);
+
+ if(report_ptr != PNULL)
+ {
+ switch(report_ptr->report)
+ {
+ case MMISRVAUD_REPORT_END:
+ //mmi_aigc_audio_record_end_cb();
+ //mmi_aigc_listening_stop(FALSE);
+ break;
+
+ case MMISRVAUD_REPORT_PLAY:
+ case MMISRVAUD_REPORT_STOP:
+ case MMISRVAUD_REPORT_RESUME:
+ case MMISRVAUD_REPORT_PAUSE:
+ default:
+ break;
+ }
+ }
}
-
- //ת»»PUKµÄ½á¹¹
- puk_value.blocklen = puk_ptr->wstr_len;
-
- MMI_WSTRNTOSTR((uint8 *)puk_value.blockbuf,
- MN_MAX_BLOCK_LEN,
- puk_ptr->wstr_ptr,
- puk_value.blocklen,
- puk_value.blocklen);
-
- //ת»»PINµÄ½á¹¹
- pin_value.blocklen = pin_ptr->wstr_len;
+}
- MMI_WSTRNTOSTR((uint8 *)pin_value.blockbuf,
- MN_MAX_BLOCK_LEN,
- pin_ptr->wstr_ptr,
- pin_value.blocklen,
- pin_value.blocklen);
+LOCAL void mmi_aigc_audio_record_start(void)
+{
+ MMISRVMGR_SERVICE_REQ_T req = {0};
+ MMISRVAUD_TYPE_T audio_srv = {0};
+ MMISRV_HANDLE_T handle = INVALID_HANDLE;
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
- //response pin before receive signal of sim is ready
- MNPHONE_ResponsePinEx(MMIAPIPHONE_GetCurResponsePinSimID(), MNSIM_PIN1, TRUE, &pin_value, &puk_value);
-
- MMK_CloseWin(PHONE_PIN_WAIT_WIN_ID);
-
- //½øÈëµÈ´ý½çÃæ
- MMI_GetLabelTextByLang(TXT_COMMON_WAITING, &wait_text);
- MMIPUB_OpenWaitWin(1,&wait_text,PNULL,PNULL,PHONE_PIN_WAIT_WIN_ID,IMAGE_NULL,
- ANIM_PUBWIN_WAIT,WIN_ONE_LEVEL,MMIPUB_SOFTKEY_NONE,HandlePukWaitingWindow);
+#ifdef __RECORD_USE_BUF__
+ if(PNULL != s_aigc_record_buffer)
+ {
+ SCI_FREE(s_aigc_record_buffer);
+ s_aigc_record_buffer = PNULL;
+ }
+ s_aigc_record_buffer = SCI_ALLOC_APPZ(MMI_AIGC_DATA_RECORD_SIZE_MAX);
+ if(PNULL == s_aigc_record_buffer)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ return;
+ }
+ SCI_MEMSET(s_aigc_record_buffer, 0x0, MMI_AIGC_DATA_RECORD_SIZE_MAX);
+ s_aigc_record_size = 0;
+#else
+ if(TRUE == MMIAPIFMM_IsFileExist(s_aigc_record_file, MMIAPICOM_Wstrlen(s_aigc_record_file)))
+ {
+ MMIAPIFMM_DeleteFile(s_aigc_record_file, PNULL);
+ }
+ MMIAPICOM_Wstrcpy(s_aigc_record_file, (wchar *)MMI_AIGC_DATA_RECORD_FILE_NAME);
+#endif
- MMK_SetWinDisplayStyleState(PHONE_PIN_WAIT_WIN_ID, WS_DISABLE_RETURN_WIN, TRUE);
+ // req
+ req.pri = MMISRVAUD_PRI_HIGH;
+ req.is_async = FALSE;
+ req.is_auto_resume_off = TRUE;
+ req.is_auto_free = FALSE;
+ req.notify = mmi_aigc_audio_record_notify;
+
+ // audio
+ audio_srv.duation = 0;
+ audio_srv.interval = 0;
+ audio_srv.eq_mode = 0;
+ audio_srv.is_mixing_enable = FALSE;
+ audio_srv.volume = MMISRVAUD_VOLUME_LEVEL_MAX;
+ audio_srv.play_times = 1;
+ audio_srv.all_support_route = MMISRVAUD_ROUTE_NONE;
+
+#ifdef __RECORD_USE_BUF__
+ audio_srv.info.type = MMISRVAUD_TYPE_RECORD_BUF;
+ audio_srv.info.record_buf.type = MMISRVAUD_TYPE_RECORD_BUF;
+ audio_srv.info.record_buf.fmt = MMISRVAUD_RECORD_FMT_AMR;
+ audio_srv.info.record_buf.source = MMISRVAUD_RECORD_SOURCE_NORMAL;
+ audio_srv.info.record_buf.frame_len = MMISRVAUD_RECORD_FRAME_LEN_DEFAULT;
+ audio_srv.info.record_buf.data = s_aigc_record_buffer;
+ audio_srv.info.record_buf.data_len = MMI_AIGC_DATA_RECORD_SIZE_MAX;
+#else
+ audio_srv.info.type = MMISRVAUD_TYPE_RECORD_FILE;
+ audio_srv.info.record_file.type = MMISRVAUD_TYPE_RECORD_FILE;
+ audio_srv.info.record_file.fmt = MMISRVAUD_RECORD_FMT_AMR;
+ audio_srv.info.record_file.source = MMISRVAUD_RECORD_SOURCE_NORMAL;
+ audio_srv.info.record_file.frame_len = MMISRVAUD_RECORD_FRAME_LEN_DEFAULT;
+ audio_srv.info.record_file.name = s_aigc_record_file;
+ audio_srv.info.record_file.name_len = MMIAPICOM_Wstrlen(s_aigc_record_file);
+#endif
+
+ handle = MMISRVMGR_Request(STR_SRV_AUD_NAME, &req, &audio_srv);
+ if((0 < handle) && (MMISRVAUD_RET_OK == MMISRVAUD_Play(handle, 0)))
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: record success\n", __FUNCTION__, __LINE__);
+ s_aigc_record_handle = handle;
+ }
+ else
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: record fail\n", __FUNCTION__, __LINE__);
+ //destroy handle
+ if(handle > 0)
+ {
+ MMISRVAUD_Stop(handle);
+ MMISRVMGR_Free(handle);
+ handle = INVALID_HANDLE;
+ }
+ }
}
-/*****************************************************************************/
-// Description : handle pin and puk flow
-// Global resource dependence :
-// Author:jassmine.meng
-// Note:
-/*****************************************************************************/
-void MMIAPIPHONE_HandlePinAndPukFlow(
- MNSIM_PIN_REQ_TYPE_E operate_type, //PINµÄ²Ù×÷±êʶ
- MNSIM_PIN_INDICATION_E pin_num, //MNSIM_PIN1 or MNSIM_PIN2
- uint32 win_tab,
- BOOLEAN is_special_func
- )
+LOCAL void mmi_aigc_list_win_display(void)
{
- MNSIM_PIN_STATUS_E pin_status = MNSIM_PIN_READY;
- MMI_OPERATE_PIN_T *opreate_pin_ptr = SCI_ALLOC_APPZ(sizeof(MMI_OPERATE_PIN_T));
- SIM_STATUS_E sim_status = SIM_STATUS_OK;
-
- opreate_pin_ptr->operate_type = operate_type;
- opreate_pin_ptr->pin_num = pin_num;
- g_operate_pin_win_tab = win_tab;
- g_is_operate_pin_special_func = is_special_func;
-
- //get the status of PIN
- pin_status = MNSIM_GetPinStatusEx(MMIAPIPHONE_GetCurHandlingPinSimID(), pin_num);
- if (MNSIM_PIN_BLOCKED == pin_status)//PUK±»Ëø
- {
- sim_status = MMIAPIPHONE_GetSimStatus(MMIAPIPHONE_GetCurHandlingPinSimID());
-
- if (SIM_STATUS_NO_SIM == sim_status)
- {
- MMIPUB_OpenAlertWarningWin(TXT_NO_SIM);
- }
- else if((SIM_STATUS_REGISTRATION_FAILED == sim_status) || (SIM_STATUS_REJECTED == sim_status))
- {
-#ifndef MMI_IDLE_MINI_SUPPORT
- MMIPUB_OpenAlertWarningWin(TXT_SIM_REGISTRATION_FAILED);
-#else
- MMIPUB_OpenAlertWarningWin(TXT_SIM_REGISTRATION_FAILED_MINI);
-#endif
+ MMI_WIN_ID_T win_id = MMI_AIGC_MAIN_WIN_ID;
+ GUI_LCD_DEV_INFO *dev_info_ptr = MMITHEME_GetDefaultLcdDev();
+ GUI_RECT_T full_rect = MMITHEME_GetFullScreenRect();
+ GUI_FONT_ALL_T font_all = {SONG_FONT_24, MMI_WHITE_COLOR};
+ GUI_BG_T ctrl_bg = {0};
+ GUI_RECT_T ctrl_rect = {0};
+ MMI_STRING_T display_text = {0};
+ char text_ptr[64] = {0};
+ wchar text_dis[64] = {0};
+ uint16 image_width = 0;
+ uint16 image_height = 0;
+ GUI_POINT_T display_point = {0};
+ MMI_IMAGE_ID_T image_id = IMAGE_NULL;
- }
- else
- {
- if (MNSIM_PIN1 == pin_num)//PIN1
- {
- MMIPUB_OpenAlertWarningWin(TXT_PUK_BLOCKED);
- }
- else//PIN2
- {
- MMIPUB_OpenAlertWarningWin(TXT_PUK2_BLOCKED);
- }
- }
- }
- else
- {
- if (MNSIM_PIN_PUK == pin_status)//PIN±»Ëø£¬ÒªÇóÊäÈëPUK
- {
- if (MNSIM_PIN1 == pin_num)//PIN1
- {
- MMK_CloseWin(MMI_PUK_INPUTING_WIN_ID);
+ GUISTR_STYLE_T text_style = {0};
+ GUISTR_STATE_T text_state = (GUISTR_STATE_SINGLE_LINE | GUISTR_STATE_ALIGN | GUISTR_STATE_EFFECT);
+ MMI_STRING_T text_str = {0};
+ GUISTR_INFO_T text_info = {0};
+ char * trans_text_str = PNULL;
+ wchar * trans_text_wstr = PNULL;
+ uint32 trans_text_len = 0;
+ char * chat_text_str = PNULL;
+ wchar * chat_text_wstr = PNULL;
+ uint32 chat_text_len = 0;
+ uint16 item_height = 0;
+
- opreate_pin_ptr->operate_type = MNSIM_PIN_UNBLOCK;
- // ´ò¿ªÊäÈëPUKµÄ½çÃæ
- MMK_CreatePubEditWin((uint32*)MMI_PUK_INPUTING_WIN_TAB,(ADD_DATA)opreate_pin_ptr);
- }
- else//PIN2±»ËøsimÈÔÈ»¿ÉÒÔÓÃ
- {
- SCI_MEMSET(&s_operate_pin2_blocked_info,0,sizeof(MMI_OPERATE_PIN_T));
- s_operate_pin2_blocked_info.operate_type = operate_type;
- s_operate_pin2_blocked_info.pin_num = pin_num;
- MMIPUB_CloseAlertWin();
- MMIPUB_OpenAlertWinByTextId(PNULL,TXT_PIN2_BLOCKED,TXT_NULL,IMAGE_PUBWIN_WARNING,PNULL,PNULL,MMIPUB_SOFTKEY_ONE,HandlePin2BlockedExceptPhone);
-
- SCI_FREE(opreate_pin_ptr);
- opreate_pin_ptr = PNULL;
- }
- }
- else//PIN2ûÓб»Ëø£¬ÒªÇóÊäÈëPIN2
- {
- MMK_CloseWin(MMI_PIN_INPUTING_WIN_ID);
+ MMIDEFAULT_AllowTurnOffBackLight(TRUE);
- // ´ò¿ªÊäÈëPINµÄ½çÃæ
- MMK_CreatePubEditWin((uint32*)MMI_PIN_INPUTING_WIN_TAB,(ADD_DATA)opreate_pin_ptr);
- }
- }
-}
+ // background
+ GUI_FillRect(dev_info_ptr, full_rect, MMI_BLACK_COLOR);
-LOCAL void HandlePukModifyPinExceptPhone(
- uint8 *puk_pin_str,
- MNSIM_PIN_INDICATION_E pin_num
- )
-{
- MMI_PIN_INFO_T pin_info = {0};
- MMI_STRING_T wait_text = {0};
-
- SCI_MEMSET(((void*)&pin_info), 0, sizeof(MMI_PIN_INFO_T));
-
- //parse input str
- if (PARS_RESULT_SUCCESS == MMIAPIPARSE_ParsePukAndPinStr((char *)puk_pin_str,&pin_info))
- {
- //operate pin
- MNPHONE_OperatePinEx(MMIAPIPHONE_GetCurHandlingPinSimID(), MNSIM_PIN_UNBLOCK,pin_num,&pin_info.ext_pin_value,&pin_info.pin_value);
-
- MMK_CloseWin(PHONE_PIN_WAIT_WIN_ID);
-
- //½øÈëµÈ´ý½çÃæ
- MMI_GetLabelTextByLang(TXT_COMMON_WAITING, &wait_text);
- MMIPUB_OpenWaitWin(1,&wait_text,PNULL,PNULL,PHONE_PIN_WAIT_WIN_ID,IMAGE_NULL,
- ANIM_PUBWIN_WAIT,WIN_ONE_LEVEL,MMIPUB_SOFTKEY_NONE,HandlePukWaitingWindow);
- }
- else
- {
- if (MNSIM_PIN1 == pin_num)
- {
- MMIPUB_OpenAlertWinByTextId(PNULL,TXT_INPUT_ERROR,TXT_NULL,IMAGE_PUBWIN_WARNING,PNULL,PNULL,MMIPUB_SOFTKEY_ONE,HandlePukAlertWindowExceptPhone);
- }
- else
- {
- MMIPUB_OpenAlertWarningWin(TXT_INPUT_ERROR);
- }
-
- //Çå¿Õpassword
- GUIEDIT_ClearAllStr(MMI_PUK_INPUT_EDITBOX_CTRL_ID);
- }
-}
+ // label 0
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_0_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
+ // label 1
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_1_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
-/*****************************************************************************/
-// Description : ´¦Àínew pin INPUTINGµÄÏûÏ¢,³ýÈ¥¿ª¹Ø»úreponse PINµÄÇé¿ö
-// Global resource dependence :
-// Author: Jassmine
-// Note:
-/*****************************************************************************/
-LOCAL MMI_RESULT_E HandleNewPinInputExceptPhone (
- MMI_WIN_ID_T win_id, // new pin input´°¿ÚµÄID
- MMI_MESSAGE_ID_E msg_id, // ´°¿ÚµÄÄÚ²¿ÏûÏ¢ID
- DPARAM param // ÏàÓ¦ÏûÏ¢µÄ²ÎÊý
- )
-{
- MMI_OPERATE_PIN_T *operate_pin_ptr = (MMI_OPERATE_PIN_T *)MMK_GetWinAddDataPtr(win_id);
- MMI_RESULT_E result = MMI_RESULT_TRUE;
- MMI_STRING_T puk_value = {0};
- MMI_STRING_T old_pin_value = {0};
- MMI_STRING_T new_pin_value = {0};
- MMI_STRING_T new_pin_again_value = {0};
- GUI_BOTH_RECT_T edit_both_rect = {0};
+ // label 2
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_2_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
- switch (msg_id)
- {
- case MSG_OPEN_WINDOW:
-#ifdef MAINLCD_SIZE_128X64 //added by taiping.lai 2011/01/03
- {
- GUI_RECT_T title_rect = GetPasswordTitleRect();
+ // label 3
+ image_id = IMAGE_AIGC_RECORD_BUTTON_PRESSED;
+ GUIRES_GetImgWidthHeight(&image_width, &image_height, image_id, win_id);
+ ctrl_rect.left = 75;
+ ctrl_rect.right = ctrl_rect.left + image_width;
+ ctrl_rect.top = 250;
+ ctrl_rect.bottom = ctrl_rect.top + image_height;
+ GUILABEL_SetRect( MMI_AIGC_LABEL_3_CTRL_ID, &ctrl_rect, FALSE);
+ ctrl_bg.bg_type = GUI_BG_IMG;
+ ctrl_bg.img_id = image_id;
+ GUILABEL_SetBg( MMI_AIGC_LABEL_3_CTRL_ID, &ctrl_bg);
+ GUILABEL_SetFont( MMI_AIGC_LABEL_3_CTRL_ID, font_all.font, font_all.color);
+ MMI_GetLabelTextByLang(TXT_AIGC_CONTINUE, &display_text);
+ GUILABEL_SetText( MMI_AIGC_LABEL_3_CTRL_ID, &display_text, FALSE);
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_3_CTRL_ID, GUICTRL_STATE_INVISIBLE, FALSE);
- GUIWIN_SetTitleRect(win_id, title_rect);
- }
- edit_both_rect = GetPinPukEditRect(win_id, FALSE);
-#else
- edit_both_rect = GetPinPukEditRect(win_id, TRUE);
-#endif
- GUIAPICTRL_SetBothRect(MMI_NEW_PIN_INPUT_EDITBOX_CTRL_ID, &edit_both_rect);
-
- GUIEDIT_SetPasswordStyle(MMI_NEW_PIN_INPUT_EDITBOX_CTRL_ID,GUIEDIT_PASSWORD_STYLE_DIGITAL_PIN);
- //set left softkey
- GUIEDIT_SetSoftkey(MMI_NEW_PIN_INPUT_EDITBOX_CTRL_ID,0,MMI_PIN_MIN_LENGTH,TXT_NULL,TXT_COMMON_OK,PNULL);
- MMK_SetAtvCtrl(win_id,MMI_NEW_PIN_INPUT_EDITBOX_CTRL_ID);
- break;
-
- case MSG_FULL_PAINT:
- //set title
- if (MNSIM_PIN1 == operate_pin_ptr->pin_num)
- {
- GUIWIN_SetTitleTextId(MMI_NEW_PIN_INPUTING_WIN_ID,TXT_ENTER_NEW_PIN,FALSE);
- }
- else
- {
- GUIWIN_SetTitleTextId(MMI_NEW_PIN_INPUTING_WIN_ID,TXT_ENTER_NEW_PIN2,FALSE);
- }
-#if !defined(MMI_PDA_SUPPORT) && !defined(MMIPUBWIN_PDASTYLE_SUPPORT)
-#if !defined(MAINLCD_SIZE_176X220) && !defined(MAINLCD_SIZE_128X160)
- SetPasswordBackground(win_id,MMI_NEW_PIN_INPUT_EDITBOX_CTRL_ID,FALSE);
-#else
- SetPasswordBackground(win_id,MMI_NEW_PIN_INPUT_EDITBOX_CTRL_ID,TRUE);
-#endif
-#endif
- break;
-
-#ifdef TOUCH_PANEL_SUPPORT //IGNORE9527
- case MSG_CTL_PENOK:
-#endif //TOUCH_PANEL_SUPPORT //IGNORE9527
- case MSG_CTL_MIDSK:
- case MSG_CTL_OK:
- case MSG_APP_OK:
- case MSG_APP_WEB:
- // get the value about new PIN
- GUIEDIT_GetString(MMI_NEW_PIN_INPUT_EDITBOX_CTRL_ID,&new_pin_value);
-
- if (PIN_LEN_IS_IN_RANGE(new_pin_value.wstr_len))
- {
- MMI_OPERATE_PIN_T *new_opreate_pin_ptr = SCI_ALLOC_APPZ(sizeof(MMI_OPERATE_PIN_T));
- MMI_MEMCPY(new_opreate_pin_ptr,sizeof(MMI_OPERATE_PIN_T),
- operate_pin_ptr,sizeof(MMI_OPERATE_PIN_T),
- sizeof(MMI_OPERATE_PIN_T));
-
- //open the window of input new pin again
- MMK_CreatePubEditWin((uint32*)MMI_NEW_PIN_AGAIN_INPUTING_WIN_TAB,(ADD_DATA)new_opreate_pin_ptr);
- }
- break;
-
- case MSG_SET_NEW_PIN_AGAIN:
- // get the value about new PIN again
- GUIEDIT_GetString(MMI_NEW_PIN_AGAIN_INPUT_EDITBOX_CTRL_ID,&new_pin_again_value);
-
- // get the value about new PIN
- GUIEDIT_GetString(MMI_NEW_PIN_INPUT_EDITBOX_CTRL_ID,&new_pin_value);
-
- //±È½ÏÁ½¸öPINÊÇ·ñÏàͬ
-
- if( MMIAPICOM_StrCompare( &new_pin_value, &new_pin_again_value ) )
- //if (MMIAPICOM_CompareTwoTeleNum( new_pin_again_value.str_ptr, new_pin_again_value.str_len, new_pin_value.str_ptr, new_pin_value.str_len))
- {
- if (MNSIM_PIN_CHANGE == operate_pin_ptr->operate_type)//pin modify pin
- {
- // get the value about old PIN
- GUIEDIT_GetString(MMI_PIN_INPUT_EDITBOX_CTRL_ID,&old_pin_value);
- HandleOperatePinAndNewPin(operate_pin_ptr,&old_pin_value,&new_pin_value);
- }
- else//puk modify pin
- {
- // get the value about PUK
- GUIEDIT_GetString(MMI_PUK_INPUT_EDITBOX_CTRL_ID,&puk_value);
- HandleOperatePukAndNewPin(operate_pin_ptr,&puk_value,&new_pin_value);
- }
-
- //close input new pin and input new pin again window
- MMK_CloseWin(MMI_NEW_PIN_INPUTING_WIN_ID);
- MMK_CloseWin(MMI_NEW_PIN_AGAIN_INPUTING_WIN_ID);
- }
- else
- {
- if (MNSIM_PIN1 == operate_pin_ptr->pin_num)
- {
- //Ìáʾ´íÎó´°¿Ú,Á½´ÎÊäÈëµÄPIN²»Ò»ÖÂ
- #ifdef MMI_PDA_SUPPORT
- MMIPUB_OpenAlertWinByTextId(PNULL,TXT_INPUT_CONFLICT,TXT_NULL,IMAGE_PUBWIN_WARNING,PNULL,PNULL,MMIPUB_SOFTKEY_ONE,HandlePukAlertWindowExceptPhone);
- #else
- MMIPUB_OpenAlertWinByTextId(PNULL,TXT_MSGBOX_PIN_CONFLICT,TXT_NULL,IMAGE_PUBWIN_WARNING,PNULL,PNULL,MMIPUB_SOFTKEY_ONE,HandlePukAlertWindowExceptPhone);
- #endif
- }
- else
- {
- #ifdef MMI_PDA_SUPPORT
- MMIPUB_OpenAlertWarningWin(TXT_INPUT_CONFLICT);
- #else
- MMIPUB_OpenAlertWarningWin(TXT_MSGBOX_PIN2_CONFLICT);
- #endif
- }
-
- //Çå¿Õpassword
- GUIEDIT_ClearAllStr(MMI_NEW_PIN_INPUT_EDITBOX_CTRL_ID);
-
- //close input new pin again window
- MMK_CloseWin(MMI_NEW_PIN_AGAIN_INPUTING_WIN_ID);
-
- MMK_SetAtvCtrl(win_id,MMI_NEW_PIN_INPUT_EDITBOX_CTRL_ID);
- }
- break;
-
- case MSG_CTL_CANCEL:
- case MSG_APP_CANCEL:
- MMK_CloseWin( win_id );
- break;
-
- case MSG_APP_RED://puk½çÃæ´æÔÚ£¬red and flip²»ÔÊÐí·µ»Ø
- if (MNSIM_PIN1 == operate_pin_ptr->pin_num)
- {
- if (!MMK_IsOpenWin(MMI_PUK_INPUTING_WIN_ID))
- {
- result = MMI_RESULT_FALSE;
- }
- }
- else
- {
- result = MMI_RESULT_FALSE;
- }
- break;
+ // label 4
+ image_id = IMAGE_AIGC_CANCEL_BUTTON;
+ GUIRES_GetImgWidthHeight(&image_width, &image_height, image_id, win_id);
+ ctrl_rect.left = 20;
+ ctrl_rect.right = ctrl_rect.left + image_width;
+ ctrl_rect.top = 250;
+ ctrl_rect.bottom = ctrl_rect.top + image_height;
+ GUILABEL_SetRect( MMI_AIGC_LABEL_4_CTRL_ID, &ctrl_rect, FALSE);
+ ctrl_bg.bg_type = GUI_BG_IMG;
+ ctrl_bg.img_id = image_id;
+ GUILABEL_SetBg( MMI_AIGC_LABEL_4_CTRL_ID, &ctrl_bg);
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_4_CTRL_ID, GUICTRL_STATE_INVISIBLE, FALSE);
+
+ // anim
+ GUIAPICTRL_SetState(MMI_AIGC_ANIM_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
-#ifdef FLIP_PHONE_SUPPORT //close flip ring codes, just open for flip phone.
- case MSG_APP_FLIP:
- if (MNSIM_PIN1 == operate_pin_ptr->pin_num)
- {
- if (!MMK_IsOpenWin(MMI_PUK_INPUTING_WIN_ID))
- {
- result = MMI_RESULT_FALSE;
- }
- else
- {
- MMIDEFAULT_HandleFlipKey(FALSE);
- }
- }
- else
- {
- result = MMI_RESULT_FALSE;
- }
- break;
-#endif
-
- case MSG_CLOSE_WINDOW:
- MMK_FreeWinAddData(MMI_NEW_PIN_INPUTING_WIN_ID);
- break;
-
- default:
- result = MMI_RESULT_FALSE;
- break;
- }
-
- return (result);
-}
+ // text 1
+ text_style.effect = FONT_EFFECT_NONE;
+ text_style.align = ALIGN_LVMIDDLE;
+ text_style.font = SONG_FONT_24;
+ text_style.font_color = MMI_WHITE_COLOR;
+
+ trans_text_str = mmi_aigc_trans_result_text_get(&trans_text_len);
+ trans_text_wstr = SCI_ALLOC_APPZ((trans_text_len + 1) * sizeof(wchar));
+ if(PNULL == trans_text_wstr)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ return;
+ }
+ SCI_MEMSET(trans_text_wstr, 0x0, ((trans_text_len + 1) * sizeof(wchar)));
+ MMIAPICOM_StrToWstr(trans_text_str, trans_text_wstr);
+ text_str.wstr_ptr = trans_text_wstr;
+ text_str.wstr_len = MMIAPICOM_Wstrlen(trans_text_wstr);
+ GUISTR_GetStringInfo(&text_style, &text_str, text_state, &text_info);
+
+ ctrl_rect.top = 30;
+ ctrl_rect.left = 25;
+ ctrl_rect.right = full_rect.right - 10;
+ item_height = ((text_info.width) / (ctrl_rect.right - ctrl_rect.left) + 1) * (text_info.height + 10);
+ ctrl_rect.bottom = ctrl_rect.top + item_height;
+ LCD_FillRoundedRect(dev_info_ptr, ctrl_rect, ctrl_rect, MMI_AIGC_SELF_ITEM_BACKGROUND_COLOR);
+
+ GUITEXT_SetRect(MMI_AIGC_TEXT_0_CTRL_ID, &ctrl_rect);
+ GUITEXT_SetFont(MMI_AIGC_TEXT_0_CTRL_ID, &text_style.font, text_style.font_color);
+ GUITEXT_SetAlign(MMI_AIGC_TEXT_0_CTRL_ID, text_style.align);
+ GUITEXT_SetString(MMI_AIGC_TEXT_0_CTRL_ID, text_str.wstr_ptr, text_str.wstr_len, FALSE);
+
+ if(PNULL = trans_text_wstr)
+ {
+ SCI_FREE(trans_text_wstr);
+ trans_text_wstr = PNULL;
+ }
+ GUIAPICTRL_SetState(MMI_AIGC_TEXT_0_CTRL_ID, GUICTRL_STATE_INVISIBLE, FALSE);
-/*****************************************************************************/
-// Description : ´¦Àínew pin again INPUTINGµÄÏûÏ¢,³ýÈ¥¿ª¹Ø»úreponse PINµÄÇé¿ö
-// Global resource dependence :
-// Author: Jassmine
-// Note:
-/*****************************************************************************/
-LOCAL MMI_RESULT_E HandleNewPinAgainInputExceptPhone (
- MMI_WIN_ID_T win_id, // new pin input´°¿ÚµÄID
- MMI_MESSAGE_ID_E msg_id, // ´°¿ÚµÄÄÚ²¿ÏûÏ¢ID
- DPARAM param // ÏàÓ¦ÏûÏ¢µÄ²ÎÊý
- )
-{
- MMI_OPERATE_PIN_T *operate_pin_ptr = (MMI_OPERATE_PIN_T *)MMK_GetWinAddDataPtr(win_id);
- MMI_RESULT_E result = MMI_RESULT_TRUE;
- MMI_STRING_T new_pin_again_value = {0};
- GUI_BOTH_RECT_T edit_both_rect = {0};
-
- switch (msg_id)
- {
- case MSG_OPEN_WINDOW:
-#ifdef MAINLCD_SIZE_128X64 //added by taiping.lai 2011/01/03
- {
- GUI_RECT_T title_rect = GetPasswordTitleRect();
+ // text 2
+ chat_text_str = mmi_aigc_trans_result_text_get(&chat_text_len);
+ chat_text_wstr = SCI_ALLOC_APPZ((chat_text_len + 1) * sizeof(wchar));
+ if(PNULL == chat_text_wstr)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ return;
+ }
+ SCI_MEMSET(chat_text_wstr, 0x0, ((chat_text_len + 1) * sizeof(wchar)));
+ MMIAPICOM_StrToWstr(chat_text_str, chat_text_wstr);
+ text_str.wstr_ptr = chat_text_wstr;
+ text_str.wstr_len = MMIAPICOM_Wstrlen(chat_text_wstr);
+ GUISTR_GetStringInfo(&text_style, &text_str, text_state, &text_info);
+
+ ctrl_rect.top = ctrl_rect.bottom + 20;
+ ctrl_rect.left = 10;
+ ctrl_rect.right = full_rect.right - 25;
+ item_height = ((text_info.width) / (ctrl_rect.right - ctrl_rect.left) + 1) * (text_info.height + 10);
+ ctrl_rect.bottom = ctrl_rect.top + item_height;
+ if(240 < ctrl_rect.bottom) // button top position
+ {
+ ctrl_rect.bottom = 240;
+ }
+ LCD_FillRoundedRect(dev_info_ptr, ctrl_rect, ctrl_rect, MMI_AIGC_OTHER_ITEM_BACKGROUND_COLOR);
- GUIWIN_SetTitleRect(win_id, title_rect);
- }
- edit_both_rect = GetPinPukEditRect(win_id, FALSE);
-#else
- edit_both_rect = GetPinPukEditRect(win_id, TRUE);
-#endif
- GUIAPICTRL_SetBothRect(MMI_NEW_PIN_AGAIN_INPUT_EDITBOX_CTRL_ID, &edit_both_rect);
-
- GUIEDIT_SetPasswordStyle(MMI_NEW_PIN_AGAIN_INPUT_EDITBOX_CTRL_ID,GUIEDIT_PASSWORD_STYLE_DIGITAL_PIN);
-
- //set left softkey
- GUIEDIT_SetSoftkey(MMI_NEW_PIN_AGAIN_INPUT_EDITBOX_CTRL_ID,0,MMI_PIN_MIN_LENGTH,TXT_NULL,TXT_COMMON_OK,PNULL);
- MMK_SetAtvCtrl(win_id,MMI_NEW_PIN_AGAIN_INPUT_EDITBOX_CTRL_ID);
- break;
-
- case MSG_FULL_PAINT:
- //set title
- if (MNSIM_PIN1 == operate_pin_ptr->pin_num)
- {
- GUIWIN_SetTitleTextId(MMI_NEW_PIN_AGAIN_INPUTING_WIN_ID,TXT_ENTER_PIN_CNF,FALSE);
- }
- else
- {
- GUIWIN_SetTitleTextId(MMI_NEW_PIN_AGAIN_INPUTING_WIN_ID,TXT_ENTER_PIN2_CNF,FALSE);
- }
-#if !defined(MMI_PDA_SUPPORT) && !defined(MMIPUBWIN_PDASTYLE_SUPPORT)
-#if !defined(MAINLCD_SIZE_176X220) && !defined(MAINLCD_SIZE_128X160)
- SetPasswordBackground(win_id,MMI_NEW_PIN_AGAIN_INPUT_EDITBOX_CTRL_ID,FALSE);
-#else
- SetPasswordBackground(win_id,MMI_NEW_PIN_AGAIN_INPUT_EDITBOX_CTRL_ID,TRUE);
-#endif
-#endif
- break;
-
-#ifdef TOUCH_PANEL_SUPPORT //IGNORE9527
- case MSG_CTL_PENOK:
-#endif //TOUCH_PANEL_SUPPORT //IGNORE9527
- case MSG_CTL_MIDSK:
- case MSG_CTL_OK:
- case MSG_APP_OK:
- case MSG_APP_WEB:
- // get the value about new PIN again
- GUIEDIT_GetString(MMI_NEW_PIN_AGAIN_INPUT_EDITBOX_CTRL_ID,&new_pin_again_value);
-
- if (PIN_LEN_IS_IN_RANGE(new_pin_again_value.wstr_len))
- {
- //send the new pin again to input new pin window
- MMK_SendMsg(MMI_NEW_PIN_INPUTING_WIN_ID,MSG_SET_NEW_PIN_AGAIN,PNULL);
- }
- break;
-
- case MSG_CTL_CANCEL:
- case MSG_APP_CANCEL:
- MMK_CloseWin( win_id );
- break;
-
- case MSG_APP_RED://puk½çÃæ´æÔÚ£¬red and flip²»ÔÊÐí·µ»Ø
- if (MNSIM_PIN1 == operate_pin_ptr->pin_num)
- {
- if (!MMK_IsOpenWin(MMI_PUK_INPUTING_WIN_ID))
- {
- result = MMI_RESULT_FALSE;
- }
- }
- else
- {
- result = MMI_RESULT_FALSE;
- }
- break;
+ GUITEXT_SetRect(MMI_AIGC_TEXT_1_CTRL_ID, &ctrl_rect);
+ GUITEXT_SetFont(MMI_AIGC_TEXT_1_CTRL_ID, &text_style.font, text_style.font_color);
+ GUITEXT_SetAlign(MMI_AIGC_TEXT_1_CTRL_ID, text_style.align);
+ GUITEXT_SetString(MMI_AIGC_TEXT_1_CTRL_ID, text_str.wstr_ptr, text_str.wstr_len, FALSE);
-#ifdef FLIP_PHONE_SUPPORT //close flip ring codes, just open for flip phone.
- case MSG_APP_FLIP:
- if (MNSIM_PIN1 == operate_pin_ptr->pin_num)
- {
- if (!MMK_IsOpenWin(MMI_PUK_INPUTING_WIN_ID))
- {
- result = MMI_RESULT_FALSE;
- }
- else
- {
- MMIDEFAULT_HandleFlipKey(FALSE);
- }
- }
- else
- {
- result = MMI_RESULT_FALSE;
- }
- break;
-#endif
-
- case MSG_CLOSE_WINDOW:
- MMK_FreeWinAddData(MMI_NEW_PIN_AGAIN_INPUTING_WIN_ID);
- break;
-
- default:
- result = MMI_RESULT_FALSE;
- break;
- }
-
- return (result);
+ if(PNULL = chat_text_wstr)
+ {
+ SCI_FREE(chat_text_wstr);
+ chat_text_wstr = PNULL;
+ }
+ MMK_SetAtvCtrl(win_id, MMI_AIGC_TEXT_1_CTRL_ID);
+ GUIAPICTRL_SetState(MMI_AIGC_TEXT_1_CTRL_ID, GUICTRL_STATE_INVISIBLE, FALSE);
}
-/*****************************************************************************/
-// Description : handle display imei when no sim or sim error
-// Global resource dependence :
-// Author: Jassmine
-// Note:
-/*****************************************************************************/
-LOCAL MMI_RESULT_E HandleDisplayImei (
- MMI_WIN_ID_T win_id, // ´°¿ÚµÄID
- MMI_MESSAGE_ID_E msg_id, // ´°¿ÚµÄÄÚ²¿ÏûÏ¢ID
- DPARAM param // ÏàÓ¦ÏûÏ¢µÄ²ÎÊý
- )
+LOCAL void mmi_aigc_timeout_win_display(void)
{
- MMI_RESULT_E recode = MMI_RESULT_TRUE;
-
- switch(msg_id)
- {
- case MSG_OPEN_WINDOW:
- AppendIMEIDetail(MMIPHONE_DISPLAY_IMEI_CTRL_ID);
-
- //set softkey
- GUIWIN_SetSoftkeyTextId(win_id, TXT_NULL, TXT_NULL, STXT_RETURN,FALSE);
-
- MMK_SetAtvCtrl(win_id, MMIPHONE_DISPLAY_IMEI_CTRL_ID);
- break;
-
- case MSG_CTL_CANCEL:
- case MSG_APP_CANCEL:
- MMK_CloseWin(win_id);
- break;
-
- default:
- recode = MMI_RESULT_FALSE;
- break;
- }
-
- return recode;
+ MMI_WIN_ID_T win_id = MMI_AIGC_MAIN_WIN_ID;
+ GUI_LCD_DEV_INFO *dev_info_ptr = MMITHEME_GetDefaultLcdDev();
+ GUI_RECT_T full_rect = MMITHEME_GetFullScreenRect();
+ GUI_FONT_ALL_T font_all = {SONG_FONT_24, MMI_WHITE_COLOR};
+ GUI_BG_T ctrl_bg = {0};
+ GUI_RECT_T ctrl_rect = {0};
+ MMI_STRING_T display_text = {0};
+ char text_ptr[64] = {0};
+ wchar text_dis[64] = {0};
+ uint16 image_width = 0;
+ uint16 image_height = 0;
+ GUI_POINT_T display_point = {0};
+ MMI_IMAGE_ID_T image_id = IMAGE_NULL;
+
+
+ MMIDEFAULT_AllowTurnOffBackLight(TRUE);
+
+ // background
+ GUI_FillRect(dev_info_ptr, full_rect, MMI_BLACK_COLOR);
+
+ // label 0
+ ctrl_rect.left = 0;
+ ctrl_rect.right = MMI_MAINSCREEN_WIDTH;
+ ctrl_rect.top = 35;
+ ctrl_rect.bottom = ctrl_rect.top + 35;
+ GUILABEL_SetRect( MMI_AIGC_LABEL_0_CTRL_ID, &ctrl_rect, FALSE);
+ ctrl_bg.bg_type = GUI_BG_NONE;
+ //ctrl_bg.img_id = ;
+ GUILABEL_SetBg( MMI_AIGC_LABEL_0_CTRL_ID, &ctrl_bg);
+ GUILABEL_SetFont( MMI_AIGC_LABEL_0_CTRL_ID, font_all.font, font_all.color);
+ MMI_GetLabelTextByLang(TXT_AIGC_ASSITANT, &display_text);
+ GUILABEL_SetText( MMI_AIGC_LABEL_0_CTRL_ID, &display_text, FALSE);
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_0_CTRL_ID, GUICTRL_STATE_INVISIBLE, FALSE);
+
+ // label 1
+ image_id = IMAGE_AIGC_PROMPT;
+ GUIRES_GetImgWidthHeight(&image_width, &image_height, image_id, win_id);
+ ctrl_rect.left = (MMI_MAINSCREEN_WIDTH - image_width) / 2;
+ ctrl_rect.right = ctrl_rect.left + image_width;
+ ctrl_rect.top = 100;
+ ctrl_rect.bottom = ctrl_rect.top + image_height;
+ GUILABEL_SetRect( MMI_AIGC_LABEL_1_CTRL_ID, &ctrl_rect, FALSE);
+ ctrl_bg.bg_type = GUI_BG_IMG;
+ ctrl_bg.img_id = image_id;
+ GUILABEL_SetBg(MMI_AIGC_LABEL_1_CTRL_ID, &ctrl_bg);
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_1_CTRL_ID, GUICTRL_STATE_INVISIBLE, FALSE);
+
+ // label 2
+ ctrl_rect.left = 0;
+ ctrl_rect.right = MMI_MAINSCREEN_WIDTH;
+ ctrl_rect.top = MMI_MAINSCREEN_HEIGHT / 2;
+ ctrl_rect.bottom = ctrl_rect.top + 70;
+ GUILABEL_SetRect( MMI_AIGC_LABEL_2_CTRL_ID, &ctrl_rect, FALSE);
+ ctrl_bg.bg_type = GUI_BG_NONE;
+ //ctrl_bg.img_id = ;
+ GUILABEL_SetBg( MMI_AIGC_LABEL_2_CTRL_ID, &ctrl_bg);
+ GUILABEL_SetFont( MMI_AIGC_LABEL_2_CTRL_ID, font_all.font, font_all.color);
+ MMI_GetLabelTextByLang(TXT_AIGC_TIMEOUT, &display_text);
+ GUILABEL_SetText( MMI_AIGC_LABEL_2_CTRL_ID, &display_text, FALSE);
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_2_CTRL_ID, GUICTRL_STATE_INVISIBLE, FALSE);
+
+ // label 3
+ image_id = IMAGE_AIGC_RECORD_BUTTON_PRESSED;
+ GUIRES_GetImgWidthHeight(&image_width, &image_height, image_id, win_id);
+ ctrl_rect.left = (MMI_MAINSCREEN_WIDTH - image_width) / 2;
+ ctrl_rect.right = ctrl_rect.left + image_width;
+ ctrl_rect.top = 250;
+ ctrl_rect.bottom = ctrl_rect.top + image_height;
+ GUILABEL_SetRect( MMI_AIGC_LABEL_3_CTRL_ID, &ctrl_rect, FALSE);
+ ctrl_bg.bg_type = GUI_BG_IMG;
+ ctrl_bg.img_id = image_id;
+ GUILABEL_SetBg( MMI_AIGC_LABEL_3_CTRL_ID, &ctrl_bg);
+ GUILABEL_SetFont( MMI_AIGC_LABEL_3_CTRL_ID, font_all.font, font_all.color);
+ MMI_GetLabelTextByLang(TXT_COMMON_OK, &display_text);
+ GUILABEL_SetText( MMI_AIGC_LABEL_3_CTRL_ID, &display_text, FALSE);
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_3_CTRL_ID, GUICTRL_STATE_INVISIBLE, FALSE);
+
+ // label 4
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_4_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
+
+ // anim
+ GUIAPICTRL_SetState(MMI_AIGC_ANIM_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
+
+ // text 1
+ GUIAPICTRL_SetState(MMI_AIGC_TEXT_0_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
+
+ // text 2
+ GUIAPICTRL_SetState(MMI_AIGC_TEXT_1_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
}
-/*****************************************************************************/
-// Description : ´¦ÀíÊäÈëµÄPuk and new pinÂ룬³ýÈ¥¿ª¹Ø»úreponse PINµÄÇé¿ö
-// Global resource dependence :
-// Author: Jassmine
-// Note:
-/*****************************************************************************/
-LOCAL void HandleOperatePukAndNewPin(
- MMI_OPERATE_PIN_T *operate_pin_info,
- MMI_STRING_T *puk_ptr,
- MMI_STRING_T *pin_ptr
- )
+LOCAL void mmi_aigc_thinking_win_display(void)
{
- MN_BLOCK_T puk_value = {0};
- MN_BLOCK_T pin_value = {0};
- MMI_STRING_T wait_text = {0};
-
- if(PNULL == pin_ptr ||PNULL == puk_ptr ||PNULL == operate_pin_info)
- {
- //SCI_TRACE_LOW:"HandleOperatePukAndNewPin pin_ptr=%d, puk_ptr= %d , operate_pin_info=%d"
- SCI_TRACE_ID(TRACE_TOOL_CONVERT,MMIPHONE_WINTAB_2865_112_2_18_2_45_34_234,(uint8*)"ddd", pin_ptr, puk_ptr, operate_pin_info);
- return;
- }
-
- //ת»»PUKµÄ½á¹¹
- puk_value.blocklen = puk_ptr->wstr_len;
-
- MMI_WSTRNTOSTR((uint8 *)puk_value.blockbuf,
- MN_MAX_BLOCK_LEN,
- puk_ptr->wstr_ptr,
- puk_value.blocklen,
- puk_value.blocklen);
-
- //ת»»PINµÄ½á¹¹
- pin_value.blocklen = pin_ptr->wstr_len;
-
- MMI_WSTRNTOSTR((uint8 *)pin_value.blockbuf,
- MN_MAX_BLOCK_LEN,
- pin_ptr->wstr_ptr,
- pin_value.blocklen,
- pin_value.blocklen);
-
- //operate pin
- MNPHONE_OperatePinEx(MMIAPIPHONE_GetCurHandlingPinSimID(), MNSIM_PIN_UNBLOCK,operate_pin_info->pin_num,&puk_value,&pin_value);
-
- MMK_CloseWin(PHONE_PIN_WAIT_WIN_ID);
-
- //½øÈëµÈ´ý½çÃæ
- MMI_GetLabelTextByLang(TXT_COMMON_WAITING, &wait_text);
- MMIPUB_OpenWaitWin(1,&wait_text,PNULL,PNULL,PHONE_PIN_WAIT_WIN_ID,IMAGE_NULL,
- ANIM_PUBWIN_WAIT,WIN_ONE_LEVEL,MMIPUB_SOFTKEY_NONE,HandlePukWaitingWindow);
+ MMI_WIN_ID_T win_id = MMI_AIGC_MAIN_WIN_ID;
+ GUI_LCD_DEV_INFO *dev_info_ptr = MMITHEME_GetDefaultLcdDev();
+ GUI_RECT_T full_rect = MMITHEME_GetFullScreenRect();
+ GUI_FONT_ALL_T font_all = {SONG_FONT_24, MMI_WHITE_COLOR};
+ GUI_BG_T ctrl_bg = {0};
+ GUI_RECT_T ctrl_rect = {0};
+ MMI_STRING_T display_text = {0};
+ uint16 image_width = 0;
+ uint16 image_height = 0;
+ GUI_POINT_T display_point = {0};
+ MMI_IMAGE_ID_T image_id = IMAGE_NULL;
+
+
+ MMIDEFAULT_AllowTurnOffBackLight(FALSE);
+
+ // background
+ GUI_FillRect(dev_info_ptr, full_rect, MMI_BLACK_COLOR);
+
+ // label 0
+ ctrl_rect.left = 0;
+ ctrl_rect.right = MMI_MAINSCREEN_WIDTH;
+ ctrl_rect.top = 35;
+ ctrl_rect.bottom = ctrl_rect.top + 40;
+ GUILABEL_SetRect( MMI_AIGC_LABEL_0_CTRL_ID, &ctrl_rect, FALSE);
+ ctrl_bg.bg_type = GUI_BG_NONE;
+ //ctrl_bg.img_id = ;
+ GUILABEL_SetBg( MMI_AIGC_LABEL_0_CTRL_ID, &ctrl_bg);
+ GUILABEL_SetFont( MMI_AIGC_LABEL_0_CTRL_ID, font_all.font, font_all.color);
+ MMI_GetLabelTextByLang(TXT_AIGC_THINKING, &display_text);
+ GUILABEL_SetText( MMI_AIGC_LABEL_0_CTRL_ID, &display_text, FALSE);
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_0_CTRL_ID, GUICTRL_STATE_INVISIBLE, FALSE);
+
+ // label 1
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_1_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
+
+ // label 2
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_2_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
+
+ // label 3
+ image_id = IMAGE_AIGC_RECORD_BUTTON_PRESSED;
+ GUIRES_GetImgWidthHeight(&image_width, &image_height, image_id, win_id);
+ ctrl_rect.left = (MMI_MAINSCREEN_WIDTH - image_width) / 2;
+ ctrl_rect.right = ctrl_rect.left + image_width;
+ ctrl_rect.top = 250;
+ ctrl_rect.bottom = ctrl_rect.top + image_height;
+ GUILABEL_SetRect( MMI_AIGC_LABEL_3_CTRL_ID, &ctrl_rect, FALSE);
+ ctrl_bg.bg_type = GUI_BG_IMG;
+ ctrl_bg.img_id = image_id;
+ GUILABEL_SetBg( MMI_AIGC_LABEL_3_CTRL_ID, &ctrl_bg);
+ GUILABEL_SetFont( MMI_AIGC_LABEL_3_CTRL_ID, font_all.font, font_all.color);
+ MMI_GetLabelTextByLang(STXT_CANCEL, &display_text);
+ GUILABEL_SetText( MMI_AIGC_LABEL_3_CTRL_ID, &display_text, FALSE);
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_3_CTRL_ID, GUICTRL_STATE_INVISIBLE, FALSE);
+
+ // label 4
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_4_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
+
+ // anim
+ {
+ GUIANIM_RESULT_E anim_result = GUIANIM_RESULT_SUCC;
+ GUIANIM_CTRL_INFO_T control_info = {0};
+ GUIANIM_DATA_INFO_T data_info = {0};
+ GUIANIM_DISPLAY_INFO_T display_info = {0};
+
+ control_info.is_ctrl_id = TRUE;
+ control_info.ctrl_id = MMI_AIGC_ANIM_CTRL_ID;
+
+ //data_info.anim_id = ANIM_AIGC_THINKING;
+ data_info.img_id = ANIM_AIGC_THINKING;
+
+ display_info.align_style = GUIANIM_ALIGN_HVMIDDLE;
+ display_info.is_play_once = FALSE;
+ //display_info.is_update = TRUE;
+
+ anim_result = GUIANIM_SetParam(&control_info, &data_info, PNULL, &display_info);
+ }
+ GUIAPICTRL_SetState(MMI_AIGC_ANIM_CTRL_ID, GUICTRL_STATE_INVISIBLE, FALSE);
+
+ // text 1
+ GUIAPICTRL_SetState(MMI_AIGC_TEXT_0_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
+
+ // text 2
+ GUIAPICTRL_SetState(MMI_AIGC_TEXT_1_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
}
-/*****************************************************************************/
-// Description : PINÐÞ¸ÄPIN£¬³ýÈ¥¿ª¹Ø»úreponse PINµÄÇé¿ö
-// Global resource dependence :
-// Author: Jassmine
-// Note:
-/*****************************************************************************/
-LOCAL void HandleOperatePinAndNewPin(
- MMI_OPERATE_PIN_T *operate_pin_info,
- MMI_STRING_T *old_pin_ptr,
- MMI_STRING_T *new_pin_ptr
- )
+LOCAL void mmi_aigc_listening_middle_win_display(void)
{
- MN_BLOCK_T old_pin_value = {0};
- MN_BLOCK_T new_pin_value = {0};
- MMI_STRING_T wait_text = {0};
-
- if(PNULL == old_pin_ptr ||PNULL == new_pin_ptr ||PNULL == operate_pin_info)
- {
- //SCI_TRACE_LOW:"HandleOperatePinAndNewPin pin_ptr=%d, puk_ptr= %d , operate_pin_info=%d"
- SCI_TRACE_ID(TRACE_TOOL_CONVERT,MMIPHONE_WINTAB_2914_112_2_18_2_45_34_235,(uint8*)"ddd", old_pin_ptr, new_pin_ptr, operate_pin_info);
- return;
- }
-
- //ת»»old PINµÄ½á¹¹
- old_pin_value.blocklen = old_pin_ptr->wstr_len;
-
- MMI_WSTRNTOSTR((uint8 *)old_pin_value.blockbuf,
- MN_MAX_BLOCK_LEN,
- old_pin_ptr->wstr_ptr,
- old_pin_value.blocklen,
- old_pin_value.blocklen);
-
- //ת»»new PINµÄ½á¹¹
- new_pin_value.blocklen = new_pin_ptr->wstr_len;
-
- MMI_WSTRNTOSTR((uint8 *)new_pin_value.blockbuf,
- MN_MAX_BLOCK_LEN,
- new_pin_ptr->wstr_ptr,
- new_pin_value.blocklen,
- new_pin_value.blocklen);
-
-#ifdef MMI_SIM_LOCK_SUPPORT
- SCI_MEMCPY(&g_pin_value[MMIAPIPHONE_GetCurHandlingPinSimID()],
- &new_pin_value,
- sizeof(MN_BLOCK_T)); //¼Ç¼ÐµÄpin1Âë
-#endif
- //operate pin
- MNPHONE_OperatePinEx(MMIAPIPHONE_GetCurHandlingPinSimID(), MNSIM_PIN_CHANGE,operate_pin_info->pin_num,&old_pin_value,&new_pin_value);
-
- MMK_CloseWin(PHONE_PIN_WAIT_WIN_ID);
-
- //½øÈëµÈ´ý½çÃæ
- MMI_GetLabelTextByLang(TXT_COMMON_WAITING, &wait_text);
- MMIPUB_OpenWaitWin(1,&wait_text,PNULL,PNULL,PHONE_PIN_WAIT_WIN_ID,IMAGE_NULL,
- ANIM_PUBWIN_WAIT,WIN_ONE_LEVEL,MMIPUB_SOFTKEY_NONE,PNULL);
+
}
-/*****************************************************************************/
-// Description : HandlePoweroffQueryWin
-// Global resource dependence :
-// Author: wancan.you
-// Note:
-/*****************************************************************************/
-LOCAL MMI_RESULT_E HandlePoweroffQueryWin(MMI_WIN_ID_T win_id, MMI_MESSAGE_ID_E msg_id, DPARAM param)
+LOCAL void mmi_aigc_listening_win_display(void)
{
- MMI_RESULT_E result = MMI_RESULT_TRUE;
+ MMI_WIN_ID_T win_id = MMI_AIGC_MAIN_WIN_ID;
+ GUI_LCD_DEV_INFO *dev_info_ptr = MMITHEME_GetDefaultLcdDev();
+ GUI_RECT_T full_rect = MMITHEME_GetFullScreenRect();
+ GUI_FONT_ALL_T font_all = {SONG_FONT_24, MMI_WHITE_COLOR};
+ GUI_BG_T ctrl_bg = {0};
+ GUI_RECT_T ctrl_rect = {0};
+ MMI_STRING_T display_text = {0};
+ uint16 image_width = 0;
+ uint16 image_height = 0;
+ GUI_POINT_T display_point = {0};
+ MMI_IMAGE_ID_T image_id = IMAGE_NULL;
- switch(msg_id)
- {
- case MSG_APP_OK:
-#ifdef TOUCH_PANEL_SUPPORT //IGNORE9527
- case MSG_CTL_PENOK:
-#endif //TOUCH_PANEL_SUPPORT //IGNORE9527
- case MSG_CTL_MIDSK:
- case MSG_CTL_OK:
- case MSG_APP_WEB:
- MMIPHONE_PowerOff();
- break;
-
- case MSG_APP_CANCEL:
- case MSG_CTL_CANCEL:
- MMK_CloseWin(win_id);
- break;
-
- default:
- result = MMIPUB_HandleQueryWinMsg(win_id,msg_id,param);
- break;
- }
+
+ MMIDEFAULT_AllowTurnOffBackLight(FALSE);
+
+ // background
+ GUI_FillRect(dev_info_ptr, full_rect, MMI_BLACK_COLOR);
+
+ // label 0
+ ctrl_rect.left = 0;
+ ctrl_rect.right = MMI_MAINSCREEN_WIDTH;
+ ctrl_rect.top = 35;
+ ctrl_rect.bottom = ctrl_rect.top + 40;
+ GUILABEL_SetRect( MMI_AIGC_LABEL_0_CTRL_ID, &ctrl_rect, FALSE);
+ ctrl_bg.bg_type = GUI_BG_NONE;
+ //ctrl_bg.img_id = ;
+ GUILABEL_SetBg( MMI_AIGC_LABEL_0_CTRL_ID, &ctrl_bg);
+ GUILABEL_SetFont( MMI_AIGC_LABEL_0_CTRL_ID, font_all.font, font_all.color);
+ MMI_GetLabelTextByLang(TXT_AIGC_LISTENING, &display_text);
+ GUILABEL_SetText( MMI_AIGC_LABEL_0_CTRL_ID, &display_text, FALSE);
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_0_CTRL_ID, GUICTRL_STATE_INVISIBLE, FALSE);
+
+ // label 1
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_1_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
+
+ // label 2
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_2_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
+
+ // label 3
+ image_id = IMAGE_AIGC_RECORD_BUTTON_PRESSED;
+ GUIRES_GetImgWidthHeight(&image_width, &image_height, image_id, win_id);
+ ctrl_rect.left = (MMI_MAINSCREEN_WIDTH - image_width) / 2;
+ ctrl_rect.right = ctrl_rect.left + image_width;
+ ctrl_rect.top = 250;
+ ctrl_rect.bottom = ctrl_rect.top + image_height;
+ GUILABEL_SetRect( MMI_AIGC_LABEL_3_CTRL_ID, &ctrl_rect, FALSE);
+ ctrl_bg.bg_type = GUI_BG_IMG;
+ ctrl_bg.img_id = image_id;
+ GUILABEL_SetBg( MMI_AIGC_LABEL_3_CTRL_ID, &ctrl_bg);
+ GUILABEL_SetFont( MMI_AIGC_LABEL_3_CTRL_ID, font_all.font, font_all.color);
+ MMI_GetLabelTextByLang(TXT_AIGC_TALK_FINISH, &display_text);
+ GUILABEL_SetText( MMI_AIGC_LABEL_3_CTRL_ID, &display_text, FALSE);
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_3_CTRL_ID, GUICTRL_STATE_INVISIBLE, FALSE);
+
+ // label 4
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_4_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
+
+ // anim
+ ctrl_rect.left = 0;
+ ctrl_rect.right = MMI_MAINSCREEN_WIDTH;
+ ctrl_rect.top = 90;
+ ctrl_rect.bottom = 230;
+ GUIANIM_SetCtrlRect(MMI_AIGC_ANIM_CTRL_ID, &ctrl_rect);
+ {
+ GUIANIM_RESULT_E anim_result = GUIANIM_RESULT_SUCC;
+ GUIANIM_CTRL_INFO_T control_info = {0};
+ GUIANIM_DATA_INFO_T data_info = {0};
+ GUIANIM_DISPLAY_INFO_T display_info = {0};
+
+ control_info.is_ctrl_id = TRUE;
+ control_info.ctrl_id = MMI_AIGC_ANIM_CTRL_ID;
+
+ //data_info.anim_id = ANIM_AIGC_LISTENING;
+ data_info.img_id = ANIM_AIGC_LISTENING;
+
+ display_info.align_style = GUIANIM_ALIGN_HVMIDDLE;
+ display_info.is_play_once = FALSE;
+ //display_info.is_update = TRUE;
+
+ anim_result = GUIANIM_SetParam(&control_info, &data_info, PNULL, &display_info);
+ }
+ GUIAPICTRL_SetState(MMI_AIGC_ANIM_CTRL_ID, GUICTRL_STATE_INVISIBLE, FALSE);
+
+ // text 1
+ GUIAPICTRL_SetState(MMI_AIGC_TEXT_0_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
- return result;
+ // text 2
+ GUIAPICTRL_SetState(MMI_AIGC_TEXT_1_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
}
-/*****************************************************************************/
-// Description : open query power off
-// Global resource dependence :
-// Author: wancan.you
-// Note:
-/*****************************************************************************/
-PUBLIC void MMIPHONE_OpenQueryPowerOff(MMIPHONE_QUERY_POWER_OFF_TYPE_E query_type)
+LOCAL void mmi_aigc_default_win_display(void)
{
- MMI_TEXT_ID_T text_id = TXT_NULL;
- MMI_WIN_ID_T win_id = MMIPHONE_QUERY_POWEROFF_WIN_ID;
+ MMI_WIN_ID_T win_id = MMI_AIGC_MAIN_WIN_ID;
+ GUI_LCD_DEV_INFO *dev_info_ptr = MMITHEME_GetDefaultLcdDev();
+ GUI_RECT_T full_rect = MMITHEME_GetFullScreenRect();
+ GUI_FONT_ALL_T font_all = {SONG_FONT_24, MMI_WHITE_COLOR};
+ GUI_BG_T ctrl_bg = {0};
+ GUI_RECT_T ctrl_rect = {0};
+ MMI_STRING_T display_text = {0};
+ uint16 image_width = 0;
+ uint16 image_height = 0;
+ GUI_POINT_T display_point = {0};
+ MMI_IMAGE_ID_T image_id = IMAGE_NULL;
- //SCI_TRACE_LOW:"MMIPHONE_OpenQueryPoweroff=%d"
- SCI_TRACE_ID(TRACE_TOOL_CONVERT,MMIPHONE_WINTAB_3035_112_2_18_2_45_34_238,(uint8*)"d", query_type);
- if (MMIPHONE_QUERY_POWER_OFF_DOWNLOAD == query_type)
- {
- text_id = TXT_QUERY_POWEROFF_DOWNLOAD;
- }
+ MMIDEFAULT_AllowTurnOffBackLight(FALSE);
- if (TXT_NULL != text_id)
- {
- MMK_CloseWin(win_id);
- MMIPUB_OpenQueryWinByTextId(text_id, IMAGE_PUBWIN_QUERY, &win_id, HandlePoweroffQueryWin);
- }
- else
- {
- MMIPHONE_PowerOff();
- }
-}
+ // background
+ GUI_FillRect(dev_info_ptr, full_rect, MMI_BLACK_COLOR);
+ // label 0
+ ctrl_rect.left = 0;
+ ctrl_rect.right = MMI_MAINSCREEN_WIDTH;
+ ctrl_rect.top = 35;
+ ctrl_rect.bottom = ctrl_rect.top + 35;
+ GUILABEL_SetRect( MMI_AIGC_LABEL_0_CTRL_ID, &ctrl_rect, FALSE);
+ ctrl_bg.bg_type = GUI_BG_NONE;
+ //ctrl_bg.img_id = ;
+ GUILABEL_SetBg( MMI_AIGC_LABEL_0_CTRL_ID, &ctrl_bg);
+ GUILABEL_SetFont( MMI_AIGC_LABEL_0_CTRL_ID, font_all.font, font_all.color);
+ MMI_GetLabelTextByLang(TXT_AIGC_ASSITANT, &display_text);
+ GUILABEL_SetText( MMI_AIGC_LABEL_0_CTRL_ID, &display_text, FALSE);
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_0_CTRL_ID, GUICTRL_STATE_INVISIBLE, FALSE);
-LOCAL void AppendIMEIDetail(MMI_CTRL_ID_T ctrl_id)
-{
- uint16 index = 0;
- GUIRICHTEXT_ITEM_T item_data = {0};/*lint !e64*/
- MMI_STRING_T string = {0};
- wchar item_text[GUIRICHTEXT_TEXT_MAX_LEN + 1] = {0};
- MN_IMEISVN_T imeisvn = {0};/*lint !e64*/
- uint8 imei_str[(MN_MAX_IMEI_LENGTH<<1) + 1] = {0};
- // wchar imei_wstr[(MN_MAX_IMEI_LENGTH<<1) + 1] = {0};
- uint16 imei_len = 0;
- uint8 svn_str[(MN_MAX_IMEI_LENGTH<<1) + 1] = {0};
- wchar svn_wstr[(MN_MAX_IMEI_LENGTH<<1) + 1] = {0};
- wchar imei_string[(MN_MAX_IMEI_LENGTH<<1) + 1] = {0};
- uint16 svn_len = 0;
- uint32 i = MN_DUAL_SYS_1;
-
- item_data.img_type = GUIRICHTEXT_IMAGE_NONE;
- item_data.text_type = GUIRICHTEXT_TEXT_BUF;
-
- //IMEI:
- for(i = MN_DUAL_SYS_1; i < MMI_DUAL_SYS_MAX; i++)
- {
- if (MNNV_GetIMEISVNEx(i, &imeisvn))
- {
- MMI_GetLabelTextByLang(TXT_IMEI_DISPLAY, &string);
+ // label 1
+ image_id = IMAGE_AIGC_DEFAULT;
+ GUIRES_GetImgWidthHeight(&image_width, &image_height, image_id, win_id);
+ ctrl_rect.left = (MMI_MAINSCREEN_WIDTH - image_width) / 2;
+ ctrl_rect.right = ctrl_rect.left + image_width;
+ ctrl_rect.top = (MMI_MAINSCREEN_HEIGHT - image_height) / 2;
+ ctrl_rect.bottom = ctrl_rect.top + image_height;
+ GUILABEL_SetRect( MMI_AIGC_LABEL_1_CTRL_ID, &ctrl_rect, FALSE);
+ ctrl_bg.bg_type = GUI_BG_IMG;
+ ctrl_bg.img_id = image_id;
+ GUILABEL_SetBg( MMI_AIGC_LABEL_1_CTRL_ID, &ctrl_bg);
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_1_CTRL_ID, GUICTRL_STATE_INVISIBLE, FALSE);
- item_data.text_data.buf.len = MIN(GUIRICHTEXT_TEXT_MAX_LEN, string.wstr_len);
- item_data.text_data.buf.str_ptr = string.wstr_ptr;
+ // label 2
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_2_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
- GUIRICHTEXT_AddItem(ctrl_id, &item_data, &index);
+ // label 3
+ image_id = IMAGE_AIGC_RECORD_BUTTON_DEFAULT;
+ GUIRES_GetImgWidthHeight(&image_width, &image_height, image_id, win_id);
+ ctrl_rect.left = (MMI_MAINSCREEN_WIDTH - image_width) / 2;
+ ctrl_rect.right = ctrl_rect.left + image_width;
+ ctrl_rect.top = 250;
+ ctrl_rect.bottom = ctrl_rect.top + image_height;
+ GUILABEL_SetRect( MMI_AIGC_LABEL_3_CTRL_ID, &ctrl_rect, FALSE);
+ ctrl_bg.bg_type = GUI_BG_IMG;
+ ctrl_bg.img_id = image_id;
+ GUILABEL_SetBg( MMI_AIGC_LABEL_3_CTRL_ID, &ctrl_bg);
+ GUILABEL_SetFont( MMI_AIGC_LABEL_3_CTRL_ID, font_all.font, font_all.color);
+ MMI_GetLabelTextByLang(TXT_AIGC_CONVERSATION, &display_text);
+ GUILABEL_SetText( MMI_AIGC_LABEL_3_CTRL_ID, &display_text, FALSE);
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_3_CTRL_ID, GUICTRL_STATE_INVISIBLE, FALSE);
- MMIAPICOM_BcdToStr(PACKED_LSB_FIRST, (uint8 *)imeisvn.imei, MN_MAX_IMEI_LENGTH<<1, (char*)imei_str);
-
- imei_len = (uint16)strlen((char *)imei_str) - 1;
+ // label 4
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_4_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
+
+ // anim
+ GUIAPICTRL_SetState(MMI_AIGC_ANIM_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
- item_data.text_data.buf.len = MIN(GUIRICHTEXT_TEXT_MAX_LEN, imei_len);
+ // text 1
+ GUIAPICTRL_SetState(MMI_AIGC_TEXT_0_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
- MMI_STRNTOWSTR(imei_string,
- GUIRICHTEXT_TEXT_MAX_LEN,
- (uint8 *)&imei_str[1],
- imei_len,
- item_data.text_data.buf.len);
+ // text 2
+ GUIAPICTRL_SetState(MMI_AIGC_TEXT_1_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
+}
- item_data.text_data.buf.str_ptr = imei_string;
+LOCAL void mmi_aigc_no_network_win_display(void)
+{
+ MMI_WIN_ID_T win_id = MMI_AIGC_MAIN_WIN_ID;
+ GUI_LCD_DEV_INFO *dev_info_ptr = MMITHEME_GetDefaultLcdDev();
+ GUI_RECT_T full_rect = MMITHEME_GetFullScreenRect();
+ GUI_FONT_ALL_T font_all = {SONG_FONT_24, MMI_WHITE_COLOR};
+ GUI_BG_T ctrl_bg = {0};
+ GUI_RECT_T ctrl_rect = {0};
+ MMI_STRING_T display_text = {0};
+ char text_ptr[64] = {0};
+ wchar text_dis[64] = {0};
+ uint16 image_width = 0;
+ uint16 image_height = 0;
+ GUI_POINT_T display_point = {0};
+ MMI_IMAGE_ID_T image_id = IMAGE_NULL;
+
- GUIRICHTEXT_AddItem(ctrl_id, &item_data, &index);
- }
- else
- {
- //SCI_TRACE_LOW:"AppendIMEIDetail Read MN_DUAL_SYS_%d MNNV_GetIMEISVNEx Error!"
- SCI_TRACE_ID(TRACE_TOOL_CONVERT,MMIPHONE_WINTAB_3115_112_2_18_2_45_34_239,(uint8*)"d", i + 1);
- }
- }
-
- //IMEISV:
- if (MNNV_GetIMEISVNEx(MN_DUAL_SYS_1, &imeisvn))
- {
- if (imeisvn.svn_flag)
- {
- item_data.text_frame_type = GUIRICHTEXT_FRAME_NONE;
+ MMIDEFAULT_AllowTurnOffBackLight(TRUE);
+
+ // background
+ GUI_FillRect(dev_info_ptr, full_rect, MMI_BLACK_COLOR);
- MMI_GetLabelTextByLang(TXT_IMEISVN_DISPLAY, &string);
+ // label 0
+ ctrl_rect.left = 0;
+ ctrl_rect.right = MMI_MAINSCREEN_WIDTH;
+ ctrl_rect.top = 35;
+ ctrl_rect.bottom = ctrl_rect.top + 35;
+ GUILABEL_SetRect( MMI_AIGC_LABEL_0_CTRL_ID, &ctrl_rect, FALSE);
+ ctrl_bg.bg_type = GUI_BG_NONE;
+ //ctrl_bg.img_id = ;
+ GUILABEL_SetBg( MMI_AIGC_LABEL_0_CTRL_ID, &ctrl_bg);
+ GUILABEL_SetFont( MMI_AIGC_LABEL_0_CTRL_ID, font_all.font, font_all.color);
+ MMI_GetLabelTextByLang(TXT_AIGC_ASSITANT, &display_text);
+ GUILABEL_SetText( MMI_AIGC_LABEL_0_CTRL_ID, &display_text, FALSE);
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_0_CTRL_ID, GUICTRL_STATE_INVISIBLE, FALSE);
+
+ // label 1
+ image_id = IMAGE_AIGC_PROMPT;
+ GUIRES_GetImgWidthHeight(&image_width, &image_height, image_id, win_id);
+ ctrl_rect.left = (MMI_MAINSCREEN_WIDTH - image_width) / 2;
+ ctrl_rect.right = ctrl_rect.left + image_width;
+ ctrl_rect.top = 100;
+ ctrl_rect.bottom = ctrl_rect.top + image_height;
+ GUILABEL_SetRect( MMI_AIGC_LABEL_1_CTRL_ID, &ctrl_rect, FALSE);
+ ctrl_bg.bg_type = GUI_BG_IMG;
+ ctrl_bg.img_id = image_id;
+ GUILABEL_SetBg(MMI_AIGC_LABEL_1_CTRL_ID, &ctrl_bg);
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_1_CTRL_ID, GUICTRL_STATE_INVISIBLE, FALSE);
- SCI_MEMSET(item_text, 0, sizeof(item_text));
- item_data.text_data.buf.len = MMIAPICOM_CopyStr2Buf(item_text, &string, GUIRICHTEXT_TEXT_MAX_LEN);
- item_data.text_data.buf.str_ptr = item_text;
+ // label 2
+ ctrl_rect.left = 0;
+ ctrl_rect.right = MMI_MAINSCREEN_WIDTH;
+ ctrl_rect.top = MMI_MAINSCREEN_HEIGHT / 2;
+ ctrl_rect.bottom = ctrl_rect.top + 70;
+ GUILABEL_SetRect( MMI_AIGC_LABEL_2_CTRL_ID, &ctrl_rect, FALSE);
+ ctrl_bg.bg_type = GUI_BG_NONE;
+ //ctrl_bg.img_id = ;
+ GUILABEL_SetBg( MMI_AIGC_LABEL_2_CTRL_ID, &ctrl_bg);
+ GUILABEL_SetFont( MMI_AIGC_LABEL_2_CTRL_ID, font_all.font, font_all.color);
+ MMI_GetLabelTextByLang(TXT_AIGC_OPEN_FAIL, &display_text);
+ GUILABEL_SetText( MMI_AIGC_LABEL_2_CTRL_ID, &display_text, FALSE);
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_2_CTRL_ID, GUICTRL_STATE_INVISIBLE, FALSE);
- GUIRICHTEXT_AddItem(ctrl_id, &item_data, &index);
+ // label 3
+ image_id = IMAGE_AIGC_RECORD_BUTTON_PRESSED;
+ GUIRES_GetImgWidthHeight(&image_width, &image_height, image_id, win_id);
+ ctrl_rect.left = (MMI_MAINSCREEN_WIDTH - image_width) / 2;
+ ctrl_rect.right = ctrl_rect.left + image_width;
+ ctrl_rect.top = 250;
+ ctrl_rect.bottom = ctrl_rect.top + image_height;
+ GUILABEL_SetRect( MMI_AIGC_LABEL_3_CTRL_ID, &ctrl_rect, FALSE);
+ ctrl_bg.bg_type = GUI_BG_IMG;
+ ctrl_bg.img_id = image_id;
+ GUILABEL_SetBg( MMI_AIGC_LABEL_3_CTRL_ID, &ctrl_bg);
+ GUILABEL_SetFont( MMI_AIGC_LABEL_3_CTRL_ID, font_all.font, font_all.color);
+ MMI_GetLabelTextByLang(TXT_COMMON_OK, &display_text);
+ GUILABEL_SetText( MMI_AIGC_LABEL_3_CTRL_ID, &display_text, FALSE);
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_3_CTRL_ID, GUICTRL_STATE_INVISIBLE, FALSE);
- item_data.text_frame_type = GUIRICHTEXT_FRAME_NONE;
+ // label 4
+ GUIAPICTRL_SetState(MMI_AIGC_LABEL_4_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
+
+ // anim
+ GUIAPICTRL_SetState(MMI_AIGC_ANIM_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
- sprintf((char *)svn_str, "%d", imeisvn.svn);
-
- svn_len = (uint16)strlen((char *)svn_str);
+ // text 1
+ GUIAPICTRL_SetState(MMI_AIGC_TEXT_0_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
- MMI_STRNTOWSTR( svn_wstr,
- (MN_MAX_IMEI_LENGTH<<1),
- (uint8 *)svn_str,
- svn_len,
- svn_len );
+ // text 2
+ GUIAPICTRL_SetState(MMI_AIGC_TEXT_1_CTRL_ID, GUICTRL_STATE_INVISIBLE, TRUE);
+}
- item_data.text_data.buf.str_ptr = (wchar *)svn_wstr;
- item_data.text_data.buf.len = svn_len;
+LOCAL void mmi_aigc_update_to_list_win(void)
+{
+ s_aigc_ui_state = MMI_AIGC_UI_STATE_LIST;
+ if(MMK_IsFocusWin(MMI_AIGC_MAIN_WIN_ID))
+ {
+ MMK_SendMsg(MMI_AIGC_MAIN_WIN_ID, MSG_FULL_PAINT, PNULL);
+ }
+}
- GUIRICHTEXT_AddItem(ctrl_id, &item_data, &index);
- }
- else
- {
- //SCI_TRACE_LOW:"AppendIMEIDetail SVN Not Exist!"
- SCI_TRACE_ID(TRACE_TOOL_CONVERT,MMIPHONE_WINTAB_3153_112_2_18_2_45_35_240,(uint8*)"");
- }
- }
- else
- {
- //SCI_TRACE_LOW:"AppendIMEIDetail Read MN_DUAL_SYS_1MNNV_GetIMEISVNEx Error!"
- SCI_TRACE_ID(TRACE_TOOL_CONVERT,MMIPHONE_WINTAB_3158_112_2_18_2_45_35_241,(uint8*)"");
- }
+LOCAL void mmi_aigc_update_to_thinking_win(void)
+{
+ s_aigc_ui_state = MMI_AIGC_UI_STATE_THINKING;
+ if(MMK_IsFocusWin(MMI_AIGC_MAIN_WIN_ID))
+ {
+ MMK_SendMsg(MMI_AIGC_MAIN_WIN_ID, MSG_FULL_PAINT, PNULL);
+ }
}
+LOCAL void mmi_aigc_update_to_listening_win(void)
+{
+ s_aigc_ui_state = MMI_AIGC_UI_STATE_LISTENING;
+ if(MMK_IsFocusWin(MMI_AIGC_MAIN_WIN_ID))
+ {
+ MMK_SendMsg(MMI_AIGC_MAIN_WIN_ID, MSG_FULL_PAINT, PNULL);
+ }
+}
-/*****************************************************************************/
-// Description : handle udisk exception
-// Global resource dependence :
-// Author: Jassmine
-// Note:
-/*****************************************************************************/
-PUBLIC void MMIAPIPHONE_HandleUdiskException(
- BOOLEAN is_assert
- )
+LOCAL void mmi_aigc_update_to_default_win(void)
{
-#ifdef MMI_UDISK_MEM_ENABLE
- uint16 str_rect_height = 0;
- GUI_RECT_T rect = MMITHEME_GetFullScreenRect();
- GUI_RECT_T str_rect = MMITHEME_GetFullScreenRect();
- MMI_STRING_T prompt_str = {0};
- GUISTR_STYLE_T str_style = {0};
- GUISTR_STATE_T str_state = GUISTR_STATE_ALIGN|GUISTR_STATE_WORDBREAK|GUISTR_STATE_SINGLE_LINE;
- const GUI_LCD_DEV_INFO *lcd_dev_ptr = MMITHEME_GetDefaultLcdDev();
-
- //judge need erase
-#ifdef WIN32
- if (0)
-#else
- if (Umem_GetExceptionState())
-#endif
- {
- MMIAPISET_UpdateLCDContrast(GUI_MAIN_LCD_ID, MMISET_CONTRAST_FIVE);
-
- if (is_assert)
- {
- //open lcd backlight
- MMIDEFAULT_InitDefault(FALSE);
- MMIDEFAULT_TurnOnLCDBackLight();
- }
-
- //MMIAPISET_InitLanguageSetting();
+ s_aigc_ui_state = MMI_AIGC_UI_STATE_NONE;
+ if(MMK_IsFocusWin(MMI_AIGC_MAIN_WIN_ID))
+ {
+ MMK_SendMsg(MMI_AIGC_MAIN_WIN_ID, MSG_FULL_PAINT, PNULL);
+ }
+}
- //fill color
- GUI_FillRect(lcd_dev_ptr,
- rect,
- MMI_BLACK_COLOR);
+LOCAL void mmi_aigc_main_win_open(void)
+{
+ if((FALSE == MMIAPIPHONE_IsSimAvailable(MN_DUAL_SYS_1))
+ #if defined MULTI_SIM_SYS_DUAL
+ && (FALSE == MMIAPIPHONE_IsSimAvailable(MN_DUAL_SYS_2))
+ #endif
+ )
+ {
+ s_aigc_ui_state = MMI_AIGC_UI_STATE_OPEN_FAIL;
+ }
+ else
+ {
+ s_aigc_ui_state = MMI_AIGC_UI_STATE_NONE;
+ }
+}
- //ge string rect height
- str_rect_height = (int16)((rect.bottom+1) / 3);
+LOCAL void mmi_aigc_main_win_display(void)
+{
+ switch(s_aigc_ui_state)
+ {
+ case MMI_AIGC_UI_STATE_NONE:
+ mmi_aigc_default_win_display();
+ break;
- //set string rect
- str_rect.bottom = (int16)(str_rect_height - 1);
-
- //set string style
- str_style.font = MMI_DEFAULT_TEXT_FONT;
- str_style.font_color = MMI_WHITE_COLOR;
- str_style.align = ALIGN_HVMIDDLE;
+ case MMI_AIGC_UI_STATE_OPEN_FAIL:
+ mmi_aigc_no_network_win_display();
+ break;
- //get string
- MMI_GetLabelTextByLang(TXT_STARTUP_ERASE_WAITING1,&prompt_str);
+ case MMI_AIGC_UI_STATE_LISTENING:
+ mmi_aigc_listening_win_display();
+ break;
- //display string
- GUISTR_DrawTextToLCDInRect(lcd_dev_ptr, &str_rect, &str_rect, &prompt_str, &str_style, str_state, GUISTR_TEXT_DIR_AUTO);
+ case MMI_AIGC_UI_STATE_LISTENING_MIDDLE:
+ mmi_aigc_listening_middle_win_display();
+ break;
+
+ case MMI_AIGC_UI_STATE_THINKING:
+ mmi_aigc_thinking_win_display();
+ break;
+
+ case MMI_AIGC_UI_STATE_CONNECT_TIMEOUT:
+ mmi_aigc_timeout_win_display();
+ break;
- //set string rect
- str_rect.top = (int16)(str_rect.bottom + 1);
- str_rect.bottom = (int16)(str_rect.top + str_rect_height - 1);
+ case MMI_AIGC_UI_STATE_LIST:
+ mmi_aigc_list_win_display();
+ break;
- //get string
- MMI_GetLabelTextByLang(TXT_STARTUP_ERASE_WAITING2,&prompt_str);
+ default:
+ break;
+ }
+}
- //display string
- GUISTR_DrawTextToLCDInRect(lcd_dev_ptr, &str_rect, &str_rect, &prompt_str, &str_style, str_state, GUISTR_TEXT_DIR_AUTO);
+LOCAL void mmi_aigc_main_win_key_menu_process(void)
+{
+ switch(s_aigc_ui_state)
+ {
+ case MMI_AIGC_UI_STATE_NONE:
+ case MMI_AIGC_UI_STATE_LIST:
+ // wb
+ mmi_aigc_tts_websocket_close();
+ mmi_aigc_trans_websocket_open();
+
+ mmi_aigc_all_data_clean();
+ mmi_aigc_audio_record_start();
+ mmi_aigc_update_to_listening_win();
+ break;
- //set string rect
- str_rect.top = (int16)(str_rect.bottom + 1);
- str_rect.bottom = MMI_MAINSCREEN_BOTTOM_MAX_PIXEL;
+ case MMI_AIGC_UI_STATE_OPEN_FAIL:
+ //if(MMK_IsOpenWin(MMI_AIGC_MAIN_WIN_ID))
+ if(MMK_IsFocusWin(MMI_AIGC_MAIN_WIN_ID))
+ {
+ MMK_SendMsg(MMI_AIGC_MAIN_WIN_ID, MSG_CLOSE_WINDOW, PNULL);
+ //MMK_PostMsg
+ }
+ break;
- //get string
- MMI_GetLabelTextByLang(TXT_COMMON_WAITING,&prompt_str);
+ case MMI_AIGC_UI_STATE_LISTENING:
+ mmi_aigc_listening_stop(FALSE);
+ mmi_aigc_send_trans_start_msg(PNULL, 0);
+ mmi_aigc_update_to_thinking_win();
+ break;
- //display string
- GUISTR_DrawTextToLCDInRect(lcd_dev_ptr, &str_rect, &str_rect, &prompt_str, &str_style, str_state, GUISTR_TEXT_DIR_AUTO);
+ case MMI_AIGC_UI_STATE_THINKING:
+ case MMI_AIGC_UI_STATE_CONNECT_TIMEOUT:
+ mmi_aigc_update_to_default_win();
+ break;
- MMITHEME_UpdateRect();
-
- //do erase ,after display waiting window
-#ifndef WIN32
- Umem_ExceptionHandler();
-#endif
- }
-#endif
+ default:
+ break;
+ }
}
-/*****************************************************************************/
-// Description : PIN/PUK input window softkey
-// Global resource dependence :
-// Author: Jassmine
-// Note:
-/*****************************************************************************/
-LOCAL BOOLEAN PinPukInputWinSoftkey(
- wchar *str_ptr, //in
- uint16 str_len, //in
- MMI_TEXT_ID_T *text_id_ptr//in/out:
- )
+LOCAL void mmi_aigc_main_win_key_ok_process(void)
{
- BOOLEAN result = FALSE;
- BOOLEAN is_input_emergency_call = FALSE;
- uint16 emergency_call_len = 0;
- MMI_STRING_T str_info = {0};
-
- //set string info
- str_info.wstr_ptr = str_ptr;
- str_info.wstr_len = str_len;
-
- is_input_emergency_call = MMIAPICC_IsInputEmergencyCall(&str_info, &emergency_call_len, MMIAPIPHONE_GetCurResponsePinSimID());
- if ((is_input_emergency_call) &&
- (str_len == emergency_call_len))
- {
- *text_id_ptr = TXT_SOS;
- result = TRUE;
- }
- else if (str_len >= MMI_PIN_MIN_LENGTH)
- {
- *text_id_ptr = TXT_COMMON_OK;
- result = TRUE;
- }
+ switch(s_aigc_ui_state)
+ {
+ case MMI_AIGC_UI_STATE_LIST:
+ s_aigc_ui_state = MMI_AIGC_UI_STATE_NONE;
+ if(MMK_IsFocusWin(MMI_AIGC_MAIN_WIN_ID))
+ {
+ MMK_SendMsg(MMI_AIGC_MAIN_WIN_ID, MSG_CLOSE_WINDOW, PNULL);
+ }
+ break;
- return (result);
+ default:
+ break;
+ }
}
-/*****************************************************************************/
-// Description : Make Emergency Call
-// Global resource dependence :
-// Author: Jassmine
-// Note:
-/*****************************************************************************/
-LOCAL void MakeEmergencyCall(MMI_STRING_T *str_info)
+LOCAL void mmi_aigc_main_win_close(void)
{
- uint8 *emergency_call_ptr = PNULL;
-
- if (PNULL == str_info || PNULL == str_info->wstr_ptr || 0 == str_info->wstr_len)
- {
- return;
- }
+ mmi_aigc_trans_websocket_close();
+ mmi_aigc_chat_websocket_close();
+ mmi_aigc_tts_websocket_close();
- emergency_call_ptr = (uint8 *)SCI_ALLOCAZ(str_info->wstr_len + 1);
- if (PNULL == emergency_call_ptr)
- {
- return;
- }
+ mmi_aigc_audio_play_stop();
+ mmi_aigc_audio_record_stop();
+
+ mmi_aigc_all_data_clean();
- //SCI_MEMSET(emergency_call_ptr, 0x00, (str_info->wstr_len + 1));
-
- MMI_WSTRNTOSTR(emergency_call_ptr,
- str_info->wstr_len,
- str_info->wstr_ptr,
- str_info->wstr_len,
- str_info->wstr_len);
-
- MMIAPICC_MakeCall(
- MMIAPIPHONE_GetCurResponsePinSimID(),
- emergency_call_ptr,
- (uint8)str_info->wstr_len,
- PNULL,
- PNULL,
- MMIAPICC_GetCallSimType(MMIAPIPHONE_GetCurResponsePinSimID()),
- CC_CALL_NORMAL_CALL,
- PNULL
- );
-
- SCI_FREE(emergency_call_ptr);
- emergency_call_ptr = PNULL;
-}
+ s_aigc_ui_state = MMI_AIGC_UI_STATE_NONE;
-/*****************************************************************************/
-// Description : set list rect
-// Global resource dependence :
-// Author: Sam.hua
-// Note:
-/*****************************************************************************/
-LOCAL void PUBLIST_SetListRect(
- MMIPUB_INFO_T *win_info_ptr
- )
-{
- GUILIST_SetRect( win_info_ptr->ctrl_handle, &win_info_ptr->client_rect );
+ MMIDEFAULT_AllowTurnOffBackLight(TRUE);
}
-
-/*****************************************************************************/
-// Description : handle message of sim list pub window
-// Global resource dependence : none
-// Author: Sam.Hua
-// Note:
-/*****************************************************************************/
-LOCAL MMI_RESULT_E HandleSIMSelectCommonFuncWinMsg(
- MMI_WIN_ID_T win_id,
- MMI_MESSAGE_ID_E msg_id,
- DPARAM param
- )
+LOCAL MMI_RESULT_E mmi_aigc_main_win_handle(MMI_WIN_ID_T win_id, MMI_MESSAGE_ID_E msg_id, DPARAM param)
{
- MMI_RESULT_E retcode = MMI_RESULT_FALSE;
- MMI_CTRL_ID_T ctrl_id = 0;
- MMIPUB_INFO_T *win_info_ptr = MMIPUB_GetWinAddDataPtr(win_id);
- MMIPHONE_SELECT_SIM_DATA_T* selectSim_data_ptr;
- MN_DUAL_SYS_E dual_sys = MN_DUAL_SYS_1;
- uint16 cur_index = 0;
- uint16 top_index = 0;
-
- //coverity 12954
- if ( PNULL == win_info_ptr )
- {
- //Error //but how to back??
- return MMI_RESULT_FALSE;
- }
-
- if ( PNULL==win_info_ptr->extra_data_ptr )
- {
- //Error //but how to back??
- return MMI_RESULT_FALSE;
- }
- ctrl_id = win_info_ptr->ctrl_handle;
-#ifdef MMIPUBWIN_PDASTYLE_SUPPORT
- //תÒåÏûÏ¢
- if ( MMI_RESULT_TRUE == ( retcode = MMIPUBHandleButtonMsg( win_info_ptr, msg_id, param ) ) )
- {
- return retcode;
- }
-#endif
- if ( !MMK_IsOpenWin( win_id ) )
- {
- return retcode;
- }
-
- selectSim_data_ptr =(MMIPHONE_SELECT_SIM_DATA_T*)win_info_ptr->extra_data_ptr;
+ MMI_RESULT_E result = MMI_RESULT_TRUE;
switch (msg_id)
{
- case MSG_OPEN_WINDOW:
- MMK_SetAtvCtrl(win_id, ctrl_id);
- MMIAPIPHONE_SetNeedUpdateNetworkStatusWin(win_id);//
- break;
-
- case MSG_FULL_PAINT:
- cur_index = GUILIST_GetCurItemIndex(ctrl_id);
- top_index = GUILIST_GetTopItemIndex(ctrl_id);
-
- GUILIST_SetMaxItem(ctrl_id, MMI_DUAL_SYS_MAX + 1, FALSE );//max item
- if (MMIPHONE_SELECTION_SIM_ONLY & selectSim_data_ptr->select_type)/*lint !e655*/
- {
- GUIWIN_SetTitleTextId(win_id, TXT_SIM_SEL , FALSE);
- MMIAPISET_AppendMultiSimName(ctrl_id, TXT_COMMON_OK, MMI_DUAL_SYS_MAX, (MMISET_APPEND_SIM_TYPE_E)selectSim_data_ptr->append_type);
- }
-#if defined(WIFI_SUPPORT)
- if (MMIPHONE_SELECTION_WLAN_ONLY & selectSim_data_ptr->select_type)/*lint !e655*/
- {
- GUIWIN_SetTitleTextId(win_id, TXT_NETWORK_SELECT , FALSE);
- //MMIAPISET_AppendMultiSimName(ctrl_id, STXT_OK, MMI_DUAL_SYS_MAX, (MMISET_APPEND_SIM_TYPE_E)selectSim_data_ptr->append_type);
- SelectSIMList_AppendWifiItem(ctrl_id);
- }
-#endif
-
-#if defined(BT_DIALER_SUPPORT)
-
- if (!(MMIPHONE_SELECTION_SIM_NO_BT & selectSim_data_ptr->select_type))
- {
- MMIAPISET_AppendBtItem(ctrl_id);
-
- if(MMIAPIBT_IsConnectDevice())
- {
- GUILIST_SetItemGray(ctrl_id, GUILIST_GetTotalItemNum(ctrl_id) - 1, FALSE);
- GUILIST_SetItemInvalid(ctrl_id, GUILIST_GetTotalItemNum(ctrl_id) - 1, FALSE);
- }
- else
- {
- GUILIST_SetItemGray(ctrl_id, GUILIST_GetTotalItemNum(ctrl_id) - 1, TRUE);
- GUILIST_SetItemInvalid(ctrl_id, GUILIST_GetTotalItemNum(ctrl_id) - 1, TRUE);
- }
- }
-#endif
-
-#ifdef MMIPUBWIN_PDASTYLE_SUPPORT
- if ( !win_info_ptr->is_layout )
- {
- win_info_ptr->line_num = GUILIST_GetTotalItemNum( win_info_ptr->ctrl_handle );
+ case MSG_OPEN_WINDOW:
+ mmi_aigc_main_win_open();
+ break;
- MMIPUB_ReleaseLayer( win_info_ptr );
+ case MSG_FULL_PAINT:
+ mmi_aigc_main_win_display();
+ break;
- MMIPUBLayout( win_info_ptr );
- PUBLIST_SetListRect( win_info_ptr );
- MMIPUBSetButton( win_info_ptr, FALSE );
- }
+ case MSG_APP_MENU:
+ case MSG_APP_WEB:
+ case MSG_CTL_MIDSK:
+ mmi_aigc_main_win_key_menu_process();
+ break;
- MMIPUBDisplayWin( win_info_ptr );
-#endif
+ case MSG_APP_OK:
+ case MSG_CTL_OK:
+ mmi_aigc_main_win_key_ok_process();
+ break;
- GUILIST_SetCurItemIndex(ctrl_id, cur_index);
- GUILIST_SetTopItemIndex(ctrl_id, cur_index);
- break;
-
- case MSG_GET_FOCUS:
- MMIAPIPHONE_SetNeedUpdateNetworkStatusWin(win_id);
- break;
-
-#ifdef MMIPUBWIN_PDASTYLE_SUPPORT
- case MSG_LCD_SWITCH:
- MMIPUB_HandleLcdSwitch( win_info_ptr );
- break;
- case MSG_NOTIFY_UPDATE:
- MMIPUBClearClientRectBg( win_info_ptr, param );
- break;
-#endif
+ case MSG_APP_CANCEL:
+ case MSG_CTL_CANCEL:
+ break;
-#ifdef TOUCH_PANEL_SUPPORT //IGNORE9527
- case MSG_CTL_PENOK:
-#endif //TOUCH_PANEL_SUPPORT //IGNORE9527
- case MSG_CTL_OK:
- case MSG_APP_OK:
- case MSG_APP_WEB:
- case MSG_CTL_MIDSK:
- {
- uint16 cur_selection = 0;
- uint32 item_data = 0;
-
- cur_selection = GUILIST_GetCurItemIndex(ctrl_id);
- if(GUILIST_IsCurrItemInvalid(ctrl_id))
- {
- break;
- }
+ case MSG_APP_RED:
+ MMK_CloseWin(win_id);
+ break;
-#if defined(BT_DIALER_SUPPORT) && defined(BT_MAP_SUPPORT)
-
- if(MMIAPISMS_GetCurOperIsPush())
- {
- if((cur_selection == GUILIST_GetTotalItemNum(ctrl_id) - 1)
- && !(MMK_IsOpenWin(MMISET_SET_SECURITY_WIN_ID)))//BUG683374
- {
- if(MMIAPIBT_IsConnectDevice())
- {
- if(MMK_IsOpenWin(MMISMS_EDIT_SMS_WIN_ID))
- {
- MMISMS_BtSendItem(FALSE);
- }
- else
- {
- if(!MMK_IsOpenWin(MMISET_COM_SELECT_SIM_WIN_ID))
- {
- MMISMS_BtResendCallback(MMI_DUAL_SYS_MAX);
- }
- }
- MMK_CloseWin(win_id);
- break;
- }
- }
- }
-#endif
+ case MSG_CLOSE_WINDOW:
+ mmi_aigc_main_win_close();
+ break;
- GUILIST_GetItemData(ctrl_id, cur_selection, &item_data);
-#if defined(WIFI_SUPPORT)
- if( item_data <MMI_DUAL_SYS_MAX+1)
-#else
- if( item_data <MMI_DUAL_SYS_MAX)
-#endif
- {
- dual_sys = item_data ;
- }
- else //Error,call user_func and close win,
- {
- //SCI_TRACE_LOW:"SelectSIM COM WIN,dual_sys[%d]>=MMI_DUAL_SYS_MAX/MMI_DUAL_SYS_MAX+1 in wifi "
- SCI_TRACE_ID(TRACE_TOOL_CONVERT,MMIPHONE_WINTAB_5307_112_2_18_2_45_39_257,(uint8*)"d",item_data);
- retcode = selectSim_data_ptr->callback_func(MMI_DUAL_SYS_MAX, FALSE,selectSim_data_ptr->extra_data);
- MMK_CloseWin(win_id);
- break;
- }
-
- //call use func to do it again
- retcode = selectSim_data_ptr->callback_func( dual_sys, TRUE,selectSim_data_ptr->extra_data);
- if (retcode) //if callback return ture, means should close the window
- {
- MMK_CloseWin(win_id);
- }
- }
- break;
-
- case MSG_CTL_CANCEL:
- case MSG_APP_CANCEL:
- retcode = selectSim_data_ptr->callback_func(MMI_DUAL_SYS_MAX, FALSE,PNULL);
- MMK_CloseWin(win_id);
- break;
-
- case MSG_CLOSE_WINDOW:
- //Free extra_data_ptr
-/* if (PNULL != selectSim_data_ptr->extra_data) //help caller to free it ??
- {
- SCI_FREE(selectSim_data_ptr->extra_data);
- }
-*/
- if (PNULL !=win_info_ptr->extra_data_ptr)
- {
- SCI_FREE(win_info_ptr->extra_data_ptr);
- }
- MMIPUB_DestroyWinData( win_info_ptr );
- break;
-
- default:
- retcode = MMI_RESULT_FALSE;
- break;
- }
-
- return retcode;
-}//End of HandleSIMSelectCommonWinMsg
+ default:
+ result = MMI_RESULT_FALSE;
+ break;
+ }
+
+ return (result);
+}
-/*****************************************************************************/
-// Description : creat and open Select SIM window by parameters
-// Global resource dependence :
-// Author: sam.hua
-// Note:
-/*****************************************************************************/
-PUBLIC MMI_RESULT_E MMIAPIPHONE_OpenSelectSimWin(MMIPHONE_SELECT_SIM_DATA_T* selectsim_input_ptr)
+WINDOW_TABLE(MMI_AIGC_MAIN_WIN_TAB) =
{
- BOOLEAN result = FALSE;
- MMI_WIN_ID_T win_id = MMIPUB_LIST_WIN_ID;
- MMIPUB_INFO_T *win_info_ptr = PNULL;
- MMIAPIPHONE_SELECTSIM_FUNC handle_function = PNULL;//(PROCESSMSG_FUNC)HandleDefaultWinMsg;
- MMI_WINDOW_CREATE_T win_create = {0};
- MMI_HANDLE_T win_handle = 0;
- MMIPHONE_SELECT_SIM_DATA_T* temp_data_ptr=PNULL;
-
- //Return FALSE if input win_id and handler id is PNULL
- if (selectsim_input_ptr == PNULL)
- {
- //SCI_TRACE_LOW:"MMIAPIPHONE_OpenSelectSimWin:select sim_input_ptr couldn't be PNULL !"
- SCI_TRACE_ID(TRACE_TOOL_CONVERT,MMIPHONE_WINTAB_5366_112_2_18_2_45_39_258,(uint8*)"");
- return MMI_RESULT_FALSE;
- }
-
-
- if( (PNULL == selectsim_input_ptr->win_id_ptr) ||
- (PNULL == selectsim_input_ptr->callback_func)||
- selectsim_input_ptr->publist_id==NULL)
- {
- //SCI_TRACE_LOW:"MMIAPIPHONE_OpenSelectSimWin:win_id_ptr or handle_func couldn't be PNULL !"
- SCI_TRACE_ID(TRACE_TOOL_CONVERT,MMIPHONE_WINTAB_5375_112_2_18_2_45_39_259,(uint8*)"");
- return MMI_RESULT_FALSE;
- }
-
- win_id = *(selectsim_input_ptr->win_id_ptr);
-
- //judge window is already open
- if ( !MMK_IsOpenWin( MMK_GetWinHandle(MMK_GetFirstAppletHandle(), win_id ) ) )
- {
- //set call back function
- handle_function = selectsim_input_ptr->callback_func;
-
- //MMIPUB_InitPubListWin
-
- //set window parameter
- win_info_ptr = SCI_ALLOC_APPZ(sizeof(MMIPUB_INFO_T));
- //SCI_MEMSET(win_info_ptr,0,sizeof(MMIPUB_INFO_T));
-
- temp_data_ptr = SCI_ALLOC_APPZ(sizeof(MMIPHONE_SELECT_SIM_DATA_T));
- //Set it
- SCI_MEMCPY(temp_data_ptr,selectsim_input_ptr,sizeof(MMIPHONE_SELECT_SIM_DATA_T));
-
- win_info_ptr->extra_data_ptr =temp_data_ptr;
- //set user data
- win_info_ptr->user_data = PNULL;
- //set prompt image id
-#ifdef DPHONE_SUPPORT
- win_info_ptr->prompt_image_id = IMAGE_NULL;
-#else
-#ifdef MMIPUBWIN_PDASTYLE_SUPPORT
- win_info_ptr->prompt_image_id = IMAGE_PUBWIN_DOWNARROW;
-#else
- win_info_ptr->prompt_image_id = IMAGE_NULL;
-#endif
-#endif//syy modify 2010.11.30 -end
-
- //set softkey style
- win_info_ptr->softkey_style = MMIPUB_SOFTKEY_CUSTOMER;
- win_info_ptr->win_id = win_id;
- //win_info_ptr->type = MMIPUBWIN_LIST;
- MMIPUB_SetPubListWinType(win_info_ptr);
- //win_info_ptr->user_func = handle_function;
- //get pubwin theme
- MMITHEME_GetPubTheme( win_info_ptr->type, &win_info_ptr->pubwin_theme );
-
- win_create.applet_handle = MMK_GetFirstAppletHandle();
- win_create.win_id = win_id;
- win_create.func = HandleSIMSelectCommonFuncWinMsg;
- win_create.win_priority = WIN_ONE_LEVEL;
- win_create.add_data_ex_ptr = win_info_ptr;
- win_create.add_data_ptr= selectsim_input_ptr->user_data; //user_call_data
-
- // No use if MMI_PDA_SUPPORT == FALSE
- win_create.window_style = WS_HAS_TRANSPARENT|WS_HAS_PROMPT_WIN;
- // set style because MMIPUB_GetWinAddDataPtr need check it.
- win_create.window_move_style = MOVE_NOT_FULL_SCREEN_WINDOW;
-
- if( 0 != ( win_handle= win_info_ptr->win_handle = MMK_CreateWindow( &win_create ) ) )
- {
- result = TRUE;
- }
- if (result)
- {
- GUILIST_INIT_DATA_T init_data = {0};
- MMI_CONTROL_CREATE_T create = {0};
- MMI_CTRL_ID_T ctrl_id = selectsim_input_ptr->publist_id;
- GUI_BOTH_RECT_T rect = {0};
-
-#ifdef MMIPUBWIN_PDASTYLE_SUPPORT
- MMIPUBCreatSoftkeyCtrl( win_handle );
- #ifdef MMI_PDA_SUPPORT
- MMIPUB_SetWinSoftkey(win_id,TXT_NULL,STXT_RETURN,FALSE);
- #else
- MMIPUB_SetWinSoftkey(win_id,TXT_COMMON_OK,STXT_RETURN,FALSE);
- #endif
-
-#else
- GUIWIN_CreateSoftkeyDyn(win_handle,TXT_COMMON_OK,TXT_NULL,STXT_RETURN);
- GUIWIN_CreateTitleDyna(win_handle, TXT_SIM_SEL);
-#endif
- GUIWIN_SetTitleTextAlign(win_handle,ALIGN_LVMIDDLE);
- //Create List Ctrl
- rect = MMITHEME_GetWinClientBothRect(win_handle);
- init_data.type = GUILIST_TEXTLIST_E;
- init_data.both_rect = rect;
- create.ctrl_id = ctrl_id;
- create.guid =SPRD_GUI_LIST_ID;
- create.parent_win_handle = win_info_ptr->win_handle;
- create.init_data_ptr = &init_data;
-
- MMK_CreateControl( &create );
-
- //Save publist ctrl_id to win_info
- win_info_ptr->ctrl_handle = MMK_GetCtrlHandleByWin( win_info_ptr->win_handle, ctrl_id );
-#ifdef MMIPUBWIN_PDASTYLE_SUPPORT
- if( 0 != win_info_ptr->ctrl_handle ) //Set list properties
- {
- GUILIST_SetTextFont(
- win_info_ptr->ctrl_handle,
- win_info_ptr->pubwin_theme.normal_font,
- win_info_ptr->pubwin_theme.layout.button_font.color);
-
- GUILIST_SetBgColor(
- win_info_ptr->ctrl_handle,
- win_info_ptr->pubwin_theme.layout.ctrl_bg_color);
- }
-#endif
- }
+ WIN_FUNC((uint32)mmi_aigc_main_win_handle),
+ WIN_ID(MMI_AIGC_MAIN_WIN_ID),
+ //WIN_STATUSBAR,
+ WIN_HIDE_STATUS,
+ //WIN_TITLE(TXT_NULL),
+ //WIN_SOFTKEY(TXT_NULL, TXT_NULL, TXT_NULL),
+ //WIN_STYLE(WS_DISABLE_COMMON_BG | WS_DISABLE_RETURN_WIN),
+ CREATE_LABEL_CTRL(GUILABEL_ALIGN_MIDDLE, MMI_AIGC_LABEL_0_CTRL_ID),
+ CREATE_LABEL_CTRL(GUILABEL_ALIGN_MIDDLE, MMI_AIGC_LABEL_1_CTRL_ID),
+ CREATE_LABEL_CTRL(GUILABEL_ALIGN_MIDDLE, MMI_AIGC_LABEL_2_CTRL_ID),
+ CREATE_LABEL_CTRL(GUILABEL_ALIGN_MIDDLE, MMI_AIGC_LABEL_3_CTRL_ID),
+ CREATE_LABEL_CTRL(GUILABEL_ALIGN_MIDDLE, MMI_AIGC_LABEL_4_CTRL_ID),
+ CREATE_ANIM_CTRL(MMI_AIGC_ANIM_CTRL_ID, MMI_AIGC_MAIN_WIN_ID),
+ CREATE_TEXT_CTRL(MMI_AIGC_TEXT_0_CTRL_ID),
+ CREATE_TEXT_CTRL(MMI_AIGC_TEXT_1_CTRL_ID),
+ //CREATE_BUTTON_CTRL(IMAGE_AIGC_RECORD_BUTTON_DEFAULT, MMI_AIGC_BUTTON_0_CTRL_ID),
+ END_WIN
+};
- if (!result)
- {
- if (!MMK_IsOpenWin( win_handle )) //Create fail,free memory
- {
- if (PNULL !=win_info_ptr->extra_data_ptr)
- SCI_FREE(win_info_ptr->extra_data_ptr);
- SCI_FREE(win_info_ptr);
- }
- }
- }
- else
- {
- //SCI_TRACE_LOW:"MMISET_OpenSelectSimWin:win_id %d is already open!"
- SCI_TRACE_ID(TRACE_TOOL_CONVERT,MMIPHONE_WINTAB_5488_112_2_18_2_45_39_260,(uint8*)"d", win_id);
- }
- return MMI_RESULT_TRUE;
-}//End of MMICOM_OpenSelectSimWin
-#endif
+PUBLIC void MMIAPIAIGC_EnterWin(void)
+{
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ if(MMK_IsOpenWin(MMI_AIGC_MAIN_WIN_ID))
+ {
+ MMK_CloseWin(MMI_AIGC_MAIN_WIN_ID);
+ }
+
+ MMK_CreateWin((uint32 *) MMI_AIGC_MAIN_WIN_TAB, PNULL);
+}
#endif