void mmi_aigc_send_tts_text_action_pre(void)
{
+ uint32_t node_total = mmi_aigc_tts_audio_ll_node_num();
+
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: node_total=%d\n", __FUNCTION__, __LINE__, node_total);
+ //if(5 < node_total)
+ //{
+ // return;
+ //}
+
uint32_t data_len = 0;
char * data_ptr = mmi_aigc_chat_result_text_get(&data_len);
- AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: data_len=%d\n", __FUNCTION__, __LINE__, data_len);
- if(NULL != data_ptr && (0 != data_len) && (data_len > s_aigc_tts_text_sent_size))
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: data_len=%d,sent_len=%d\n", __FUNCTION__, __LINE__, data_len, s_aigc_tts_text_sent_size);
+ if((NULL != data_ptr) && (data_len > s_aigc_tts_text_sent_size))
{
- mmi_aigc_tts_audio_ll_new_node();
+ //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);
}
s_aigc_tts_text_sent_size = 0;
s_aigc_tts_audio_playing = false;
mmi_aigc_tts_audio_ll_clean();
+ mmi_aigc_tts_audio_ll_new_tail_node();
mmi_aigc_send_tts_text_action_pre();
}
void mmi_aigc_tts_audio_ll_init(void)
{
_lv_ll_init(&s_aigc_tts_audio_ll, sizeof(mmi_aigc_tts_audio_ll_t));
+ _lv_ll_clear(&s_aigc_tts_audio_ll);
}
void mmi_aigc_tts_audio_ll_clean(void)
_lv_ll_clear(&s_aigc_tts_audio_ll);
}
-mmi_aigc_tts_audio_ll_t * mmi_aigc_tts_audio_ll_new_node(void)
+uint32_t mmi_aigc_tts_audio_ll_node_num(void)
+{
+ uint32_t node_total = _lv_ll_get_len(&s_aigc_tts_audio_ll);
+
+ //AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: node_total=%d\n", __FUNCTION__, __LINE__, node_total);
+ return node_total;
+}
+
+mmi_aigc_tts_audio_ll_t * mmi_aigc_tts_audio_ll_new_tail_node(void)
{
AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
s_aigc_tts_audio_playing = false;
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: node=%#X,total=%d\n", __FUNCTION__, __LINE__, s_aigc_tts_audio_play_node, mmi_aigc_tts_audio_ll_node_num());
mmi_aigc_tts_audio_ll_t * node = _lv_ll_get_next((&s_aigc_tts_audio_ll), s_aigc_tts_audio_play_node);
_lv_ll_remove((&s_aigc_tts_audio_ll), s_aigc_tts_audio_play_node);
if(NULL != s_aigc_tts_audio_play_node->audio_data_ptr)
}
lv_mem_free(s_aigc_tts_audio_play_node);
s_aigc_tts_audio_play_node = NULL;
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: node=%#X,total=%d\n", __FUNCTION__, __LINE__, node, mmi_aigc_tts_audio_ll_node_num());
+
+ // get tts
+ //mmi_aigc_send_tts_text_action_pre();
if(MMI_AIGC_TTS_AUDIO_PRI == Hal_Audio_Manage_Start_Req(MMI_AIGC_TTS_AUDIO_PRI, mmi_aigc_tts_audio_ctrl_callback))
{
}
s_aigc_tts_audio_play_node = node;
s_aigc_tts_audio_playing = true;
-
- uint8_t volume = 0;
- #ifdef __MMI_USER_PROFILE_SUPPORT__
- volume = mmi_user_profile_current_mode_remind_volume_get();
- #else
- volume = query_current_volume();
- #endif
- volume = HAL_AUDIO_SPK_LEVEL_MAX;
Hal_Tone_Play_Onetime((uint32_t *)node->audio_data_ptr,
node->audio_data_size,
- volume,
+ HAL_AUDIO_SPK_LEVEL_MAX,
mmi_aigc_tts_audio_over_cb,
NULL);
}
AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
mmi_aigc_tts_audio_ll_t * node = _lv_ll_get_head(&s_aigc_tts_audio_ll);
- if(NULL == node || NULL == node->audio_data_ptr)
+ if(NULL == node)
{
- AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: tt audio ll empty\n", __FUNCTION__, __LINE__);
return false;
}
+ else
+ {
+ if(NULL == node->audio_data_ptr)
+ {
+ node = _lv_ll_get_next((&s_aigc_tts_audio_ll), node);
+ if(NULL == node || NULL == node->audio_data_ptr)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: no data\n", __FUNCTION__, __LINE__);
+#if 0
+{
+ uint32_t node_total = mmi_aigc_tts_audio_ll_node_num();
+ uint8_t i = 0;
+ mmi_aigc_tts_audio_ll_t * node = _lv_ll_get_head(&s_aigc_tts_audio_ll);
+
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: node_total=%d\n", __FUNCTION__, __LINE__, node_total);
+ for(i = 0; i < node_total; i++)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d,%#X,%#X\n", __FUNCTION__, __LINE__, i, node, node->audio_data_ptr);
+
+ node = _lv_ll_get_next((&s_aigc_tts_audio_ll), node);
+ }
+}
+#endif
+ return false;
+ }
+ }
+ }
s_aigc_tts_audio_play_node = node;
s_aigc_tts_audio_playing = true;
-
- uint8_t volume = 0;
- #ifdef __MMI_USER_PROFILE_SUPPORT__
- volume = mmi_user_profile_current_mode_remind_volume_get();
- #else
- volume = query_current_volume();
- #endif
- volume = HAL_AUDIO_SPK_LEVEL_MAX;
Hal_Tone_Play_Onetime((uint32_t *)node->audio_data_ptr,
node->audio_data_size,
- volume,
+ HAL_AUDIO_SPK_LEVEL_MAX,
mmi_aigc_tts_audio_over_cb,
NULL);
}
}
}
+void mmi_aigc_list_screen_prompt_clean_task_cb(lv_task_t * task)
+{
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ lv_aigc_ext_t * ext = (lv_aigc_ext_t *)mmi_aigc_actId_ext_get(ACT_ID_AIGC_MAIN);
+ if(NULL == ext)
+ return ;
+
+ lv_obj_set_hidden(ext->list_signal_weak_label, true);
+}
+
+void mmi_aigc_list_screen_prompt_task_cb(lv_task_t * task)
+{
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ lv_aigc_ext_t * ext = (lv_aigc_ext_t *)mmi_aigc_actId_ext_get(ACT_ID_AIGC_MAIN);
+ if(NULL == ext)
+ return ;
+
+ lv_obj_set_hidden(ext->list_signal_weak_label, false);
+
+ lv_task_t * task_p = lv_task_create(mmi_aigc_list_screen_prompt_clean_task_cb, 1500, LV_TASK_PRIO_HIGH, NULL);
+ lv_task_once(task_p);
+}
+
+void mmi_aigc_list_screen_signal_weak_prompt(void)
+{
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ if(MMI_AIGC_UI_STATE_LIST != s_aigc_ui_state)
+ {
+ AIGC_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ return;
+ }
+
+ lv_task_t * task_p = lv_task_create(mmi_aigc_list_screen_prompt_task_cb, 10, LV_TASK_PRIO_HIGH, NULL);
+ lv_task_once(task_p);
+}
void * mmi_aigc_actId_ext_get(lv_watch_Activity_Id_t actId)
{
s_aigc_trans_text_end = false;
+ // stop audio
+ Hal_NFFS_File_Play_End();
+ Hal_Audio_Manage_End_Ind(MMI_AIGC_TTS_AUDIO_PRI);
+
// wb
mmi_aigc_tts_websocket_close();
mmi_aigc_trans_websocket_open();
mmi_aigc_tts_audio_ll_clean();
mmi_aigc_send_trans_start_msg(NULL, 0);
- //
- Hal_NFFS_File_Play_End();
- Hal_Audio_Manage_End_Ind(MMI_AIGC_TTS_AUDIO_PRI);
-
if(NULL != ext->record_buffer)
{
lv_mem_free(ext->record_buffer);
//list_item_ext = lv_obj_allocate_ext_attr(obj, sizeof(lv_wechat_msg_list_item_ext_t));
//list_item_ext->item_index = i;
//list_item_ext->unread_img = NULL;
- lv_obj_set_size(obj, LV_HOR_RES * 2 / 3, 50); //lv_obj_set_size(obj, 153, 53); // same with voice item
+ lv_obj_set_size(obj, lv_obj_get_width(list_page) - 40, 50); //lv_obj_set_size(obj, LV_HOR_RES * 2 / 3, 50); // same with voice item
lv_cont_set_fit4(obj, LV_FIT_NONE, LV_FIT_NONE, LV_FIT_NONE, LV_FIT_TIGHT);
//lv_cont_set_layout(obj, LV_LAYOUT_COLUMN_LEFT);
lv_obj_add_style(obj, LV_CONT_PART_MAIN, &(ext->style_cont_self));
lv_obj_t * label_text = lv_label_create(obj, NULL);
lv_obj_add_style(label_text, LV_LABEL_PART_MAIN, &(ext->style_label_len_self));
- lv_label_set_align(label_text, LV_LABEL_ALIGN_CENTER);
+ lv_label_set_align(label_text, LV_LABEL_ALIGN_LEFT); // LV_LABEL_ALIGN_CENTER);
lv_label_set_long_mode(label_text, LV_LABEL_LONG_BREAK);
lv_obj_set_width(label_text, lv_obj_get_width(obj) - 20);
lv_label_set_text(label_text, file_buf);
//list_item_ext = lv_obj_allocate_ext_attr(obj, sizeof(lv_wechat_msg_list_item_ext_t));
//list_item_ext->item_index = i;
//list_item_ext->unread_img = NULL;
- lv_obj_set_size(obj, LV_HOR_RES * 2 / 3, 50); //lv_obj_set_size(obj, 153, 53); // same with voice item
+ lv_obj_set_size(obj, lv_obj_get_width(list_page) - 40, 50); //lv_obj_set_size(obj, LV_HOR_RES * 2 / 3, 50); // same with voice item
lv_cont_set_fit4(obj, LV_FIT_NONE, LV_FIT_NONE, LV_FIT_NONE, LV_FIT_TIGHT);
//lv_cont_set_layout(obj, LV_LAYOUT_COLUMN_LEFT);
lv_obj_add_style(obj, LV_CONT_PART_MAIN, &(ext->style_cont_other));
lv_obj_t * label_text = lv_label_create(obj, NULL);
lv_obj_add_style(label_text, LV_LABEL_PART_MAIN, &(ext->style_label_len_other));
- lv_label_set_align(label_text, LV_LABEL_ALIGN_CENTER);
+ lv_label_set_align(label_text, LV_LABEL_ALIGN_LEFT); // LV_LABEL_ALIGN_CENTER);
lv_label_set_long_mode(label_text, LV_LABEL_LONG_BREAK);
lv_obj_set_width(label_text, lv_obj_get_width(obj) - 20);
lv_label_set_text(label_text, file_buf);
if(NULL == list_page_ext)
return NULL;
- lv_obj_set_size(list_page, lv_obj_get_width(obj) - 20, lv_obj_get_height(obj) - 20 - 80);
+ //lv_obj_set_size(list_page, lv_obj_get_width(obj) - 20, lv_obj_get_height(obj) - 20 - 80);
+ lv_obj_set_size(list_page, lv_obj_get_width(obj), lv_obj_get_height(obj) - 20 - 80);
lv_page_set_scrollbar_mode(list_page, LV_SCROLLBAR_MODE_OFF);
lv_obj_set_style_local_bg_opa(list_page, LV_PAGE_PART_BG, LV_STATE_DEFAULT, LV_OPA_0);
lv_obj_set_style_local_border_opa(list_page, LV_PAGE_PART_BG, LV_STATE_DEFAULT, LV_OPA_0);
ext->list = mmi_aigc_list_create(cont);
+ // signal weak
+ lv_obj_t * label = lv_label_create(cont, NULL);
+ lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26);
+ lv_label_set_text_id(label, WATCH_TEXT_ID_SIGNAL_WEAK);
+ lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, -10);
+ lv_obj_set_click(label, false);
+ ext->list_signal_weak_label = label;
+
lv_obj_t * imgbtn_cancel = lv_imgbtn_create(cont, NULL);
lv_imgbtn_set_src(imgbtn_cancel, LV_BTN_STATE_RELEASED, ICON_AIGC_CANCEL_BUTTON);
lv_imgbtn_set_src(imgbtn_cancel, LV_BTN_STATE_PRESSED, ICON_AIGC_CANCEL_BUTTON);
lv_obj_set_hidden(ext->cont_thinking, true);
lv_obj_set_hidden(ext->cont_timeout, true);
lv_obj_set_hidden(ext->cont_list, false);
+ lv_obj_set_hidden(ext->list_signal_weak_label, true);
}
static void mmi_aigc_default_screen_display(void)