source: svn/newcon3bcm2_21bu/nexus/modules/audio/7552/include/nexus_audyssey_adv.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.3 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_audyssey_adv.h $
39* $brcm_Revision: 2 $
40* $brcm_Date: 8/24/11 5:31p $
41*
42* API Description:
43*   API name: AudysseyAdv
44*    Specific APIs related to Audyssey ADV (Dynamic Volume) audio processing
45*
46* Revision History:
47*
48* $brcm_Log: /nexus/modules/audio/7422/include/nexus_audyssey_adv.h $
49*
50* 2   8/24/11 5:31p jgarrett
51* SW7344-176: Adding null_allowed attribute for kernelmode
52*
53* 1   5/16/11 5:19p jgarrett
54* SWDTV-6762: Adding Audyssey ADV/ABX
55*
56***************************************************************************/
57
58#ifndef NEXUS_AUDYSSEY_ADV_H__
59#define NEXUS_AUDYSSEY_ADV_H__
60
61#include "nexus_types.h"
62#include "nexus_audio_types.h"
63
64#ifdef __cplusplus
65extern "C" {
66#endif
67
68/*=************************************
69Interface: AudysseyAdv
70
71Header file: nexus_audyssey_adv.h
72
73Module: Audio
74
75Description:
76
77**************************************/
78
79/**
80Summary:
81Handle for Audyssey ADV stage
82**/
83typedef struct NEXUS_AudysseyAdv *NEXUS_AudysseyAdvHandle;
84
85/***************************************************************************
86Summary:
87Audyssey ADV Dynamic EQ Mode
88***************************************************************************/
89typedef enum NEXUS_AudysseyAdvDynamicEqMode
90{
91    NEXUS_AudysseyAdvDynamicEqMode_eOff,
92    NEXUS_AudysseyAdvDynamicEqMode_eOn,
93    NEXUS_AudysseyAdvDynamicEqMode_eRampOff,
94    NEXUS_AudysseyAdvDynamicEqMode_eMax
95} NEXUS_AudysseyAdvDynamicEqMode;
96
97/***************************************************************************
98Summary:
99Audyssey ADV Settings
100***************************************************************************/
101typedef struct NEXUS_AudysseyAdvSettings
102{
103    bool enabled;                       /* If true, processing is enabled.  Otherwise this stage is bypassed */
104
105    uint8_t channelMask;                /* Specifies the channels that will have gain applied. 
106                                           Default: 0xFF        All channels
107                                           Meaning of bits
108                                            0 -> L, 1 -> R, 2 -> C, 3 -> LFE
109                                            4 -> Ls, 5-> Rs, 6 -> Lb, 7 -> Rb */
110
111    bool reInitialize;                  /* If true, processing will be reset/re-initialized. */
112
113    bool volumeScalingEnabled;          /* If true, dynamic volume scaling is enabled */
114
115    bool dynamicSurroundGainEnabled;    /* If true (default), surround channel gain is enabled.  */
116
117    bool hiLoCompress;                  /* If true, there will be boost in calc cntr gain. */
118
119    NEXUS_AudysseyAdvDynamicEqMode dynamicEqMode; /* Dynamic Equalizer Mode */
120
121    int volume;                             /* Volume setting for Gain function and Dynamic EQ.  Default : 0. Ranges from -10..10 */
122    int gainCompression;                /* Gain Compression Factor.  Default: 180, Range [1, 180, 240] */
123    int headroomOffset;                     /* Headroom offset.  Default: 0, Ranges from -100..100 */
124
125    int chCalbGain[8];                      /* Calibrated Channel Gain. Default: 0, Ranges from -100..100 */
126} NEXUS_AudysseyAdvSettings;
127
128/***************************************************************************
129Summary:
130Get default settings for an Audyssey ADV processing stage
131***************************************************************************/
132void NEXUS_AudysseyAdv_GetDefaultSettings(
133    NEXUS_AudysseyAdvSettings *pSettings   /* [out] default settings */
134    );
135
136/***************************************************************************
137Summary:
138Open an Audyssey ADV processing stage
139***************************************************************************/
140NEXUS_AudysseyAdvHandle NEXUS_AudysseyAdv_Open( /* attr{destructor=NEXUS_AudysseyAdv_Close}  */
141    const NEXUS_AudysseyAdvSettings *pSettings     /* attr{null_allowed=y} */
142    );
143
144/***************************************************************************
145Summary:
146Close an Audyssey ADV processing stage
147
148Description:
149Input to the stage must be removed prior to closing.
150***************************************************************************/
151void NEXUS_AudysseyAdv_Close(
152    NEXUS_AudysseyAdvHandle handle
153    );
154
155/***************************************************************************
156Summary:
157Get Settings for an Audyssey ADV processing stage
158***************************************************************************/
159void NEXUS_AudysseyAdv_GetSettings(
160    NEXUS_AudysseyAdvHandle handle,
161    NEXUS_AudysseyAdvSettings *pSettings    /* [out] Settings */
162    );
163
164/***************************************************************************
165Summary:
166Set Settings for an Audyssey ADV processing stage
167***************************************************************************/
168NEXUS_Error NEXUS_AudysseyAdv_SetSettings(
169    NEXUS_AudysseyAdvHandle handle,
170    const NEXUS_AudysseyAdvSettings *pSettings
171    );
172
173/***************************************************************************
174Summary:
175Audyssey ADV Status
176***************************************************************************/
177typedef struct NEXUS_AudysseyAdvStatus
178{
179    int volumeApplied;      /* Dynamic EQ Volume applied in dB*/
180    int chCalcLevel[8];     /* chCalcLevel in dB in Q10.22 floating format. */
181    unsigned numChannels;   /* Number of channels */
182    NEXUS_AudysseyAdvDynamicEqMode dynamicEqMode; /* Dynamic Equalizer Mode */
183} NEXUS_AudysseyAdvStatus;
184
185/***************************************************************************
186Summary:
187    Get the Audyssey ADV processing status
188***************************************************************************/
189NEXUS_Error NEXUS_AudysseyAdv_GetStatus(
190    NEXUS_AudysseyAdvHandle handle,
191    NEXUS_AudysseyAdvStatus *pStatus   /* [out] current status */
192    );
193
194/***************************************************************************
195Summary:
196Get the audio connector for an Audyssey ADV processing stage
197***************************************************************************/
198NEXUS_AudioInput NEXUS_AudysseyAdv_GetConnector(
199    NEXUS_AudysseyAdvHandle handle
200    );
201
202/***************************************************************************
203Summary:
204Add an input to this processing stage
205***************************************************************************/
206NEXUS_Error NEXUS_AudysseyAdv_AddInput(
207    NEXUS_AudysseyAdvHandle handle,
208    NEXUS_AudioInput input
209    );
210
211/***************************************************************************
212Summary:
213Remove an input from this processing stage
214***************************************************************************/
215NEXUS_Error NEXUS_AudysseyAdv_RemoveInput(
216    NEXUS_AudysseyAdvHandle handle,
217    NEXUS_AudioInput input
218    );
219
220/***************************************************************************
221Summary:
222Remove all inputs from this processing stage
223***************************************************************************/
224NEXUS_Error NEXUS_AudysseyAdv_RemoveAllInputs(
225    NEXUS_AudysseyAdvHandle handle
226    );
227
228#ifdef __cplusplus
229}
230#endif
231
232#endif /* #ifndef NEXUS_AUDYSSEY_ADV_H__ */
233
234
235
Note: See TracBrowser for help on using the repository browser.