source: svn/newcon3bcm2_21bu/nexus/modules/audio/7552/include/nexus_audio_init.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: 9.5 KB
Line 
1/***************************************************************************
2 *     (c)2007-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_audio_init.h $
39 * $brcm_Revision: 8 $
40 * $brcm_Date: 12/20/11 4:13p $
41 *
42 * Module Description:
43 *      Audio Initialization Routines
44 *
45 * Revision History:
46 *
47 * $brcm_Log: /nexus/modules/audio/7422/include/nexus_audio_init.h $
48 *
49 * 8   12/20/11 4:13p jgarrett
50 * SW7425-1018: Adding initial A/85 implementation
51 *
52 * 7   11/3/11 6:53p jgarrett
53 * SW7422-400: Enabling audio debug logs on 40nm APE chips
54 *
55 * 6   11/2/11 6:26p jgarrett
56 * SW7422-400: Adding routines for audio DSP debug
57 *
58 * 5   8/18/11 5:51p jgarrett
59 * SWDTV-6306: Merge DTV APE changes to main branch
60 *
61 * Nexus_APE_Integration/1   8/10/11 5:16p jgarrett
62 * SWDTV-6306: Adding implicit capture to DSP instead of FMM for DTV
63 *
64 * 4   7/1/11 4:03p jgarrett
65 * SW7231-274: Adding optional audio firmware heap
66 *
67 * 3   5/23/11 6:49p jgarrett
68 * SW7425-402: Adding multichannel capture support
69 *
70 * 2   4/19/11 6:08p jgarrett
71 * SW7425-386: Enabling control of audio memory allocation
72 *
73 * 1   4/11/11 5:52p jgarrett
74 * SWDTV-6306: Adding preliminary Nexus APE support for DTV
75 *
76 **************************************************************************/
77#ifndef NEXUS_AUDIO_INIT_H__
78#define NEXUS_AUDIO_INIT_H__
79
80#include "nexus_types.h"
81#include "nexus_audio_output.h"
82#include "nexus_audio_dsp.h"
83
84#ifdef __cplusplus
85extern "C" {
86#endif
87
88#define NEXUS_AUDIO_MODULE_FAMILY (7422)
89
90/***************************************************************************
91Summary:
92Loudness Equivalence Modes
93**************************************************************************/
94typedef enum NEXUS_AudioLoudnessEquivalenceMode
95{
96    NEXUS_AudioLoudnessEquivalenceMode_eNone,       /* Default, no loudness equivalence */
97    NEXUS_AudioLoudnessEquivalenceMode_eAtscA85,    /* ATSC A/85.  This standardizes all decoders to output
98                                                       Stereo and Multichannel PCM at -20dB.  Compressed data is output at -31dB.
99                                                       The application must set the volume for outputs accordingly so
100                                                       that PCM stereo is output to "active" outputs such as DAC at -23 dB
101                                                       and PCM is sent to "passive" outputs such as SPDIF at -31dB.  This
102                                                       can be done by calling NEXUS_AudioOutput_SetSettings() to program
103                                                       the volume for active outputs with the linear value 0x5A9DF7 (-3dB)
104                                                       and passive outputs with the value 0x241346 (-11dB). */
105    NEXUS_AudioLoudnessEquivalenceMode_eEbuR128,    /* EBU-R128.  This standardizes Dolby decoders to output
106                                                       Stereo and Multichannel PCM at -20dB.  Non-Dolby decoders will
107                                                       output Stereo and Multichannel PCM at -23dB.  All encoders and
108                                                       passthrough configurations will output compressed at -31dB.
109                                                       The application must set the volume for outputs accordingly so
110                                                       that PCM stereo is output to "active" outputs such as DAC at -23 dB
111                                                       and PCM is sent to "passive" outputs such as SPDIF at -31dB.  This
112                                                       can be done by calling NEXUS_AudioOutput_SetSettings() to program
113                                                       the volume for active active outputs with the value 0x5A9DF7 (-3dB)
114                                                       and passive outputs with the value 0x241346 (-11dB) for Dolby codecs. 
115                                                       For non-Dolby codecs, use the value 0x800000 (-0dB) for active outputs
116                                                       and 0x32F52C (-8dB) for passive outputs.  */
117    NEXUS_AudioLoudnessEquivalenceMode_eMax
118} NEXUS_AudioLoudnessEquivalenceMode;
119
120/***************************************************************************
121Summary:
122Audio Module Settings
123**************************************************************************/
124typedef struct NEXUS_AudioModuleSettings
125{
126    struct 
127    {
128        NEXUS_ModuleHandle transport;
129        NEXUS_ModuleHandle hdmiInput;   /* Only required for platforms that support HDMI input */
130        NEXUS_ModuleHandle hdmiOutput;  /* Only required for platforms that support HDMI output */
131        NEXUS_ModuleHandle rfm;         /* Only required for platforms that support RFM */
132        NEXUS_ModuleHandle frontend;    /* Only required for platforms that support RfAudioDecoder */
133        NEXUS_ModuleHandle surface; 
134    } modules;
135
136    unsigned maxAudioDspTasks;          /* Maximum number of audio tasks that will run on the DSP concurrently */
137    unsigned maxIndependentDelay;       /* Maximum output delay value in ms.  */
138    unsigned maxPcmSampleRate;          /* Maximum PCM output sample rate in Hz. */
139
140    bool watchdogEnabled;               /* If true, watchdog recovery is enabled */
141    bool independentDelay;              /* If true, independent delay is enabled */
142    bool hbrEnabled;                    /* If true, high bitrate audio passthrough is enabled for direct AC3+ passthrough. 
143                                           This does increase memory requirements. */
144    bool routeInputsToDsp;              /* If true, external inputs such as I2S, AnalogAudioDecoder, or RfAudioDecoder will
145                                           route to the DSP if the input's Start() routine is called.  Otherwise, the input
146                                           will route to the audio hardware and bypass the DSP.  This defaults to true
147                                           for DTV platforms and false for STB platforms.  If false, you can still route inputs
148                                           to the DSP by passing the connector to NEXUS_AudioDecoder_Start(). */
149    unsigned numCompressedBuffers;      /* Number of compressed audio buffers required. */
150    unsigned numPcmBuffers;             /* Number of PCM audio buffers required. */
151
152    NEXUS_AudioOutputPll defaultPll;    /* Default PLL for outputs.  Default=0.  */
153
154    NEXUS_HeapHandle firmwareHeap;      /* Optional.  If set, the DSP Firmware images will be loaded in this heap. */
155
156    NEXUS_AudioDspDebugSettings dspDebugSettings;   /* DSP Debug settings */
157
158    NEXUS_AudioLoudnessEquivalenceMode loudnessMode;    /* Loudness equivalence mode.  Default is
159                                                           NEXUS_AudioLoudnessEquivalenceMode_eNone */
160} NEXUS_AudioModuleSettings;
161
162void NEXUS_AudioModule_GetDefaultSettings(
163    NEXUS_AudioModuleSettings *pSettings    /* [out] */
164    );
165
166NEXUS_ModuleHandle NEXUS_AudioModule_Init(
167    const NEXUS_AudioModuleSettings *pSettings  /* NULL will use default settings */
168    );
169
170void NEXUS_AudioModule_Uninit(void);
171
172#ifdef __cplusplus
173}
174#endif
175
176#endif /* #ifndef NEXUS_AUDIO_INIT_H__ */
177
Note: See TracBrowser for help on using the repository browser.