source: svn/trunk/newcon3bcm2_21bu/dta/src/app/nanotv/bscreen.h

Last change on this file was 2, checked in by phkim, 11 years ago

1.phkim

  1. revision copy newcon3sk r27
  • Property svn:executable set to *
File size: 49.9 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 "bsettop.h"
25#include "bapp_str_table.h"
26#include "bir_codes.h"
27#include "bapp_palette.h"
28//#include "bscreen_diag.h"
29
30#ifdef CUSTOMER_THOMSON
31#define NUMBER_BUTTONS
32#endif
33
34/* Screen defines */
35#define APP_DEFAULT_YIELD                        (50)                 /* Milliseconds */
36#define SCREEN_DEFAULT_TIMEOUT                   (10 * 60 * 1000)     /* Milliseconds */
37//#define SCREEN_DEFAULT_TIMEOUT                   (2 * 60 * 1000)     /* Milliseconds */
38#define HIDE_BANNER_TIMEOUT                      (10 * 1000)              /* Milliseconds */
39#define BANNER_SMALL_TIMEOUT                     (5000)               /* Milliseconds */
40#define BANNER_BIG_TIMEOUT                       (10 * 1000)          /* Milliseconds */
41#define BANNER_10_KEY_TIMEOUT                    (2 * 1000)           /* Milliseconds */
42#define BANNER_VOLUME_TIMEOUT                    (1 * 1000)           /* Milliseconds */
43#define BANNER_SAP_TIMEOUT                       (2 * 1000)           /* Milliseconds */
44#define BANNER_DSUB_TIMEOUT                      (2 * 1000)
45#define BANNER_CC_TIMEOUT                        (2 * 1000)           /* Milliseconds */
46
47#define SCREENSAVER_IMAGE_TIMEOUT                (3 * 1000)           /* Milliseconds */
48#define VOLUME_INCREMENT                         (1)
49#define AUTO_POWER_OFF_TIMEOUT                     (4 * 60 * 60 * 100)            /* Ticks */
50//#define AUTO_POWER_OFF_TIMEOUT                   (SCREEN_DEFAULT_TIMEOUT + 120000) /* Milliseconds */
51
52#define AUTO_POWER_OFF_RESTART_TIMEOUT           (1000 * 10) /* Milliseconds */
53
54/* Default to one repeat event every 3/4 second then accelerate */
55#define DEFAULT_REPEAT_TIMEOUT          ((3 * g_ticks_per_second) / 4)
56#define MAX_REPEAT_ACCEL                8
57#define REPEAT_INC                      4
58#define KEY_UP                          0x40000000
59
60
61/* Layout enums */
62typedef enum bscreen_layout_t
63{
64#if (DISPLAY_NTSC || DISPLAY_PAL_M)
65        eHEIGHT                                                            = 480,
66#elif (DISPLAY_PAL || DISPLAY_PAL_NC)
67        eHEIGHT                                                            = 576,
68#else
69#error display format (NTSC, PAL, PAL-M or PAL-NC) must be defined
70#endif
71
72    eWIDTH                                 = 720,
73    eSCREEN_ACTION_SAFE_PERCENT            = 10,
74    eSCREEN_ACTION_SAFE_X                  = (eWIDTH * eSCREEN_ACTION_SAFE_PERCENT / 100),
75    eSCREEN_ACTION_SAFE_Y                  = (eHEIGHT * eSCREEN_ACTION_SAFE_PERCENT / 100),
76    eSCREEN_ACTION_SAFE_WIDTH              = (eWIDTH - (2 * eSCREEN_ACTION_SAFE_X)),
77    eSCREEN_ACTION_SAFE_HEIGHT             = (eHEIGHT - (2 * eSCREEN_ACTION_SAFE_Y)),
78
79    eINFO_AREA_HEIGHT                      = 30,
80    eINFO_AREA_Y                           = (eHEIGHT - eSCREEN_ACTION_SAFE_Y - eINFO_AREA_HEIGHT),
81
82    eMENU_TITLE_AREA_HEIGHT_0_LINE         = 60,
83    eMENU_TITLE_AREA_HEIGHT_1_LINE         = 80,
84    eMENU_TITLE_AREA_HEIGHT_2_LINE         = 100,
85    eMENU_TITLE_AREA_HEIGHT_3_LINE         = 120,
86    eMENU_TITLE_AREA_HEIGHT_4_LINE         = 140,
87
88    eMENU_TITLE_TEXT_X                     = (20 + eSCREEN_ACTION_SAFE_X),
89    eMENU_TITLE_TEXT_Y                     = (14 + eSCREEN_ACTION_SAFE_Y),
90    eMENU_TITLE_TEXT_WIDTH                 = (eSCREEN_ACTION_SAFE_WIDTH - 2 * (eMENU_TITLE_TEXT_X - eSCREEN_ACTION_SAFE_X)),
91    eMENU_TITLE_TEXT_HEIGHT                = 40,
92
93    eMENU_TITLE_DESC_TEXT_X                = (20 + eMENU_TITLE_TEXT_X),
94    eMENU_TITLE_DESC_TEXT_Y                = (40 + eMENU_TITLE_TEXT_Y),
95    eMENU_TITLE_DESC_TEXT_WIDTH            = (eWIDTH - eMENU_TITLE_DESC_TEXT_X - eMENU_TITLE_TEXT_X),
96    eMENU_TITLE_DESC_TEXT_HEIGHT           = 85,
97    eMENU_TITLE_DESC_TEXT_SPACING          = 4,
98
99    eMENU_PICTURES_FIRST_BUTTON_X          = (eSCREEN_ACTION_SAFE_X + 20),
100    eMENU_PICTURES_FIRST_BUTTON_Y          = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT + 10),
101    eMENU_PICTURES_BUTTON_WIDTH            = 190,
102    eMENU_PICTURES_BUTTON_DESC_WIDTH       = (eWIDTH - eMENU_PICTURES_FIRST_BUTTON_X - eMENU_PICTURES_BUTTON_WIDTH - eSCREEN_ACTION_SAFE_X),
103    eMENU_PICTURES_BUTTON_DESC_HEIGHT      = 95,
104    eMENU_PICTURES_BUTTON_INC_Y            = 75,
105
106    eMENU_SOUND_FIRST_BUTTON_X             = (eSCREEN_ACTION_SAFE_X + 40),
107    eMENU_SOUND_FIRST_BUTTON_Y             = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT + 10),
108    eMENU_SOUND_BUTTON_WIDTH               = 186,
109    eMENU_SOUND_BUTTON_DESC_WIDTH          = (eWIDTH - eMENU_SOUND_FIRST_BUTTON_X - eMENU_SOUND_BUTTON_WIDTH - eSCREEN_ACTION_SAFE_X),
110    eMENU_SOUND_BUTTON_DESC_HEIGHT         = 75,
111    eMENU_SOUND_BUTTON_INC_Y               = 60,
112
113    eMENU_AV_FIRST_BUTTON_X                = (eSCREEN_ACTION_SAFE_X + 70),
114    eMENU_AV_FIRST_BUTTON_Y                = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT + 10),
115    eMENU_AV_BUTTON_WIDTH                  = 200,
116    eMENU_AV_BUTTON_DESC_WIDTH             = (eWIDTH - eMENU_AV_FIRST_BUTTON_X - eMENU_AV_BUTTON_WIDTH - eSCREEN_ACTION_SAFE_X),
117    eMENU_AV_BUTTON_DESC_HEIGHT            = 75,
118    eMENU_AV_BUTTON_INC_Y                  = 60,
119
120    eMENU_LANGUAGE_FIRST_BUTTON_X          = (eSCREEN_ACTION_SAFE_X + 20),
121    eMENU_LANGUAGE_FIRST_BUTTON_Y          = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT - 15),
122    eMENU_LANGUAGE_BUTTON_WIDTH            = 150,
123    eMENU_LANGUAGE_BUTTON_DESC_WIDTH       = (eWIDTH - eMENU_LANGUAGE_FIRST_BUTTON_X - eMENU_LANGUAGE_BUTTON_WIDTH - eSCREEN_ACTION_SAFE_X),
124    eMENU_LANGUAGE_BUTTON_DESC_HEIGHT      = 75,
125    eMENU_LANGUAGE_BUTTON_INC_Y            = 60,
126
127    eMENU_CAPTIONS_FIRST_BUTTON_X          = (eSCREEN_ACTION_SAFE_X + 20),
128    eMENU_CAPTIONS_FIRST_BUTTON_Y          = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT - 5),
129    eMENU_CAPTIONS_BUTTON_HEIGHT           = 30,
130    eMENU_CAPTIONS_BUTTON_WIDTH            = 150,
131    eMENU_CAPTIONS_BUTTON_DESC_WIDTH       = (eWIDTH - eMENU_CAPTIONS_FIRST_BUTTON_X - eMENU_CAPTIONS_BUTTON_WIDTH - eSCREEN_ACTION_SAFE_X),
132    eMENU_CAPTIONS_BUTTON_DESC_HEIGHT      = 75,
133    eMENU_CAPTIONS_BUTTON_INC_Y            = 60,
134    eMENU_CAPTIONS_ON_OFF_BUTTON_WIDTH     = 130,
135        eMENU_CAPTIONS_ON_OFF_FIRST_BUTTON_Y   = eMENU_CAPTIONS_FIRST_BUTTON_Y + 20,
136    eMENU_CAPTIONS_BASIC_BUTTON_WIDTH      = 130,
137        eMENU_CAPTIONS_BASIC_FIRST_BUTTON_Y    = eMENU_CAPTIONS_FIRST_BUTTON_Y - 40,
138    eMENU_CAPTIONS_BASIC_BUTTON_INC_Y      = 40,
139    eMENU_CAPTIONS_ADVANCED_BUTTON_WIDTH   = 180,
140        eMENU_CAPTIONS_ADVANCED_FIRST_BUTTON_Y = eMENU_CAPTIONS_FIRST_BUTTON_Y - 40,
141    eMENU_CAPTIONS_ADVANCED_BUTTON_INC_Y   = 33,
142    eMENU_CAPTIONS_ADVANCED_BUTTON_HEIGHT  = 30,
143    eMENU_CAPTIONS_FONT_OPTIONS_BUTTON_WIDTH   = 170,
144        eMENU_CAPTIONS_FONT_OPTIONS_FIRST_BUTTON_Y = eMENU_CAPTIONS_FIRST_BUTTON_Y - 40,
145    eMENU_CAPTIONS_FONT_OPTIONS_BUTTON_INC_Y   = 50,
146    eMENU_CAPTIONS_FONT_OPTIONS_BUTTON_HEIGHT  = 40,
147    eMENU_CAPTIONS_BACK_OPTIONS_BUTTON_WIDTH   = 170,
148        eMENU_CAPTIONS_BACK_OPTIONS_FIRST_BUTTON_Y = eMENU_CAPTIONS_FIRST_BUTTON_Y - 30,
149    eMENU_CAPTIONS_BACK_OPTIONS_BUTTON_HEIGHT  = 40,
150    eMENU_CAPTIONS_FONT_BUTTON_WIDTH       = 190,
151        eMENU_CAPTIONS_FONT_FIRST_BUTTON_Y     = eMENU_CAPTIONS_FIRST_BUTTON_Y - 46,
152    eMENU_CAPTIONS_FONT_BUTTON_INC_Y       = 33,
153    eMENU_CAPTIONS_FONT_COLOR_BUTTON_INC_Y = 29,
154    eMENU_CAPTIONS_FONT_BUTTON_HEIGHT      = 30,
155    eMENU_CAPTIONS_FONT_COLOR_BUTTON_HEIGHT = 25,
156        eMENU_CAPTIONS_FONT_FIRST_STYLE_BUTTON_Y = eMENU_CAPTIONS_FIRST_BUTTON_Y - 30,
157        eMENU_CAPTIONS_FONT_FIRST_SIZE_BUTTON_Y  = eMENU_CAPTIONS_FIRST_BUTTON_Y - 30,
158        eMENU_CAPTIONS_FONT_STYLE_BUTTON_WIDTH = 170,
159        eMENU_CAPTIONS_OPACITY_FIRST_BUTTON_Y  = eMENU_CAPTIONS_FIRST_BUTTON_Y - 40,
160        eMENU_CAPTIONS_FONT_OPACITY_BUTTON_WIDTH = 200,
161        eMENU_CAPTIONS_OPACITY_BUTTON_INC_Y    = 50,
162        eMENU_CAPTIONS_RESET_FIRST_BUTTON_Y    = eMENU_CAPTIONS_FIRST_BUTTON_Y + 15,
163        eMENU_CAPTIONS_EDGE_TYPE_FIRST_BUTTON_Y= eMENU_CAPTIONS_FIRST_BUTTON_Y - 40,
164        eMENU_CAPTIONS_EDGE_TYPE_BUTTON_WIDTH  = 216,
165        eMENU_CAPTIONS_EDGE_TYPE_BUTTON_INC_Y  = 40,
166
167    eMENU_SETUP_FIRST_BUTTON_X             = (eSCREEN_ACTION_SAFE_X + 20),
168#ifdef CONFIG_EIA_708
169    eMENU_SETUP_FIRST_BUTTON_Y             = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT - 42),
170#else
171    eMENU_SETUP_FIRST_BUTTON_Y             = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT - 38),
172#endif
173    eMENU_SETUP_BUTTON_INC_Y               = 42,
174    eMENU_SETUP_BUTTON_WIDTH               = 200,
175    eMENU_SETUP_BUTTON_DESC_WIDTH          = (eWIDTH - eMENU_SETUP_FIRST_BUTTON_X - eMENU_SETUP_BUTTON_WIDTH - eSCREEN_ACTION_SAFE_X + 20),
176    eMENU_SETUP_BUTTON_DESC_HEIGHT         = 75,
177
178    eMENU_CH_SCAN_FIRST_BUTTON_X           = (eSCREEN_ACTION_SAFE_X + 20),
179    eMENU_CH_SCAN_FIRST_BUTTON_Y           = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT + 25),
180    eMENU_CH_SCAN_BUTTON_WIDTH             = 160,
181    eMENU_CH_SCAN_BUTTON_DESC_WIDTH        = (eWIDTH - eMENU_CH_SCAN_FIRST_BUTTON_X - eMENU_CH_SCAN_BUTTON_WIDTH - eSCREEN_ACTION_SAFE_X),
182    eMENU_CH_SCAN_BUTTON_DESC_HEIGHT       = 75,
183    eMENU_CH_SCAN_BUTTON_INC_Y             = 75,
184
185    eMENU_SMART_CH_SCAN_FIRST_BUTTON_X     = (eSCREEN_ACTION_SAFE_X + 20),
186    eMENU_SMART_CH_SCAN_FIRST_BUTTON_Y     = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT - 15),
187    eMENU_SMART_CH_SCAN_BUTTON_WIDTH       = 160,
188    eMENU_SMART_CH_SCAN_BUTTON_DESC_WIDTH  = (eWIDTH - eMENU_CH_SCAN_FIRST_BUTTON_X - eMENU_CH_SCAN_BUTTON_WIDTH - eSCREEN_ACTION_SAFE_X),
189    eMENU_SMART_CH_SCAN_BUTTON_DESC_HEIGHT = 75,
190    eMENU_SMART_CH_SCAN_BUTTON_INC_Y       = 70,
191
192    eMENU_RESET_FIRST_BUTTON_X             = (eSCREEN_ACTION_SAFE_X + 20),
193    eMENU_RESET_FIRST_BUTTON_Y             = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT + 25),
194    eMENU_RESET_BUTTON_WIDTH               = 168,
195    eMENU_RESET_BUTTON_DESC_WIDTH          = (eWIDTH - eMENU_RESET_FIRST_BUTTON_X - eMENU_RESET_BUTTON_WIDTH - eSCREEN_ACTION_SAFE_X),
196    eMENU_RESET_BUTTON_DESC_HEIGHT         = 75,
197    eMENU_RESET_BUTTON_INC_Y               = 75,
198
199    eMENU_WIZ_WELCOME_FIRST_BUTTON_X       = (eSCREEN_ACTION_SAFE_X + 20),
200    eMENU_WIZ_WELCOME_FIRST_BUTTON_Y       = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT + 65),
201    eMENU_WIZ_WELCOME_BUTTON_WIDTH         = 150,
202    eMENU_WIZ_WELCOME_BUTTON_DESC_WIDTH    = (eWIDTH - eMENU_WIZ_WELCOME_FIRST_BUTTON_X - eMENU_WIZ_WELCOME_BUTTON_WIDTH - eSCREEN_ACTION_SAFE_X),
203    eMENU_WIZ_WELCOME_BUTTON_DESC_HEIGHT   = 75,
204    eMENU_WIZ_WELCOME_BUTTON_INC_Y         = 75,
205
206    eMENU_WIZ_ANTENNA_FIRST_BUTTON_X       = (eSCREEN_ACTION_SAFE_X + 20),
207    eMENU_WIZ_ANTENNA_FIRST_BUTTON_Y       = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT + 45),
208    eMENU_WIZ_ANTENNA_BUTTON_WIDTH         = 150,
209    eMENU_WIZ_ANTENNA_BUTTON_DESC_WIDTH    = (eWIDTH - eMENU_WIZ_ANTENNA_FIRST_BUTTON_X - eMENU_WIZ_ANTENNA_BUTTON_WIDTH - eSCREEN_ACTION_SAFE_X),
210    eMENU_WIZ_ANTENNA_BUTTON_DESC_HEIGHT   = 75,
211    eMENU_WIZ_ANTENNA_BUTTON_INC_Y         = 60,
212
213    eMENU_WIZ_CH_SCAN_FIRST_BUTTON_X       = (eSCREEN_ACTION_SAFE_X + 20),
214    eMENU_WIZ_CH_SCAN_FIRST_BUTTON_Y       = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT + 25),
215    eMENU_WIZ_CH_SCAN_BUTTON_WIDTH         = 150,
216    eMENU_WIZ_CH_SCAN_BUTTON_DESC_WIDTH    = (eWIDTH - eMENU_WIZ_CH_SCAN_FIRST_BUTTON_X - eMENU_WIZ_CH_SCAN_BUTTON_WIDTH - eSCREEN_ACTION_SAFE_X),
217    eMENU_WIZ_CH_SCAN_BUTTON_DESC_HEIGHT   = 75,
218    eMENU_WIZ_CH_SCAN_BUTTON_INC_Y         = 60,
219
220    eMENU_WIZ_SMART_CH_SCAN_FIRST_BUTTON_X       = (eSCREEN_ACTION_SAFE_X + 20),
221    eMENU_WIZ_SMART_CH_SCAN_FIRST_BUTTON_Y       = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT),
222    eMENU_WIZ_SMART_CH_SCAN_BUTTON_WIDTH         = 160,
223    eMENU_WIZ_SMART_CH_SCAN_BUTTON_DESC_WIDTH    = (eWIDTH - eMENU_WIZ_CH_SCAN_FIRST_BUTTON_X - eMENU_WIZ_CH_SCAN_BUTTON_WIDTH - eSCREEN_ACTION_SAFE_X),
224    eMENU_WIZ_SMART_CH_SCAN_BUTTON_DESC_HEIGHT   = 75,
225    eMENU_WIZ_SMART_CH_SCAN_BUTTON_INC_Y         = 65,
226
227    eMENU_WIZ_DONE_FIRST_BUTTON_X          = (eSCREEN_ACTION_SAFE_X + 20),
228    eMENU_WIZ_DONE_FIRST_BUTTON_Y          = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT + 65),
229    eMENU_WIZ_DONE_BUTTON_WIDTH            = 150,
230    eMENU_WIZ_DONE_BUTTON_DESC_WIDTH       = (eWIDTH - eMENU_WIZ_DONE_FIRST_BUTTON_X - eMENU_WIZ_DONE_BUTTON_WIDTH - eSCREEN_ACTION_SAFE_X),
231    eMENU_WIZ_DONE_BUTTON_DESC_HEIGHT      = 75,
232    eMENU_WIZ_DONE_BUTTON_INC_Y            = 75,
233
234    eMENU_AUTO_POWER_FIRST_BUTTON_X        = (eSCREEN_ACTION_SAFE_X + 20),
235    eMENU_AUTO_POWER_FIRST_BUTTON_Y        = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT-40),
236    eMENU_AUTO_POWER_BUTTON_WIDTH          = 180,
237    eMENU_AUTO_POWER_BUTTON_DESC_WIDTH     = (eWIDTH - eMENU_AUTO_POWER_FIRST_BUTTON_X - eMENU_AUTO_POWER_BUTTON_WIDTH - eSCREEN_ACTION_SAFE_X),
238    eMENU_AUTO_POWER_BUTTON_DESC_HEIGHT    = 75,
239    eMENU_AUTO_POWER_BUTTON_INC_Y          = 65,
240
241    eMENU_TIMEZONE_FIRST_BUTTON_X          = (eSCREEN_ACTION_SAFE_X + 20),
242    eMENU_TIMEZONE_FIRST_BUTTON_Y          = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT-56),
243    eMENU_TIMEZONE_BUTTON_WIDTH            = 200,
244    eMENU_TIMEZONE_BUTTON_DESC_WIDTH       = (eWIDTH - eMENU_TIMEZONE_FIRST_BUTTON_X - eMENU_TIMEZONE_BUTTON_WIDTH - eSCREEN_ACTION_SAFE_X),
245    eMENU_TIMEZONE_BUTTON_DESC_HEIGHT      = 75,
246    eMENU_TIMEZONE_BUTTON_INC_Y            = 45,
247
248    eMENU_RATINGS_FIRST_BUTTON_X           = (eSCREEN_ACTION_SAFE_X + 20),
249    eMENU_RATINGS_FIRST_BUTTON_Y           = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT + 5),
250    eMENU_RATINGS_BUTTON_WIDTH             = 196,
251
252    eMENU_RATINGS_BUTTON_DESC_WIDTH        = (eWIDTH - eMENU_RATINGS_FIRST_BUTTON_X - eMENU_RATINGS_BUTTON_WIDTH - eSCREEN_ACTION_SAFE_X),
253    eMENU_RATINGS_BUTTON_DESC_HEIGHT       = 75,
254    eMENU_RATINGS_BUTTON_INC_Y             = 60,
255
256    eMENU_RATINGS_LOCK_FIRST_BUTTON_X      = (eSCREEN_ACTION_SAFE_X + 20),
257    eMENU_RATINGS_LOCK_FIRST_BUTTON_Y      = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT - 35),
258    eMENU_RATINGS_LOCK_BUTTON_WIDTH        = 200,
259    eMENU_RATINGS_LOCK_BUTTON_DESC_WIDTH   = (eWIDTH - eMENU_RATINGS_LOCK_FIRST_BUTTON_X - eMENU_RATINGS_LOCK_BUTTON_WIDTH - eSCREEN_ACTION_SAFE_X),
260    eMENU_RATINGS_LOCK_BUTTON_DESC_HEIGHT  = 75,
261    eMENU_RATINGS_LOCK_BUTTON_INC_Y        = 75,
262
263    eMENU_RATINGS_LIMITS_FIRST_BUTTON_X    = (eSCREEN_ACTION_SAFE_X + 20),
264    eMENU_RATINGS_LIMITS_FIRST_BUTTON_Y    = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT + 5),
265    eMENU_RATINGS_LIMITS_BUTTON_WIDTH      = 156,
266    eMENU_RATINGS_LIMITS_BUTTON_DESC_WIDTH = (eWIDTH - eMENU_RATINGS_LIMITS_FIRST_BUTTON_X - eMENU_RATINGS_LIMITS_BUTTON_WIDTH - eSCREEN_ACTION_SAFE_X),
267    eMENU_RATINGS_LIMITS_BUTTON_DESC_HEIGHT= 75,
268
269
270    eMENU_RATINGS_LIMITS_BUTTON_INC_Y      = 55,
271    eMENU_RATINGS_TV_FIRST_BUTTON_X        = (eSCREEN_ACTION_SAFE_X + 50),
272
273        eMENU_RATINGS_RRT_DIM_FIRST_BUTTON_X   = (eSCREEN_ACTION_SAFE_X + 110),
274        eMENU_RATINGS_RRT_DIM_FIRST_BUTTON_Y   = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT - 48),
275    eMENU_RATINGS_RRT_DIM_BUTTON_INC_Y     = 28,
276    eMENU_RATINGS_RRT_DIM_BUTTON_WIDTH     = 350,
277    eMENU_RATINGS_RRT_DIM_BUTTON_HEIGHT    = 25,
278
279        eMENU_RATINGS_RRT_VAL_FIRST_BUTTON_X   = (eSCREEN_ACTION_SAFE_X + 110),
280        eMENU_RATINGS_RRT_VAL_FIRST_BUTTON_Y   = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT - 48),
281    eMENU_RATINGS_RRT_VAL_BUTTON_INC_Y     = 28,
282    eMENU_RATINGS_RRT_VAL_BUTTON_WIDTH     = 350,
283    eMENU_RATINGS_RRT_VAL_BUTTON_HEIGHT    = 25,
284       
285        eMENU_RATINGS_RRT_UPDATE_FIRST_BUTTON_X = (eSCREEN_ACTION_SAFE_X + 20),
286        eMENU_RATINGS_RRT_UPDATE_FIRST_BUTTON_Y = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT - 15),
287    eMENU_RATINGS_RRT_UPDATE_BUTTON_INC_Y   = 75,
288    eMENU_RATINGS_RRT_UPDATE_BUTTON_WIDTH   = 200,
289    eMENU_RATINGS_TV_FIRST_BUTTON_Y        = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT - 35),
290
291        eMENU_RATINGS_TV_DLSV_FIRST_BUTTON_X   = eMENU_RATINGS_TV_FIRST_BUTTON_X + 80,
292    eMENU_RATINGS_TV_GRID_BUTTON_WIDTH     = 120,
293    eMENU_RATINGS_TV_DLSV_GRID_BUTTON_WIDTH= 70,
294    eMENU_RATINGS_TV_BUTTON_WIDTH          = 150,
295    eMENU_RATINGS_TV_BUTTON_DESC_WIDTH     = (eWIDTH - eMENU_RATINGS_TV_FIRST_BUTTON_X - eMENU_RATINGS_TV_BUTTON_WIDTH - eSCREEN_ACTION_SAFE_X),
296    eMENU_RATINGS_TV_BUTTON_DESC_HEIGHT    = 75,
297    eMENU_RATINGS_TV_BUTTON_INC_Y          = 40,
298
299    eMENU_RATINGS_MOVIES_FIRST_BUTTON_X    = (eSCREEN_ACTION_SAFE_X + 15),
300    eMENU_RATINGS_MOVIES_FIRST_BUTTON_Y    = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT - 35),
301    eMENU_RATINGS_MOVIES_BUTTON_WIDTH      = 126,
302    eMENU_RATINGS_MOVIES_BUTTON_DESC_WIDTH = (eWIDTH - eMENU_RATINGS_MOVIES_FIRST_BUTTON_X - eMENU_RATINGS_MOVIES_BUTTON_WIDTH - eSCREEN_ACTION_SAFE_X),
303    eMENU_RATINGS_MOVIES_BUTTON_DESC_HEIGHT= 75,
304    eMENU_RATINGS_MOVIES_BUTTON_INC_Y      = 33,
305
306    eMENU_CONTENT_MA_FIRST_BUTTON_X        = (eSCREEN_ACTION_SAFE_X + 30),
307    eMENU_CONTENT_MA_FIRST_BUTTON_Y        = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT - 20),
308    eMENU_CONTENT_MA_BUTTON_WIDTH          = 140,
309    eMENU_CONTENT_MA_BUTTON_DESC_WIDTH     = (eWIDTH - eMENU_CONTENT_MA_FIRST_BUTTON_X - eMENU_CONTENT_MA_BUTTON_WIDTH - eSCREEN_ACTION_SAFE_X),
310    eMENU_CONTENT_MA_BUTTON_DESC_HEIGHT    = 75,
311    eMENU_CONTENT_MA_BUTTON_INC_Y          = 50,
312
313    eMENU_CONTENT_14_FIRST_BUTTON_X        = (eSCREEN_ACTION_SAFE_X + 60),
314    eMENU_CONTENT_14_FIRST_BUTTON_Y        = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT - 40),
315    eMENU_CONTENT_14_BUTTON_WIDTH          = 140,
316    eMENU_CONTENT_14_BUTTON_DESC_WIDTH     = (eWIDTH - eMENU_CONTENT_14_FIRST_BUTTON_X - eMENU_CONTENT_14_BUTTON_WIDTH - eSCREEN_ACTION_SAFE_X),
317    eMENU_CONTENT_14_BUTTON_DESC_HEIGHT    = 75,
318    eMENU_CONTENT_14_BUTTON_INC_Y          = 50,
319
320    eMENU_CONTENT_PG_FIRST_BUTTON_X        = (eSCREEN_ACTION_SAFE_X + 50),
321    eMENU_CONTENT_PG_FIRST_BUTTON_Y        = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT - 40),
322    eMENU_CONTENT_PG_BUTTON_WIDTH          = 140,
323    eMENU_CONTENT_PG_BUTTON_DESC_WIDTH     = (eWIDTH - eMENU_CONTENT_PG_FIRST_BUTTON_X - eMENU_CONTENT_PG_BUTTON_WIDTH - eSCREEN_ACTION_SAFE_X),
324    eMENU_CONTENT_PG_BUTTON_DESC_HEIGHT    = 75,
325    eMENU_CONTENT_PG_BUTTON_INC_Y          = 50,
326
327    eMENU_CONTENT_Y7_FIRST_BUTTON_X        = (eSCREEN_ACTION_SAFE_X + 70),
328    eMENU_CONTENT_Y7_FIRST_BUTTON_Y        = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT - 10),
329    eMENU_CONTENT_Y7_BUTTON_WIDTH          = 140,
330    eMENU_CONTENT_Y7_BUTTON_DESC_WIDTH     = (eWIDTH - eMENU_CONTENT_Y7_FIRST_BUTTON_X - eMENU_CONTENT_Y7_BUTTON_WIDTH - eSCREEN_ACTION_SAFE_X),
331    eMENU_CONTENT_Y7_BUTTON_DESC_HEIGHT    = 75,
332    eMENU_CONTENT_Y7_BUTTON_INC_Y          = 50,
333
334    ePIN_INC_X                             = 10,
335    ePIN_WIDTH                             = 76,
336    ePIN_HEIGHT                            = 76,
337    ePIN_X                                 = eSCREEN_ACTION_SAFE_X + (eSCREEN_ACTION_SAFE_WIDTH / 2) - (((ePIN_WIDTH * 4) + (ePIN_INC_X * 3)) / 2) + 1,
338    ePIN_Y                                 = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT + 40),
339
340    eMENU_WRONG_PIN_FIRST_BUTTON_X         = (eSCREEN_ACTION_SAFE_X + 20),
341    eMENU_WRONG_PIN_FIRST_BUTTON_Y         = (eMENU_TITLE_DESC_TEXT_Y + eMENU_TITLE_DESC_TEXT_HEIGHT + 30),
342    eMENU_WRONG_PIN_BUTTON_WIDTH           = 140,
343    eMENU_WRONG_PIN_BUTTON_DESC_WIDTH      = (eWIDTH - eMENU_WRONG_PIN_FIRST_BUTTON_X - eMENU_WRONG_PIN_BUTTON_WIDTH - eSCREEN_ACTION_SAFE_X),
344    eMENU_WRONG_PIN_BUTTON_DESC_HEIGHT     = 75,
345    eMENU_WRONG_PIN_BUTTON_INC_Y           = 75,
346   
347    eMENU_RETRY_BUTTON_WIDTH               = 140,
348
349    eBANNER_WIDTH_OFFSET                   = 30,
350    eBANNER_X                              = eSCREEN_ACTION_SAFE_X + eBANNER_WIDTH_OFFSET,
351    eBANNER_Y                              = eSCREEN_ACTION_SAFE_Y + 20,
352    eBANNER_WIDTH                          = eSCREEN_ACTION_SAFE_WIDTH - (2 * eBANNER_WIDTH_OFFSET),
353    eBANNER_SMALL_HEIGHT                   = 110,
354    eBANNER_LARGE_HEIGHT                   = 130,
355    eBANNER_TITLE_X                        = eBANNER_X + 10,
356    eBANNER_TITLE_Y                        = eBANNER_Y + 10,
357    eBANNER_TITLE_WIDTH                    = eBANNER_WIDTH - 135,
358    eBANNER_TITLE_HEIGHT                   = 20,
359    eBANNER_CH_NUM_WIDTH                   = 130,
360    eBANNER_CH_NUM_HEIGHT                  = eBANNER_TITLE_HEIGHT,
361    eBANNER_CH_NUM_X                       = eBANNER_X + eBANNER_WIDTH - eBANNER_CH_NUM_WIDTH,
362    eBANNER_CH_NUM_Y                       = eBANNER_TITLE_Y,
363    eBANNER_CALLSIGN_WIDTH                 = 130,
364    eBANNER_CALLSIGN_HEIGHT                = eBANNER_TITLE_HEIGHT,
365    eBANNER_CALLSIGN_X                     = eBANNER_X + eBANNER_WIDTH - eBANNER_CALLSIGN_WIDTH,
366    eBANNER_CALLSIGN_Y                     = eBANNER_TITLE_Y + eBANNER_CH_NUM_HEIGHT + 5,
367    eBANNER_NEXT_TITLE_X                   = eBANNER_X + 100,
368    eBANNER_NEXT_TITLE_Y                   = eBANNER_CALLSIGN_Y,
369    eBANNER_EPISODE_WIDTH                  = 380,
370    eBANNER_EPISODE_HEIGHT                 = eBANNER_TITLE_HEIGHT,
371    eBANNER_EPISODE_X                      = eBANNER_TITLE_X,
372    eBANNER_EPISODE_Y                      = eBANNER_CALLSIGN_Y,
373    eBANNER_TIME_WIDTH                     = 130,
374    eBANNER_TIME_HEIGHT                    = eBANNER_TITLE_HEIGHT,
375    eBANNER_TIME_X                         = eBANNER_X + eBANNER_WIDTH - eBANNER_TIME_WIDTH,
376    eBANNER_TIME_Y                         = eBANNER_CALLSIGN_Y + eBANNER_CALLSIGN_HEIGHT + 5,
377    eBANNER_RATINGS_WIDTH                  = eBANNER_WIDTH,
378    eBANNER_RATINGS_HEIGHT                 = eBANNER_TITLE_HEIGHT,
379    eBANNER_RATINGS_X                      = eBANNER_TITLE_X,
380    eBANNER_RATINGS_Y                      = eBANNER_TIME_Y + eBANNER_TIME_HEIGHT + 5,
381    eBANNER_SAP_WIDTH                      = 40,
382    eBANNER_SAP_HEIGHT                     = eBANNER_TITLE_HEIGHT,
383    eBANNER_SAP_X                          = eBANNER_TIME_X - eBANNER_SAP_WIDTH - 5,
384    eBANNER_SAP_Y                          = eBANNER_TIME_Y,
385    eBANNER_DESC_WIDTH                     = eBANNER_WIDTH - 20,
386    eBANNER_DESC_HEIGHT                    = eBANNER_LARGE_HEIGHT - 30,
387    eBANNER_DESC_X                         = eBANNER_X + 10,
388    eBANNER_DESC_Y                         = eBANNER_Y + eBANNER_SMALL_HEIGHT + 10,
389    eBANNER_DESC_LINE_SPACING              = 6,
390    eBANNER_STATUS_HEIGHT                  = 105,
391    eBANNER_STATUS_TITLE_ONLY_HEIGHT       = 40,
392    eBANNER_STATUS_WIDTH                   = eBANNER_WIDTH,
393    eBANNER_STATUS_X                       = eBANNER_X,
394    eBANNER_STATUS_Y                       = eSCREEN_ACTION_SAFE_Y + eSCREEN_ACTION_SAFE_HEIGHT - eBANNER_STATUS_HEIGHT - 20,
395    eBANNER_STATUS_TITLE_ONLY_Y_OFFSET     = 65,
396    eBANNER_POPUP_TITLE_X                  = eBANNER_STATUS_X + 10,
397    eBANNER_POPUP_TITLE_Y                  = eBANNER_STATUS_Y + 10,
398    eBANNER_POPUP_TITLE_WIDTH              = eBANNER_STATUS_WIDTH - 125,
399        eBANNER_POPUP_VOL_TITLE_WIDTH          = 40,
400    eBANNER_POPUP_TITLE_HEIGHT             = 22,
401    eBANNER_POPUP_DESC_X                   = eBANNER_STATUS_X + 10,
402    eBANNER_POPUP_DESC_Y                   = eBANNER_POPUP_TITLE_Y + eBANNER_POPUP_TITLE_HEIGHT + 5,
403    eBANNER_POPUP_DESC_WIDTH               = eBANNER_STATUS_WIDTH - 20,
404    eBANNER_POPUP_DESC_HEIGHT              = eBANNER_STATUS_Y + eBANNER_STATUS_HEIGHT - 10 - eBANNER_POPUP_DESC_Y,
405    eBANNER_SIGNAL_X                       = eBANNER_X + 10,
406    eBANNER_SIGNAL_Y                       = eBANNER_TIME_Y + 5,
407    eBANNER_SIGNAL_WIDTH                   = 55,
408    eBANNER_SIGNAL_HEIGHT                  = 10,
409    eBANNER_START_END_TIME_X               = eBANNER_SIGNAL_X + eBANNER_SIGNAL_WIDTH + 35,
410    eBANNER_START_END_TIME_Y               = eBANNER_TIME_Y,
411    eBANNER_START_END_TIME_WIDTH           = 180,
412    eBANNER_START_END_TIME_HEIGHT          = eBANNER_TIME_HEIGHT,
413
414    eMENU_FIRST_BUTTON_X                   = (eSCREEN_ACTION_SAFE_X + 30),
415    eMENU_BUTTON_WIDTH                     = 186,
416    eMENU_BUTTON_INC_Y                     = 50,
417    eMENU_FIRST_BUTTON_Y                   = (eSCREEN_ACTION_SAFE_Y + 85),
418    eMENU_ITEM_DESC_X                      = (180 + 60 + 4 + eSCREEN_ACTION_SAFE_X),
419    eMENU_ITEM_DESC_Y                      = (90 + 2 + eSCREEN_ACTION_SAFE_Y),
420    eMENU_INFO_X                           = (10 + eSCREEN_ACTION_SAFE_X),
421    eMENU_INFO_Y                           = (eINFO_AREA_Y + 5),
422    eMENU_INFO_LINE_SPACING                = 4,
423    ePROGRESS_X                            = 130,
424    ePROGRESS_Y                            = 220,
425    ePROGRESS_WIDTH                        = 400,
426    ePROGRESS_HEIGHT                       = 50,
427    ePROGRESS_LABEL_SPACING                = 6,
428    ePROGRESS_VOLUME_X                     = eBANNER_POPUP_TITLE_X + 175,
429    ePROGRESS_VOLUME_WIDTH                 = 260,
430    ePROGRESS_VOLUME_HEIGHT                = 25,
431    ePROGRESS_GUIDE_X                      = eBANNER_TITLE_X + 430,
432    ePROGRESS_GUIDE_Y                      = eBANNER_TITLE_Y - 10,
433    ePROGRESS_GUIDE_WIDTH                  = 80,
434    ePROGRESS_GUIDE_HEIGHT                 = 25,
435    ePROGRESS_GUIDE_TEXT_X                 = ePROGRESS_GUIDE_X - 110,
436    ePROGRESS_GUIDE_TEXT_Y                 = ePROGRESS_GUIDE_Y + 5,
437    ePROGRESS_GUIDE_TEXT_WIDTH             = 100,
438    ePROGRESS_GUIDE_TEXT_HEIGHT            = 50,
439    eBUTTON_HEIGHT                         = 40,
440    eBUTTON_HEIGHT_RATINGS                 = 30,
441    eBUTTON_BEVEL_GRADIENT_STEP            = 2,
442    eBUTTON_MARGIN_X                       = 4,
443    eBUTTON_MARGIN_RIGHT                   = 70,
444    eBUTTON_RADIO_BOX_WIDTH                = 20,
445    eBUTTON_RADIO_BOX_DOT_WIDTH            = 4,
446    eBUTTON_RADIO_BOX_BORDER               = 4,
447    eBUTTON_RADIO_BOX_MARGIN_X             = 10,
448    eBUTTON_PROGRESS_BORDER                = 4,
449    eBUTTON_VOL_PROGRESS_BORDER            = 2,
450    eMENU_TEXT_DROPSHADOW                  = 2,
451}bscreen_layout_t;
452
453/* Font Size Enum */
454typedef enum bapp_font_size_t
455{
456    eFONT_SIZE_SMALL,
457    eFONT_SIZE_MED,
458    eFONT_SIZE_LARGE,
459    eFONT_SIZE_MAX
460}bapp_font_size_t;
461
462/* Screen ID Enum */
463typedef enum bapp_screen_id_t
464{
465    eSCREEN_NULL,
466    eSCREEN_MAIN,
467    eSCREEN_PICTURE,
468    eSCREEN_SOUND,
469        eSCREEN_AV,
470    eSCREEN_ANTENNA,
471#if 0
472        eSCREEN_CAPTIONS,
473        eSCREEN_CAPTIONS_ON_OFF,
474        eSCREEN_CAPTIONS_BASIC,
475#endif
476        eSCREEN_CAPTIONS_ADVANCED,
477        eSCREEN_CAPTIONS_FONT_OPTIONS,
478        eSCREEN_CAPTIONS_BACK_OPTIONS,
479        eSCREEN_CAPTIONS_FONT,
480        eSCREEN_CAPTIONS_FONT_SIZE,
481        eSCREEN_CAPTIONS_FONT_STYLE,
482        eSCREEN_CAPTIONS_FONT_COLOR,
483        eSCREEN_CAPTIONS_FONT_OPACITY,
484        eSCREEN_CAPTIONS_BACK_COLOR,
485        eSCREEN_CAPTIONS_BACK_OPACITY,
486        eSCREEN_CAPTIONS_EDGE_COLOR,
487        eSCREEN_CAPTIONS_EDGE_TYPE,
488        eSCREEN_CAPTIONS_RESET,
489    eSCREEN_LANGUAGE,
490    eSCREEN_SETUP,
491    eSCREEN_CH_SCAN,
492    eSCREEN_CH_SCAN_PROGRESS,
493    eSCREEN_RESET,
494    eSCREEN_WIZ_WELCOME,
495    eSCREEN_WIZ_LANGUAGE,
496    eSCREEN_WIZ_CH_SCAN,
497    eSCREEN_WIZ_PIN_NEW,
498    eSCREEN_WIZ_PIN_CONFIRM,
499    eSCREEN_WIZ_MISMATCHED_PINS,
500    eSCREEN_WIZ_DONE,
501    eSCREEN_AUTO_POWER,
502    eSCREEN_RATINGS,
503    eSCREEN_RATINGS_LOCK,
504    eSCREEN_RATINGS_LIMITS,
505    eSCREEN_RATINGS_TV,
506    eSCREEN_RATINGS_MOVIES,
507        eSCREEN_RATINGS_RRT_DIM,
508        eSCREEN_RATINGS_RRT_VAL,
509        eSCREEN_RATINGS_RRT_UPDATE,
510    eSCREEN_PIN_VERIFY_LIVE,
511    eSCREEN_PIN_VERIFY_RATINGS,
512    eSCREEN_PIN_VERIFY_RESET,
513    eSCREEN_PIN_NEW,
514    eSCREEN_PIN_CONFIRM,
515    eSCREEN_WRONG_PIN_LIVE,
516    eSCREEN_WRONG_PIN_RATINGS,
517    eSCREEN_WRONG_PIN_RESET,
518    eSCREEN_MISMATCHED_PINS,
519    eSCREEN_BANNER_SMALL,
520    eSCREEN_GUIDE,
521    eSCREEN_SCREENSAVER,
522    eSCREEN_POWER_OFF,
523    eSCREEN_TIMEZONE,
524    eSCREEN_STATUS,
525/*    eSCREEN_DEBUG,*/
526 /*   BSCREEN_DIAG_SCREEN_IDS,*/
527        eSCREEN_DIAG_MENU,
528        eSCREEN_SYS_INFO,
529        eSCREEN_DTA_STATUS,
530        eSCREEN_MSO_INFO,
531        eSCREEN_TUNER_STATUS,
532        eSCREEN_CH_STATUS,
533        eSCREEN_CH_MAP_STATUS,
534        eSCREEN_MSG_STATUS,
535        eSCREEN_CODE_OBJECTS,
536        eSCREEN_CODE_DOWNLOAD,
537        eSCREEN_DECODER_STATUS,
538        eSCREEN_VIDEO_FORMAT,
539        eSCREEN_CONFIRM_CHANGE, 
540        eSCREEN_SD_OUTPUT_OPTIONS,
541        eSCREEN_MAX
542}bapp_screen_id_t;
543
544#define eSCREEN_BANNER  eSCREEN_NULL
545
546/* Types of buttons and attibutes*/
547typedef enum bbutton_type_t
548{
549    eBUTTON_MENU            = 0x1,
550    eBUTTON_RADIO           = 0x2,
551    eBUTTON_CHECK           = 0x4,
552        eBUTTON_CHECK_LOCK      = 0x8,
553    eBUTTON_DESC_BOX        = 0x10,
554    eBUTTON_MAX
555}bbutton_type_t;
556
557/* Button states */
558typedef enum bbutton_state_t
559{
560    eBUTTON_STATE_OFF       = 0x0,
561    eBUTTON_STATE_ON        = 0x1,
562    eBUTTON_STATE_SELECTED  = 0x2,
563    eBUTTON_STATE_MAX
564}bbutton_state_t;
565
566typedef enum tv_ratings_position_t
567{
568        ePOS_TV_Y,
569        ePOS_TV_Y7,
570        ePOS_TV_Y7_FV,
571        ePOS_TV_G,
572        ePOS_TV_PG,
573        ePOS_TV_PG_D,
574        ePOS_TV_PG_L,
575        ePOS_TV_PG_S,
576        ePOS_TV_PG_V,
577        ePOS_TV_14,
578        ePOS_TV_14_D,
579        ePOS_TV_14_L,
580        ePOS_TV_14_S,
581        ePOS_TV_14_V,
582        ePOS_TV_MA,
583        ePOS_TV_MA_L,
584        ePOS_TV_MA_S,
585        ePOS_TV_MA_V,
586        ePOS_TV_LAST
587}tv_ratings_position_t;
588
589/* Button info structure */
590typedef struct bbutton_t
591{
592    bbutton_type_t      type;
593    unsigned short      x;
594    unsigned short      y;
595    unsigned short      width;
596    unsigned short      height;
597    btext_id_t          text_id;
598    btext_id_t          desc_text_id;
599    bapp_screen_id_t    next_screen_id;
600    bapp_screen_id_t    next_screen_back_id;
601        unsigned short      right_justify_text;
602        unsigned int            background_color;
603}bbutton_t;
604
605typedef enum bevent_type_t
606{
607        eS_EVENT_IR,
608    eS_EVENT_IDLE,
609    eS_EVENT_SETUP,
610    eS_EVENT_SETUP_DONE,
611    eS_EVENT_SELECTED,
612    eS_EVENT_CHECKED,
613    eS_EVENT_PROGRESS,
614    eS_EVENT_DONE,
615    eS_EVENT_REDRAW,
616    eS_EVENT_CANCEL,
617    eS_EVENT_MAX
618}bevent_type_t;
619
620/* Screen event structure */
621typedef struct bscreen_event_t
622{
623    bevent_type_t   type;
624    unsigned int    id;
625    void *data;
626}bscreen_event_t;
627
628/* Screen data structure */
629typedef struct bscreen_t
630{
631    btext_id_t          title_text_id;
632    btext_id_t          desc_text_id;
633    btext_id_t          help_text_id;
634    uint16_t            top_banner_height;
635    unsigned char       button_selection;
636    unsigned char       button_checked;
637    unsigned char       num_buttons;
638    unsigned int        idle_timeout;
639    bapp_screen_id_t    last_screen_id;
640    bbutton_t         * p_button_array;
641    void (*draw)(void *p_app, void *p_screen);
642    int (*handle_event)(void *p_app, void *p_screen, bscreen_event_t *p_event);
643    unsigned int        local_state;
644}bscreen_t;
645
646
647/*
648Summary:
649    screen draw callback functions.
650*/
651void screen_null_draw(void *v_app, void *v_screen);
652
653/*
654Summary:
655    screen event handler callback functions.
656*/
657int screen_picture_event(void *v_app, void *v_screen, 
658                               bscreen_event_t *p_event);
659int screen_sound_event(void *v_app, void *v_screen,
660                               bscreen_event_t *p_event);
661int screen_antenna_event(void *v_app, void *v_screen,
662                               bscreen_event_t *p_event);
663#if 0
664int screen_captions_event(void *v_app, void *v_screen,
665                               bscreen_event_t *p_event);
666int screen_captions_on_off_event(void *v_app, void *v_screen,
667                               bscreen_event_t *p_event);
668int screen_captions_basic_event(void *v_app, void *v_screen,
669                               bscreen_event_t *p_event);
670#endif
671int screen_captions_advanced_event(void *v_app, void *v_screen, 
672                               bscreen_event_t *p_event);
673int screen_captions_font_options_event(void *v_app, void *v_screen, 
674                               bscreen_event_t *p_event);
675int screen_captions_back_options_event(void *v_app, void *v_screen, 
676                               bscreen_event_t *p_event);
677int screen_captions_font_event(void *v_app, void *v_screen, 
678                               bscreen_event_t *p_event);
679int screen_captions_font_size_event(void *v_app, void *v_screen, 
680                               bscreen_event_t *p_event);
681int screen_captions_font_style_event(void *v_app, void *v_screen, 
682                               bscreen_event_t *p_event);
683int screen_captions_font_color_event(void *v_app, void *v_screen, 
684                               bscreen_event_t *p_event);
685int screen_captions_font_opacity_event(void *v_app, void *v_screen, 
686                               bscreen_event_t *p_event);
687int screen_captions_back_color_event(void *v_app, void *v_screen, 
688                               bscreen_event_t *p_event);
689int screen_captions_back_opacity_event(void *v_app, void *v_screen, 
690                               bscreen_event_t *p_event);
691int screen_captions_edge_color_event(void *v_app, void *v_screen, 
692                               bscreen_event_t *p_event);
693int screen_captions_edge_type_event(void *v_app, void *v_screen, 
694                               bscreen_event_t *p_event);
695int screen_captions_reset_event(void *v_app, void *v_screen, 
696                               bscreen_event_t *p_event);
697int screen_language_event(void *v_app, void *v_screen,
698                               bscreen_event_t *p_event);
699int screen_setup_event(void *v_app, void *v_screen,
700                               bscreen_event_t *p_event);
701int screen_ch_scan_event(void *v_app, void *v_screen,
702                               bscreen_event_t *p_event);
703int screen_ch_scan_progress_event(void *v_app, void *v_screen,
704                               bscreen_event_t *p_event);
705int screen_reset_event(void *v_app, void *v_screen, 
706                               bscreen_event_t *p_event);
707int screen_wiz_welcome_event(void *v_app, void *v_screen, 
708                               bscreen_event_t *p_event);
709int screen_wiz_language_event(void *v_app, void *v_screen,
710                               bscreen_event_t *p_event);
711int screen_wiz_ch_scan_event(void *v_app, void *v_screen,
712                               bscreen_event_t *p_event);
713int screen_wiz_done_event(void *v_app, void *v_screen, 
714                               bscreen_event_t *p_event);
715int screen_auto_power_event(void *v_app, void *v_screen,
716                               bscreen_event_t *p_event);
717int screen_ratings_event(void *v_app, void *v_screen,
718                               bscreen_event_t *p_event);
719int screen_ratings_lock_event(void *v_app, void *v_screen, 
720                               bscreen_event_t *p_event);
721int screen_ratings_limits_event(void *v_app, void *v_screen, 
722                               bscreen_event_t *p_event);
723int screen_ratings_tv_event(void *v_app, void *v_screen, 
724                               bscreen_event_t *p_event);
725const int screen_ratings_tv_pos2dim(int button_position);
726const int screen_ratings_tv_pos2value(int button_position);
727const int screen_ratings_tv_xds2pos(int xds_tv_rating);
728const int screen_ratings_movie_xds2pos(int xds_movie_rating);
729
730int screen_ratings_movies_event(void *v_app, void *v_screen, 
731                               bscreen_event_t *p_event);
732int screen_ratings_rrt_dim_event(void *v_app, void *v_screen, 
733                                 bscreen_event_t *p_event);
734int screen_ratings_rrt_val_event(void *v_app, void *v_screen, 
735                                 bscreen_event_t *p_event);
736int screen_ratings_rrt_update_event(void *v_app, void *v_screen, 
737                                    bscreen_event_t *p_event);
738
739int screen_pin_event(void *v_app, void *v_screen,
740                               bscreen_event_t *p_event);
741int screen_wrong_pin_event(void *v_app, void *v_screen, 
742                               bscreen_event_t *p_event);
743int screen_banner_event(void *v_app, void *v_screen,
744                               bscreen_event_t *p_event);
745int screen_guide_event(void *v_app, void *v_screen,
746                               bscreen_event_t *p_event);
747int screen_screensaver_event(void *v_app, void *v_screen,
748                             bscreen_event_t *p_event);
749int screen_power_off_event(void *v_app, void *v_screen,
750                           bscreen_event_t *p_event);
751
752/*
753Summary:
754    default screen callback functions.
755*/
756void bscreen_default_setup(void *v_app, void *v_screen);
757int bscreen_default_idle(void *v_app, void *v_screen);
758int bscreen_default_event(void *v_app, void *v_screen, 
759                               bscreen_event_t *p_event);
760int bscreen_tv_event(void *v_app, void *v_screen, 
761                               bscreen_event_t *p_event);
762void bscreen_default_draw(void *v_app, void *v_screen);
763void bscreen_antenna_draw(void *v_app, void *v_screen);
764void bscreen_ch_scan_progress_draw(void *v_app, void *v_screen);
765void bscreen_wiz_welcome_draw(void *v_app, void *v_screen);
766void bscreen_wiz_ch_scan_draw(void *v_app, void *v_screen);
767void bscreen_wiz_done_draw(void *v_app, void *v_screen);
768void bscreen_ratings_tv_draw(void *v_app, void *v_screen);
769void bscreen_pin_draw(void *v_app, void *v_screen);
770void bscreen_auto_power_draw(void *v_app, void *v_screen);
771void bscreen_popup(void *v_app, void *v_screen);
772void bscreen_popup_draw(void *v_app, void *v_screen, btext_id_t title, btext_id_t desc);
773void bscreen_banner_draw(void *v_app, void *v_screen);
774void bscreen_guide_draw(void *v_app, void *v_screen);
775void bscreen_screensaver_draw(void *v_app, void *v_screen);
776void bscreen_power_off_draw(void *v_app, void *v_screen);
777void bscreen_rrt_dim_draw(void *v_app, void *v_screen);
778void bscreen_rrt_val_draw(void *v_app, void *v_screen);
779
780void bscreen_debug_draw(void *v_app, void *v_screen);
781int bscreen_debug_event(void *v_app, void *v_screen, 
782                               bscreen_event_t *p_event);
783void bscreen_status_draw(void *v_app, void *v_screen);
784int bscreen_status_event(void *v_app, void *v_screen, 
785                               bscreen_event_t *p_event);
786void bscreen_timezone_draw(void *v_app, void *v_screen);
787int bscreen_timezone_event(void *v_app, void *v_screen, 
788                               bscreen_event_t *p_event);
789
790
791
792
793void bscreen_diag_menu_draw(void *v_app, void *v_screen);
794int bscreen_diag_menu_event(void *v_app, void *v_screen, 
795                                                        bscreen_event_t *p_event);
796
797void bscreen_sys_info_draw(void *v_app, void *v_screen);
798int bscreen_sys_info_event(void *v_app, void *v_screen, 
799                                                   bscreen_event_t *p_event);
800
801void bscreen_dta_status_draw(void *v_app, void *v_screen);
802int bscreen_dta_status_event(void *v_app, void *v_screen, 
803                                                   bscreen_event_t *p_event);
804
805void bscreen_tuner_status_draw(void *v_app, void *v_screen);
806int bscreen_tuner_status_event(void *v_app, void *v_screen,
807                                                   bscreen_event_t *p_event);
808
809void bscreen_decoder_status_draw(void *v_app, void *v_screen);
810int bscreen_decoder_status_event(void *v_app, void *v_screen,
811                                                   bscreen_event_t *p_event);
812
813void bscreen_mso_info_draw(void *v_app, void *v_screen);
814int bscreen_mso_info_event(void *v_app, void *v_screen, 
815                                                   bscreen_event_t *p_event);
816
817void bscreen_ch_status_draw(void *v_app, void *v_screen);
818int bscreen_ch_status_event(void *v_app, void *v_screen,
819                                                   bscreen_event_t *p_event);
820int bscreen_ch_map_status_event(void *v_app, void *v_screen, 
821                                                        bscreen_event_t *p_event);
822void bscreen_ch_map_status_draw(void *v_app, void *v_screen);
823
824void bscreen_code_objects_draw(void *v_app, void *v_screen);
825int bscreen_code_objects_event(void *v_app, void *v_screen, 
826                                                   bscreen_event_t *p_event);
827void bscreen_msg_status_draw(void *v_app, void *v_screen);
828int bscreen_msg_status_event(void *v_app, void *v_screen, 
829                                                         bscreen_event_t *p_event);
830
831void bscreen_code_download_draw(void *v_app, void *v_screen);
832int bscreen_code_download_event(void *v_app, void *v_screen, 
833                                                   bscreen_event_t *p_event);
834void bscreen_video_format_draw(void *v_app, void *v_screen);
835int bscreen_video_format_event(void *v_app, void *v_screen,
836                                                   bscreen_event_t *p_event);
837
838void bscreen_confirm_change_draw(void *v_app, void *v_screen);
839int bscreen_confirm_change_event(void *v_app, void *v_screen, 
840                                                   bscreen_event_t *p_event);
841
842#ifdef CONFIG_FACTORY_TEST
843void factory_draw(void *v_app, void *v_screen);
844int factory_handle_event(void *v_app, void *v_screen, bscreen_event_t *p_event);
845#endif
846
847/* SD output options configuration */
848int screen_sd_output_options_config_event(void *v_app, void *v_screen, bscreen_event_t *p_event);
849/* HD output options configuration */
850int screen_hd_output_options_config_event(void *v_app, void *v_screen, bscreen_event_t *p_event);
851
852/*
853Summary:
854    screen button arrays.
855*/
856extern bbutton_t g_buttons_main[];
857#define g_buttons_main_num      5
858
859extern bbutton_t g_buttons_picture[];
860#define g_buttons_picture_num   2
861extern bbutton_t g_buttons_sound[];
862#define g_buttons_sound_num     2
863
864extern bbutton_t g_buttons_av[];
865#define g_buttons_av_num                4
866
867extern bbutton_t g_buttons_language[];
868#define g_buttons_language_num  3
869extern bbutton_t g_buttons_setup[];
870
871#ifdef CONFIG_EIA_708
872#define g_buttons_setup_num     6
873#else
874#define g_buttons_setup_num     5
875#endif
876
877extern bbutton_t g_buttons_ch_scan[];
878#define g_buttons_ch_scan_num   2
879extern bbutton_t g_buttons_smart_ch_scan[];
880#define g_buttons_smart_ch_scan_num   3
881extern bbutton_t g_buttons_reset[];
882#define g_buttons_reset_num   2
883extern bbutton_t g_buttons_wiz_welcome[];
884#define g_buttons_wiz_welcome_num   1
885extern bbutton_t g_buttons_wiz_language[];
886#define g_buttons_wiz_language_num  3
887extern bbutton_t g_buttons_wiz_ch_scan[];
888#define g_buttons_wiz_ch_scan_num  2
889extern bbutton_t g_buttons_wiz_smart_ch_scan[];
890#define g_buttons_wiz_smart_ch_scan_num  3
891extern bbutton_t g_buttons_wiz_mismatched_pins[];
892#define g_buttons_wiz_mismatched_pins_num   1
893extern bbutton_t g_buttons_wiz_done[];
894#define g_buttons_wiz_done_num   1
895extern bbutton_t g_buttons_auto_power[];
896#define g_buttons_auto_power_num  4
897extern bbutton_t g_buttons_ratings[];
898#define g_buttons_ratings_num  3
899extern bbutton_t g_buttons_ratings_lock[];
900#define g_buttons_ratings_lock_num   3
901extern bbutton_t g_buttons_ratings_limits[];
902#define g_buttons_ratings_limits_num   3
903extern bbutton_t g_buttons_ratings_tv[];
904#define g_buttons_ratings_tv_num  ePOS_TV_LAST
905#if 0
906extern bbutton_t g_buttons_captions[];
907#define g_buttons_captions_num   3
908extern bbutton_t g_buttons_captions_on_off[];
909#define g_buttons_captions_on_off_num   2
910extern bbutton_t g_buttons_captions_basic[];
911#define g_buttons_captions_basic_num   6
912#endif
913extern bbutton_t g_buttons_captions_advanced[];
914#define g_buttons_captions_advanced_num   3
915extern bbutton_t g_buttons_captions_font_options[];
916#define g_buttons_captions_font_options_num   5
917extern bbutton_t g_buttons_captions_back_options[];
918#define g_buttons_captions_back_options_num   4
919extern bbutton_t g_buttons_captions_font[];
920#define g_buttons_captions_font_num   8
921extern bbutton_t g_buttons_captions_font_size[];
922#define g_buttons_captions_font_size_num   4
923extern bbutton_t g_buttons_captions_font_style[];
924#define g_buttons_captions_font_style_num   3
925extern bbutton_t g_buttons_captions_color[];
926#define g_buttons_captions_color_num   9
927extern bbutton_t g_buttons_captions_font_opacity[];
928extern bbutton_t g_buttons_captions_back_opacity[];
929#define g_buttons_captions_opacity_num   5
930extern bbutton_t g_buttons_captions_reset[];
931#define g_buttons_captions_reset_num   2
932extern bbutton_t g_buttons_captions_edge_type[];
933#define g_buttons_captions_edge_type_num   6
934extern bbutton_t g_buttons_captions_font_color[];
935#define g_buttons_captions_font_color_num   9
936extern bbutton_t g_buttons_captions_edge_color[];
937#define g_buttons_captions_edge_color_num   9
938extern bbutton_t g_buttons_timezone[];
939#define g_buttons_timezone_num   6
940
941
942extern bbutton_t g_buttons_ratings_movies[];
943#define g_buttons_ratings_movies_num  7
944
945#define MAX_RRT_DIM_BUTTONS 9
946#define MAX_RRT_VAL_BUTTONS 9
947extern bbutton_t g_buttons_ratings_rrt_dim[];
948#define g_buttons_ratings_rrt_dim_num MAX_RRT_DIM_BUTTONS;
949extern bbutton_t g_buttons_ratings_rrt_val[];
950#define g_buttons_ratings_rrt_val_num MAX_RRT_VAL_BUTTONS;
951
952extern bbutton_t g_buttons_ratings_rrt_update[];
953#define g_buttons_ratings_rrt_update_num 2
954
955extern bbutton_t g_buttons_wrong_pin_live[];
956#define g_buttons_wrong_pin_live_num   1
957extern bbutton_t g_buttons_wrong_pin_ratings[];
958#define g_buttons_wrong_pin_ratings_num   2
959extern bbutton_t g_buttons_wrong_pin_reset[];
960#define g_buttons_wrong_pin_reset_num   2
961extern bbutton_t g_buttons_mismatched_pins[];
962#define g_buttons_mismatched_pins_num   2
963
964/* HD configuration */
965extern bbutton_t g_buttons_sd_output_options_config[];
966#define g_buttons_sd_output_options_config_num  3
967
968extern bbutton_t g_buttons_hd_output_options_config[];
969#define g_buttons_hd_output_options_config_num  4
970
971extern bbutton_t g_buttons_video_output_format[];
972#define g_buttons_video_output_format_num 5
973
974extern bbutton_t g_buttons_video_output_format_confirm[];
975#define g_buttons_video_output_format_confirm_num 2
976
977/* Banner state types */
978
979typedef enum banner_mode_t
980{
981    eLS_BANNER_OFF,
982    eLS_BANNER_SMALL,
983    eLS_BANNER_BIG,
984    eLS_BANNER_MAX
985}banner_mode_t;
986
987typedef struct banner_state_t
988{
989    char            majorCh[3];
990    char            minorCh[3];
991    unsigned char   majorChIndex;
992    unsigned char   minorChIndex;
993    unsigned char   dot;
994    unsigned char   enter;
995    banner_mode_t   mode;
996    bscreen_event_t event;
997    unsigned int    repeat_timeout;
998    unsigned int    repeat_rate;
999    unsigned int    timeout;
1000    unsigned int    ten_key_timeout;
1001    unsigned int    volume_timeout;
1002    char            volume_dirty;
1003    unsigned int    SAP_timeout;
1004        char            SAP_dirty;
1005    unsigned int    CC_timeout;
1006        char            CC_dirty;
1007        unsigned int    auto_power_restart_timeout;
1008        char            auto_power_one_min_warning;
1009        unsigned int    DSUB_timeout;
1010        char            DSUB_dirty;
1011}banner_state_t;
1012
1013extern banner_state_t g_banner_state;
1014
1015
1016/* Screensaver State */
1017typedef struct screensaver_state_t
1018{
1019    unsigned int image_swap_timeout;
1020}screensaver_state_t;
1021
1022extern screensaver_state_t g_screensaver_state;
1023
1024/* Guide State */
1025
1026typedef struct guide_state_t
1027{
1028    unsigned int    selection;
1029        int                     column;
1030    unsigned int    offset;
1031    char            ch_num_str[32];
1032    bscreen_event_t event;
1033    unsigned int    repeat_timeout;
1034    unsigned int    repeat_rate;
1035    unsigned char   update_progress;
1036}guide_state_t;
1037
1038extern guide_state_t g_guide_state;
1039
1040/*
1041Summary:
1042    Use the this function to get a UNI string.
1043*/
1044
1045void bscreen_get_string(
1046                    bapp_lang_t e_lang,         /* Language enum */
1047                    btext_id_t e_text_id,       /* Text enum */
1048                    unsigned int *p_uni_str,    /* Buffer to put UNI string into */
1049                    unsigned int *str_len       /* The string length. */
1050                    );
1051/*
1052Summary:
1053    Draw the buttons for the screen.
1054Description:
1055    Draw the buttons for the screen.
1056*/
1057void bscreen_draw_buttons(
1058                        void *v_app,            /* Opaque app reference */
1059                        void *v_screen          /* Opaque screen reference */
1060                        );
1061
1062/*
1063Summary:
1064    Draw a button for the screen.
1065Description:
1066    Draw a button for the screen.
1067*/
1068void bscreen_draw_button(void *v_app,                   /* application structure */
1069                    const bbutton_t *p_button,              /* button info structure */
1070                    int selected,                       /* Button selected when non-zero */
1071                    int checked,                         /* Button checked when non-zero */
1072                                        int idx                                         /* button index or -1 for non index button */
1073                    );
1074
1075/*
1076Summary:
1077    Draw a button but override the p_button->text_id text with str_text.
1078Description:
1079    Draw a button but override the p_button->text_id text with str_text.
1080*/
1081void bscreen_draw_button_custom_text(void *v_app,                   /* application structure */
1082                                     const bbutton_t *p_button,     /* button info structure */
1083                                                             char *str_text,                /* button text to use (overrides p_button->text_id) */
1084                                                                         char *str_desc_text,           /* description text to use (overrides p_button->desc_text_id) */
1085                                     int selected,                  /* Button selected when non-zero */
1086                                     int checked,                   /* Button checked when non-zero */
1087                                                             int idx                                            /* button index or -1 for non index button */
1088                                    );
1089/*
1090Summary:
1091    Draw a progress meter for the screen.
1092Description:
1093    Draw a progress meter for the screen.
1094*/
1095void bscreen_draw_progress(void * v_app,       /* Opague app reference */ 
1096                unsigned int x,                /* x coord for progress meter */
1097                unsigned int y,                /* y coord for progress meter */
1098                unsigned int width,            /* width of progress meter */
1099                unsigned int height,           /* height of progress meter */
1100                unsigned int border_width,     /* width of meter border */
1101                unsigned int border_color,     /* color of meter border */
1102                unsigned int background_color, /* background color behind thumb */
1103                unsigned int percent,          /* percentage thumb size (0-max_percent) */
1104                unsigned int max_percent);     /* max percentage to draw */
1105
1106/*
1107Summary:
1108    Draw a pin entry field for the screen.
1109Description:
1110    Draw a pin entry field for the screen.
1111*/
1112void bscreen_draw_pin(void * v_app,            /* Opague app reference */ 
1113                unsigned int x,                /* x coord for pin field */
1114                unsigned int y,                /* y coord for pin field */
1115                unsigned int width,            /* width of pin field */
1116                unsigned int height,           /* height of pin field*/
1117                unsigned int inc_x,            /* x increment between digits */
1118                unsigned int selection,        /* selected digit */
1119                unsigned int field);           /* pin field to draw */
1120
1121/*
1122Summary:
1123    Draw signal level meter in banner
1124Description:
1125    Draw signal level meter in banner
1126*/
1127void bscreen_draw_banner_signal_level(void * v_app,                   /* Opaque app reference */
1128                                      unsigned int signal);           /* signal level         */
1129
1130
1131#define DEFAULT_PIN 0x04030201
1132#endif /* BSCREEN_H__ */
Note: See TracBrowser for help on using the repository browser.