static RET_CODE on_mon_child_feed_result(control_t *p_ctrl, u16 msg, u32 para1, u32 para2)
{
  RET_CODE ret = para1;
  dlg_ret_t dlg_ret = 0;
  u16 str_text[64] = {0,};
  u8 curn_root_id = manage_get_curn_menu_attr()->root_id;
  UI_PRINTF("@@@@@ on_mon_child_feed_result curn_root_id:%d\n", curn_root_id);
  if(curn_root_id == ROOT_ID_CONDITIONAL_ACCEPT_MOTHER)
  {
    if(ret != SUCCESS)
    { 
      gui_get_string(IDS_BACK, str_text, 64);//QQ  IDS_FEED_FAILURE
      dlg_data.text_content = (u32)str_text;
      if(ret == CAS_E_FEEDTIME_NOT_ARRIVE)
      {
        gui_get_string(IDS_CA_ADDRES_INFO, str_text, 64);//QQ  IDS_CA_NOT_TIME_FEED
        dlg_data.text_content = (u32)str_text;
      }
    }
    else
    {
      gui_get_string(IDS_FEED_SUCCESS, str_text, 64);
      dlg_data.text_content = (u32)str_text;
    }
    dlg_ret = ui_comm_dlg_open(&dlg_data);
    if(dlg_ret == DLG_RET_YES)
    {
   /*QQ    if(fw_find_root_by_id(ROOT_ID_POPUP) != NULL) 
    		  {
        		ui_comm_dlg_close();
      		}*/
    }
  }
  return ret;
}
static RET_CODE on_mon_child_feed_data(control_t *p_ctrl, u16 msg, u32 para1, u32 para2)
{
  RET_CODE ret = para1;
  u16 cur_pos = 0;
  u16 str_text[64] = {0,};
  chlid_card_status_info *mother_card = (chlid_card_status_info *)para2;
  dlg_ret_t dlg_ret = DLG_RET_NULL;
  u8 curn_root_id = manage_get_curn_menu_attr()->root_id;
  
  cur_pos = list_get_focus_pos(p_ctrl);
  UI_PRINTF("@@@@@ on_mon_child_feed_data curn_root_id:%d, cur_pos : %d\n", curn_root_id, cur_pos);
  if(curn_root_id == ROOT_ID_CONDITIONAL_ACCEPT_MOTHER)
  {
    if(ret != SUCCESS)
    {
      gui_get_string(IDS_CA_ADDRES_INFO, str_text, 64);//QQ  IDS_CA_INVALID_PARENT_CARD
      dlg_data.text_content = (u32)str_text;
      dlg_ret = ui_comm_dlg_open(&dlg_data);
      if(dlg_ret == DLG_RET_YES)
      {
      /*QQ 
        if(fw_find_root_by_id(ROOT_ID_POPUP) != NULL) 
        {
          ui_comm_dlg_close();
        }
        */
        if(p_child_info[cur_pos].is_child == 1)
        {
          ui_ca_get_info(CAS_CMD_READ_FEED_DATA, p_child_info[cur_pos].operator_id,0);
        }
      }
      return ret;
    }
    else
    {
      gui_get_string(IDS_CA_ADDRES_INFO, str_text, 64); //QQ   IDS_CA_INSERT_CHILD_CARD
      dlg_data.text_content = (u32)str_text;
      dlg_ret = ui_comm_dlg_open(&dlg_data);
      if(dlg_ret == DLG_RET_YES)
      {
        ui_ca_get_info(CAS_CMD_MON_CHILD_FEED, (u32)mother_card, 0);
        /*QQ
		if(fw_find_root_by_id(ROOT_ID_POPUP) != NULL) 
            {
                ui_comm_dlg_close();
            }
              */
      }
    }
  }
  return SUCCESS;
}
static void get_entitle_str(u16 * uni_str, u16 str_id1,u16 str_id2, u32 content)
{
  u16 str[10] = {0}; 
  u16 len = 0;
  
  gui_get_string(str_id1, uni_str, 64);
  convert_i_to_dec_str(str, content); 
  uni_strcat(uni_str, str,64);
  
  len = (u16)uni_strlen(uni_str);
  gui_get_string(str_id2, str, 64 - len); 
  uni_strcat(uni_str, str, 64); 

  return;
}
Example #4
0
void gui_lcd_display_string(INT32 x, INT32 y, U16 str_id)
{
	INT8* text = gui_get_string(str_id);
	if(text != NULL)
	{
		gui_lcd_display_text(x, y, text, NULL);
	}
}
static RET_CODE epg_group_list_update(control_t *p_list, u16 start, u16 size,
                                       u32 context)
{
  u16 i;
  u16 uni_str[32];
  u16 group;
  u8 type;
  sat_node_t sat;


  u16 pos;

  u16 cnt = list_get_count(p_list);

  for(i = 0; i < size; i++)
  {
    if(i + start < cnt)
    {
      group = sys_status_get_group_by_pos(i + start);

      sys_status_get_group_info(group, &type, &pos, &context);

      switch(type)
      {
        case GROUP_T_ALL:
          gui_get_string(IDS_ALL, uni_str, 31);
          break;
        case GROUP_T_FAV:
          sys_status_get_fav_name((u8)context, uni_str);
          break;
        case GROUP_T_SAT:
          db_dvbs_get_sat_by_id((u16)context, &sat);
          uni_strncpy(uni_str, sat.name, 31);
          break;
        default:
          MT_ASSERT(0);
      }

      /* NAME */
      list_set_field_content_by_unistr(p_list, (u16)(start + i), 0, uni_str);
    }
  }

  return SUCCESS;
}
static void epg_weekday_upgrade(control_t *p_mbox_weekday, BOOL is_force)
{
  //u32 old_context = 0;
  //s8 new_focus = 0;
  //u32 item_num = 0;
  u8 i;
  //u16 unistr[64];

  u8  weekday;
  u16 dst_unistr[128];
  #if 0
  u16 tmp_unistr[128];
  u8  ansstr[256];
  #endif
  u16 weekstr[] = 
    {
      IDS_MON,
      IDS_TUS,
      IDS_WED,
      IDS_THU,
      IDS_FRI,
      IDS_SAT,
      IDS_SUN,
    };
  utc_time_t cur_time = {0};
  utc_time_t tmp_time = {0};
  
  time_get(&cur_time, TRUE);

  for(i = 0; i<SEVEN; i++)
  {
    memcpy(&tmp_time, &cur_time, sizeof(utc_time_t));
    time_up(&tmp_time, ONE_DAY_SECONDS*i);
    weekday = date_to_weekday(&tmp_time);
    gui_get_string(weekstr[weekday], dst_unistr, 64);
    mbox_set_content_by_unistr(p_mbox_weekday, i, dst_unistr);
  }

  if(is_force)
  {
    ctrl_paint_ctrl(p_mbox_weekday, is_force);
  }
}
void sys_status_get_group_name(u16 group, u16 *p_name, u32 len)
{
  u8 type = 0;
  u16 pos = 0;
  u32 context = 0;

  sys_status_get_group_info(group, &type, &pos, &context);
  switch (type)
  {
    case GROUP_T_ALL:
      gui_get_string(IDS_ALL, p_name, (u16)len);
      break;
    case GROUP_T_FAV:
      sys_status_get_fav_name((u8)context, p_name);
      break;
    default:
      MT_ASSERT(0);
  }
}
//lint -e438 -e550 -e830
static void epg_item_update(control_t *p_cont, u8 focus_state, BOOL is_paint )
{
  dvbs_prog_node_t pg;
  utc_time_t s_time = {0}; 
  utc_time_t e_time = {0};  
  //utc_time_t tmp_time = {0};
  //utc_time_t tot_time = {0};//total time, 2 hours, for caculate x & w.
  control_t *p_list, *p_event_list, *p_mbox_week;
  control_t *p_list_cont, *p_prog_cont;
  
  event_node_t *p_evt_head = NULL;
  u16 total_evt  = 0;
  u16 list_curn, pg_id;
  u16 unistr[64];
  u16 old_focus = 0;
  u16 new_focus = 0;
  u8 day_pos;
  memset(&pg, 0, sizeof(dvbs_prog_node_t));

  epg_event_list_get_time_area(&s_time, &e_time);
    
  p_prog_cont = ctrl_get_child_by_id(p_cont, IDC_EPG_PROG_CONT);
  p_list = ctrl_get_child_by_id(p_prog_cont, IDC_EPG_LIST_PG);

  p_list_cont = ctrl_get_child_by_id(p_cont, IDC_EPG_LIST_CONT);
  p_event_list = ctrl_get_child_by_id(p_list_cont, IDC_EPG_LIST_EVT);

  p_mbox_week = ctrl_get_child_by_id(p_list_cont, IDC_EPG_WEEKDAY);

  if(first_time.day != s_time.day)
  {
    epg_weekday_upgrade(p_mbox_week, TRUE);
    time_get(&first_time, FALSE);
  }

  if(p_mbox_week!=NULL)
  {
    day_pos = (u8)mbox_get_focus(p_mbox_week);

    if(day_pos != 0)
    {
      time_up(&s_time, day_pos*24*60*60);
      s_time.hour = 0;
      s_time.minute = 0;
      s_time.second = 0;

      memcpy(&e_time, &s_time, sizeof(utc_time_t));
      e_time.hour = 23;
      e_time.minute = 59;
      e_time.second = 59;
    }
   //ui_set_epg_day_offset(day_pos);
  }
  
  list_curn = list_get_focus_pos(p_list);
  
  pg_id =db_dvbs_get_id_by_view_pos(ui_dbase_get_pg_view_id(), list_curn);
  db_dvbs_get_pg_by_id(pg_id, &pg);

  g_prog_info.network_id = (u16)pg.orig_net_id;
  g_prog_info.ts_id      = (u16)pg.ts_id;
  g_prog_info.svc_id     = (u16)pg.s_id;
  time_to_gmt(&s_time, &(g_prog_info.start_time));
  time_to_gmt(&e_time, &(g_prog_info.end_time));
  mul_epg_set_db_info(&g_prog_info);
  p_evt_head = mul_epg_get_sch_event(&g_prog_info, &total_evt);

  if(p_evt_head != NULL)
  {
    MT_ASSERT(total_evt > 0);
    old_focus = list_get_focus_pos(p_event_list);
    list_set_count(p_event_list, (u16)total_evt, EPG_EVT_LIST_PAGE);
    switch(focus_state)
    {
      case FOCUS_FIRST:
        new_focus = 0;
        break;
      case FOCUS_PREV:
        new_focus = (old_focus < total_evt) ? old_focus : 0;
        break;
      default:  
        new_focus = 0;
        break;
    }
    if (new_focus != old_focus)
    {
      list_set_focus_pos(p_event_list, new_focus);
      list_select_item(p_event_list, new_focus);
    }
    epg_event_list_update(p_event_list, list_get_valid_pos(p_event_list), EPG_EVT_LIST_PAGE, 0);
  }
  else
  {
    list_set_count(p_event_list, 1, EPG_EVT_LIST_PAGE);
    list_set_focus_pos(p_event_list, 0);
    list_select_item(p_event_list, 0);

    list_set_field_content_by_icon(p_event_list, 0, 0, 0);

    if(CUSTOMER_ID == CUSTOMER_AISAT || CUSTOMER_ID == CUSTOMER_AISAT_DEMO)
    {
      gui_get_string(IDS_MSG_NO_INFORMATION, unistr, 64);
    }
    else
    {
      gui_get_string(IDS_RECEIVING_DATA, unistr, 64);
    }
    list_set_field_content_by_unistr(p_event_list, 0, 2, unistr);
    list_set_field_content_by_icon(p_event_list, 0, 3, 0);
  }

  if(is_paint)
  {
    ctrl_paint_ctrl(p_event_list, is_paint);
  }
}
static void _nbox_draw(control_t *p_ctrl, hdc_t hdc)
{
  ctrl_nbox_t *p_nbox = NULL;
  obj_attr_t attr = OBJ_ATTR_ACTIVE;
  u32 font = 0;
  u16 str_num[NUM_STRING_LEN + 1] = {0};
  u16 *p_num_str = NULL;
  rect_t str_rect = {0};

  MT_ASSERT(p_ctrl != NULL);

  gui_paint_frame(hdc, p_ctrl);

  //draw string
  p_nbox = (ctrl_nbox_t *)p_ctrl;
  if(ctrl_is_whole_hl(p_ctrl) || ctrl_is_always_hl(p_ctrl))
  {
    attr = OBJ_ATTR_HL;
  }
  else
  {
    attr = ctrl_get_attr(p_ctrl);
  }

  font = _nbox_get_fstyle(attr, p_nbox);

  ctrl_get_draw_rect(p_ctrl, &str_rect);

  // alloc buffer
  p_num_str = ctrl_unistr_alloc(
    NUM_STRING_LEN + NBOX_ITEM_NUM_XFIX_LENGTH * 2);

  // convert num to str
  switch(p_ctrl->priv_attr & NBOX_NUMTYPE_MASK)
  {
    case NBOX_NUMTYPE_DEC:
      convert_i_to_dec_str_ex(str_num, p_nbox->num, p_nbox->bit_length);
      if(p_nbox->separator_pos != 0)
      {
        insert_aschar_into_unistr(str_num, p_nbox->separator,
                                  p_nbox->separator_pos, NUM_STRING_LEN);
      }
      break;
    case NBOX_NUMTYPE_HEX:
      convert_i_to_hex_str_ex(str_num, p_nbox->num, p_nbox->bit_length);
      break;
    default:
      MT_ASSERT(0);
  }

  // add prefix
  if(p_nbox->prefix != 0)
  {
    switch(p_ctrl->priv_attr & NBOX_ITEM_PREFIX_TYPE_MASK)
    {
      case NBOX_ITEM_PREFIX_TYPE_STRID:
        gui_get_string((u16)p_nbox->prefix, p_num_str,
                       NBOX_ITEM_NUM_XFIX_LENGTH);
        break;
      case NBOX_ITEM_PREFIX_TYPE_EXTSTR:
        uni_strcat(p_num_str, (u16 *)p_nbox->prefix,
                   NBOX_ITEM_NUM_XFIX_LENGTH);
        break;
      default:
        MT_ASSERT(0);
    }
  }

  // add content
  uni_strcat(&p_num_str[uni_strlen(p_num_str)],
             str_num,
             NUM_STRING_LEN + NBOX_ITEM_NUM_XFIX_LENGTH);

  // add postfix
  if(p_nbox->postfix != 0)
  {
    switch(p_ctrl->priv_attr & NBOX_ITEM_POSTFIX_TYPE_MASK)
    {
      case NBOX_ITEM_POSTFIX_TYPE_STRID:
        gui_get_string((u16)p_nbox->postfix,
                       &p_num_str[uni_strlen(p_num_str)],
                       NBOX_ITEM_NUM_XFIX_LENGTH);
        break;
      case NBOX_ITEM_POSTFIX_TYPE_EXTSTR:
        uni_strcat(&p_num_str[uni_strlen(p_num_str)],
                   (u16 *)p_nbox->postfix,
                   NBOX_ITEM_NUM_XFIX_LENGTH);
        break;
      default:
        MT_ASSERT(0);
    }
  }

  // draw
  if(p_ctrl->priv_attr & NBOX_HL_STATUS_MASK)
  {
    if(p_ctrl->priv_attr & NBOX_HL_TYPE_MASK)
    {
      gui_draw_unistr(hdc, &str_rect, p_ctrl->priv_attr,
                      p_nbox->str_left, p_nbox->str_top,
                      0, p_num_str, font,
                      MAKE_DRAW_STYLE(STRDRAW_WITH_INVERT,
                                      _nbox_get_underline_pos(p_nbox)));
    }
    else
    {
      gui_draw_unistr(hdc, &str_rect, p_ctrl->priv_attr,
                      p_nbox->str_left, p_nbox->str_top,
                      0, p_num_str, font,
                      MAKE_DRAW_STYLE(STRDRAW_WITH_UNDERLINE,
                                      _nbox_get_underline_pos(p_nbox)));
    }
  }
  else
  {
    gui_draw_unistr(hdc, &str_rect, p_ctrl->priv_attr,
                    p_nbox->str_left, p_nbox->str_top,
                    0, p_num_str, font,
                    MAKE_DRAW_STYLE(STRDRAW_NORMAL, 0));
  }

  // free buffer
  ctrl_unistr_free(p_num_str);
}
Example #10
0
static void _cbox_get_num_string(control_t *p_ctrl, u16 *p_buffer)
{
  u16 str_num[NUM_STRING_LEN + 1];
  cbox_num_data_t *p_num_data = NULL;

  MT_ASSERT(p_ctrl != NULL);

  if((p_num_data = _cbox_get_num_data(p_ctrl)) == NULL)
  {
    return;
  }

  p_buffer[0] = '\0';

  switch(p_ctrl->priv_attr & CBOX_ITEM_NUMTYPE_MASK)
  {
    case CBOX_ITEM_NUMTYPE_DEC:
      if(p_num_data->bit_length > 0)
      {
        convert_i_to_dec_str_ex(str_num, p_num_data->curn,
                                (u8)p_num_data->bit_length);
      }
      else
      {
        convert_i_to_dec_str(str_num, p_num_data->curn);
      }
      break;
    case CBOX_ITEM_NUMTYPE_HEX:
      if(p_num_data->bit_length > 0)
      {
        convert_i_to_hex_str_ex(str_num, p_num_data->curn,
                                (u8)p_num_data->bit_length);
      }
      else
      {
        convert_i_to_hex_str(str_num, p_num_data->curn);
      }
      break;
    default:
      MT_ASSERT(0);
  }

  if(p_num_data->prefix != 0)
  {
    switch(p_ctrl->priv_attr & CBOX_ITEM_PREFIX_TYPE_MASK)
    {
      case CBOX_ITEM_PREFIX_TYPE_STRID:
        gui_get_string((u16)p_num_data->prefix, p_buffer,
                       CBOX_ITEM_NUM_XFIX_LENGTH);
        break;
      case CBOX_ITEM_PREFIX_TYPE_EXTSTR:
        uni_strcat(p_buffer, (u16 *)p_num_data->prefix,
                   CBOX_ITEM_NUM_XFIX_LENGTH);
        break;
      default:
        MT_ASSERT(0);
    }
  }

  uni_strcat(&p_buffer[uni_strlen(
                         p_buffer)], str_num, NUM_STRING_LEN +
             CBOX_ITEM_NUM_XFIX_LENGTH);

  if(p_num_data->postfix != 0)
  {
    switch(p_ctrl->priv_attr & CBOX_ITEM_POSTFIX_TYPE_MASK)
    {
      case CBOX_ITEM_POSTFIX_TYPE_STRID:
        gui_get_string((u16)p_num_data->postfix, &p_buffer[uni_strlen(
                                                             p_buffer)],
                       CBOX_ITEM_NUM_XFIX_LENGTH);
        break;
      case CBOX_ITEM_POSTFIX_TYPE_EXTSTR:
        uni_strcat(&p_buffer[uni_strlen(
                               p_buffer)], (u16 *)p_num_data->postfix,
                   CBOX_ITEM_NUM_XFIX_LENGTH);
        break;
      default:
        MT_ASSERT(0);
    }
  }
}
static RET_CODE on_select_change_focus(control_t *p_ctrl,
                                       u16 msg,
                                       u32 para1,
                                       u32 para2)
{
  control_t *p_root, *p_subctrl;
  language_set_t lang_set;
  u8 focus = (u8)para2;
  u8 lang_index;
  u8 fav_name[32] = {0};
  u16 fav_name_unistr[32] = {0};
  u16 content[32];
  u16 i;

  lang_index = get_lang_index(focus);

  sys_status_get_lang_set(&lang_set);
  switch(ctrl_get_ctrl_id(ctrl_get_parent(p_ctrl)))
  {
    case IDC_LANGUAGE:
      lang_set.osd_text = lang_index;

      if(ctrl_is_onfocus(p_ctrl))
      {
        // reset all language setting
        lang_set.first_audio = lang_index;
        lang_set.second_audio = lang_index;
        lang_set.sub_title = lang_index;
        lang_set.tel_text = lang_index;

        p_subctrl = ui_comm_root_get_ctrl(ROOT_ID_LANGUAGE, IDC_FIRST_AUDIO);
        ui_comm_select_set_focus(p_subctrl, focus);
        p_subctrl = ui_comm_root_get_ctrl(ROOT_ID_LANGUAGE, IDC_SECOND_AUDIO);
        ui_comm_select_set_focus(p_subctrl, focus);
#if ENABLE_TTX_SUBTITLE
        p_subctrl = ui_comm_root_get_ctrl(ROOT_ID_LANGUAGE, IDC_SUBTITLE);
        ui_comm_select_set_focus(p_subctrl, focus);
        p_subctrl = ui_comm_root_get_ctrl(ROOT_ID_LANGUAGE, IDC_TELETEXT);
        ui_comm_select_set_focus(p_subctrl, focus);
#endif
        // set language & redraw
        rsc_set_curn_language(gui_get_rsc_handle(), lang_index + 1);

        for(i=0; i<5; i++)
        {
          memset(content, 0, sizeof(content));
          gui_get_string(IDS_FAV_LIST, content, 64);
          sprintf((char *)fav_name, "%d", i+1);
          str_asc2uni(fav_name, fav_name_unistr);
          uni_strcat(content, fav_name_unistr, 256);
          sys_status_set_fav_name((u8)(sys_status_get_categories_count() - 5 + i), content);
        }

#ifdef ENABLE_CA
        if((CAS_ID == CONFIG_CAS_ID_DS)|| (CAS_ID == CONFIG_CAS_ID_SC))
        {
          ui_ca_set_language(lang_set);
        }
#endif
        if((p_root = fw_get_focus()) != NULL)
        {
          if(p_root != NULL)
          {
            ctrl_paint_ctrl(p_root, TRUE);
          }
        }
      }
      break;
    case IDC_FIRST_AUDIO:
      lang_set.first_audio = lang_index;
      break;
    case IDC_SECOND_AUDIO:
      lang_set.second_audio = lang_index;
      break;
#if ENABLE_TTX_SUBTITLE
    case IDC_SUBTITLE:
      lang_set.sub_title = lang_index;
      break;
    case IDC_TELETEXT:
      lang_set.tel_text = lang_index;
      break;
#endif
    default:
      MT_ASSERT(0);
      return ERR_FAILURE;
  }
  sys_status_set_lang_set(&lang_set);
  sys_status_save();

  return SUCCESS;
}