source: svn/newcon3bcm2_21bu/BSEAV/api/include/bsettop_display.h @ 76

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

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

  • Property svn:executable set to *
File size: 43.6 KB
Line 
1/***************************************************************************
2 *     Copyright (c) 2003-2009, 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: bsettop_display.h $
11 * $brcm_Revision: 42 $
12 * $brcm_Date: 8/4/09 12:41p $
13 *
14 * Module Description:
15 *
16 * Revision History:
17 *
18 * $brcm_Log: /BSEAV/api/include/bsettop_display.h $
19 *
20 * 42   8/4/09 12:41p vsilyaev
21 * PR49558: Add support to control av mute delay before and after format
22 * change separately.
23 *
24 * PR49558/1   8/4/09 12:25p vle
25 * PR49558: Add support to control av mute delay before and after format
26 * change separately.
27 *
28 * 41   5/11/09 3:35p vsilyaev
29 * PR53373: Add HDMI 1.3a support, deep color, to Brutus/nexus
30 *
31 * PR53373_DeepColor/1   4/16/09 3:56p vle
32 * PR53373: Add HDMI 1.3a support, deep color, to Brutus/nexus
33 *
34 * 40   2/20/09 1:39p jgarrett
35 * PR 52355: Adding ANR
36 *
37 * 39   9/17/08 4:16p jgarrett
38 * PR 47061: Adding audio transcode options
39 *
40 * 38   8/13/08 4:28p vsilyaev
41 * PR 44168: Add new API allowing application to put enable CEC core to
42 * receive messages.
43 *
44 * PR44168/1   8/13/08 3:47p vle
45 * PR 44168: Add new API allowing application to put enable CEC core to
46 * receive messages.
47 *
48 * 37   4/3/08 11:34a vsilyaev
49 * PR32279:  Rework splitscreen demo mode
50 *
51 * PR32279/2   4/2/08 4:33p jtna
52 * PR32279: Rework splitscreen demo mode
53 *
54 * PR32279/1   4/2/08 11:42a jtna
55 * PR32279: Rework splitscreen demo mode
56 *
57 * 36   3/28/08 2:47p vsilyaev
58 * PR41000: PR41000: Add hdcp_disable_blue_screen variable
59 * PR41000: Add Simplay test mode and additional HDCP error state.
60 *
61 * PR41000/2   3/28/08 11:23a vle
62 * PR41000: Add hdcp_disable_blue_screen variable
63 *
64 * PR41000/1   3/27/08 6:18p vle
65 * PR41000: Add Simplay test mode and additional HDCP error state.
66 *
67 * 35   3/14/08 10:16a jgarrett
68 * PR 37781: Merging to main branch
69 *
70 * PR37781/3   3/13/08 9:51p vle
71 * PR 37781: Update naming convention on function prototype.
72 * Pass parameter as pointer, not by reference
73 *
74 * PR37781/2   3/12/08 3:23p vle
75 * PR 37781: Update naming conventions
76 *
77 * PR37781/1   3/11/08 6:44p vle
78 * PR 37781: Add framework for CEC support
79 *
80 * 34   2/28/08 2:08p vsilyaev
81 * PR 34858: 30616, 37945: Fixed typo
82 *
83 * 33   2/21/08 1:37p vsilyaev
84 * PR 34858: 30616, 37945: Added boutput_spdif_channel_status
85 *
86 * 32   12/4/07 5:39p vsilyaev
87 * PR 33367: Added audio delay settings
88 *
89 * 31   11/28/07 4:38p vsilyaev
90 * PR 36971: Add Brutus configuration delay after AVMute and before
91 * AVUnmute.
92 *
93 * PR36971/1   11/28/07 3:37p vle
94 * PR 36971: Add Brutus configuration delay after AVMute and before
95 * AVUnmute.
96 *
97 * 30   10/29/07 10:46a vsilyaev
98 * PR 36308: Added copyright and catagory code
99 *
100 * 29   9/14/07 3:30p jgarrett
101 * PR30689: PR30689: Add second CVBS output support in one display on
102 * 7400.
103 *
104 * PR30689/1   9/13/07 6:41p mward
105 * PR30689: Add second CVBS output support in one display on 7400.
106 *
107 * 28   8/22/07 5:29p jgarrett
108 * PR 32044: Merging to main branch
109 *
110 * 7405_pip_support/1   8/21/07 2:38p katrep
111 * PR34204: Added mosaic mode support for 7405.
112 *
113 * PR32044/1   6/26/07 5:54p jgarrett
114 * PR 32044: Adding Mosaic Mode APIs
115 *
116 * 27   6/20/07 5:30p jgarrett
117 * PR 26474: Adding boutput_hdmi_status and hdcp_status_callback
118 *
119 * 26   6/14/07 10:11a jgarrett
120 * PR 32123: Adding boutput_hdmi_xxx
121 *
122 * PR32123/1   6/13/07 4:30p vle
123 * PR 32123: Rename HDMI API's name
124 *
125 * 25   5/16/07 3:13p vsilyaev
126 * PR 30807: Fixed typo
127 *
128 * 24   5/16/07 3:10p vsilyaev
129 * PR30807:  Need an API to read HDMI device tree physical address
130 *
131 * PR30807/1   5/16/07 1:48p dlwin
132 * PR 30807: Need an API to read HDMI device tree physical address
133 *
134 * 23   5/3/07 5:24p vsilyaev
135 * PR 24374: Fixed description of bdecode_window_open and
136 * bdecode_window_clone functions
137 *
138 * 22   4/26/07 5:48p vsilyaev
139 * PR 29929: Added background color for video compositor
140 *
141 * PR26747_Plugfest8/1   4/16/07 8:28p vle
142 * PR 26747: Added feature to report HDCP info/failures using on screen
143 * graphics
144 *
145 * 21   4/11/07 4:28p vsilyaev
146 * PR 29145: Added DCS type
147 *
148 * 20   2/23/07 3:41p jgarrett
149 * PR 28036: Adding LAB/CAB adjustments
150 *
151 * 19   2/8/07 4:44p jgarrett
152 * PR 27131: Fixing comment text
153 *
154 * 18   1/23/07 4:20p vsilyaev
155 * PR25913: Added country code for the RF configuration
156 *
157 * 17   12/14/06 6:31p bandrews
158 * PR24597: Deprecated refresh_rate; added frame_rate
159 *
160 * 16   11/30/06 7:20p jgarrett
161 * PR 24698: Revising DNR control to allow separate configs for
162 * MNR,BNR,DCR.
163 *
164 * 15   10/20/06 2:05p erickson
165 * PR24374: clarify bdecode_window_settings.cliprect docs.
166 *
167 * 14   6/19/06 5:07p rgreen
168 * PR20869, PR20866:
169 * Add Settop API option for HDMI Pre-Emphasis  ; disabled by default
170 * Add Settop API option for HDMI HDCP Pj Checking ; enabled by default
171 * Add Settop API option to specify retry delay between HDCP
172 * Authentications attempts
173 * Use HDMI vs DVI in comments
174 *
175 * Use HDMI vs DVI in comments
176 *
177 * 13   5/23/06 4:50p erickson
178 * PR21004: boutput_rf_set_audio_volume should only set mute. audio volume
179 * is set via the DAC's which feed into RFM.
180 *
181 * 12   5/10/06 12:03p jgarrett
182 * PR 17747: Allowing app to set HDMI audio mode
183 *
184 * 11   5/4/06 8:08p bandrews
185 * PR21233: Added copyright and category code to spdif settings
186 *
187 * 10   5/2/06 2:45p jgarrett
188 * PR 21291: Adding boutput_dvi_get_capabilities()
189 *
190 * 9   4/4/06 9:21p erickson
191 * PR17108: rename to DNR
192 *
193 * 8   12/8/05 3:55p jrubio
194 * PR18442: Added Digital Contour Removal structure
195 *
196 * 7   9/14/05 6:32p rgreen
197 * PR16538,PR12828: Prevent failure of bdisplay_set when display format
198 * not supported by attached DVI/HDMI monitor.
199 *
200 * Implement HDMI AvMute in SettopAPI
201 *
202 * 6   9/8/05 5:18p mphillip
203 * PR16870: bdisplay_settings changes to support this
204 *
205 * 5   4/20/05 3:54p rgreen
206 * PR 12953: Force EDID preferred format on HDMI HotPlug Event
207 * Add callback to dvi settings to support
208 *
209 * 4   4/1/05 4:21p rgreen
210 * PR12560: Add support for computer (VESA) formata
211 *
212 * 3   3/29/05 6:27p ikizyan
213 * PR14646: Adding a sharpness control
214 *
215 * 2   3/23/05 1:30p erickson
216 * PR12769: added nonlinear scale option
217 *
218 * 1   2/7/05 7:05p dlwin
219 * Merge down for release 2005_REFSW_MERGETOMAIN:
220 *
221 * Irvine_BSEAVSW_Devel/46   12/17/04 9:23a erickson
222 * PR12290: update clone docs
223 *
224 * Irvine_BSEAVSW_Devel/45   12/3/04 3:28p erickson
225 * PR12388: added support for vesa video format settings
226 *
227 * Irvine_BSEAVSW_Devel/44   11/23/04 9:41a erickson
228 * PR13336: added color space conversion parameters for decode_window
229 *
230 * Irvine_BSEAVSW_Devel/43   10/28/04 2:36p rgreen
231 * PR 12953: Move edid_preferred_format from display settings to dvi
232 * settings
233 * Move code to retrieve preferred EDID format from bdisplay_get to
234 * boutput_dvi_get
235 *
236 * Irvine_BSEAVSW_Devel/42   10/27/04 12:18p erickson
237 * PR13096: added bdisplay_settings.mpaa_enabled option
238 *
239 * Irvine_BSEAVSW_Devel/41   10/8/04 5:30p rgreen
240 * PR 12953: Initialize display format to preferred EDID format when
241 * DVI/HDMI Rx connected
242 *
243 * Irvine_BSEAVSW_Devel/40   9/16/04 3:36p erickson
244 * PR11081: added box_detect and deinterlacer to bdecode_window_settings
245 * and comb_filter to banalog_params
246 *
247 * Irvine_BSEAVSW_Devel/39   9/13/04 1:58p erickson
248 * PR11081: added interlacer option for bdisplay
249 *
250 * Irvine_BSEAVSW_Devel/38   6/2/04 2:43p erickson
251 * PR11204: changed/removed deprecated settop api functions
252 *
253 * Irvine_BSEAVSW_Devel/36   5/17/04 11:03a erickson
254 * PR11135: extended settop api with normalized get/set functions for
255 * boutput
256 *
257 * Irvine_BSEAVSW_Devel/35   12/19/03 4:38p vsilyaev
258 * PR 8850: Fixing build of legacy code after merge.
259 *
260 * Irvine_BSEAVSW_Devel/Irvine_BSEAVSW_Devel_7038/1   12/4/03 1:27p erickson
261 * PR8850: initial Brutus support on 7038
262 *
263 * Irvine_BSEAVSW_Devel/31   11/11/03 4:55p erickson
264 * PR8600: added note about disabling graphics when bdisplay_set is called
265 *
266 * Irvine_BSEAVSW_Devel/30   11/11/03 11:30a erickson
267 * PR8596: add note to api regarding volume control for PCM data only
268 *
269 * Irvine_BSEAVSW_Devel/29   11/7/03 4:28p erickson
270 * PR8583: removing, fixing or implementing TODO's
271 *
272 * Irvine_BSEAVSW_Devel/28   11/5/03 9:44a erickson
273 * no more is_hd, is_pal. use real metrics like interlaced and
274 * refresh_rate
275 *
276 * Irvine_BSEAVSW_Devel/27   11/4/03 2:42p erickson
277 * documentation changes
278 *
279 * Irvine_BSEAVSW_Devel/26   11/4/03 9:01a erickson
280 * unpacked some struct definitions in order to work with docjet
281 *
282 * Irvine_BSEAVSW_Devel/25   11/3/03 12:22p erickson
283 * reversed logic on spdif pass_through. still a boolean.
284 *
285 * Irvine_BSEAVSW_Devel/24   10/31/03 11:58a erickson
286 * settop api changes after internal review
287 *
288 * Irvine_BSEAVSW_Devel/23   10/30/03 9:47a erickson
289 * Copied dbg interface so that we can compile out BRCM_DBG_MSG
290 *
291 * Irvine_BSEAVSW_Devel/22   10/29/03 5:04p erickson
292 * PR8253: enable spdif volume contorl
293 *
294 * Irvine_BSEAVSW_Devel/21   10/28/03 11:26a erickson
295 * settop api reworks after internal design view
296 *
297 * Irvine_BSEAVSW_Devel/20   10/23/03 2:58p erickson
298 * added comments regarding aspect ratio
299 *
300 * Irvine_BSEAVSW_Devel/19   10/22/03 3:23p erickson
301 * edited comment for bdecode_window_settings.cliprect
302 *
303 * Irvine_BSEAVSW_Devel/18   10/22/03 11:22a erickson
304 * settop api pass-through type conversion
305 *
306 * Irvine_BSEAVSW_Devel/17   10/15/03 10:55a erickson
307 * added bdisplay_get_format_settings to return more information about an
308 * EDisplayFmt
309 *
310 * Irvine_BSEAVSW_Devel/16   10/1/03 3:01p erickson
311 * added bdisplay_lookup_size and some TODO notes
312 *
313 * Irvine_BSEAVSW_Devel/15   9/30/03 1:13a erickson
314 * updated docjet documentation
315 *
316 * Irvine_BSEAVSW_Devel/14   9/17/03 5:04p erickson
317 * updated documentation for DocJet
318 *
319 * Irvine_BSEAVSW_Devel/13   8/12/03 9:42a erickson
320 * changes after pre-review meeting
321 *
322 * Irvine_BSEAVSW_Devel/12   7/30/03 2:41p erickson
323 * boutput_xxx objects no longer have public bobject_id's.
324 *
325 * Irvine_BSEAVSW_Devel/11   7/30/03 2:08p erickson
326 * removed all return value comments because we're standardized and they
327 * add nothing
328 *
329 * Irvine_BSEAVSW_Devel/10   7/30/03 12:14p erickson
330 * static allocation of boutput's and default outputs for a display
331 * removed decode_window_attach/dettach in favor of clone
332 *
333 * Irvine_BSEAVSW_Devel/9   7/30/03 10:20a erickson
334 * some comments and TODO's
335 *
336 * Irvine_BSEAVSW_Devel/8   7/29/03 6:03p erickson
337 * more rework
338 *
339 * Irvine_BSEAVSW_Devel/7   7/28/03 4:43p erickson
340 * more comment work
341 *
342 * Irvine_BSEAVSW_Devel/6   7/25/03 8:13p vsilyaev
343 * Added component output, fixed compilation errors.
344 *
345 * Irvine_BSEAVSW_Devel/5   7/25/03 4:22p erickson
346 * in the middle of rework, does not compile
347 *
348 * Irvine_BSEAVSW_Devel/4   7/24/03 4:37p vsilyaev
349 * Added support for multiple channels and implemented decode window API.
350 *
351 * Irvine_BSEAVSW_Devel/3   7/9/03 5:19p erickson
352 * rework for new bband_t model
353 *
354 * Irvine_BSEAVSW_Devel/2   6/26/03 3:59p vsilyaev
355 * Declare enum for the component output types.
356 *
357 * Irvine_BSEAVSW_Devel/1   6/13/03 3:08p vsilyaev
358 * SetTop reference API.
359 *
360 *
361 ***************************************************************************/
362#ifndef BSETTOP_DISPLAY_H__
363#define BSETTOP_DISPLAY_H__
364
365#ifdef __cplusplus
366extern "C"
367{
368#endif
369
370/*=*******************************************
371A display is a coordinated set of video/audio outputs that are usually sent
372to one TV set.
373Each display may have multiple outputs (e.g. svideo, composite), but each
374output will carry the same content.
375
376Decode windows are boxes of video content on a display. You control decode
377windows and audio volume through the display API.
378
379Some chips support more than one display (7038, 7320 and Venom2).
380For these systems, you will open two bdisplay_t handles and have one bdecode_window_t handle
381created for each display.
382**********************************************/
383
384#define boutput_hdmi_cec_max_transmit_length 15 /* + 1 for CEC header length */
385#define boutput_hdmi_cec_broadcast_address 0xF  /* CEC Broadcast address */
386
387/*
388Summary:
389    Open a display.
390Description:
391    The new display object will already have default outputs configured.
392    You can change the configuration by calling bdisplay_get, making changes,
393    then calling bdisplay_set.
394*/
395bdisplay_t bdisplay_open(
396    bobject_t display_id /* handle used to identify a particular display */
397    );
398
399/*
400Summary:
401   Close a display.
402Description:
403   All decode windows opened or cloned for this display should have already been closed,
404   otherwise you get an inconsistent state.
405*/
406void bdisplay_close(
407    bdisplay_t display /* handle returned by bdisplay_open */
408    );
409
410/*
411Summary:
412    svideo output handle returned by boutput_svideo_open()
413*/
414typedef struct boutput_svideo *boutput_svideo_t;
415
416/*
417Summary:
418    composite output handle returned by boutput_composite_open()
419*/
420typedef struct boutput_composite *boutput_composite_t;
421
422/*
423Summary:
424    RF modulator output handle returned by boutput_rf_open()
425*/
426typedef struct boutput_rf *boutput_rf_t;
427
428/**
429Summary:
430Settings for RF output
431**/
432typedef struct boutput_rf_settings {
433    unsigned channel;                   /* Channel 3 or 4 */
434    char country[2];                    /* 2 letter iso3166 country code */
435} boutput_rf_settings;
436
437/**
438Summary:
439Set new RF settings.
440Description:
441These settings will not be applied until bdisplay_set is called with the
442RF handle assigned.
443**/
444bresult boutput_rf_set(boutput_rf_t rf,
445    const boutput_rf_settings *settings);
446
447/**
448Summary:
449Get the current RF settings.
450**/
451void boutput_rf_get(boutput_rf_t rf,
452    boutput_rf_settings *settings /* [out] */
453    );
454
455/*
456Summary:
457    HDMI output handle returned by boutput_hdmi_open()
458*/
459typedef struct boutput_hdmi *boutput_hdmi_t;
460
461
462/**
463Summary:
464Settings for SPDIF output
465**/
466typedef struct boutput_spdif_channel_status {
467    bool        professional_mode;  /* [0:0] The professional mode flag.
468                                    TRUE: Professional mode. Other user
469                                    options will not be considered.
470                                    FALSE: Consumer mode. - Read Only*/
471
472    bool        pcm;                /* [1:1] For output Linear  bLinear_PCM=true,
473                                    If output is Compressed bLinear_PCM=false - Read Only */
474
475    bool        copyright;          /* [2:2] Software CopyRight assert.
476                                    TRUE: CopyRight is asserted
477                                    FALSE: CopyRight is not asserted    */
478
479    uint8_t     pre_emphasis;       /*[3:5] pre-emphasis */
480
481    uint8_t     channel_status_mode;/* [6:7] Gives channel status - Read Only*/
482
483    uint8_t     category_code;      /* [8:15] Category code in spdif channel status, including L-bit */
484
485    uint8_t     source_number;      /*[16:19] Source  number*/
486
487    bool        channel_num;        /*[20:23]  TRUE:  Left channel num = 0000
488                                    Right Channel Num = 0000
489                                    FALSE: Left channel num = 1000
490                                    Right Channel Num = 0100 */
491
492    uint8_t     sampling_frequency; /*[24:27]Sampling frequency - Read Only*/
493
494    uint8_t     clock_accuracy;     /* [28:29] Clock Accuracy */
495
496    bool        max_word_length;    /* [32:32] For setting of 32bit of Channel Status
497                                    Bit 32 0 Maximum audio sample word length is 20 bits
498                                    1 Maximum audio sample word length is 24 bits */
499
500    uint8_t     sample_word_length; /* [33:35] Sample word length */
501
502    uint8_t     original_sampling_frequency;/* [36:39] Original sampling frequency*/
503
504    uint8_t     cgms_a;             /* [40:41] */
505} boutput_spdif_channel_status;
506
507/*
508Summary:
509Settings returned by bdisplay_get_format_settings
510*/
511typedef struct bvideo_format_settings {
512    unsigned width;   /* height of video format in pixels */
513    unsigned height;  /* width of video format in lines */
514    unsigned refresh_rate;  /* 20061213 DEPRECATED -- refresh rate of video format in Hz */
515    bvideo_frame_rate frame_rate; /* 20061213 bandrews - replaces refresh_rate */
516    bool interlaced;
517} bvideo_format_settings;
518
519/*
520Summary:
521    HDMI HDCP Status
522*/
523typedef enum boutput_hdmi_hdcp_state
524{
525    boutput_hdmi_hdcp_state_internal_err,
526    boutput_hdmi_hdcp_state_disabled,
527    boutput_hdmi_hdcp_state_init,
528    boutput_hdmi_hdcp_state_auth_fail,
529
530    boutput_hdmi_hdcp_state_ri_fail,
531    boutput_hdmi_hdcp_state_pj_fail,
532    boutput_hdmi_hdcp_state_repeater_fail,
533
534    boutput_hdmi_hdcp_state_enabled
535} boutput_hdmi_hdcp_state;
536
537/*
538Summary:
539    HDMI CEC message type
540*/
541typedef enum boutput_hdmi_cec_message_type
542{
543    boutput_hdmi_cec_message_type_transmit = 0,
544    boutput_hdmi_cec_message_type_receive = 1
545} boutput_hdmi_cec_message_type ;
546
547/*
548Summary:
549    All information from a received CEC message or to
550    transmit a CEC message
551*/
552typedef struct boutput_hdmi_cec_message_data
553{
554    boutput_hdmi_cec_message_type message_type;
555    uint8_t initiator_addr;
556    uint8_t destination_addr;
557    uint8_t opcode;
558    uint8_t message_buffer[boutput_hdmi_cec_max_transmit_length];
559    uint8_t message_length;
560} boutput_hdmi_cec_message_data;
561
562/*
563Summary:
564    All CEC related information from the device.
565*/
566typedef struct boutput_hdmi_cec_configuration
567{
568    uint8_t logical_address;
569    uint8_t physical_address[2];
570    uint8_t device_type;
571} boutput_hdmi_cec_configuration;
572
573/*
574Summary:
575    HDMI deep color mode enum
576*/
577typedef enum boutput_hdmi_color_depth
578{
579        boutput_hdmi_color_depth_8bit,
580        boutput_hdmi_color_depth_10bit,
581        boutput_hdmi_color_depth_12bit,
582        boutput_hdmi_color_depth_16bit
583} boutput_hdmi_color_depth;
584
585/**
586Summary:
587Settings for HDMI output
588**/
589typedef struct boutput_hdmi_settings {
590    bvideo_format edid_preferred_format ; /* format preferred by attached DVI/HDMI device */
591    bvideo_format_settings vesa_settings ; /* if format == bvideo_format_vesa,
592                                        then these settings are used. */
593
594    bool hdcp ;
595    uint16_t hdcp_failure_retry_delay ;
596    bool hdcp_pj_checking_enable ;
597    bool preemphasis_support ;
598    bool hdcp_disable_blue_screen;  /* If true, upon HDCP failure, a OSD message will be displayed on HDMI
599                                            instead of blue screen */
600    bool validate_edid_format;      /* If true, bdisplay_set will only accept formats
601                                       that are valid in the attached device's EDID data. */
602    unsigned hdmi_avmute_delay_pre_format_change;    /* Delay (in ms) after sending AVMute and before the format change */                                                                         
603    unsigned hdmi_avmute_delay_post_format_change;    /* Delay (in ms) before sending AVUnMute and after the format change */   
604    bsettop_callback hdmi_hotplug_callback;     /* Called when a device connects */
605    bsettop_callback hdmi_disconnect_callback;  /* Called when a device disconnects */
606    bsettop_callback hdmi_hdcp_status_callback; /* Called when HDCP status changes */
607    bsettop_callback hdmi_cec_message_callback; /* Called when a CEC message is received */
608    void *callback_context;             /* all callbacks share this context */
609
610    boutput_hdmi_audio_mode hdmi_audio_mode;  /* Audio mode for HDMI */
611    baudio_format compressed_audio_format; /* compressed output format.  If hdmi_audio_mode = compressed and this is
612                                              set to a valid format (e.g. baudio_format_dts), output will be
613                                              transcoded to that format.  By default this is baudio_format_unknown,
614                                              which will leave the compressed data in the original format. */
615    boutput_spdif_channel_status    hdmi_spdif_channel_status; /* HDMI's Spdif audio output's Channel status */
616    unsigned audio_delay; /* delay, in ms, applied to the HDMI audio output */
617    boutput_hdmi_color_depth hdmi_color_depth;  /* color depth settings 8, 10, 12, or 16bits */
618} boutput_hdmi_settings;
619
620/**
621Summary:
622Set new HDMI settings.
623Description:
624These settings will not be applied until bdisplay_set is called with the
625HDMI handle assigned.
626**/
627bresult boutput_hdmi_set(boutput_hdmi_t dvi,
628    const boutput_hdmi_settings *settings);
629
630/**
631Summary:
632Get the current HDMI settings.
633**/
634void boutput_hdmi_get(boutput_hdmi_t dvi,
635    boutput_hdmi_settings *settings /* [out] */
636    );
637
638/**
639Summary:
640  DVI/HDMI device capabilities
641**/
642typedef struct boutput_hdmi_capabilities
643{
644    bvideo_format preferred_video_format;
645    bool video_format_is_supported[bvideo_format_count];
646
647    boutput_hdmi_audio_mode preferred_audio_mode;
648    bool audio_mode_is_supported[boutput_hdmi_audio_mode_count];
649
650    bool hdmi;  /* True if HDMI, false if DVI */
651    boutput_hdmi_rx_edid_info rx_edid_info;     /* contians HDMI Rx EDID info. */
652} boutput_hdmi_capabilities;
653
654/**
655Summary:
656Get the current HDMI device capabilities.
657**/
658bresult boutput_hdmi_get_capabilities(boutput_hdmi_t dvi,
659                                     boutput_hdmi_capabilities *caps /* [out] */
660                                     );
661
662/**
663Summary:
664    The current HDMI status
665**/
666typedef struct boutput_hdmi_status
667{
668    boutput_hdmi_hdcp_state hdcp_state;
669} boutput_hdmi_status;
670
671/**
672Summary:
673Get the current HDCP status
674**/
675bresult boutput_hdmi_get_status(boutput_hdmi_t dvi,
676                                boutput_hdmi_status *status /* [out] */
677                                     );
678
679/**
680Summary:
681Get the received CEC message
682**/
683bresult boutput_hdmi_cec_get_message(boutput_hdmi_t dvi,
684                                boutput_hdmi_cec_message_data *cec_message_data /* [out] */
685                                );
686
687/**
688Summary:
689Send CEC message
690**/
691bresult boutput_hdmi_cec_send_message(boutput_hdmi_t dvi,
692                                const boutput_hdmi_cec_message_data *cec_message_data
693                                );
694
695/**
696Summary:
697Get the CEC configuration from the device
698**/
699bresult boutput_hdmi_cec_get_configuration(boutput_hdmi_t dvi,
700                                boutput_hdmi_cec_configuration *cec_configuration   /* [out] */
701                                );
702
703/**
704Summary:
705Check the current status of the device
706**/
707bool boutput_hdmi_cec_is_device_ready(boutput_hdmi_t dvi);
708
709/**
710Summary:
711Enable CEC core to receive CEC messages
712**/
713bresult boutput_hdmi_cec_enable_receive(boutput_hdmi_t dvi);
714
715/*
716Summary:
717    Component output handle returned by boutput_component_open()
718*/
719typedef struct boutput_component *boutput_component_t;
720
721/*
722Summary:
723    Color format of the component output.
724*/
725typedef enum boutput_component_type {
726    boutput_component_type_rgb,     /* RGB output */
727    boutput_component_type_yprpb    /* YPrPb output */
728} boutput_component_type;
729
730/**
731Summary:
732Settings for Component output
733**/
734typedef struct boutput_component_settings {
735    boutput_component_type type;    /* color space of the component video */
736} boutput_component_settings;
737
738/**
739Summary:
740Set new Component settings.
741Description:
742These settings will not be applied until bdisplay_set is called with the
743Component handle assigned.
744**/
745bresult boutput_component_set(boutput_component_t component,
746    const boutput_component_settings *settings);
747
748/**
749Summary:
750Get the current Component settings.
751**/
752void boutput_component_get(boutput_component_t component,
753    boutput_component_settings *settings /* [out] */
754    );
755
756/*
757Summary:
758    SPDIF audio handle returned by boutput_spdif_open()
759*/
760typedef struct boutput_spdif *boutput_spdif_t;
761
762/**
763Summary:
764Settings for SPDIF output
765**/
766typedef struct boutput_spdif_settings {
767    bool        pcm;                /* If true, always send PCM audio to SPDIF output. If the format
768                                    is not supported by the chip, you will get no audio output.
769                                    If false, the audio will be passed-through if supported
770                                    by SPDIF, otherwise it is decoded by the chip.
771
772                                    Specifics:
773                                    MPEG audio (layer 1/2) will always be decoded and PCM
774                                    will be sent to SPDIF.
775                                    We cannot decode any audio format other than MPEG audio.
776                                    On pre-7038 chips, we can pass-through AC3.
777                                    On 7110/7315 B0, we can pass-through DTS.
778                                    On 7038, we can also pass-through MP3 and AAC.*/
779
780    boutput_spdif_channel_status    spdif_channel_status; /* Spdif Channel status */
781    unsigned    audio_delay;                              /* delay, in ms, applied to the SPDIF output */
782    baudio_format compressed_audio_format; /* compressed output format.  If pcm = false and this format is
783                                              set to a valid format (e.g. baudio_format_dts), output will be
784                                              transcoded to that format.  By default this is baudio_format_unknown,
785                                              which will leave the compressed data in the original format. */
786} boutput_spdif_settings;
787
788/**
789Summary:
790Set new SPDIF settings.
791Description:
792These settings will not be applied until bdisplay_set is called with the
793SPDIF handle assigned.
794**/
795bresult boutput_spdif_set(boutput_spdif_t spdif,
796    const boutput_spdif_settings *settings);
797
798/**
799Summary:
800Get the current SPDIF settings.
801**/
802void boutput_spdif_get(boutput_spdif_t spdif,
803    boutput_spdif_settings *settings /* [out] */
804    );
805
806/*
807Summary:
808    Open a SPDIF audio output.
809Description:
810    It must be assigned to a display.
811*/
812boutput_spdif_t
813boutput_spdif_open(bobject_t spdif_id);
814
815/*
816Summary:
817    Open RF modulator output.
818Description:
819    It must be assigned to a display.
820*/
821boutput_rf_t
822boutput_rf_open(bobject_t rfmod_id);
823
824/*
825Summary:
826    Open composite output.
827*/
828boutput_composite_t
829boutput_composite_open(bobject_t composite_id);
830
831/*
832Summary:
833    Open svideo output.
834*/
835boutput_svideo_t
836boutput_svideo_open(bobject_t svideo_id);
837
838/*
839Summary:
840    Open HDMI output.
841Description:
842    It must be assigned to a display.
843*/
844boutput_hdmi_t
845boutput_hdmi_open(bobject_t dvi_id);
846
847/*
848Summary:
849    Open component output.
850Description:
851    It must be assigned to a display.
852*/
853boutput_component_t
854boutput_component_open(bobject_t component_id);
855
856/*
857Summary:
858    Physical aspect ratio of the SD display.
859Description:
860    This only applies to SD displays. HD displays are assumes to be 16x9 and this
861    value is ignored.
862*/
863typedef enum bdisplay_aspect_ratio {
864  bdisplay_aspect_ratio_4x3,
865  bdisplay_aspect_ratio_16x9
866} bdisplay_aspect_ratio;
867
868/*
869Summary:
870    How to convert content to a display based on its aspect ratio.
871Description:
872    If a decode window is full size, then the zoom, box or panscan modes are applied.
873    Otherwise the content is sized to the decode window.
874    The behavior of this enum depends on the bdisplay_aspect_ratio.
875*/
876typedef enum bdisplay_content_mode {
877   bdisplay_content_mode_zoom,      /* cut off content to preserve aspect ratio */
878   bdisplay_content_mode_box,       /* either windowbox or letterbox to preserve aspect ratio */
879   bdisplay_content_mode_panscan,   /* Used for 16x9 source with pan scan vectors on 4x3 display only,
880                                        otherwise same as zoom. */
881   bdisplay_content_mode_full,      /* distort aspect ratio but see all the content and no sidebars. */
882   bdisplay_content_mode_full_nonlinear /* non-linear upscaling to full screen where
883                                    the edge of the content will have more distorted
884                                    aspect ratio. */
885} bdisplay_content_mode;
886
887/*
888  Summary:
889  Digital Noise Removal Levels
890*/
891typedef enum bwindow_dnr_level {
892   /* Disable DNR */
893   bwindow_dnr_level_off = 0,
894   /* These can be referred to by name */
895   bwindow_dnr_level_low,
896   bwindow_dnr_level_medium_low,
897   bwindow_dnr_level_medium,
898   bwindow_dnr_level_medium_high,
899   bwindow_dnr_level_high,
900   /* And also by number */
901   bwindow_dnr_level_1=bwindow_dnr_level_low,
902   bwindow_dnr_level_2,
903   bwindow_dnr_level_3,
904   bwindow_dnr_level_4,
905   bwindow_dnr_level_5,
906   /* Highest value available */
907   bwindow_dnr_level_max=bwindow_dnr_level_5
908} bwindow_dnr_level;
909
910/*
911Summary:
912    Split Screen Mode for DNR (Digital Noise Reduction) and PEP (Picture Enhancement Processing) Demo
913*/
914typedef enum bwindow_splitscreen_mode {
915    bwindow_splitscreen_mode_wholescreen = 0,   /* apply processing to entire screen */
916    bwindow_splitscreen_mode_left,          /* apply processing to left-half of screen */
917    bwindow_splitscreen_mode_right          /* apply processing to right-half of screen */
918} bwindow_splitscreen_mode;
919
920/*
921Summary:
922    Macrovision types.
923*/
924typedef enum bmacrovision_type {
925    bmacrovision_type_none = 0, /* No macrovision on outputs. */
926    bmacrovision_type_agc_only, /* AGC only. */
927    bmacrovision_type_agc_2lines,   /* AGC + 2 Line color stripe. */
928    bmacrovision_type_agc_4lines,   /* AGC + 4 Line color stripe. */
929    bmacrovision_type_custom,   /* User-provded tables. */
930    bmacrovision_type_agc_only_rgb, /* PAL MV cert test AGC only with MV on RGB. */
931    bmacrovision_type_agc_2lines_rgb,   /* NTSC MV cert test AGC + 2 Line color stripe, with MV on RGB. */
932    bmacrovision_type_agc_4lines_rgb,   /* NTSC MV cert test AGC + 4 Line color stripe. */
933    bmacrovision_type_test01,   /* MV certification test 01. */
934    bmacrovision_type_test02    /* MV certification test 02. */
935} bmacrovision_type;
936
937/*
938Summary:
939    Macrovision table structure.
940*/
941typedef struct bmacrovision_tables {
942    /* See bvdc_macrovision.h for the source of the numbers */
943    uint8_t cpc_table[2];
944    uint8_t cps_table[33];
945} bmacrovision_tables;
946
947/*
948 Summary:
949    DCS (Dwight Cavendish Systems ) types.
950*/
951typedef enum bdcs_type {
952   bdcs_type_dcs_off = 0,
953   bdcs_type_dcs_on
954} bdcs_type;
955
956
957/*
958Summary:
959Display settings for configuring outputs, video format and aspect ratio.
960*/
961typedef struct bdisplay_settings {
962    bvideo_format format;               /* Video format of the display. */
963    bdisplay_aspect_ratio aspect_ratio; /* Aspect ratio of the display. This only applies to SD display formats. */
964    bdisplay_content_mode content_mode; /* How to adapt content to the aspect ratio
965                                        of the display. */
966    bool mpaa_enabled;              /* Enabled MPAA if available */
967
968    boutput_composite_t composite;  /* attached composite output */
969    boutput_composite_t composite2; /* attached 2nd composite output */
970    boutput_svideo_t svideo;        /* attached svideo output */
971    boutput_component_t component;  /* attached component output */
972    boutput_rf_t rf;                /* attached RF modulator output */
973    boutput_hdmi_t dvi; /* attached DVI or HDMI output */
974    boutput_spdif_t spdif;          /* attached SPDIF audio output */
975
976    bvideo_format_settings vesa_settings; /* if format == bvideo_format_vesa,
977                                        then these settings are used. */
978    bmacrovision_type macrovision_type; /* Macrovision output type */
979    bmacrovision_tables *macrovision_tables;    /* Custom macrovision tables. This is only used for bmacrovision_type_custom, NULL on bdisplay_get, if unchanged, or if unused. */
980    bdcs_type dcs_type; /* controls Dwight Cavendish Systems  processing */
981    uint32_t background_color; /* background color in YCrCb colorspace */
982    unsigned i2s_delay; /* delay, in ms, applied to the I2S audio output port */
983    unsigned dac_delay; /* delay, in ms, applied to the DAC audio output port */
984} bdisplay_settings;
985
986/*
987Summary:
988Look up video format settings for a display.
989
990Description:
991This is different from bvideo_get_format_settings because it also supports
992vesa format settings if settings->format == bvideo_format_vesa.
993*/
994void bdisplay_get_video_format_settings(
995    const bdisplay_settings *settings,
996    bvideo_format_settings *format_settings /* [out] */
997    );
998
999/*
1000Summary:
1001Look up settings for a bvideo_format
1002
1003Description:
1004This function does not support bvideo_format_vesa. Use bdisplay_get_video_format_settings
1005for that.
1006*/
1007void bvideo_get_format_settings(
1008    bvideo_format format,           /* Format that is being queried */
1009    bvideo_format_settings *settings    /* [out] Information about that format */
1010    );
1011
1012/*
1013Summary:
1014   Configure the outputs, video format and aspect ratio of the display.
1015
1016Description:
1017   format and aspect_ratio are simple variables. The other members (svideo, composite, etc.)
1018   are handles to boutput_xxx objects.
1019
1020   boutput_xxx_open functions return handles to objects that may already exist and may
1021   already be assigned to display's by default. The exact boutput default configuration
1022   is documented for each platform.
1023
1024    If a graphics engine is linked to this display, bdisplay_set will automatically
1025    disable the graphics engine. You must call bgraphics_set,
1026    set bgraphics_settings.enabled=true,
1027    make any other necessary changes (like scaling) because of the new
1028    display format, then call bgraphics_set.
1029    This must be done because the graphics state may fail with the display format
1030    changes and these issues must be handled by the application.
1031
1032Example:
1033    // Example 1 doesn't assume any default outputs
1034    bdisplay_t display = bdisplay_open(B_ID(0)); // first display
1035    bdisplay_settings settings;
1036    boutput_component_t component = boutput_component_open(B_ID(0)); // first component output
1037    boutput_hdmi_t dvi = boutput_hdmi_open(B_ID(0)); // first hdmi output
1038
1039    bdisplay_get(diplay, &settings);
1040    settings.format = bvideo_format_ntsc;
1041    settings.aspect_ratio = bdisplay_aspect_ratio_4x3;
1042    settings.content_mode = bdisplay_content_mode_full;
1043    settings.component = component;
1044    settings.dvi = dvi;
1045    bdisplay_set(diplay, &settings);
1046
1047    // Example 2 is based on the knowledge that the 97320 implementation comes
1048    // with svideo pre-configured for display 0.
1049    bdisplay_t display0 = bdisplay_open(B_ID(0)); // first display
1050    bdisplay_t display1 = bdisplay_open(B_ID(1)); // second display
1051    bdisplay_settings settings0, settings1;
1052
1053    bdisplay_get(diplay0, &settings0);
1054    bdisplay_get(diplay1, &settings1);
1055    if (settings0.rf) {
1056        boutput_rf_settings rf_settings;
1057        boutput_rf_get(settings0.rf, &rf_settings);
1058        rf_settings.channel = 4;
1059        boutput_rf_set(settings0.rf, &rf_settings);
1060    }
1061    settings1.svideo = settings0.svideo;
1062    settings0.svideo = NULL;
1063    bdisplay_set(diplay0, &settings0); // must set 0 first to clear svideo
1064    bdisplay_set(diplay1, &settings1);
1065*/
1066bresult
1067bdisplay_set(
1068    bdisplay_t display, /* handle returned by bdisplay_open */
1069    const bdisplay_settings *settings   /* desired display settings */
1070    );
1071
1072/*
1073Summary:
1074    Get the current outputs, video format and aspect ratio for a display.
1075*/
1076void
1077bdisplay_get(
1078    bdisplay_t display, /* handle returned by bdisplay_open */
1079    bdisplay_settings *settings /* [out] current settings of display */
1080    );
1081
1082/*
1083Summary:
1084 Open a new decode window.
1085Description:
1086 The window_id is a global id, not relative to the display.
1087 However, the same window ID has a different meaning when used on different displays.
1088
1089 On a dual decode/dual display system:
1090  Window 0 can only be used on display 0.
1091  Window 1 can be used on display 0 or 1. Window 1 on display 0 is PIP. Window 1 on display 1 is a "dual TV" system.
1092  See bdecode_window_clone for window ID's 2 and 3 on display 1.
1093
1094 On a single decode/dual display system:
1095  Window 0 can only be used on display 0.
1096  See bdecode_window_clone for window ID 1 on display 1.
1097*/
1098bdecode_window_t bdecode_window_open(
1099    bobject_t window_id, /* window's object id */
1100    bdisplay_t display /* display on which the window appears */
1101    );
1102
1103/*
1104Summary:
1105 Open a new mosaic decode window.
1106Description:
1107 Mosaic windows derive from a parent video window.  The parent can be created either
1108 via bdecode_window_open or bdecode_window_clone.
1109
1110 Mosaic windows can be independently sized and placed within the parent window, but do
1111 not have zorder relative to each other on the display, therefore they can not overlap.
1112 The zorder of the parent window will be used to determine compositing in the final display.
1113
1114 If mosaic windows are to be used on a dual-display system that uses bdecode_window_clone,
1115 a corresponding mosaic window should be opened on both the master window and the cloned
1116 window.  Each can be sized independently for aspect ratio correction.
1117
1118 The mosaic object ID passed in to this routine must match the object ID passed into
1119 bdecode_open_mosaic.
1120*/
1121bdecode_window_t bdecode_window_open_mosaic(
1122    bdecode_window_t parent_window, /* Parent window to derive from */
1123    bobject_t mosaic_id /* The object ID for the mosaic decoder.  This must match the value passed to bdecode_open_mosaic. */
1124    );
1125
1126/*
1127Summary:
1128    Hide and close a decode window.
1129Description:
1130    Any decode which you started to this decode window should have already been
1131    stopped.
1132*/
1133void
1134bdecode_window_close(
1135    bdecode_window_t window
1136    );
1137
1138/*
1139Summary:
1140Create a new window by cloning from another window which allows the same
1141video content to go to multiple windows on different displays.
1142
1143Description:
1144This supports the HD/SD simul mode on dual display platforms like 7038 and 740x.
1145In some HD/SD simul configurations, each window can have different dimensions and
1146aspect ratios, and so the separate bdecode_window_t handles allow the API to
1147control this.
1148
1149You can only call bdecode_start with the original window, not with the clone.
1150
1151For single decode systems (e.g. 7401, 7118), you can clone window0 on dispay0
1152 to window1 on display1. This is an HD/SD simul system without PIP.
1153
1154For dual decode systems (e.g. 7038, 7400), you can clone window0 on display0
1155 to window2 on display1, and window1 on display0 to window3 on display 1.
1156 This is an HD/SD simul system with PIP.
1157*/
1158bdecode_window_t bdecode_window_clone(
1159            bdecode_window_t window, /* window to be cloned */
1160            bobject_t clone_window_id, /* id for new cloned window */
1161            bdisplay_t display /* display on which the cloned window will appear */
1162        );
1163
1164/*
1165Summary:
1166   Set the audio levels for the DAC's associated with this display.
1167*/
1168bresult bdisplay_set_dac_audio_volume(
1169    bdisplay_t display,     /* handle returned by bdisplay_open */
1170    const baudio_volume *volume /* desired volume */
1171    );
1172
1173/*
1174Summary:
1175   Get the audio levels for the DAC's associated with this display.
1176*/
1177bresult bdisplay_get_dac_audio_volume(
1178    bdisplay_t display,     /* handle returned by bdisplay_open */
1179    baudio_volume *volume   /* [out] current volume of DAC */
1180    );
1181
1182/*
1183Summary:
1184    Set the audio mute for the rf modulator.
1185Description:
1186    This function only sets mute. The rf modulator's input comes from the audio DAC's,
1187    so any change to bdisplay_get_dac_audio_volume will affect its level.
1188*/
1189bresult boutput_rf_set_audio_volume(
1190    boutput_rf_t rf,
1191    const baudio_volume *volume /* desired volume */
1192    );
1193
1194/*
1195Summary:
1196   Set the spdif volume.
1197Description:
1198    Does not set the spdif->audio_format. Use bdisplay_set for this.
1199*/
1200bresult boutput_spdif_set_audio_volume(
1201    boutput_spdif_t spdif,
1202    const baudio_volume *volume /* desired volume */
1203    );
1204
1205/*
1206Summary:
1207   Get the spdif volume.
1208Description:
1209    The spdif volume control only works for PCM audio. Compressed data
1210    cannot be modified and must be handled by the external SPDIF decoder.
1211*/
1212bresult boutput_spdif_get_audio_volume(
1213    boutput_spdif_t spdif,
1214    baudio_volume *volume /* [out] current volume of spdif device */
1215    );
1216
1217
1218/*
1219Summary:
1220   Get the audio levels for the rf modulator.
1221*/
1222bresult boutput_rf_get_audio_volume(
1223    boutput_rf_t rf,
1224    baudio_volume *volume   /* [out] current volume of the rf modulater */
1225    );
1226
1227/* End of Display API  */
1228
1229
1230/* Decode window API */
1231
1232/*
1233Summary:
1234   Decode window settings returned by bdecode_window_get.
1235*/
1236typedef struct bdecode_window_settings {
1237    bsettop_rect position;      /* Position and size on the display. Use display-relative coordinates. */
1238    bsettop_rect cliprect;      /* Source position and size. Use window-relative coordinates
1239                                     and not source-relative coordinates. This has the advantage of allowing
1240                                     the Settop API to reapply them for dynamic picture change, analog scale down, etc.
1241                                     If you change the size of the window, you must recalculate the cliprect.
1242                                     See api/examples/window_clipping.c for example.
1243                                     If width or height is 0, no clipping is applied. */
1244    bool visible;                /* Is the window visible? */
1245    unsigned zorder;             /* 0 is on bottom. For two decode window systems, 1 is on top. */
1246    bool cloned;                 /* read-only. true if this window was created with
1247                                     bdecode_window_clone. */
1248    bool deinterlacer;           /* If true, the motion adaptive deinterlacer (MAD)
1249                                     is allowed to be used if available and appropriate. */
1250    bool box_detect;             /* If true, the box detect hardware is allowed to be
1251                                     used if available and appropriate. */
1252
1253    int16_t contrast;            /* Color space conversion for the decode window (not the
1254                                     display). Ranges between -32768 and 32767.
1255                                     Default is 0. */
1256    int16_t saturation;          /* Color space conversion for the decode window (not the
1257                                     display). Ranges between -32768 and 32767.
1258                                     Default is 0. */
1259    int16_t hue;                 /* Color space conversion for the decode window (not the
1260                                     display). Ranges between -32768 and 32767.
1261                                     Default is 0. */
1262    int16_t brightness;          /* Color space conversion for the decode window (not the
1263                                     display). Ranges between -32768 and 32767.
1264                                     Default is 0. */
1265    int16_t sharpness;           /* Sharpness enhancement for the decode window (not the
1266                                     display). Ranges between -32768 and 32767.
1267                                     Default is 0. */
1268
1269    bwindow_dnr_level dcr_level; /* Digital Contour Reduction Level */
1270    bwindow_dnr_level mnr_level; /* Mosquito Noise Reduction Level */
1271    bwindow_dnr_level bnr_level; /* Mosquito Noise Reduction Level */
1272    bwindow_dnr_level anr_level; /* Analog Noise Reduction Level */
1273
1274    unsigned green_stretch;      /* Green Stretch Value -- Ranges between 0 (default) and 4 */
1275    unsigned blue_stretch;       /* Blue Stretch Value -- Ranges between 0 (default) and 4 */
1276    unsigned auto_flesh_tone;    /* Auto Flesh Tone Value -- Ranges between 0 (default) and 4 */
1277
1278    unsigned dynamic_contrast;   /* Dynamic contrast value.  Ranges from 0 (default) and 256  */
1279
1280    bool display_rate_master;    /* Set this property to true if the window should control the
1281                                    display output timebase.  This is a toggle property.  There
1282                                    must be only one display rate master, settings this to true
1283                                    will clear the property from all other windows on the display.
1284                                    Setting this to false will have no effect. */
1285    bwindow_splitscreen_mode splitscreen_mode;  /* Split Screen Demo Mode */
1286} bdecode_window_settings;
1287
1288/*
1289Summary:
1290    Get the current settings of a decode window.
1291*/
1292bresult bdecode_window_get(
1293    bdecode_window_t window,
1294    bdecode_window_settings *settings   /* [out] */
1295    );
1296
1297/*
1298Summary:
1299    Apply new settings to the decode window.
1300Description:
1301    Only those individual settings which have changed will be asserted.
1302*/
1303bresult bdecode_window_set(
1304    bdecode_window_t window,
1305    const bdecode_window_settings *settings
1306    );
1307
1308/* End of decode window API  */
1309
1310#ifdef __cplusplus
1311}
1312#endif
1313
1314
1315#endif /* BSETTOP_H__ */
1316
Note: See TracBrowser for help on using the repository browser.