source: svn/newcon3bcm2_21bu/nexus/app/dta/bscreen.h @ 22

Last change on this file since 22 was 22, checked in by phkim, 11 years ago
  1. phkim
  2. newcon3sk 를 kctv 로 브랜치 함
  • Property svn:executable set to *
File size: 15.3 KB
Line 
1/***************************************************************************
2 *     Copyright (c) 2003-2006, Broadcom Corporation
3 *     All Rights Reserved
4 *     Confidential Property of Broadcom Corporation
5 *
6 *  THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE
7 *  AGREEMENT  BETWEEN THE USER AND BROADCOM.  YOU HAVE NO RIGHT TO USE OR
8 *  EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT.
9 *
10 * $brcm_Workfile:  $
11 * $brcm_Revision:  $
12 * $brcm_Date: $
13 *
14 * Module Description:
15 *
16 * Revision History:
17 *
18 * $brcm_Log:  $
19 *
20 ***************************************************************************/
21#ifndef BSCREEN_H__
22#define BSCREEN_H__
23
24#include "bapp_types.h"
25#include "bapp_str_table.h"
26#include "bir_codes.h"
27
28
29/* Screen defines */
30#define APP_DEFAULT_YIELD                        (40)                 /* Milliseconds */
31#define SCREEN_DEFAULT_TIMEOUT                   (10 * 60 * 1000)     /* Milliseconds */
32#define HIDE_BANNER_TIMEOUT                      (10 * 1000)              /* Milliseconds */
33#define BANNER_SMALL_TIMEOUT                     (5 * 1000)               /* Milliseconds */
34#define BANNER_10_KEY_TIMEOUT                    (2 * 1000)           /* Milliseconds */
35#define BANNER_VOLUME_TIMEOUT                    (2 * 1000)           /* Milliseconds */
36#define BANNER_SAP_TIMEOUT                       (2 * 1000)           /* Milliseconds */
37
38#define BANNER_CC_TIMEOUT                        (2 * 1000)           /* Milliseconds */
39
40#define SCREENSAVER_IMAGE_TIMEOUT                (3 * 1000)           /* Milliseconds */
41#define VOLUME_INCREMENT                         (2)
42#define DEFAULT_VOLUME_LEVEL 100
43
44/* Default to one repeat event every 3/4 second then accelerate */
45#define DEFAULT_REPEAT_TIMEOUT          ((3 * g_ticks_per_second) / 4)
46#define MAX_REPEAT_ACCEL                8
47#define REPEAT_INC                      4
48#define KEY_UP                          0x40000000
49
50extern int g_gfx_height;
51extern int g_gfx_width;
52
53#define eHEIGHT g_gfx_height
54#define eWIDTH g_gfx_width
55#define eSCREEN_ACTION_SAFE_X                  (eWIDTH * eSCREEN_ACTION_SAFE_PERCENT / 100)
56#define eSCREEN_ACTION_SAFE_Y                  (eHEIGHT * eSCREEN_ACTION_SAFE_PERCENT / 100)
57#define eSCREEN_ACTION_SAFE_WIDTH              (eWIDTH - (2 * eSCREEN_ACTION_SAFE_X))
58#define eSCREEN_ACTION_SAFE_HEIGHT             (eHEIGHT - (2 * eSCREEN_ACTION_SAFE_Y))
59#define eBANNER_WIDTH                          (eWIDTH - eBANNER_X)
60#define eBANNER_TITLE_WIDTH                    (eBANNER_WIDTH - (eBANNER_TITLE_X - eBANNER_X))
61#define eBANNER_TITLE_HEIGHT                   (eBANNER_HEIGHT - (eBANNER_TITLE_Y - eBANNER_Y))
62#define eBANNER_CH_NUM_WIDTH                   (eBANNER_WIDTH - (eBANNER_CH_NUM_X - eBANNER_X))
63#define eBANNER_CH_NUM_HEIGHT                  (eBANNER_HEIGHT - (eBANNER_CH_NUM_Y - eBANNER_Y))
64#define eBANNER_STATUS_X                       (eWIDTH/2 - eBANNER_STATUS_WIDTH/2)
65#define eBANNER_STATUS_Y                       (eHEIGHT/2 - eBANNER_STATUS_HEIGHT/2)
66#define eBANNER_STATUS_TEXT_X                  (eBANNER_STATUS_X + 10)
67#define eBANNER_STATUS_TEXT_Y                  (eBANNER_STATUS_Y + 10)
68#define eBANNER_STATUS_TEXT_WIDTH              (eBANNER_STATUS_WIDTH - 20)
69#define eBANNER_STATUS_TEXT_HEIGHT             (eBANNER_STATUS_HEIGHT - 20)
70
71
72/* Layout enums */
73typedef enum bscreen_layout_t
74{
75    eSCREEN_ACTION_SAFE_PERCENT            = 10,
76    ePROGRESS_X                            = 130,
77    ePROGRESS_Y                            = 220,
78    ePROGRESS_WIDTH                        = 400,
79    ePROGRESS_HEIGHT                       = 50,
80    ePROGRESS_LABEL_SPACING                = 6,
81    ePROGRESS_VOLUME_X                     = 236,
82    ePROGRESS_VOLUME_WIDTH                 = 260,
83    ePROGRESS_VOLUME_HEIGHT                = 25,
84    eBUTTON_PROGRESS_BORDER                = 4,
85    eBUTTON_VOL_PROGRESS_BORDER            = 2,
86    eMENU_TEXT_DROPSHADOW                  = 2,
87    eMENU_TITLE_DESC_TEXT_SPACING          = 4,
88    eBANNER_X                              = 492,
89    eBANNER_Y                              = 370,
90    eBANNER_HEIGHT                         = 66,
91    eBANNER_TITLE_X                        = 508,
92    eBANNER_TITLE_Y                        = 406,
93    eBANNER_CH_NUM_X                       = 508,
94    eBANNER_CH_NUM_Y                       = 380,
95    eBANNER_STATUS_WIDTH                   = 340,
96    eBANNER_STATUS_HEIGHT                  = 120,
97    eBANNER_POPUP_SAP_X                    = 0,
98    eBANNER_POPUP_SAP_Y                    = eBANNER_Y,
99    eBANNER_POPUP_SAP_WIDTH                = 146,
100    eBANNER_POPUP_SAP_HEIGHT               = eBANNER_HEIGHT,
101    eBANNER_POPUP_SAP_TITLE_MARGIN         = 12,
102    eBANNER_POPUP_VOL_X                    = 236,
103    eBANNER_POPUP_VOL_Y                    = eBANNER_Y,
104    eBANNER_POPUP_VOL_WIDTH                = 247,
105    eBANNER_POPUP_VOL_HEIGHT               = eBANNER_HEIGHT,
106    eBANNER_POPUP_VOL_TITLE_X              = 254,
107    eBANNER_POPUP_VOL_TITLE_Y              = eBANNER_Y + 6,
108    eBANNER_POPUP_VOL_TICK_X               = 254,
109    eBANNER_POPUP_VOL_TICK_Y               = eBANNER_POPUP_VOL_TITLE_Y + 26,
110    eBANNER_POPUP_VOL_TICK_WIDTH           = 3,
111    eBANNER_POPUP_VOL_TICK_HEIGHT          = 20,
112    eBANNER_POPUP_VOL_BAR_WIDTH            = eBANNER_POPUP_VOL_WIDTH - 40,
113        eMENU_TEXT_SPACING                     = 8
114}bscreen_layout_t;
115
116/* Font Size Enum */
117typedef enum bapp_font_size_t
118{
119    eFONT_SIZE_SMALL,
120    eFONT_SIZE_MED,
121    eFONT_SIZE_LARGE,
122    eFONT_SIZE_MAX
123}bapp_font_size_t;
124
125/* Screen ID Enum */
126typedef enum bapp_screen_id_t
127{
128    eSCREEN_BANNER,
129    eSCREEN_SCREENSAVER,
130    eSCREEN_POWER_OFF,
131    eSCREEN_DIAG_MENU,
132    eSCREEN_SYS_INFO,
133        eSCREEN_DTA_STATUS,
134        eSCREEN_MSO_INFO,
135        eSCREEN_TUNER_STATUS,
136        eSCREEN_CH_STATUS,
137        eSCREEN_CH_MAP_STATUS,
138        eSCREEN_MSG_STATUS,
139        eSCREEN_CODE_OBJECTS,
140        eSCREEN_CODE_DOWNLOAD,
141        eSCREEN_DECODER_STATUS,
142    eSCREEN_STATUS,
143/*    eSCREEN_HH,*/
144    eSCREEN_MAX
145}bapp_screen_id_t;
146
147
148/* Types of buttons and attibutes*/
149typedef enum bbutton_type_t
150{
151    eBUTTON_MENU            = 0x1,
152    eBUTTON_RADIO           = 0x2,
153    eBUTTON_CHECK           = 0x4,
154        eBUTTON_CHECK_LOCK      = 0x8,
155    eBUTTON_DESC_BOX        = 0x10,
156    eBUTTON_MAX
157}bbutton_type_t;
158
159
160/* Button info structure */
161typedef struct bbutton_t
162{
163    bbutton_type_t      type;
164    unsigned short      x;
165    unsigned short      y;
166    unsigned short      width;
167    unsigned short      height;
168    btext_id_t          text_id;
169    btext_id_t          desc_text_id;
170    bapp_screen_id_t    next_screen_id;
171    bapp_screen_id_t    next_screen_back_id;
172        unsigned short      right_justify_text;
173        unsigned int            background_color;
174}bbutton_t;
175
176/* Types of events */
177typedef enum bevent_type_t
178{
179    eS_EVENT_IR,
180    eS_EVENT_IDLE,
181    eS_EVENT_SETUP,
182    eS_EVENT_SETUP_DONE,
183    eS_EVENT_SELECTED,
184    eS_EVENT_CHECKED,
185    eS_EVENT_PROGRESS,
186    eS_EVENT_DONE,
187    eS_EVENT_REDRAW,
188    eS_EVENT_CANCEL,
189    eS_EVENT_MAX
190}bevent_type_t;
191
192/* Screen event structure */
193typedef struct bscreen_event_t
194{
195    bevent_type_t   type;
196    unsigned int    id;
197    void *data;
198}bscreen_event_t;
199
200/* Screen data structure */
201typedef struct bscreen_t
202{
203    btext_id_t          title_text_id;
204    btext_id_t          desc_text_id;
205    btext_id_t          help_text_id;
206    uint16_t            top_banner_height;
207    unsigned char       button_selection;
208    unsigned char       button_checked;
209    unsigned char       num_buttons;
210    unsigned int        idle_timeout;
211    bapp_screen_id_t    last_screen_id;
212    bbutton_t         * p_button_array;
213    void (*draw)(void *p_app, void *p_screen);
214    int (*handle_event)(void *p_app, void *p_screen, bscreen_event_t *p_event);
215    unsigned int        local_state;
216}bscreen_t;
217
218
219/*
220Summary:
221    screen draw callback functions.
222*/
223void screen_null_draw(void *v_app, void *v_screen);
224
225/*
226Summary:
227    screen event handler callback functions.
228*/
229int screen_picture_event(void *v_app, void *v_screen, 
230                               bscreen_event_t *p_event);
231int screen_sound_event(void *v_app, void *v_screen,
232                               bscreen_event_t *p_event);
233int screen_antenna_event(void *v_app, void *v_screen,
234                               bscreen_event_t *p_event);
235int screen_language_event(void *v_app, void *v_screen,
236                               bscreen_event_t *p_event);
237int screen_setup_event(void *v_app, void *v_screen,
238                               bscreen_event_t *p_event);
239int screen_reset_event(void *v_app, void *v_screen, 
240                               bscreen_event_t *p_event);
241int screen_auto_power_event(void *v_app, void *v_screen,
242                               bscreen_event_t *p_event);
243int screen_banner_event(void *v_app, void *v_screen,
244                               bscreen_event_t *p_event);
245int screen_screensaver_event(void *v_app, void *v_screen,
246                             bscreen_event_t *p_event);
247int screen_power_off_event(void *v_app, void *v_screen,
248                           bscreen_event_t *p_event);
249
250/*
251Summary:
252    default screen callback functions.
253*/
254void bscreen_default_setup(void *v_app, void *v_screen);
255int bscreen_default_idle(void *v_app, void *v_screen);
256int bscreen_default_event(void *v_app, void *v_screen, 
257                               bscreen_event_t *p_event);
258void bscreen_default_draw(void *v_app, void *v_screen);
259void bscreen_popup(void *v_app, void *v_screen);
260void bscreen_popup_draw(void *v_app, void *v_screen, btext_id_t title, btext_id_t desc);
261void bscreen_banner_draw(void *v_app, void *v_screen);
262void bscreen_screensaver_draw(void *v_app, void *v_screen);
263void bscreen_power_off_draw(void *v_app, void *v_screen);
264
265void bscreen_debug_draw(void *v_app, void *v_screen);
266int bscreen_debug_event(void *v_app, void *v_screen, 
267                               bscreen_event_t *p_event);
268void bscreen_status_draw(void *v_app, void *v_screen);
269int bscreen_status_event(void *v_app, void *v_screen, 
270                               bscreen_event_t *p_event);
271void bscreen_sys_info_draw(void *v_app, void *v_screen);
272int bscreen_sys_info_event(void *v_app, void *v_screen, 
273                               bscreen_event_t *p_event);
274void bscreen_diag_menu_draw(void *v_app, void *v_screen);
275int bscreen_diag_menu_event(void *v_app, void *v_screen, 
276                               bscreen_event_t *p_event);
277void bscreen_dta_status_draw(void *v_app, void *v_screen);
278int bscreen_dta_status_event(void *v_app, void *v_screen, 
279                               bscreen_event_t *p_event);
280void bscreen_mso_info_draw(void *v_app, void *v_screen);
281int bscreen_mso_info_event(void *v_app, void *v_screen, 
282                               bscreen_event_t *p_event);
283void bscreen_tuner_status_draw(void *v_app, void *v_screen);
284int bscreen_tuner_status_event(void *v_app, void *v_screen, 
285                               bscreen_event_t *p_event);
286void bscreen_ch_status_draw(void *v_app, void *v_screen);
287int bscreen_ch_status_event(void *v_app, void *v_screen, 
288                               bscreen_event_t *p_event);
289void bscreen_ch_map_status_draw(void *v_app, void *v_screen);
290int bscreen_ch_map_status_event(void *v_app, void *v_screen, 
291                               bscreen_event_t *p_event);
292void bscreen_msg_status_draw(void *v_app, void *v_screen);
293int bscreen_msg_status_event(void *v_app, void *v_screen, 
294                               bscreen_event_t *p_event);
295void bscreen_code_objects_draw(void *v_app, void *v_screen);
296int bscreen_code_objects_event(void *v_app, void *v_screen, 
297                               bscreen_event_t *p_event);
298void bscreen_code_download_draw(void *v_app, void *v_screen);
299int bscreen_code_download_event(void *v_app, void *v_screen, 
300                               bscreen_event_t *p_event);
301void bscreen_decoder_status_draw(void *v_app, void *v_screen);
302int bscreen_decoder_status_event(void *v_app, void *v_screen, 
303                               bscreen_event_t *p_event);
304void bscreen_hh_draw(void *v_app, void *v_screen);
305int bscreen_hh_event(void *v_app, void *v_screen, 
306                               bscreen_event_t *p_event);
307
308void bscreen_eas_text_scrolling_info_draw(void *v_app, void *v_screen);
309int bscreen_eas_text_scrolling_info_event(void *v_app, void *v_screen, bscreen_event_t *p_event);
310
311/* Banner state types */
312
313typedef enum banner_mode_t
314{
315    eLS_BANNER_OFF,
316    eLS_BANNER_SMALL,
317    eLS_BANNER_VOLUME,
318    eLS_BANNER_SAP,
319    eLS_BANNER_INFO,
320    eLS_BANNER_EAS_TEXT_SCROLLING,
321    eLS_BANNER_MAX
322}banner_mode_t;
323
324#define MAJOR_CH_CHARS 3
325typedef struct banner_state_t
326{
327    char            majorCh[MAJOR_CH_CHARS+1];
328    unsigned char   majorChIndex;
329    unsigned char   enter;
330    banner_mode_t   mode;
331    bscreen_event_t event;
332    unsigned int    repeat_timeout;
333    unsigned int    repeat_rate;
334    unsigned int    timeout;
335    unsigned int    ten_key_timeout;
336        char            auto_power_one_min_warning;
337}banner_state_t;
338
339extern banner_state_t g_banner_state;
340
341
342/* Screensaver State */
343typedef struct screensaver_state_t
344{
345    unsigned int image_swap_timeout;
346}screensaver_state_t;
347
348extern screensaver_state_t g_screensaver_state;
349
350/*
351Summary:
352    Use the this function to get a UNI string.
353*/
354
355void bscreen_get_string(
356                    bapp_lang_t e_lang,         /* Language enum */
357                    btext_id_t e_text_id,       /* Text enum */
358                    unsigned int *p_uni_str,    /* Buffer to put UNI string into */
359                    unsigned int *str_len       /* The string length. */
360                    );
361/*
362Summary:
363    Draw the buttons for the screen.
364Description:
365    Draw the buttons for the screen.
366*/
367void bscreen_draw_buttons(
368                        void *v_app,            /* Opaque app reference */
369                        void *v_screen          /* Opaque screen reference */
370                        );
371
372/*
373Summary:
374    Draw a button for the screen.
375Description:
376    Draw a button for the screen.
377*/
378void bscreen_draw_button(void *v_app,                   /* application structure */
379                    const bbutton_t *p_button,              /* button info structure */
380                    int selected,                       /* Button selected when non-zero */
381                    int checked,                         /* Button checked when non-zero */
382                                        int idx                                         /* button index or -1 for non index button */
383                    );
384/*
385Summary:
386    Draw a progress meter for the screen.
387Description:
388    Draw a progress meter for the screen.
389*/
390void bscreen_draw_progress(void * v_app,       /* Opague app reference */ 
391                unsigned int x,                /* x coord for progress meter */
392                unsigned int y,                /* y coord for progress meter */
393                unsigned int width,            /* width of progress meter */
394                unsigned int height,           /* height of progress meter */
395                unsigned int border_width,     /* width of meter border */
396                unsigned int border_color,     /* color of meter border */
397                unsigned int background_color, /* background color behind thumb */
398                unsigned int percent);         /* percentage thumb size (0-100) */
399
400
401/*
402Summary:
403    Draw signal level meter in banner
404Description:
405    Draw signal level meter in banner
406*/
407void bscreen_draw_banner_signal_level(void * v_app,                   /* Opaque app reference */
408                                      unsigned int signal);           /* signal level         */
409
410
411#endif /* BSCREEN_H__ */
Note: See TracBrowser for help on using the repository browser.