source: svn/newcon3bcm2_21bu/rockford/lib/digital_closed_caption/include/bdcc.h

Last change on this file was 76, checked in by megakiss, 10 years ago

1W 대기전력을 만족시키기 위하여 POWEROFF시 튜너를 Standby 상태로 함

  • Property svn:executable set to *
File size: 13.9 KB
Line 
1/***************************************************************************
2 *     (c)2002-2008 Broadcom Corporation
3 * 
4 *  This program is the proprietary software of Broadcom Corporation and/or its licensors,
5 *  and may only be used, duplicated, modified or distributed pursuant to the terms and
6 *  conditions of a separate, written license agreement executed between you and Broadcom
7 *  (an "Authorized License").  Except as set forth in an Authorized License, Broadcom grants
8 *  no license (express or implied), right to use, or waiver of any kind with respect to the
9 *  Software, and Broadcom expressly reserves all rights in and to the Software and all
10 *  intellectual property rights therein.  IF YOU HAVE NO AUTHORIZED LICENSE, THEN YOU
11 *  HAVE NO RIGHT TO USE THIS SOFTWARE IN ANY WAY, AND SHOULD IMMEDIATELY
12 *  NOTIFY BROADCOM AND DISCONTINUE ALL USE OF THE SOFTWARE. 
13 *   
14 *  Except as expressly set forth in the Authorized License,
15 *   
16 *  1.     This program, including its structure, sequence and organization, constitutes the valuable trade
17 *  secrets of Broadcom, and you shall use all reasonable efforts to protect the confidentiality thereof,
18 *  and to use this information only in connection with your use of Broadcom integrated circuit products.
19 *   
20 *  2.     TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
21 *  AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES, REPRESENTATIONS OR
22 *  WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT TO
23 *  THE SOFTWARE.  BROADCOM SPECIFICALLY DISCLAIMS ANY AND ALL IMPLIED WARRANTIES
24 *  OF TITLE, MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE,
25 *  LACK OF VIRUSES, ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION
26 *  OR CORRESPONDENCE TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING OUT OF
27 *  USE OR PERFORMANCE OF THE SOFTWARE.
28 * 
29 *  3.     TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM OR ITS
30 *  LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL, INDIRECT, OR
31 *  EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY WAY RELATING TO YOUR
32 *  USE OF OR INABILITY TO USE THE SOFTWARE EVEN IF BROADCOM HAS BEEN ADVISED OF
33 *  THE POSSIBILITY OF SUCH DAMAGES; OR (ii) ANY AMOUNT IN EXCESS OF THE AMOUNT
34 *  ACTUALLY PAID FOR THE SOFTWARE ITSELF OR U.S. $1, WHICHEVER IS GREATER. THESE
35 *  LIMITATIONS SHALL APPLY NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF
36 *  ANY LIMITED REMEDY.
37 *
38 * $brcm_Workfile: bdcc.h $
39 * $brcm_Revision: Hydra_Software_Devel/4 $
40 * $brcm_Date: 12/2/09 11:48a $
41 *
42 * Module Description:
43 *
44 * Revision History:
45 *
46 * $brcm_Log: /rockford/lib/digital_closed_caption/include/bdcc.h $
47 *
48 * Hydra_Software_Devel/4   12/2/09 11:48a haisongw
49 * SW7400-2627:support both off-screen buffer and frame-buffer for DCC
50 *
51 * Hydra_Software_Devel/3   5/15/09 3:45p garetht
52 * PR55190: Allow use of shared frame buffers and shared bwin for 708 app
53 * lib
54 *
55 * Hydra_Software_Devel/2   10/2/08 6:37p garetht
56 * PR 47473: Add window color and opacity override to DCC library
57 *
58 * Hydra_Software_Devel/1   9/16/08 7:17p cttok
59 * PR46977: imported from nexus
60 *
61 * 2   6/6/08 5:42p ttrammel
62 * PR42968: Rename APIs to match App Lib convention.
63 *
64 * 1   5/1/08 10:24a garetht
65 * PR42241: Merge to main branch
66 *
67 * CaptionDevelopment/1   4/28/08 5:00p garetht
68 * PR42241: Check-In initial version of Nexus Digital Closed Caption
69 *
70 * 1   4/28/08 2:32p garetht
71 * PR42241: Check in initial version of Digital Closed Caption library
72 *
73 ***************************************************************************/
74
75#ifndef BDCC_H
76#define BDCC_H
77
78#ifdef __cplusplus
79extern "C" {
80#endif
81
82#include "bdcc_cfg.h"
83#include "bstd_defs.h"
84
85typedef enum BDCC_608_Service
86{
87    BDCC_Min_608_Serivce     = 1,
88    BDCC_Max_608_Service    = 4
89   
90} BDCC_608_Service;
91
92
93typedef enum BDCC_708_Service
94{
95    BDCC_Min_708_Serivce     = 1,
96    BDCC_Max_708_Service    = 63
97   
98} BDCC_708_Service;
99
100/*
101** The EIA standard defines the following pen sizes.
102*/
103typedef enum BDCC_PenSize
104{
105        BDCC_PenSize_Small              = 0,
106        BDCC_PenSize_Standard   = 1,
107        BDCC_PenSize_Large              = 2,
108        BDCC_PenSize_Max_Size   = 3
109       
110} BDCC_PenSize ;
111
112/*
113** The EIA standard defines the following pen styles.
114*/
115typedef enum BDCC_PenStyle
116{
117        BDCC_PenStyle_Standard                  = 0,
118        BDCC_PenStyle_Italics                   = 1,
119        BDCC_PenStyle_Underline                 = 2,
120        BDCC_PenStyle_Italics_Underline = 3,
121        BDCC_PenStyle_Max_Pen_Style             = 4
122
123} BDCC_PenStyle ;
124
125
126/*
127** The EIA-708 standard specifies 8 font styles.
128*/
129typedef enum BDCC_FontStyle
130{
131        BDCC_FontStyle_Default          = 0,
132        BDCC_FontStyle_MonoSerifs       = 1,
133        BDCC_FontStyle_PropSerifs       = 2,
134        BDCC_FontStyle_Mono             = 3,
135        BDCC_FontStyle_Prop             = 4,
136        BDCC_FontStyle_Casual           = 5,
137        BDCC_FontStyle_Cursive          = 6,
138        BDCC_FontStyle_SmallCaps        = 7,
139        BDCC_FontStyle_Max_Value    = 8
140       
141} BDCC_FontStyle ;
142
143/*
144** Pen and window colors have an associated opacity, enum'ed here.
145** The Translucent opacity is alpha blending with some unspecified alpha value.
146*/
147typedef enum BDCC_Opacity
148{
149        BDCC_Opacity_Solid                      = 0,
150        BDCC_Opacity_Flash                      = 1,
151        BDCC_Opacity_Translucent        = 2,
152        BDCC_Opacity_Transparent        = 3
153       
154} BDCC_Opacity ;
155
156/*
157** The EIA-708 standard defines the following edge (outline) styles.
158*/
159typedef enum BDCC_Edge
160{
161        BDCC_Edge_Style_None                            = 0,
162        BDCC_Edge_Style_Raised                  = 1,
163        BDCC_Edge_Style_Depressed                       = 2,
164        BDCC_Edge_Style_Uniform                 = 3,
165        BDCC_Edge_Style_LeftDropShadow  = 4,
166        BDCC_Edge_Style_RightDropShadow = 5,
167        BDCC_Edge_Style_Max_Value
168       
169} BDCC_Edge ;
170
171/*
172** The EIA-708 standard specifies 4 text justifications.
173*/
174typedef enum BDCC_Justify
175{
176        BDCC_Justify_eLeft      = 0,
177        BDCC_Justify_eRight     = 1,
178        BDCC_Justify_eCenter= 2, 
179        BDCC_Justify_eFull      = 3
180} BDCC_Justify ;
181
182
183/*
184** The EIA-708 standard specifies 4 print directions.
185*/
186typedef enum BDCC_Direction
187{
188        BDCC_Direction_eLeftToRight     = 0,
189        BDCC_Direction_eRightToLeft     = 1,
190        BDCC_Direction_eTopToBottom     = 2,
191        BDCC_Direction_eBottomToTop     = 3
192} BDCC_Direction ;
193
194
195/*
196** The default edge width, this be overridden by the "application".
197*/
198#define BDCC_Edge_Width 1
199
200/*
201** The following attributes can be overriden by the viewer.
202*/
203typedef struct B_Dcc_OverRides
204{
205        BDCC_PenSize    PenSize ;
206        BDCC_FontStyle  FontStyle ;   
207        unsigned int    WinColor ;     
208        BDCC_Opacity    WinOpacity ;   
209        unsigned int            FgColor ;     
210        BDCC_Opacity    FgOpacity ;   
211        unsigned int            BgColor ; 
212        BDCC_Opacity    BgOpacity ; 
213        unsigned int            EdgeColor ; 
214        BDCC_Edge       EdgeType ; 
215        BDCC_PenStyle   PenStyle;
216
217} B_Dcc_OverRides ;
218
219/*
220** EIA specified a color format of RGB222
221*/ 
222typedef unsigned char BDCC_Color;
223
224/*
225** UTF32 unicode format uses 32 bits
226*/ 
227typedef unsigned int BDCC_UTF32;
228
229/*
230** Per the EIA documentation: if CC data is not received for 30 seconds,
231** the screen should be cleared.
232*/
233#define BDCC_Data_Timeout_MSecs ( 1000 * 30 )
234
235/*
236** The following masks are used to manage attributes specified both
237** in the MPEG stream and by the "viewer".
238*/
239#define BDCC_ATTR_MASK_NONE                             0x00000000
240
241#define BDCC_ATTR_MASK_ANCHOR                   0x00000001
242#define BDCC_ATTR_MASK_BORDER                           0x00000002
243#define BDCC_ATTR_MASK_CLEARWINDOW              0x00000004
244#define BDCC_ATTR_MASK_DEFINED_CLR              0x00000008
245#define BDCC_ATTR_MASK_DEFINED_SET              0x00000010
246#define BDCC_ATTR_MASK_EDGECOLOR                        0x00000020
247#define BDCC_ATTR_MASK_EDGETYPE                 0x00000040
248#define BDCC_ATTR_MASK_EFFECT                           0x00000080
249#define BDCC_ATTR_MASK_FILL                             0x00000100
250#define BDCC_ATTR_MASK_FONTSTYLE                        0x00000200
251#define BDCC_ATTR_MASK_ITALICS                  0x00000400
252#define BDCC_ATTR_MASK_JUSTIFY                  0x00000800
253#define BDCC_ATTR_MASK_LOCK                             0x00001000
254#define BDCC_ATTR_MASK_PENBG                            0x00002000
255#define BDCC_ATTR_MASK_PENFG                            0x00004000
256#define BDCC_ATTR_MASK_PENLOC                           0x00008000
257#define BDCC_ATTR_MASK_PENSIZE                  0x00010000
258#define BDCC_ATTR_MASK_PENSTYLEID               0x00020000
259#define BDCC_ATTR_MASK_PRINTDIR                 0x00040000
260#define BDCC_ATTR_MASK_RCCOUNT                  0x00080000
261#define BDCC_ATTR_MASK_SCROLLDIR                        0x00100000
262#define BDCC_ATTR_MASK_UNDERLINE                        0x00200000
263#define BDCC_ATTR_MASK_VISIBLE                  0x00400000
264#define BDCC_ATTR_MASK_WNDSTYLEID               0x00800000
265#define BDCC_ATTR_MASK_WORDWRAP                 0x01000000
266
267
268
269/********************************************
270 *
271 * Enum:                        DCCERR
272 *
273 * Description:
274 *
275 *   DCCERR enumerates the error codes returned
276 *   by the collection of DCC Libraries.
277 *
278 ********************************************/
279 typedef enum BDCC_Error
280 {
281        BDCC_Error_eSuccess = 0,
282        BDCC_Error_eObjectNotInitialized,
283        BDCC_Error_eInvalidParameter,
284        BDCC_Error_eOutputBufTooSmall,
285        BDCC_Error_eNullPointer,
286        BDCC_Error_eBadOutputType,
287        BDCC_Error_eBufferOverflow,
288        BDCC_Error_eArgOutOfRange,
289        BDCC_Error_eSequence,
290        BDCC_Error_eWrnPause,
291        BDCC_Error_eNoMemory
292       
293 } BDCC_Error ;
294
295 
296/********************************************
297 *
298 * Structure:           BDCC_OutputInfo
299 *
300 * Description:
301 *
302 *   The BDCC_OutputInfo structure holds the
303 *   information related to an output buffer.
304 *
305 ********************************************/
306typedef struct BDCC_OutputInfo
307{
308        /*
309         * pOutputBuf
310         *
311         * This points to a buffer into which
312         * DccXxx_Process() will copy output bytes.
313         */
314        unsigned char *                 pOutputBuf ;
315
316        /*
317         * OutputBufSize
318         *
319         * The size in bytes of the buffer pointed
320         * to by pOutputBuf.
321         */
322        unsigned int                    OutputBufSize ;
323
324        /*
325         * OutputBytesProduced
326         *
327         * the DccXxx_Process() function will update this
328         * field, indicating how many bytes were copied
329         * to the output buffer.
330         */
331        unsigned int                    OutputBytesProduced ;
332
333        /*
334         * DccError
335         *
336         * Recoverable errors related to processing for
337         * a particular output are reported here.
338         */
339        BDCC_Error                              DccError ;
340       
341} BDCC_OutputInfo ;
342
343
344/***************************************************************************
345Summary:
346        The CCGfx handle to the CCGfx object
347
348Description:
349        The CCGfx handle to the CCGfx object
350
351See Also:
352       
353****************************************************************************/
354typedef struct BDCC_WINLIB_Object *BDCC_WINLIB_Handle;
355
356
357
358/***************************************************************************
359Summary:
360        The handle to the winlib row
361
362Description:
363        The handle to the winlib row
364
365See Also:
366       
367****************************************************************************/
368typedef struct BDCC_WINLIB_Row *BDCC_WINLIB_hRow;
369
370
371
372/***************************************************************************
373Summary:
374        Winlib errors
375
376Description:
377        Winlib errors
378
379See Also:
380       
381****************************************************************************/
382typedef enum BDCC_WINLIB_ErrCode
383{
384        BDCC_WINLIB_SUCCESS,
385        BDCC_WINLIB_FAILURE,
386        BDCC_WINLIB_ERROR_NO_MEMORY
387} BDCC_WINLIB_ErrCode;
388
389
390
391/***************************************************************************
392Summary:
393        Winlib rectangle
394
395Description:
396        Winlib rectangle
397
398See Also:
399       
400****************************************************************************/
401typedef struct BDCC_WINLIB_Rect
402{
403        unsigned int x; /* can be < 0 */
404        unsigned int y; /* can be < 0 */
405        unsigned int width;
406        unsigned int height;
407} BDCC_WINLIB_Rect;
408
409
410typedef struct BDCC_WINLIB_Interface
411{
412
413        /*
414         * Callback functions to customer window library
415         */
416
417        BDCC_WINLIB_ErrCode (*CreateCaptionRow)(
418                BDCC_WINLIB_Handle hWinLibHandle, 
419                BDCC_WINLIB_hRow *row
420                );
421
422        BDCC_WINLIB_ErrCode (*DestroyCaptionRow)(
423                BDCC_WINLIB_hRow row
424                );
425
426        BDCC_WINLIB_ErrCode (*ClearCaptionRow)(
427                BDCC_WINLIB_hRow row,
428                BDCC_Opacity opacity,
429                unsigned char color
430                );
431
432        BDCC_WINLIB_ErrCode (*SetCharFGColor)(
433                BDCC_WINLIB_hRow row,
434                unsigned char ForeGroundColor,
435                BDCC_Opacity Opacity
436                );
437
438        BDCC_WINLIB_ErrCode (*SetCharBGColor)(
439                BDCC_WINLIB_hRow row,
440                unsigned char BackGroundColor,
441                BDCC_Opacity Opacity
442                );
443
444        BDCC_WINLIB_ErrCode (*SetCharEdgeColor)(
445                BDCC_WINLIB_hRow row,
446                unsigned char EdgeColor,
447                BDCC_Opacity Opacity
448                );
449
450        BDCC_WINLIB_ErrCode (*SetCharEdgeType)(
451                BDCC_WINLIB_hRow row,
452                BDCC_Edge EdgeType
453                );
454
455        BDCC_WINLIB_ErrCode (*SetFont)(
456                BDCC_WINLIB_hRow row,
457                BDCC_FontStyle fontStyle,
458                BDCC_PenSize penSize,
459                BDCC_PenStyle penStyle
460                );
461
462        BDCC_WINLIB_ErrCode (*SetCaptionRowZorder)(
463                BDCC_WINLIB_hRow row,
464                unsigned int zorder
465                );
466
467        BDCC_WINLIB_ErrCode (*SetCaptionRowClipRect)(
468                BDCC_WINLIB_hRow row,
469                const BDCC_WINLIB_Rect *pRect
470                );
471
472        BDCC_WINLIB_ErrCode (*SetCaptionRowDispRect)(
473                BDCC_WINLIB_hRow row,
474                const BDCC_WINLIB_Rect *pRect
475                );
476
477        BDCC_WINLIB_ErrCode (*GetCaptionRowTextRect)(
478                BDCC_WINLIB_hRow row,
479                BDCC_WINLIB_Rect *pRect
480                );
481
482
483        BDCC_WINLIB_ErrCode (*GetDisplayRect)(
484                BDCC_WINLIB_hRow row,
485                BDCC_WINLIB_Rect *pRect
486                );
487
488        BDCC_WINLIB_ErrCode (*GetSurfaceRect)(
489                BDCC_WINLIB_hRow row,
490                unsigned int *width,
491                unsigned int *height
492                );
493
494        BDCC_WINLIB_ErrCode (*GetMaxBoundingRect)(
495                BDCC_WINLIB_hRow row,
496                unsigned int numColumns,
497                BDCC_PenSize penSize,
498                BDCC_WINLIB_Rect *pRect
499                );
500
501        BDCC_WINLIB_ErrCode (*GetFrameBufferSize)(
502                BDCC_WINLIB_Handle hWinLibHandle,
503                unsigned int *width,
504                unsigned int *height
505                );
506
507        BDCC_WINLIB_ErrCode (*SetFrameBufferSize)(
508                BDCC_WINLIB_Handle hWinLibHandle,
509                unsigned int width,
510                unsigned int height
511                );
512    BDCC_WINLIB_ErrCode (*HideDisp)(
513        BDCC_WINLIB_Handle hWinLibHandle,
514        bool hide
515        );
516
517        BDCC_WINLIB_ErrCode (*UpdateScreen)(
518                BDCC_WINLIB_Handle hWinLibHandle
519                );
520
521        BDCC_WINLIB_ErrCode (*SetClipState)(
522                BDCC_WINLIB_hRow row,
523                bool clipState );
524
525        BDCC_WINLIB_ErrCode (*SetCaptionRowVisibility)(
526                BDCC_WINLIB_hRow row,
527                bool visible
528                );
529
530        int (*IsCaptionRowVisible)(
531                BDCC_WINLIB_hRow row
532                );
533
534#if FLASH_BY_2SURFACES
535        void (*RenderStart)(
536                BDCC_WINLIB_hRow row,
537                BDCC_WINLIB_hRow flashrow,
538                BDCC_Justify justification
539                );
540
541        int (*RenderChar)(
542                BDCC_WINLIB_hRow row,
543                BDCC_WINLIB_hRow flashrow,
544                BDCC_UTF32 ch
545                );
546
547        void (*RenderEnd)(
548                BDCC_WINLIB_hRow row,
549                BDCC_WINLIB_hRow flashrow
550                );
551
552#else
553        void (*RenderStart)(
554                BDCC_WINLIB_hRow row,
555                BDCC_Justify justification
556                );
557
558#if FLASH_BY_RERENDER
559        int (*RenderChar)(
560                BDCC_WINLIB_hRow row,
561                int flashCycleState,
562                BDCC_UTF32 ch
563                );
564#else
565        int (*RenderChar)(
566                BDCC_WINLIB_hRow row,
567                BDCC_UTF32 ch
568                );
569#endif
570        void (*RenderEnd)(
571                BDCC_WINLIB_hRow row
572                );
573#endif
574
575}BDCC_WINLIB_Interface;
576
577#ifdef __cplusplus
578}
579#endif
580
581#endif /* BDCC_H */
Note: See TracBrowser for help on using the repository browser.