source: svn/newcon3bcm2_21bu/dst/app/src/Function/App_Fnc_Audio.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: 6.9 KB
Line 
1/****************************************************************************
2* NAME: App_Fnc_Audio.h
3*----------------------------------------------------------------------------
4* Copyright (c) DIGITAL STREAM Technology Inc.
5*----------------------------------------------------------------------------
6* CREATED_BY: Chan Hun Jeon
7* CREATION_DATE: 2009/09/08
8* $Author: chjeon $
9* $Revision: 1.1 $
10* $Date: 2009/07/08 15:08:26 $
11*----------------------------------------------------------------------------
12* PURPOSE:
13* - implement all audio related functions.
14*****************************************************************************/
15
16#ifndef __APP_FNC_AUDIO_H__
17#define __APP_FNC_AUDIO_H__
18
19/*_____ I N C L U D E __________________________________________*/
20
21
22
23
24
25#if COMMENT
26____Overview____(){}
27#endif
28
29/*
30        audio module
31        - volume up/down
32        - preferred language
33        - audio lang
34        - mute on/off
35
36        dependency
37        - Channel MW
38        - DHL_AVCAP
39        - App_Fnc_ChTune, App_Fnc_NvRam
40*/
41
42
43
44
45
46/*_____ D E F I N I T I O N ____________________________________*/
47
48#if COMMENT
49____Config____(){}
50#endif
51
52#define USE_LANG_ID_FOR_AUDIO_SELECTION 1
53#define SUPPORT_SPDIF_OUTPUT 1
54#define SUPPORT_HDMI_OUTPUT 1
55#define SUPPORT_AUDIO_VOLUME_FIXED_MODE 0
56
57#define APP_AUDIO_VOLUME_MAX 20
58#define APP_AUDIO_VOLUME_MIN 0
59
60
61#define APP_AUDIO_MUTE_TYPE_STR(t) ( \
62                (t)==APP_AUDIO_MUTE_USER ? "User" : \
63                (t)==APP_AUDIO_MUTE_RBLOCK ? "RBlock" : \
64                (t)==APP_AUDIO_MUTE_CBLOCK ? "CBlock" : \
65                (t)==APP_AUDIO_MUTE_TEMP ? "Temp" : \
66                (t)==APP_AUDIO_MUTE_VOLUME_0 ? "Volume 0" : \
67                (t)==APP_AUDIO_MUTE_OFF_READY ? "Off ready" : \
68                (t)==APP_AUDIO_MUTE_EXTSRC ? "Extsrc" : \
69                (t)==APP_AUDIO_MUTE_SIGMON ? "Sigmon" : \
70                (t)==APP_AUDIO_MUTE_HOST ? "Host" : \
71                (t)==APP_AUDIO_MUTE_SAPCHG ? "Sapchg" : \
72                (t)==APP_AUDIO_MUTE_ADTOGGLE ? "ADToggle" : \
73                "??" )
74
75
76
77#if COMMENT
78____Types____(){}
79#endif
80
81/*
82        Audio Mute types
83       
84        All possible audio mute reason.
85        Any of this mute condition is TRUE, entire audio is muted.
86*/
87
88typedef enum
89{
90        APP_AUDIO_MUTE_USER = 0, // user remocon mute button
91        APP_AUDIO_MUTE_RBLOCK = 1, // mute by rating block
92        APP_AUDIO_MUTE_CBLOCK = 2, // mute by channel block
93        APP_AUDIO_MUTE_TEMP = 3,  // usage not defined yet.
94        APP_AUDIO_MUTE_VOLUME_0 = 4, // volume 0 mute
95        APP_AUDIO_MUTE_OFF_READY = 5, // cafrii 060810 add, Power off ready,
96        APP_AUDIO_MUTE_EXTSRC = 6,
97        APP_AUDIO_MUTE_SIGMON = 7,  // mute from signal monitor
98        APP_AUDIO_MUTE_HOST = 8,  // audio mute request from Host
99        APP_AUDIO_MUTE_SAPCHG = 9,  // temp mute during analog audio (stereo/sap/mono, etc) is changed
100        APP_AUDIO_MUTE_ADTOGGLE = 10, // temp mute while Analog/Digital toggle
101
102} APP_AUDIO_MUTE_TYPE;
103
104
105#if SUPPORT_SPDIF_OUTPUT
106typedef enum
107{
108        APP_SPDIF_AUDIO_MUTE_RBLOCK,
109        APP_SPDIF_AUDIO_MUTE_OFF_READY,
110        APP_SPDIF_AUDIO_MUTE_EXTSRC,
111        APP_SPDIF_AUDIO_MUTE_SIGMON,
112        APP_SPDIF_AUDIO_MUTE_HOST,  // audio mute request from Host
113        APP_SPDIF_AUDIO_MUTE_SAPCHG, 
114} APP_SPDIF_AUDIO_MUTE_TYPE;
115#endif /* #if SUPPORT_SPDIF_OUTPUT */
116
117
118#if SUPPORT_HDMI_OUTPUT
119typedef enum
120{
121        APP_HDMI_AUDIO_MUTE_RBLOCK,
122        APP_HDMI_AUDIO_MUTE_OFF_READY,
123        APP_HDMI_AUDIO_MUTE_EXTSRC,
124        APP_HDMI_AUDIO_MUTE_SIGMON,
125        APP_HDMI_AUDIO_MUTE_HOST,  // audio mute request from Host
126        APP_HDMI_AUDIO_MUTE_SAPCHG, 
127} APP_HDMI_AUDIO_MUTE_TYPE;
128#endif /* #if SUPPORT_HDMI_OUTPUT */
129
130
131typedef enum
132{
133        APP_AUDIO_SPDIF_AC3 = 0,
134        APP_AUDIO_SPDIF_PCM = 1,
135
136} APP_AUDIO_SPDIF_MODE;
137
138typedef enum
139{
140        APP_AUDIO_HDMI_AC3 = 0,
141        APP_AUDIO_HDMI_PCM = 1,
142
143} APP_AUDIO_HDMI_MODE;
144
145typedef enum
146{
147        APP_AUDIO_LANG_AUTO = 0,
148        APP_AUDIO_LANG_ENG = 1,
149        APP_AUDIO_LANG_SPA = 2,
150        APP_AUDIO_LANG_FRE = 3,
151        APP_AUDIO_LANG_KOR = 4,
152
153} APP_AUDIO_LANG_ID;
154
155typedef enum
156{
157        APP_AUDIO_DOWNMIX_LTRT=0,
158        APP_AUDIO_DOWNMIX_LORO
159} APP_AUDIO_DOWNMIX_TYPE;
160
161
162
163
164
165#if COMMENT
166____Variables____(){}
167#endif
168
169// cafrii 060609 add, user default audio language value & variable
170//
171//extern UINT8 DST_AudioUserLanguage;
172        // APP_AUDIO_LANG type
173
174
175#if SUPPORT_AUDIO_VOLUME_FIXED_MODE
176        extern BOOL g_App_bAudioFixedVolumeMode;
177                // depending on Dolby certification type, it may have to be 1.
178                // can be changed in factory menu..
179#endif
180
181
182#if USE_LANG_ID_FOR_AUDIO_SELECTION
183        extern APP_AUDIO_LANG_ID g_App_AudioUserLanguageId;
184#else
185        extern UINT32 g_App_AudioUserLanguageCode;
186#endif
187
188
189
190
191
192#if COMMENT
193____NvParam____(){}
194#endif
195
196typedef struct
197{
198        UINT8 volume: 5;         // 0~20
199        UINT8 preferedlang: 2;   // auto, english, spanish, french
200        UINT8 AudioDownMix: 1;    // o:LTRT 1:LORO
201        UINT8 AudioModeSPDIF: 1; // 0:AC3, 1:PCM
202        UINT8 AudioModeHdmi: 1;  // 0:AC3, 1:PCM
203}nvparam_audio;
204
205
206
207
208
209/*_____ F U N C T I O N ________________________________________*/
210
211#if COMMENT
212____Function____(){}
213#endif
214
215/* Util */
216char *AudioLangCode2Name(UINT32 code);
217UINT32 AudioLangID2Code(APP_AUDIO_LANG_ID id);
218
219const char *App_AudioLangCodeStr(UINT32 langCode, char *buf);
220
221
222/* Mute */
223void App_AudioMute(BOOL bMute, APP_AUDIO_MUTE_TYPE eMuteType);
224
225UINT32 App_GetAudioMuteStatus(void);
226BOOL App_AudioIsUserMute(void);
227
228//BOOL App_AudioOutputExist(void);
229BOOL App_AudioToggleUserMute(void);
230
231
232/* SPDIF */
233#if SUPPORT_SPDIF_OUTPUT
234void App_AudioSetDigitalAudio(APP_AUDIO_SPDIF_MODE mode, BOOL bSaveNvRam);
235APP_AUDIO_SPDIF_MODE App_AudioGetDigitalAudio(void);
236void App_AudioMuteDigitalAudio(BOOL bMute, APP_SPDIF_AUDIO_MUTE_TYPE eMuteType);
237#endif
238
239
240/* HDMI */
241#if SUPPORT_HDMI_OUTPUT
242void App_AudioSetHdmiAudio(APP_AUDIO_HDMI_MODE mode, BOOL bSaveNvRam);
243APP_AUDIO_HDMI_MODE App_AudioGetHdmiAudio(void);
244void App_AudioMuteHdmiAudio(BOOL bMute, APP_HDMI_AUDIO_MUTE_TYPE eMuteType);
245#endif
246
247
248/* ML Info */
249STATUS App_AudioGetMLInfo(DMW_AudioElement **ppMLInfo, int *numCount, int *pCurrentIndex);
250
251
252/* MTS Callback */
253void App_AudioSelectAudioStream(AudioPidSelectParam *apsp);
254char *App_AudioShowOrChangeMTS(BOOL bChangeToNext);
255
256#if USE_LANG_ID_FOR_AUDIO_SELECTION
257BOOL App_AudioSetPreferredLanguageId(APP_AUDIO_LANG_ID id, BOOL bSaveNvRam);
258APP_AUDIO_LANG_ID App_AudioGetPreferredLanguageId(void);
259#else
260BOOL App_AudioSetPreferredLanguageCode(UINT32 langcode, int index, BOOL bSaveNvRam);
261#endif
262
263void App_AudioNotifyStop(AudioDecodeStopParam *param);
264void App_AudioNotifyStart(AudioDecodeStartParam *param);
265
266
267/* Volume API */
268#if SUPPORT_AUDIO_VOLUME_FIXED_MODE
269void App_AudioSetFixedVolumeMode(BOOL bFixedMode);
270#endif
271
272void App_AudioChangeVolume(int volume, BOOL bSaveNvRam);
273
274void App_AudioVolumeUp(void);
275void App_AudioVolumeDown(void);
276
277UINT8 App_AudioGetVolume(void);
278
279void App_AudioSetDownMix(APP_AUDIO_DOWNMIX_TYPE downmix, BOOL bSaveNvRam);
280APP_AUDIO_DOWNMIX_TYPE App_AudioGetDownMix(void);
281
282
283/* Delay API */
284void App_AudioSetDelay(int delay);
285
286
287/* NvRam */
288void App_Audio_GetDefaultParamValue(nvparam_audio* param);
289
290
291/* Init */
292void App_AudioInit(void);
293void App_AudioParamInit(void);
294
295
296
297
298#endif /* __APP_FNC_AUDIO_H__ */
Note: See TracBrowser for help on using the repository browser.