static void win_ci_set_slot_status_text(UINT8 slot, UINT8 status) { char ansi_str[CI_MENU_TXT_LENGTH]; char *str; void *ci_buffer = (void*)win_ci_get_tmp_buf(); /* //for card name not reflash when enter a new card! if((status == ci_slots_info.status[slot]) && (ci_slots_info.status_str[slot][0] != 0)) { return; } */ ci_slots_info.status_str[slot][0] = 0; sprintf(ansi_str, "Slot %d: ", slot + 1); switch(status) { case CAM_DETACH: strcat(ansi_str, "Not Available"); break; case CAM_ATTACH: strcat(ansi_str, "Initializing"); break; case CAM_STACK_DETACH: strcat(ansi_str, "Uninstalling"); break; case CAM_STACK_ATTACH: str = api_ci_get_menu_string(ci_buffer, CI_DATA_BUFFER_LEN, slot); if(str != NULL) { strcat(ansi_str, str); } break; default: strcat(ansi_str, "Unknown"); break; } ComAscStr2Uni((UINT8*)ansi_str, ci_slots_info.status_str[slot]); return; }
static void win_ci_set_slot_status_text(UINT8 slot, UINT8 status) //guop edit 20101110 { char ansi_str[CI_MENU_TXT_LENGTH]; char *str; void *ci_buffer = (void*)win_ci_get_tmp_buf(); UINT16 *unistr=NULL; UINT16 *unistr2=NULL; UINT16 unistr_dest[50]={0}; UINT16 uni_string[300]={0}; UINT16 uni_string2[300]={0}; char string[20]; memset(string,0,sizeof(string)); memset(unistr_dest,0,sizeof(unistr_dest)); memset(uni_string,0,sizeof(uni_string)); memset(uni_string2,0,sizeof(uni_string2)); /* //for card name not reflash when enter a new card! if((status == ci_slots_info.status[slot]) && (ci_slots_info.status_str[slot][0] != 0)) { return; } */ ci_slots_info.status_str[slot][0] = 0; #ifdef SINGLE_CI_SUPPORT unistr = OSD_GetUnicodeString(RS_SLOT); sprintf(string," : "); ComAscStr2Uni(string,unistr_dest); ComUniStrCopyChar(&uni_string,(UINT16 *)unistr); ComUniStrCat(&uni_string,unistr_dest); //sprintf(ansi_str, "Slot: "); #else unistr = OSD_GetUnicodeString(RS_SLOT); sprintf(string," %d :",slot+1); ComAscStr2Uni(string,unistr_dest); ComUniStrCopyChar(&uni_string,(UINT16 *)unistr); ComUniStrCat(&uni_string,unistr_dest); //sprintf(ansi_str, "Slot %d: ", slot + 1); #endif switch(status) { case CAM_DETACH: { unistr2 = OSD_GetUnicodeString(RS_NOT_AVAILABLE); ComUniStrCopyChar(&uni_string2,(UINT16 *)unistr2); ComUniStrCat(&uni_string,uni_string2); //strcat(ansi_str, "Not Available"); } break; case CAM_ATTACH: { unistr2 = OSD_GetUnicodeString(RS_INIT); ComUniStrCopyChar(&uni_string2,(UINT16 *)unistr2); ComUniStrCat(&uni_string,uni_string2); //strcat(ansi_str, "Initializing"); } break; case CAM_STACK_DETACH: { unistr2 = OSD_GetUnicodeString(RS_UNINSTALLING); ComUniStrCopyChar(&uni_string2,(UINT16 *)unistr2); ComUniStrCat(&uni_string,uni_string2); //strcat(ansi_str, "Uninstalling"); } break; case CAM_STACK_ATTACH: str = api_ci_get_menu_string(ci_buffer, CI_DATA_BUFFER_LEN, slot); if(str != NULL) { ComAscStr2Uni((UINT8*)str,uni_string2); //ComUniStrCopyChar(&uni_string,(UINT16 *)unistr); ComUniStrCat(&uni_string,uni_string2); //strcat(ansi_str, str); //ComAscStr2Uni((UINT8*)str, ci_slots_info.status_str[slot]); } break; default: { unistr2 = OSD_GetUnicodeString(RS_UNKNOWN); ComUniStrCopyChar(&uni_string2,(UINT16 *)unistr2); ComUniStrCat(&uni_string,uni_string2); //strcat(ansi_str, "Unknown"); } break; } // ComAscStr2Uni((UINT8*)ansi_str, ci_slots_info.status_str[slot]); MEMCPY(ci_slots_info.status_str[slot], uni_string,sizeof(uni_string)); return; }
static void ci_info_init() { char * tmp; UINT8 *tmp_buf; // init MEMSET(&ci_info, 0, sizeof(ci_info)); // get menu string tmp_buf = (void*)(win_ci_get_tmp_buf()); tmp = api_ci_get_menu_string(tmp_buf, CI_DATA_BUFFER_LEN, ci_slot); if(tmp != NULL) { ci_info_set_string(ci_info.name, CI_MENU_TXT_LENGTH, tmp); } else { ci_info.name[0] = '\0'; } //set the window style as the difference show modal win_ci_info_set_colorstyle(); if(win_ci_info_modal == WIN_CI_INFO_SHOW_AS_MODAL) { OSD_SetColor((POBJECT_HEAD)&g_win_ci_info,WIN_SH_IDX_SD,WIN_HL_IDX_SD,WIN_SL_IDX_SD,WIN_GRY_IDX_SD); OSD_MoveObject((POBJECT_HEAD)&g_win_ci_info, W_L_SD,W_T_SD, 0);//62, 55, 0); OSD_MoveObject((POBJECT_HEAD)&txt_ci_info_split1, W_L_SD + 10, SPLIT_1_T_SD, 0); //62, SPLIT_1_T, 0); OSD_MoveObject((POBJECT_HEAD)&txt_ci_info_split2, W_L_SD + 10, SPLIT_2_T_SD, 0);//62, SPLIT_2_T - 1, 0); } else { OSD_SetColor((POBJECT_HEAD)&g_win_ci_info, WIN_SUBMENU_BODY_FRAME, WIN_SUBMENU_BODY_FRAME, WIN_SUBMENU_BODY_FRAME, WIN_SUBMENU_BODY_FRAME);//guop OSD_MoveObject((POBJECT_HEAD)&g_win_ci_info, W_L,W_T, 0); OSD_MoveObject((POBJECT_HEAD)&txt_ci_info_split1, SPLIT_1_L, SPLIT_1_T, 0); OSD_MoveObject((POBJECT_HEAD)&txt_ci_info_split2, SPLIT_1_L, SPLIT_2_T, 0); } ///////////////////////////////////////////////////////////////////////// //clear the menu //1. CI Title OSD_SetTextFieldContent(&txt_ci_info_title, STRING_UNICODE, (UINT32)""); //2. sub title ci_info_subtitle_content[0].text.pString = NULL; //3. bottom OSD_SetTextFieldContent(&txt_ci_info_bottom, STRING_UNICODE, (UINT32)""); //4. list OSD_SetObjListCount(&olst_ci_info, 0); OSD_SetAttr(&sb_ci_info, C_ATTR_HIDDEN); //show the ci enquiry dialog OSD_SetObjpNext(&txt_ci_info_bottom, NULL); //the the windows focus to the dialog g_win_ci_info.FocusObjectID = 1; }