/*************************************************************************** * Copyright (c) 2012, Broadcom Corporation * All Rights Reserved * Confidential Property of Broadcom Corporation * * THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE * AGREEMENT BETWEEN THE USER AND BROADCOM. YOU HAVE NO RIGHT TO USE OR * EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT. * * $brcm_Workfile: $ * $brcm_Revision: $ * $brcm_Date: $ * * Module Description: * * Revision History: * * $brcm_Log: $ * ***************************************************************************/ #include "bgfx.h" #include "sim.h" #include "ramheader.h" #include "bapp.h" #include "chan_mgr.h" struct sim_t { bool initialized; bapp_t ntv_app; gtk_app_h gtk_app; chm_event_t set_screen_evt; }; char* g_p_sim_flash = NULL; struct sim_t s_sim = {false}; static void ram_start(void *data) { bapp_run(&(s_sim.ntv_app)); } static void sim_app_init(void) { unsigned int *stack; b_task_params params; b_task_t app_task_h; bapp_init(&(s_sim.ntv_app)); stack = malloc(1024 * 4); if (NULL != stack) { params.priority = 32; params.stack_size = 1024; params.stack = stack; params.name = "ram_start"; bos_start_task(&app_task_h, ¶ms, (void*)ram_start,&(s_sim.ntv_app)); } } void get_osd_info(unsigned char **pixels, int *pitch, int *width, int *height) { *pixels = NULL; *pitch = 0; *width = 0; *height = 0; if (s_sim.gtk_app) { gtk_app_get_osd_info(s_sim.gtk_app,pixels,pitch,width,height); } } void update_osd() { if (s_sim.gtk_app) { gtk_app_update_osd(s_sim.gtk_app); } } sim_h sim_init(gtk_app_h h_app) { if (s_sim.initialized) { return &s_sim; } s_sim.gtk_app = h_app; { char *tmp_ptr = malloc(FLASH_SIZE + (2 * 0x10000)); g_p_sim_flash = (char*)((((unsigned int)tmp_ptr + 0x10000) / 0x10000) * 0x10000); memset(g_p_sim_flash,0xff,FLASH_SIZE); } sim_app_init(); s_sim.initialized = true; return &s_sim; } int sim_screen_num(sim_h h_sim) { return eSCREEN_MAX; //h_sim->ntv_app.num_screens; } #ifdef APP_TYPE_NANOTV /* Screen ID Enum */ static const char *s_screen_names[] = { "eSCREEN_NULL", "eSCREEN_MAIN", "eSCREEN_PICTURE", "eSCREEN_SOUND", "eSCREEN_AV", "eSCREEN_ANTENNA", #if 0 "eSCREEN_CAPTIONS", "eSCREEN_CAPTIONS_ON_OFF", "eSCREEN_CAPTIONS_BASIC", #endif "eSCREEN_CAPTIONS_ADVANCED", "eSCREEN_CAPTIONS_FONT_OPTIONS", "eSCREEN_CAPTIONS_BACK_OPTIONS", "eSCREEN_CAPTIONS_FONT", "eSCREEN_CAPTIONS_FONT_SIZE", "eSCREEN_CAPTIONS_FONT_STYLE", "eSCREEN_CAPTIONS_FONT_COLOR", "eSCREEN_CAPTIONS_FONT_OPACITY", "eSCREEN_CAPTIONS_BACK_COLOR", "eSCREEN_CAPTIONS_BACK_OPACITY", "eSCREEN_CAPTIONS_EDGE_COLOR", "eSCREEN_CAPTIONS_EDGE_TYPE", "eSCREEN_CAPTIONS_RESET", "eSCREEN_LANGUAGE", "eSCREEN_SETUP", "eSCREEN_CH_SCAN", "eSCREEN_CH_SCAN_PROGRESS", "eSCREEN_RESET", "eSCREEN_WIZ_WELCOME", "eSCREEN_WIZ_LANGUAGE", "eSCREEN_WIZ_CH_SCAN", "eSCREEN_WIZ_PIN_NEW", "eSCREEN_WIZ_PIN_CONFIRM", "eSCREEN_WIZ_MISMATCHED_PINS", "eSCREEN_WIZ_DONE", "eSCREEN_AUTO_POWER", "eSCREEN_RATINGS", "eSCREEN_RATINGS_LOCK", "eSCREEN_RATINGS_LIMITS", "eSCREEN_RATINGS_TV", "eSCREEN_RATINGS_MOVIES", "eSCREEN_RATINGS_RRT_DIM", "eSCREEN_RATINGS_RRT_VAL", "eSCREEN_RATINGS_RRT_UPDATE", "eSCREEN_PIN_VERIFY_LIVE", "eSCREEN_PIN_VERIFY_RATINGS", "eSCREEN_PIN_VERIFY_RESET", "eSCREEN_PIN_NEW", "eSCREEN_PIN_CONFIRM", "eSCREEN_WRONG_PIN_LIVE", "eSCREEN_WRONG_PIN_RATINGS", "eSCREEN_WRONG_PIN_RESET", "eSCREEN_MISMATCHED_PINS", "eSCREEN_BANNER_SMALL", "eSCREEN_GUIDE", "eSCREEN_SCREENSAVER", "eSCREEN_POWER_OFF", "eSCREEN_TIMEZONE", "eSCREEN_STATUS", /* eSCREEN_DEBUG,*/ /* BSCREEN_DIAG_SCREEN_IDS,*/ "eSCREEN_DIAG_MENU", "eSCREEN_SYS_INFO", "eSCREEN_DTA_STATUS", "eSCREEN_MSO_INFO", "eSCREEN_TUNER_STATUS", "eSCREEN_CH_STATUS", "eSCREEN_CH_MAP_STATUS", "eSCREEN_MSG_STATUS", "eSCREEN_CODE_OBJECTS", "eSCREEN_CODE_DOWNLOAD", "eSCREEN_DECODER_STATUS", "eSCREEN_VIDEO_FORMAT", "eSCREEN_CONFIRM_CHANGE", "eSCREEN_SD_OUTPUT_OPTIONS", "eSCREEN_MAX" }; #else /* Screen ID Enum */ static const char *s_screen_names[] = { "eSCREEN_BANNER", "eSCREEN_SCREENSAVER", "eSCREEN_POWER_OFF", "eSCREEN_DIAG_MENU", "eSCREEN_SYS_INFO", "eSCREEN_DTA_STATUS", "eSCREEN_MSO_INFO", "eSCREEN_TUNER_STATUS", "eSCREEN_CH_STATUS", "eSCREEN_CH_MAP_STATUS", "eSCREEN_MSG_STATUS", "eSCREEN_CODE_OBJECTS", "eSCREEN_CODE_DOWNLOAD", "eSCREEN_DEBUG_OPTIONS", "eSCREEN_TEST_OPTIONS", "eSCREEN_DECODER_STATUS", "eSCREEN_STATUS", "eSCREEN_VIDEO_FORMAT", "eSCREEN_DTA_TEST", "eSCREEN_CONFIRM_CHANGE", "eSCREEN_PAIRING", "eSCREEN_PAIRING_SUCCESS", "eSCREEN_PAIRING_FAILED", "eSCREEN_PAIRING_CANCEL", "eSCREEN_FACTORY_TEST", "eSCREEN_HD_VIEW_MODE", "eSCREEN_HD_SHARPNESS", "eSCREEN_SD_DISPLAY", "eSCREEN_FREQUENCY", "eSCREEN_DOLBY", "eSCREEN_DOLBY_CHANNEL", "eSCREEN_DOLBY_DRC", "eSCREEN_DOLBY_HDMI", "eSCREEN_DOLBY_ANALOG", "eSCREEN_DOLBY_STEREO", "eSCREEN_DOLBY_DRC_CUT", "eSCREEN_DOLBY_DRC_BOOST", "eSCREEN_DOLBY_DRC_COMPRESSION", "eSCREEN_DOLBY_DRC_DIALOG", #if (BCHP_VER >= BCHP_VER_B0) || (BCHP_CHIP==7552) "eSCREEN_MENU", "eSCREEN_OVPOPUP", #endif "eSCREEN_RFRC_STATUS", "eSCREEN_HDMI_STATUS", "eSCREEN_QAM_CONSTELLATION", "eSCREEN_FORWARD_DATA_CHANNEL_STATS", #ifdef OOB_TUNER_SUPPORT "eSCREEN_QPSK_CONSTELLATION", #endif "eSCREEN_AVL", "eSCREEN_MAX" }; #endif void sim_screen_get_desc(sim_h h_sim, int idx, char* desc, int max_desc_len) { strncpy(desc,s_screen_names[idx],max_desc_len); } void sim_screen_set_screen(sim_h h_sim, int idx) { h_sim->set_screen_evt.type = eCHM_EVT_SET_SCREEN; h_sim->set_screen_evt.id = idx; bos_post_event(h_sim->ntv_app.msg_queue,(b_event_t*)&(h_sim->set_screen_evt)); bos_sleep(10); }