/*************************************************************************** * Copyright (c) 2003-2006, 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: $ * ***************************************************************************/ #ifndef BAPP_H__ #define BAPP_H__ #include "bgfx.h" #include "bapp_util.h" #include "bscreen.h" #include "chan_mgr.h" #include "led.h" #include "bapp_remote.h" #include "bapp_settings.h" #include "bapp_store.h" #include "bapp_nexus.h" #define SCREEN_MAX_STR_WIDTH 1024 #define MAX_MSG_EVENT 4 #define MAX_TIME_STR 32 #define TUNE_DURATION (3 * 1000) /* Milliseconds */ #define CONFIG_ACTIVE_STANDBY /* * Application states */ typedef enum bapp_state_t { eAPP_STATE_DEFAULT, /* Default init state */ eAPP_STATE_HUNT, /* Needs channel map or authorization to operated */ eAPP_STATE_PENDING, /* Needs channel map or authorization to operated */ eAPP_STATE_NORMAL, /* Has channel map and can tune channels */ eAPP_STATE_DOWNLOAD, /* Temporarily in download state */ eAPP_STATE_FACTORY, /* Factory Test State */ eAPP_STATE_DONE, /* Last state, should never occur */ }bapp_state_t; /* * Color palettes */ typedef enum bapp_palette_t { ePALETTE_DEFAULT, ePALETTE_SCREENSAVER, }bapp_palette_t; /* * Main data structure containing references to all interfaces * required throughout the application. */ typedef struct bapp_t { bapp_state_t state; enum led_mode_t led_mode; unsigned int yield_ms; unsigned char* osd_mem; unsigned int osd_mem_size; bapp_settings_t settings; bool settings_dirty; bgfx_palette_t palette; uint16_t width; uint16_t height; struct timeval timeout_tv; bgfx_surf_t surf; #if 0 bdisplay_t display; bgraphics_t graphics; bdecode_window_t window; bdecode_t decode; baudio_decode_t audio; buser_input_t user_io; #else bapp_nexus_t nexus; bapp_remote_t remote; #endif fstore_t flash_storage; bin_read_t br; bscreen_t *p_screens; int num_screens; unsigned int last_keypress_tick; bapp_screen_id_t screen_id; bapp_screen_id_t last_screen_id; bapp_lang_t lang; unsigned int tmp_str[SCREEN_MAX_STR_WIDTH]; unsigned int tmp_value; bgfx_font_t *p_font[eLANG_MAX][eFONT_SIZE_MAX]; bapp_task_queue_t msg_queue; bapp_task_event_t msg_event[MAX_MSG_EVENT]; bool is_muted; unsigned char audio_vol; unsigned char audio_mute; unsigned char power; unsigned char decoding; unsigned int last_tune_tick; unsigned int eas_timeout; unsigned int eas_text; /* EAS text scrolling flag */ chm_mgr_t chm; unsigned int poweron_ms; unsigned int snr; unsigned int tuned_freq; bool check_poweron; bool lock; bool has_PAT; unsigned int signal_level; int mode; unsigned int system_time; unsigned int system_offset; bool have_time; unsigned int tune_ms; unsigned int si_ms; unsigned int location; vch_t prev_vch; vch_t cur_vch; st_t cur_st; freq_t cur_freq; bapp_task_mutex_t ch_map_mutex; chm_cmd_event_t chm_cmd; chm_tune_event_t tune_cmd; bIR_codes_t last_key_down; struct timeval last_key_tv; }bapp_t; extern const unsigned short s_ch_to_freq[]; int bin_read( void *buffer, int size, int count, void *fp ); void bapp_init(bapp_t *p_app); void bapp_run(bapp_t *p_app); void bapp_idle(bapp_t *p_app); void bapp_sync(bapp_t *p_app); void bapp_handle_event(bapp_t *p_app, bscreen_event_t *p_event); void bapp_flush_screen(bapp_t *p_app); void bapp_set_current_screen(bapp_t *p_app, bapp_screen_id_t id, bapp_screen_id_t save_last); bscreen_t * bapp_get_current_screen(bapp_t *p_app); void bapp_goto_last_screen(bapp_t *p_app); int bapp_change_channel(bapp_t *p_app, int ch_up, int tune); int bapp_tune(bapp_t *p_app); int bapp_tune_prev(bapp_t *p_app); int bapp_set_channel(bapp_t *p_app, int channel); void bapp_enable_cc(bapp_t *p_app, int enable); void bapp_reset_settings(bapp_t *p_app); void bapp_save_settings(bapp_t *p_app); void bapp_av_mute(bapp_t *p_app, int mute); void bapp_audio_mute(bapp_t *p_app, int mute); void bapp_set_audio_volume(bapp_t *p_app, uint8_t level); void bapp_set_palette(bapp_t *p_app, bapp_palette_t palette); bool bapp_get_signal_status(bapp_t *p_app); int bapp_rotate_audio_sap(bapp_t *p_app); void bapp_do_poweroff(bapp_t *p_app); ch_map_t *bapp_cur_ch_map(bapp_t *p_app); bapp_t *bapp_get_app(void); bapp_result_t bapp_post_event(bapp_task_event_t event); #endif /* BAPP_H__ */