source: svn/newcon3bcm2_21bu/nexus/modules/frontend/common/include/nexus_frontend_ofdm.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: 51.0 KB
Line 
1/***************************************************************************
2*     (c)2004-2011 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: nexus_frontend_ofdm.h $
39* $brcm_Revision: 35 $
40* $brcm_Date: 11/16/11 11:17a $
41*
42* API Description:
43*   API name: Frontend OFDM
44*    Generic APIs for OFDM (Orthogonal Frequency-Division Multiplexing) tuning.
45*    This is used in DVB-H and DVB-T environments.
46*
47* Revision History:
48*
49* $brcm_Log: /nexus/modules/frontend/common/include/nexus_frontend_ofdm.h $
50*
51* 35   11/16/11 11:17a erickson
52* SW3461-85: add NEXUS_FrontendOfdmTransmissionMode_e1k
53*
54* 34   9/26/11 1:55p mphillip
55* SW3461-53: Merge changes from branch to main
56*
57* SW3461-36/5   9/9/11 3:09p vishk
58* SW3461-14: Signal strength returns 0
59*
60* SW3461-36/4   9/9/11 2:56p vishk
61* SW3461-25: New API required to support streams with multiple PLP's
62*
63* SW3461-36/3   9/7/11 8:31a vishk
64* SW3461-48: Fix 3461 frontend issues. Fix plpMode usage.
65*
66* 32   8/19/11 4:47p mphillip
67* SW3461-36: Temporary fix until the merge from the branch SW3461-36 is
68*  done
69*
70* 31   6/6/11 2:22p mphillip
71* SW7231-32: Add 3461 support
72*
73* 30   5/26/11 4:36p erickson
74* SW7231-32: rename asyncStatusReadyCallback
75*
76* 29   5/24/11 6:57p mphillip
77* SW7231-32: Add ofdm async status support functions
78*
79* 28   5/24/11 5:10p erickson
80* SW7231-32: reorder settings, add dvbt2Settings
81*
82* 27   12/17/10 4:50p jgarrett
83* SW35230-2405: Adding spectral mode
84*
85* 26   9/28/10 11:40a erickson
86* SW7550-584: merge
87*
88* SW7550-584/1   9/27/10 11:46a pinglong
89* SW7550-584: add blocks counters to ISDB-T three layers status for post
90*  RS BER
91*
92* 25   9/13/10 12:18p erickson
93* SW35230-1306: deprecate NEXUS_FrontendXxxBandwidth. use unsigned
94*  integer in units of Hz instead.
95*
96* 24   7/8/10 5:38p jhaberf
97* SW35230-562: Added ISDB-T demodulation to OFDM modulation enum
98*
99* 23   6/18/10 2:02p erickson
100* SW7405-4511: add DVB-T2 types
101*
102* 22   6/4/10 11:29a erickson
103* SW7550-447: merge
104*
105* SW7550-447/1   5/26/10 1:38p farshidf
106* SW7550-447: exposed the pre RS correcttion at Nexus Level for all
107*  layers ISDB-T mode
108*
109* 21   5/18/10 6:05p jgarrett
110* SW7550-399: Adding option for cable/terrestrial setup in OFDM
111*
112* SW7550-399/1   5/10/10 2:58p farshidf
113* SW7550-38: add the Cable or Ter tuner setting
114*
115* 20   3/2/10 5:18p jgarrett
116* SW7550-290: Adding acquisition mode for OFDM tuning
117*
118* THD_7550_Auto/2   2/3/10 6:34p farshidf
119* SW7550-38: add the scan mode
120*
121* THD_7550_Auto/1   2/1/10 6:04p farshidf
122* SW7550-38: initinal ISDB-T channel scan
123*
124* 19   11/18/09 9:43a jgarrett
125* SW7550-48: Adding nexus hooks for tuner and platform frontend
126*  initialization
127*
128* 18   11/6/09 5:06p jgarrett
129* SW7550-48: Adding ISDB-T and EWS
130*
131* 17   9/25/09 10:48a jgarrett
132* SW7405-2945: Changing type for signalStrength
133*
134* 16   7/20/09 12:46p erickson
135* PR56816: improve NEXUS_FrontendOfdmStatus comments
136*
137* 15   4/28/09 10:03a erickson
138* PR54218: add NEXUS_FrontendOfdmStatus.rsPerDelta and .vitBerDelta
139*
140* 14   3/18/09 2:09p jgarrett
141* PR 53095: Adding cell id
142*
143* 13   3/10/09 6:23p jgarrett
144* PR 52629: Adding spectrumInverted to status
145*
146* 12   11/12/08 1:40p jgarrett
147* PR 48626: Adding Pre/Post Viterbi BER
148*
149* 11   9/17/08 3:33p jgarrett
150* PR 47011: Adding no signal detected flag
151*
152* 10   7/31/08 11:03a jrubio
153* PR45002: fix comma at end of list
154*
155* 9   7/30/08 12:50p jgarrett
156* PR 45002: Adding TPS settings
157*
158* 8   7/21/08 2:18p jgarrett
159* PR 44997: Adding IF/RF AGC levels
160*
161* 7   7/21/08 2:06p jgarrett
162* PR 44998: Converting some status values to enums
163*
164* 6   4/28/08 2:21p arbisman
165* PR40927: Add modulation, transmission mode and guard interval
166*
167* 5   2/28/08 11:08a arbisman
168* PR39100: Added extra status fields from THD
169*
170* 4   2/12/08 2:34p jgarrett
171* PR 39009: Unifying status
172*
173* 3   1/23/08 8:37p vobadm
174* PR35457: update docs
175*
176* 2   1/23/08 5:16p erickson
177* PR35457: update docs
178*
179* 1   1/18/08 2:19p jgarrett
180* PR 38808: Merging to main branch
181*
182* Nexus_Devel/2   1/10/08 3:50p jgarrett
183* PR 38653: Adding priority
184*
185* Nexus_Devel/1   1/10/08 2:33p jgarrett
186* PR 38653: Initial version
187*
188***************************************************************************/
189#ifndef NEXUS_FRONTEND_OFDM_H__
190#define NEXUS_FRONTEND_OFDM_H__
191
192#ifdef __cplusplus
193extern "C" {
194#endif
195
196/***************************************************************************
197Summary:
198    Enumeration for receiver mode
199****************************************************************************/
200typedef enum NEXUS_FrontendOfdmMode
201{
202    NEXUS_FrontendOfdmMode_eDvbt,       /* DVB-T */
203    NEXUS_FrontendOfdmMode_eDvbt2,      /* DVB-T2 */
204    NEXUS_FrontendOfdmMode_eIsdbt,      /* ISDB-T */
205    NEXUS_FrontendOfdmMode_eMax
206} NEXUS_FrontendOfdmMode;
207
208/***************************************************************************
209Summary:
210    Enumeration for receiver CCI (CoChannel Interference Filter) Mode
211****************************************************************************/
212typedef enum NEXUS_FrontendOfdmCciMode
213{
214    NEXUS_FrontendOfdmCciMode_eNone,    /* No CCI selected */
215    NEXUS_FrontendOfdmCciMode_eAuto,    /* Auto Selection */
216    NEXUS_FrontendOfdmCciMode_eMax
217} NEXUS_FrontendOfdmCciMode;
218
219/***************************************************************************
220The NEXUS_FrontendOfdmBandwidth enum has been deprecated. It is an unsigned integer in units of Hz now.
221The following #defines are for backward compatibility only.
222***************************************************************************/
223#define NEXUS_FrontendOfdmBandwidth_e5Mhz 5000000
224#define NEXUS_FrontendOfdmBandwidth_e6Mhz 6000000
225#define NEXUS_FrontendOfdmBandwidth_e7Mhz 7000000
226#define NEXUS_FrontendOfdmBandwidth_e8Mhz 8000000
227#define NEXUS_FrontendOfdmBandwidth_eMax  4
228
229/***************************************************************************
230Summary:
231    Enumeration for stream priority
232
233Description:
234    DVB-T can hierarchically encode streams.  A low-priority stream can
235    be embedded within a high priority stream.  Receivers with good reception
236    conditions may be able to receive both streams, but receivers with poor
237    reception conditions may only be able to receive the high priority stream.
238
239****************************************************************************/
240typedef enum NEXUS_FrontendOfdmPriority
241{
242    NEXUS_FrontendOfdmPriority_eHigh,
243    NEXUS_FrontendOfdmPriority_eLow,
244    NEXUS_FrontendOfdmPriority_eMax
245} NEXUS_FrontendOfdmPriority;
246
247/***************************************************************************
248Summary:
249    OFDM Code Rate
250****************************************************************************/
251typedef enum NEXUS_FrontendOfdmCodeRate
252{
253    NEXUS_FrontendOfdmCodeRate_e1_2,      /* Rate 1/2 */
254    NEXUS_FrontendOfdmCodeRate_e2_3,      /* Rate 2/3 */
255    NEXUS_FrontendOfdmCodeRate_e3_4,      /* Rate 3/4 */
256    NEXUS_FrontendOfdmCodeRate_e3_5,      /* Rate 3/5 DVB-T2*/
257    NEXUS_FrontendOfdmCodeRate_e4_5,      /* Rate 4/5 DVB-T2*/
258    NEXUS_FrontendOfdmCodeRate_e5_6,      /* Rate 5/6 */
259    NEXUS_FrontendOfdmCodeRate_e7_8,      /* Rate 7/8 */
260    NEXUS_FrontendOfdmCodeRate_eMax
261}NEXUS_FrontendOfdmCodeRate;
262
263/***************************************************************************
264Summary:
265    OFDM Hierarchy
266****************************************************************************/
267typedef enum NEXUS_FrontendOfdmHierarchy
268{
269    NEXUS_FrontendOfdmHierarchy_e0,        /* Select Hierarchy 0 */
270    NEXUS_FrontendOfdmHierarchy_e1,        /* Select Hierarchy 1 */
271    NEXUS_FrontendOfdmHierarchy_e2,        /* Select Hierarchy 2 */
272    NEXUS_FrontendOfdmHierarchy_e4,        /* Select Hierarchy 4 */
273    NEXUS_FrontendOfdmHierarchy_eMax
274}NEXUS_FrontendOfdmHierarchy;
275
276/***************************************************************************
277Summary:
278    OFDM ISDB-T Time Interleaving Mode
279****************************************************************************/
280typedef enum NEXUS_FrontendOfdmTimeInterleaving
281{
282    NEXUS_FrontendOfdmTimeInterleaving_e0x,
283    NEXUS_FrontendOfdmTimeInterleaving_e1x,
284    NEXUS_FrontendOfdmTimeInterleaving_e2x,
285    NEXUS_FrontendOfdmTimeInterleaving_e3x,
286    NEXUS_FrontendOfdmTimeInterleaving_eMax
287} NEXUS_FrontendOfdmTimeInterleaving;
288
289/***************************************************************************
290Summary:
291    OFDM modulation mode
292****************************************************************************/
293typedef enum NEXUS_FrontendOfdmModulation
294{
295    NEXUS_FrontendOfdmModulation_eQpsk,
296    NEXUS_FrontendOfdmModulation_eQam16,
297    NEXUS_FrontendOfdmModulation_eQam64,
298    NEXUS_FrontendOfdmModulation_eQam256, /* DVB-T2 */
299    NEXUS_FrontendOfdmModulation_eDqpsk, /* ISDB-T */
300    NEXUS_FrontendOfdmModulation_eMax
301}NEXUS_FrontendOfdmModulation;
302
303
304/***************************************************************************
305Summary:
306    OFDM modulation mode
307****************************************************************************/
308typedef enum NEXUS_FrontendOfdmAcquisitionMode
309{
310    NEXUS_FrontendOfdmAcquisitionMode_eAuto,        /* Default.  Automatic Re-acquisition. */
311    NEXUS_FrontendOfdmAcquisitionMode_eManual,      /* Manual Re-acquisition, app must re-acquire if signal is lost. */
312    NEXUS_FrontendOfdmAcquisitionMode_eScan,        /* Auto-scan acquisition.  Will re-acquire if signal strength is considered sufficient. */
313    NEXUS_FrontendOfdmAcquisitionMode_eMax
314}NEXUS_FrontendOfdmAcquisitionMode;
315
316/***************************************************************************
317Summary:
318    OFDM transmission mode
319****************************************************************************/
320typedef enum NEXUS_FrontendOfdmTransmissionMode
321{
322    NEXUS_FrontendOfdmTransmissionMode_e1k,     /* DVB-T2 */
323    NEXUS_FrontendOfdmTransmissionMode_e2k,
324    NEXUS_FrontendOfdmTransmissionMode_e4k,
325    NEXUS_FrontendOfdmTransmissionMode_e8k,
326    NEXUS_FrontendOfdmTransmissionMode_e16k,    /* DVB-T2 */
327    NEXUS_FrontendOfdmTransmissionMode_e32k,    /* DVB-T2 */
328    NEXUS_FrontendOfdmTransmissionMode_eMax
329}NEXUS_FrontendOfdmTransmissionMode;
330
331/***************************************************************************
332Summary:
333    OFDM guard interval
334****************************************************************************/
335typedef enum NEXUS_FrontendOfdmGuardInterval
336{
337    NEXUS_FrontendOfdmGuardInterval_e1_32,  /* 1/32 Guard Interval */
338    NEXUS_FrontendOfdmGuardInterval_e1_16,  /* 1/16 Guard Interval */
339    NEXUS_FrontendOfdmGuardInterval_e1_8,   /* 1/8 Guard Interval */
340    NEXUS_FrontendOfdmGuardInterval_e1_4,   /* 1/4 Guard Interval */
341    NEXUS_FrontendOfdmGuardInterval_e1_128, /* 1/128 Guard Interval DVB-T2 */
342    NEXUS_FrontendOfdmGuardInterval_e19_128,/* 19/128 Guard Interval DVB-T2 */
343    NEXUS_FrontendOfdmGuardInterval_e19_256,/* 19/256 Guard Interval DVB-T2 */
344    NEXUS_FrontendOfdmGuardInterval_eMax
345}NEXUS_FrontendOfdmGuardInterval;
346
347/***************************************************************************
348Summary:
349    OFDM Pull-In Range
350****************************************************************************/
351typedef enum NEXUS_FrontendOfdmPullInRange
352{
353    NEXUS_FrontendOfdmPullInRange_eNarrow,  /* Carrier acquisition range is narrow +/-200kHz */
354    NEXUS_FrontendOfdmPullInRange_eWide,    /* carrier acquisition range is wide +/-600kHz */
355    NEXUS_FrontendOfdmPullInRange_eMax
356}NEXUS_FrontendOfdmPullInRange;
357
358/***************************************************************************
359Summary:
360    OFDM spectral parameters
361 ***************************************************************************/
362typedef enum NEXUS_FrontendOfdmSpectrum
363{
364    NEXUS_FrontendOfdmSpectrum_eAuto,
365    NEXUS_FrontendOfdmSpectrum_eNonInverted,
366    NEXUS_FrontendOfdmSpectrum_eInverted,
367    NEXUS_FrontendOfdmSpectrum_eMax
368} NEXUS_FrontendOfdmSpectrum;
369
370/***************************************************************************
371Summary:
372    OFDM tuning parameters
373 ***************************************************************************/
374typedef struct NEXUS_FrontendOfdmSettings
375{
376    NEXUS_FrontendOfdmMode mode;
377    unsigned bandwidth; /* in Hz */
378    unsigned frequency;                     /* In Hz */
379    bool terrestrial;                                  /* Receiver mode: true=terrestrial, false=cable */
380    NEXUS_FrontendOfdmAcquisitionMode acquisitionMode; /* Acquisition Mode.  Default is auto, not supported on all platforms. */
381    NEXUS_FrontendOfdmSpectrum spectrum;               /* Spectral mode.  Default is auto, not supported on all platforms. */
382    NEXUS_CallbackDesc lockCallback;                   /* Callback will be called when lock status changes */
383    NEXUS_CallbackDesc asyncStatusReadyCallback;       /* Callback will be called when the async ofdm status is ready. */
384   
385   
386    struct
387    {
388       bool plpMode;    /* This bit controls whether the output  PLP is  manually or automatically selected.  When plpMode is false(manual mode), the user must supply the desired plpId.  */
389       uint8_t plpId;   /* In single-PLP applications, this unsigned number specifies the desired PLP for output by the T2 receiver.
390                                              In multiple-PLP applications, this unsigned number specifies the ID for the data  (Type1 or Type2) PLP
391                                              and the common (Type0) PLP is automatically determined. */
392    } dvbt2Settings;
393   
394
395    /* The parameters below are ISDB-T and DVB-T settings. Left as is for legacy reasons. */
396   
397    unsigned ifFrequency;                   /* In Hz */
398    NEXUS_CallbackDesc ewsCallback;                    /* Callback will be called when the ISDB-T EWS (Emergency Warning System) status changes */
399    NEXUS_FrontendOfdmCciMode cciMode;
400    NEXUS_FrontendOfdmPriority priority;
401    NEXUS_FrontendOfdmPullInRange pullInRange;
402
403    bool manualTpsSettings;     /* Set to true if you want to manually specify TPS (Transmission Parameters Signalling) settings for DVB-T */
404    struct
405    {
406        NEXUS_FrontendOfdmCodeRate highPriorityCodeRate;    /* High priority coderate to be used in acquisition.  Ignored if manualTpsSettings = false */
407        NEXUS_FrontendOfdmCodeRate lowPriorityCodeRate;     /* Low priority coderate to be used in acquisition.  Ignored if manualTpsSettings = false */
408        NEXUS_FrontendOfdmHierarchy hierarchy;              /* Hierarchy to be used in acquisition.  Ignored if manualTpsSettings = false */
409        NEXUS_FrontendOfdmModulation modulation;            /* Modulation to be used in acquisition.  Ignored if manualTpsSettings = false */
410    } tpsSettings;
411
412    bool manualModeSettings;    /* Set to true if you want to manually specify mode and guard interval settings */
413    struct
414    {
415        NEXUS_FrontendOfdmTransmissionMode mode;            /* Transmission mode to be used in acquisition.  Ignored if manualModeSettings = false */
416        NEXUS_FrontendOfdmGuardInterval guardInterval;      /* Guard interval to be used in acquisition.  Ignored if manualModeSettings = false */
417    } modeSettings;
418
419    bool manualTmccSettings;     /* Set to true if you want to manually specify TMCC (Transmission and Multiplexing Configuration Control) settings */
420    struct
421    {
422        bool                               partialReception;        /* Manually set ISDB-T partial reception. */
423        NEXUS_FrontendOfdmModulation       modulationA;             /* Manually set ISDB-T Layer A modulation type. */
424        NEXUS_FrontendOfdmCodeRate         codeRateA;               /* Manually set ISDB-T Layer A code rate. */
425        NEXUS_FrontendOfdmTimeInterleaving timeInterleavingA;       /* Manually set ISDB-T Layer A time interleaving.*/
426        unsigned                           numSegmentsA;            /* Manually set ISDB-T Layer A number of segments. */
427        NEXUS_FrontendOfdmModulation       modulationB;             /* Manually set ISDB-T Layer B modulation type. */
428        NEXUS_FrontendOfdmCodeRate         codeRateB;               /* Manually set ISDB-T Layer B code rate. */
429        NEXUS_FrontendOfdmTimeInterleaving timeInterleavingB;       /* Manually set ISDB-T Layer B time interleaving.*/
430        unsigned                           numSegmentsB;            /* Manually set ISDB-T Layer B number of segments. */
431        NEXUS_FrontendOfdmModulation       modulationC;             /* Manually set ISDB-T Layer C modulation type. */
432        NEXUS_FrontendOfdmCodeRate         codeRateC;               /* Manually set ISDB-T Layer C code rate. */
433        NEXUS_FrontendOfdmTimeInterleaving timeInterleavingC;       /* Manually set ISDB-T Layer C time interleaving.*/
434        unsigned                           numSegmentsC;            /* Manually set ISDB-T Layer C number of segments. */
435    } tmccSettings;
436} NEXUS_FrontendOfdmSettings;
437
438/***************************************************************************
439Summary:
440    Initialize an OFDM settings structure to defaults
441 ***************************************************************************/
442void NEXUS_Frontend_GetDefaultOfdmSettings(
443    NEXUS_FrontendOfdmSettings *pSettings   /* [out] */
444    );
445
446/***************************************************************************
447Summary:
448    Tune to an OFDM channel
449 ***************************************************************************/
450NEXUS_Error NEXUS_Frontend_TuneOfdm(
451    NEXUS_FrontendHandle handle,
452    const NEXUS_FrontendOfdmSettings *pSettings
453    );
454
455/***************************************************************************
456Summary:
457    This enumeration indicates the types of the Tx input streams carried
458    within the current DVBT2 super-frame.
459    Applicable only to DVBT2 channel according to ETSI EN 302 755 standard.
460****************************************************************************/
461typedef enum NEXUS_FrontendOfdmStreamType
462{
463  NEXUS_FrontendOfdmStreamType_eTS, /* Transport Stream */
464  NEXUS_FrontendOfdmStreamType_eGS, /* Generic Stream (GSE [i.2] and/or GFPS and/or GCS) but not TS */
465  NEXUS_FrontendOfdmStreamType_eMixed /* Both TS and Generic Stream (i.e. TS and at least one of GSE, GFPS, GCS) */
466} NEXUS_FrontendOfdmStreamType;
467
468/***************************************************************************
469Summary:
470   This enumeration represents the PAPR reduction used.
471   Applicable only to DVBT2 channel according to ETSI EN 302 755 standard.
472****************************************************************************/
473typedef enum NEXUS_FrontendOfdmPapr
474{
475  NEXUS_FrontendOfdmPapr_eNone, /* L1-ACE is used and TR is used on P2 symbols only */
476  NEXUS_FrontendOfdmPapr_eACE,  /* L1-ACE and ACE only are used */
477  NEXUS_FrontendOfdmPapr_eTR,   /* L1-ACE and TR only are used */
478  NEXUS_FrontendOfdmPapr_eBoth  /* L1-ACE, ACE and TR are used */
479} NEXUS_FrontendOfdmPapr;
480
481/***************************************************************************
482Summary:
483    This enumeration represents the constellation of the L1-post signalling
484    data block. Applicable only to DVBT2 channel according to ETSI EN 302 755 standard.
485****************************************************************************/
486typedef enum NEXUS_FrontendOfdmL1Mod
487{
488  NEXUS_FrontendOfdmL1Mod_eBpsk,  /* BPSK constellation */
489  NEXUS_FrontendOfdmL1Mod_eQpsk,  /* QPSK constellation */
490  NEXUS_FrontendOfdmL1Mod_e16Qam, /* 16-QAM constellation */
491  NEXUS_FrontendOfdmL1Mod_e64Qam  /* 64-QAM constellation */
492} NEXUS_FrontendOfdmL1Mod;
493
494/***************************************************************************
495Summary:
496    This enumeration represents the coding of the L1-post signalling data block.
497    Applicable only to DVBT2 channel according to ETSI EN 302 755 standard.
498****************************************************************************/
499typedef enum NEXUS_FrontendOfdmL1CodeRate
500{
501  NEXUS_FrontendOfdmL1CodeRate_e1_2 /* code rate 1/2 */
502} NEXUS_FrontendOfdmL1CodeRate;
503
504/***************************************************************************
505Summary:
506    This enumeration represents type of the L1 FEC used for the L1-post
507    signalling data block. Applicable only to DVBT2 channel according to ETSI EN 302 755 standard.
508****************************************************************************/
509typedef enum NEXUS_FrontendOfdmFecType
510{
511  NEXUS_FrontendOfdmFecType_e16K, /* LDPC 16K */
512  NEXUS_FrontendOfdmFecType_e64K  /* LDPC 64k */
513} NEXUS_FrontendOfdmFecType;
514
515/***************************************************************************
516Summary:
517    This enumeration represents the scattered pilot pattern used for the data
518    OFDM symbols. Applicable only to DVBT2 channel according to ETSI EN 302 755 standard.
519****************************************************************************/
520typedef enum NEXUS_FrontendOfdmPilotPattern
521{
522  NEXUS_FrontendOfdmPilotPattern_e1, /* PP1 */
523  NEXUS_FrontendOfdmPilotPattern_e2, /* PP2 */
524  NEXUS_FrontendOfdmPilotPattern_e3, /* PP3 */
525  NEXUS_FrontendOfdmPilotPattern_e4, /* PP4 */
526  NEXUS_FrontendOfdmPilotPattern_e5, /* PP5 */
527  NEXUS_FrontendOfdmPilotPattern_e6, /* PP6 */
528  NEXUS_FrontendOfdmPilotPattern_e7, /* PP7 */
529  NEXUS_FrontendOfdmPilotPattern_e8  /* PP8 */
530} NEXUS_FrontendOfdmPilotPattern;
531
532/***************************************************************************
533Summary:
534    This structure contains the complete L1 Pre status.
535    Applicable only to DVBT2 channel according to ETSI EN 302 755 standard.
536****************************************************************************/
537typedef struct NEXUS_FrontendOfdmL1PreStatus
538{
539    NEXUS_FrontendOfdmStreamType         streamType;         /* streamType */   
540    bool                                 bwtExt;             /* This field indicates whether the extended carrier mode is used in the case of 8K, 16K and 32K FFT
541                                                                                                               sizes. When this field is set to '1', the extended carrier mode is used. If this field is set to '0',
542                                                                                                               the normal carrier mode is used */
543    uint8_t                              s1;                 /* This field has the same value as in the P1 signalling. */   
544    uint8_t                              s2;                 /* This field has the same value as in the P1 signalling. */   
545    bool                                 l1RepetitionFlag;   /* This flag indicates whether the dynamic L1-post signalling is provided also for the next frame. */
546    NEXUS_FrontendOfdmGuardInterval      guardInterval;      /* This field indicates the guard interval of the current super-frame */
547    NEXUS_FrontendOfdmPapr               papr;               /* This field describes what kind of PAPR reduction is used */
548    NEXUS_FrontendOfdmL1Mod              l1Mod;              /* This field field describes the coding of the L1-post signalling data block */
549    NEXUS_FrontendOfdmL1CodeRate         l1CodeRate;         /*  This field describes the coding of the L1-post signalling data block */
550    NEXUS_FrontendOfdmFecType            l1FecType;          /* This field indicates the type of the L1 FEC used for the L1-post signalling data block */
551    NEXUS_FrontendOfdmPilotPattern       pilotPattern;       /* This 4-bit field indicates the scattered pilot pattern used for the data OFDM symbols. */
552    uint8_t                              regenFlag;          /* This 3-bit field indicates how many times the DVB-T2 signal has been re-generated */
553    bool                                 l1PostExt;          /* This 1-bit field indicates the presence of the L1-post extension field */
554    uint8_t                              numRf;              /* This 3-bit field indicates the number of frequencies in the current T2 system */
555    uint8_t                              currentRfIndex;     /* If the TFS mode is supported, this 3-bit field indicates the index of the current RF channel
556                                                                                                               within its TFS structure, between 0 and numRf-1, otherwise it is set to 0 */
557    uint8_t                              txIdAvailability;   /* This 8-bit field is used to signal the availability of transmitter identification signals within
558                                                                                                               the current geographic cell. */
559    uint8_t                              numT2Frames;        /* This 8-bit field indicates the number of T2-frames per super-frame. The minimum value of
560                                                                                                               numT2Frames shall be 2. */
561    uint16_t                             numDataSymbols;     /* This 12-bit field indicates Ldata= LF - NP2, the number of data OFDM symbols per
562                                                                                                               T2-frame, excluding P1 and P2. */
563    uint16_t                             cellId;             /* This is a 16-bit field which uniquely identifies a geographic cell in a DVB-T2 network */
564    uint16_t                             networkId;          /* This is a 16-bit field which uniquely identifies the current DVB network */
565    uint16_t                             t2SystemId;         /* This 16-bit field uniquely identifies a T2 system within the DVB network */
566    uint32_t                             l1PostSize;         /* This 18-bit field indicates the size of the coded and modulated L1-post signalling data block, in OFDM cells. */
567    uint32_t                             l1PostInfoSize;     /* This 18-bit field indicates the size of the information part of the L1-post signalling data
568                                                                                                                block, in bits, including the extension field, if present, but excluding the CRC */
569} NEXUS_FrontendOfdmL1PreStatus;
570
571/***************************************************************************
572Summary:
573    This enumeration represents the type of the associated PLP.
574    Applicable only to DVBT2 channel according to ETSI EN 302 755 standard.
575****************************************************************************/
576typedef enum NEXUS_FrontendOfdmPlpType
577{
578  NEXUS_FrontendOfdmPlpType_eCommon,    /* Common PLP */
579  NEXUS_FrontendOfdmPlpType_eDataType1, /* DATA PLP Type 1 */
580  NEXUS_FrontendOfdmPlpType_eDataType2  /* DATA PLP Type 2 */
581} NEXUS_FrontendOfdmPlpType;
582
583/***************************************************************************
584Summary:
585    This enumeration represents the type of the payload data carried by the
586    associated PLP. Applicable only to DVBT2 channel according to ETSI EN 302 755 standard.
587****************************************************************************/
588typedef enum NEXUS_FrontendOfdmPlpPayloadType
589{
590  NEXUS_FrontendOfdmPlpPayloadType_eGFPS, /* GFPS */
591  NEXUS_FrontendOfdmPlpPayloadType_eGCS,  /* GCS */
592  NEXUS_FrontendOfdmPlpPayloadType_eGSE,  /* GSE */
593  NEXUS_FrontendOfdmPlpPayloadType_eTS    /* TS */
594} NEXUS_FrontendOfdmPlpPayloadType;
595
596/***************************************************************************
597Summary:
598    This enumeration represents the code rate used by the associated PLP.
599    Applicable only to DVBT2 channel according to ETSI EN 302 755 standard.
600****************************************************************************/
601typedef enum NEXUS_FrontendOfdmPlpCodeRate
602{
603  NEXUS_FrontendOfdmPlpCodeRate_e1_2,
604  NEXUS_FrontendOfdmPlpCodeRate_e3_5,
605  NEXUS_FrontendOfdmPlpCodeRate_e2_3,
606  NEXUS_FrontendOfdmPlpCodeRate_e3_4,
607  NEXUS_FrontendOfdmPlpCodeRate_e4_5,
608  NEXUS_FrontendOfdmPlpCodeRate_e5_6
609} NEXUS_FrontendOfdmPlpCodeRate;
610
611/***************************************************************************
612Summary:
613    This enumeration represents the modulation used by the associated PLP.
614    data block. Applicable only to DVBT2 channel according to ETSI EN 302 755 standard.
615****************************************************************************/
616typedef enum NEXUS_FrontendOfdmPlpMod
617{
618  NEXUS_FrontendOfdmPlpMod_eQpsk,   /* QPSK constellation */
619  NEXUS_FrontendOfdmPlpMod_e16Qam,  /* 16-QAM constellation */
620  NEXUS_FrontendOfdmPlpMod_e64Qam,  /* 64-QAM constellation */
621  NEXUS_FrontendOfdmPlpMod_e256Qam  /* 256-QAM constellation */
622} NEXUS_FrontendOfdmPlpMod;
623
624/***************************************************************************
625Summary:
626     This structure is returned when BTC2_GetAsyncStatus() is called.  This
627    structure contains the complete L1 Post Configurable PLP parameters of a TC2 channel.
628    Applicable only to DVBT2 channel according to ETSI EN 302 755 standard.
629****************************************************************************/
630typedef struct NEXUS_FrontendOfdmL1PostCfgPlp
631{
632    uint8_t                              plpId;           /* This 8-bit field identifies uniquely a PLP within the T2 system. */
633    uint8_t                              plpGroupId;      /* This 8-bit field identifies with which PLP group within the T2 system the current PLP is associated. */
634    NEXUS_FrontendOfdmPlpType            plpType;         /* This 3-bit field indicates the type of the associated PLP */ 
635    NEXUS_FrontendOfdmPlpPayloadType     plpPayloadType;  /* This 5-bit field indicates the type of the payload data carried by the associated PLP */
636    bool                                 ffFlag;          /* This flag is set to '1' if a PLP of type 1 in a TFS system occurs on the same RF channel in each
637                                                                                                          T2-frame. This flag is set to '0' if inter-frame TFS is applied as described in annex E */
638    uint8_t                              firstRfIdx;      /* This 3-bit field indicates on which RF channel a type 1 data PLP occurs in the first frame of
639                                                                                                          a super-frame in a TFS system. */
640    uint8_t                              firstFrameIdx;   /* This 8-bit field indicates the IDX of the first frame of the super-frame in which the current PLP occurs. */
641    NEXUS_FrontendOfdmPlpCodeRate        plpCodeRate;     /* This field represents the code rate used by the associated PLP. */
642    NEXUS_FrontendOfdmPlpMod             plpMod;          /* This 3-bit field indicates the modulation used by the associated PLP */
643    bool                                 plpRotation;     /* This flag indicates whether constellation rotation is in use or not by the associatedPLP */
644    NEXUS_FrontendOfdmFecType            plpFecType;      /* This 2-bit field indicates the FEC type used by the associated PLP */
645    uint16_t                             plpNumBlocksMax; /* This 10-bit field indicates the maximum value of plpNumBlocksMax */
646    uint8_t                              frameInterval;   /* This 8-bit field indicates the T2-frame interval within the super-frame for the associated PLP */
647    uint8_t                              timeIlLength;
648    bool                                 timeIlType;      /* This 1-bit field indicates the type of time-interleaving */
649    bool                                 inBandFlag;      /* This 1-bit field indicates whether the current PLP carries in-band type A signalling information */
650}NEXUS_FrontendOfdmL1PostCfgPlp;
651
652/***************************************************************************
653Summary:
654    This structure is returned when BTC2_GetAsyncStatus() is called.  This
655    structure contains the complete L1 Post Configurable status.
656    Applicable only to DVBT2 channel according to ETSI EN 302 755 standard.
657****************************************************************************/
658typedef struct NEXUS_FrontendOfdmL1PostConfigurableStatus
659{
660    uint16_t                       subSlicesPerFrame; /* This 15-bit field indicates Nsubslices_total, the total number of sub-slices for the type 2
661                                                                                                   data PLPs across all RF channels in one T2-frame */
662    uint8_t                        numPlp;            /* This 8-bit field indicates the number of PLPs carried within the current super-frame */ 
663    uint8_t                        numAux;            /* This 4-bit field indicates the number of auxiliary streams */
664    uint8_t                        auxConfigRFu;
665    uint8_t                        fefType;           /* This 4-bit field shall indicate the type of the associated FEF part */
666    uint8_t                        rfIdx;             /* This 3-bit field indicates the index of each FREQUENCY listed within this loop */
667    uint8_t                        fefInterval;       /* This 8-bit field indicates the number of T2-frames between two FEF parts */
668    uint32_t                       frequency;         /* This 32-bit field indicates the centre frequency in Hz of the RF channel whose index is rfIdx */
669    uint32_t                       fefLength;         /* This 22-bit field indicates the length of the associated FEF part as the number of elementary
670                                                                                                   periods T, from the start of the P1 symbol of the FEF part to the start of the P1 symbol of the ext T2-frame*/
671    NEXUS_FrontendOfdmL1PostCfgPlp plpA;              /* PLP loop A */
672    NEXUS_FrontendOfdmL1PostCfgPlp plpB;              /* PLP loop B */
673    uint8_t                        auxStreamType;     /* This 4-bit field indicates the type of the current auxiliary stream */
674    uint32_t                       auxPrivateConf;    /* This 28-bit field is for future use for signalling auxiliary streams */
675} NEXUS_FrontendOfdmL1PostConfigurableStatus;
676
677/***************************************************************************
678Summary:
679    This structure represents the TC2 L1 Post Dynamic PLP structure.
680
681Description:
682    This structure is returned when BTC2_GetAsyncStatus() is called.  This
683    structure contains the complete L1 Post Dynamic PLP parameters of a TC2 channel.
684
685See Also:
686    BTC2_GetAsyncStatus()
687
688****************************************************************************/
689typedef struct NEXUS_FrontendOfdmL1PostDynamicPlp
690{
691    uint8_t      plpId;
692    uint16_t     plpNumBlocks; /* This 10-bit field indicates the number of FEC blocks contained in the current
693                                                           Interleaving Frame for the current PLP */
694    uint32_t     plpStart;     /* This 22-bit field indicates the start position of the associated PLP within the current T2-frame
695                                                           using the cell addressing scheme */
696} NEXUS_FrontendOfdmL1PostDynamicPlp;
697
698/***************************************************************************
699Summary:
700    This structure is returned when BTC2_GetAsyncStatus() is called.  This
701    structure contains the complete L1 Post Dynamic status.
702    Applicable only to DVBT2 channel according to ETSI EN 302 755 standard.
703****************************************************************************/
704typedef struct NEXUS_FrontendOfdmL1PostDynamicStatus
705{
706    uint8_t                             frameIdx;            /* This 8-bit field is the index of the current T2-frame within a super-frame */
707    uint8_t                             l1ChanlgeCounter;    /* This 8-bit field indicates the number of super-frames ahead where the configuration will change */
708    uint8_t                             startRfIdx;          /* This 3-bit field indicates the ID of the starting frequency of the TFS scheduled frame, for the next T2-frame */
709    uint32_t                            subSliceInterval;    /* This 22-bit field indicates the number of OFDM cells from the start of one sub-slice of one
710                                                                                                                PLP to the start of the next sub-slice of the same PLP on the same RF channel for the current T2-frame */
711    uint32_t                            type2Start;          /* This 22-bit field indicates the start position of the first of the type 2 PLPs using the cell addressing scheme */
712    NEXUS_FrontendOfdmL1PostDynamicPlp  plpA;                /* plp loop A */
713    NEXUS_FrontendOfdmL1PostDynamicPlp  plpB;                /* plp loop B */
714    uint32_t                            auxPrivateDyn_47_32; /* This 48-bit field is reserved for future use for signalling auxiliary streams. */
715    uint32_t                            auxPrivateDyn_31_0;  /* This 48-bit field is reserved for future use for signalling auxiliary streams. */
716} NEXUS_FrontendOfdmL1PostDynamicStatus;
717
718/***************************************************************************
719Summary:
720    This structure is returned when BTC2_GetAsyncStatus()  is called.  This
721    structure contains the PLP informationl.
722    Applicable only to DVBT2 channel according to ETSI EN 302 755 standard.
723****************************************************************************/
724typedef struct NEXUS_FrontendOfdmPlp
725{
726    uint8_t                           plpId;
727    uint8_t                           plpGroupId;
728    NEXUS_FrontendOfdmPlpPayloadType  plpPayloadType;
729    NEXUS_FrontendOfdmPlpType         plpType;
730} NEXUS_FrontendOfdmPlp;
731
732/***************************************************************************
733Summary:
734    This structure is returned when BTC2_GetAsyncStatus()  is called.  This
735    structure contains the complete L1 Post Configurable status.
736    Applicable only to DVBT2 channel according to ETSI EN 302 755 standard.
737****************************************************************************/
738typedef struct NEXUS_FrontendOfdmL1PlpStatus
739{
740    uint8_t                 numPlp;   /* number of PLPs found in the RF signal */
741    NEXUS_FrontendOfdmPlp   plp[255];
742} NEXUS_FrontendOfdmL1PlpStatus;
743
744/***************************************************************************
745Summary:
746    This structure contains DVBT2 FEC Statistics.
747    Applicable only to DVBT2 channel according to ETSI EN 302 755 standard.
748****************************************************************************/
749typedef struct NEXUS_FrontendOfdmFecStatistics
750{
751    bool           lock;        /* This field indicates the lock status for the given PLP*/
752    int32_t        snrData;     /* This signed number represents the Signal-to-Noise Ratio (SNR) computed from slicing the data carriers in units of dB. */
753    uint32_t       ldpcAvgIter; /* This unsigned number represents the average number of iterations by the LDPC decoder. */
754    uint32_t       ldpcTotIter; /* This unsigned number represents the accumulated number of  iterations by the LDPC decoder */   
755    uint32_t       ldpcTotFrm;  /* This unsigned number represents the accumulated number of  total frames processed by the LDPC decoder. */
756    uint32_t       ldpcUncFrm;  /* This unsigned number represents the accumulated number of  uncorrectable frames processed by the LDPC decoder */
757    uint32_t       ldpcBER;     /* This unsigned number represents the LDPC BER as a fraction of 2^32.  The actual LDPC BER is therefore computed by dividing this integer value by 2^32 */
758    uint32_t       bchCorBit;   /* This unsigned number represents the accumulated number of  bits corrected by the BCH decoder */
759    uint32_t       bchTotBlk;   /* This unsigned number represents the accumulated number of  total blocks processed by the BCH decoder */
760    uint32_t       bchClnBlk;   /* This unsigned number represents the accumulated number of  clean blocks processed by the BCH decoder */
761    uint32_t       bchCorBlk;   /* This unsigned number represents the accumulated number of  corrected blocks processed by the BCH decoder */ 
762    uint32_t       bchUncBlk;   /* This unsigned number represents the accumulated number of  uncorrectable blocks processed by the BCH decoder */
763} NEXUS_FrontendOfdmFecStatistics;
764
765/***************************************************************************
766Summary:
767    OFDM tuning status
768****************************************************************************/
769typedef struct NEXUS_FrontendOfdmStatus
770{
771    NEXUS_FrontendOfdmSettings settings; /* Settings provided at last call to NEXUS_Frontend_TuneOfdm */
772
773    bool                                 fecLock;                /* Indicates whether the FEC is locked */
774    bool                                 receiverLock;           /* Indicates whether the receiver is locked */
775    bool                                 noSignalDetected;       /* True if the demodulator detects no signal for channel scan purposes.
776                                                                    This should only be used for channel scanning. */
777    bool                                 spectrumInverted;       /* If true, the spectrum is inverted. */
778    bool                                 ews;                    /* If true, the ISDB-T EWS (Emergency Warning System) Indicator is present */
779    bool                                 partialReception;       /* If true, the ISDB-T signal is partially received */
780    NEXUS_FrontendOfdmModulation         modulation;             /* Current modulation type */
781    NEXUS_FrontendOfdmTransmissionMode   transmissionMode;       /* Detected trasmission mode */
782    NEXUS_FrontendOfdmGuardInterval      guardInterval;          /* Detected guard interval */
783    NEXUS_FrontendOfdmCodeRate           codeRate;               /* Code rate of the input signal */
784    NEXUS_FrontendOfdmHierarchy          hierarchy;              /* Hierarchy of the input signal */
785    unsigned                             cellId;                 /* Indicates Cell Id obtained from the TPS parameters */
786    int                                  carrierOffset;          /* Offset of carrier loop in Hz */
787    int                                  timingOffset;           /* Offset of timing loop in Hz */
788    int                                  snr;                    /* SNR value of receiver in 1/100 dB */
789
790    unsigned                             fecCorrectedBlocks;     /* FEC corrected block count, accumulated since tune or NEXUS_Frontent_ResetStatus */
791    unsigned                             fecUncorrectedBlocks;   /* FEC uncorrected block count, accumulated since tune or NEXUS_Frontent_ResetStatus */
792    unsigned                             fecCleanBlocks;         /* FEC clean block count, accumulated since tune or NEXUS_Frontent_ResetStatus */
793    unsigned                             reacquireCount;         /* number of reacquisitions performed */
794    int                                  signalStrength;         /* signal strength in dB */
795
796    unsigned                             viterbiUncorrectedBits; /* uncorrected error bits output from Viterbi, accumulated since tune or NEXUS_Frontent_ResetStatus */
797    unsigned                             viterbiTotalBits;       /* total number of bits output from Viterbi, accumulated since tune or NEXUS_Frontent_ResetStatus */
798    uint32_t                             viterbiErrorRate;       /* viterbi bit error rate (BER) in 1/2147483648 th units.
799                                                                    Convert to floating point by dividing by 2147483648.0 */
800
801    uint32_t                             preViterbiErrorRate;    /* This indicates the pre-viterbi bit error rate in 1/2147483648 th unit.
802                                                                    Convert to floating point by dividing by 2147483648.0 */
803
804    unsigned                             ifAgcLevel;             /* IF AGC level in units of 1/10 percent */
805    unsigned                             rfAgcLevel;             /* tuner AGC level in units of 1/10 percent */
806
807    uint32_t                             rsPerDelta;             /* RS PER delta in 1/2147483648 th units. Valid for a GetStatus call no more than 5 seconds after a previous GetStatus call. */
808    uint32_t                             vitBerDelta;            /* Viterbi BER delta in 1/2147483648 th units. Valid for a GetStatus call no more than 5 seconds after a previous GetStatus call. */
809
810    NEXUS_FrontendOfdmModulation       modulationA;             /* ISDB-T Layer A modulation type. */
811    NEXUS_FrontendOfdmCodeRate         codeRateA;               /* ISDB-T Layer A code rate. */
812    uint32_t                           isdbtAPreRS;             /* ISDB-T Layer A uncorrected error by Viterbi before ReedSolomon */
813    NEXUS_FrontendOfdmTimeInterleaving timeInterleavingA;       /* ISDB-T Layer A time interleaving.*/
814    unsigned                           numSegmentsA;            /* ISDB-T Layer A number of segments. */
815    unsigned                           fecCorrectedBlocksA;     /* ISDB-T Layer A FEC corrected block count, accumulated since tune or NEXUS_Frontent_ResetStatus */
816    unsigned                           fecUncorrectedBlocksA;   /* ISDB-T Layer A FEC uncorrected block count, accumulated since tune or NEXUS_Frontent_ResetStatus */
817    unsigned                           fecCleanBlocksA;         /* ISDB-T Layer A FEC clean block count, accumulated since tune or NEXUS_Frontent_ResetStatus */
818
819    NEXUS_FrontendOfdmModulation       modulationB;             /* ISDB-T Layer B modulation type. */
820    NEXUS_FrontendOfdmCodeRate         codeRateB;               /* ISDB-T Layer B code rate. */
821    uint32_t                           isdbtBPreRS;             /* ISDB-T Layer B uncorrected error by Viterbi before ReedSolomon */
822    NEXUS_FrontendOfdmTimeInterleaving timeInterleavingB;       /* ISDB-T Layer B time interleaving.*/
823    unsigned                           numSegmentsB;            /* ISDB-T Layer B number of segments. */
824    unsigned                           fecCorrectedBlocksB;     /* ISDB-T Layer B FEC corrected block count, accumulated since tune or NEXUS_Frontent_ResetStatus */
825    unsigned                           fecUncorrectedBlocksB;   /* ISDB-T Layer B FEC uncorrected block count, accumulated since tune or NEXUS_Frontent_ResetStatus */
826    unsigned                           fecCleanBlocksB;         /* ISDB-T Layer B FEC clean block count, accumulated since tune or NEXUS_Frontent_ResetStatus */
827
828    NEXUS_FrontendOfdmModulation       modulationC;             /* ISDB-T Layer C modulation type. */
829    NEXUS_FrontendOfdmCodeRate         codeRateC;               /* ISDB-T Layer C code rate. */
830    uint32_t                           isdbtCPreRS;             /* ISDB-T Layer C uncorrected error by Viterbi before ReedSolomon */
831    NEXUS_FrontendOfdmTimeInterleaving timeInterleavingC;       /* ISDB-T Layer C time interleaving.*/
832    unsigned                           numSegmentsC;            /* ISDB-T Layer C number of segments. */
833    unsigned                           fecCorrectedBlocksC;     /* ISDB-T Layer C FEC corrected block count, accumulated since tune or NEXUS_Frontent_ResetStatus */
834    unsigned                           fecUncorrectedBlocksC;   /* ISDB-T Layer C FEC uncorrected block count, accumulated since tune or NEXUS_Frontent_ResetStatus */
835    unsigned                           fecCleanBlocksC;         /* ISDB-T Layer C FEC clean block count, accumulated since tune or NEXUS_Frontent_ResetStatus */
836    struct
837    {
838       int32_t                                      gainOffset;
839       NEXUS_FrontendOfdmFecStatistics              l1PreStatistics;     /* This Structure contains the lock status, SNR and FEC Statistics for L1 Pre */
840       NEXUS_FrontendOfdmFecStatistics              l1PostStatistics;    /* This Structure contains the lock status, SNR and FEC Statistics for L1 Post */
841       NEXUS_FrontendOfdmFecStatistics              plpAStatistics;      /* This Structure contains the lock status, SNR and FEC Statistics for PLPA */
842       NEXUS_FrontendOfdmFecStatistics              plpBStatistics;      /* This Structure contains the lock status, SNR and FEC Statistics for PLPB */
843       NEXUS_FrontendOfdmL1PreStatus                l1PreStatus;         /* This Structure contains the decoded L1 Pre parameters */
844       NEXUS_FrontendOfdmL1PostConfigurableStatus   l1PostCfgStatus;     /* This Structure contains the decoded L1 Post Configurable parameters */
845       NEXUS_FrontendOfdmL1PostDynamicStatus        l1PostDynamicStatus; /* This Structure contains the decoded L1 Post Dynamic parameters */
846       NEXUS_FrontendOfdmL1PlpStatus                l1PlpStatus;         /* This Structure contains a list of the PLPs found on the RF signal */
847    } dvbt2Status;
848} NEXUS_FrontendOfdmStatus;
849
850/***************************************************************************
851Summary:
852    Get the status of a OFDM tuner
853 ***************************************************************************/
854NEXUS_Error NEXUS_Frontend_GetOfdmStatus(
855    NEXUS_FrontendHandle handle,
856    NEXUS_FrontendOfdmStatus *pStatus /* [out] */
857    );
858
859/***************************************************************************
860Summary:
861    Request the asynchronous status of a Ofdm tuner
862***************************************************************************/
863NEXUS_Error NEXUS_Frontend_RequestOfdmAsyncStatus(
864    NEXUS_FrontendHandle handle
865    );
866
867/***************************************************************************
868Summary:
869    Get the asynchronous status of a Ofdm tuner
870***************************************************************************/
871NEXUS_Error NEXUS_Frontend_GetOfdmAsyncStatus(
872    NEXUS_FrontendHandle handle,
873    NEXUS_FrontendOfdmStatus *pStatus /* [out] */
874    );
875
876#ifdef __cplusplus
877}
878#endif
879
880#endif /* #ifndef NEXUS_FRONTEND_OFDM_H__ */
881
Note: See TracBrowser for help on using the repository browser.