source: svn/zas_dstar/hal/platform/dstddfe.c @ 22

Last change on this file since 22 was 22, checked in by phkim, 11 years ago
  1. phkim
  2. newcon3sk 를 kctv 로 브랜치 함
File size: 8.3 KB
Line 
1/******************************************************************************
2 *_Copyright (c) 2009 Digital Stream Technology Inc. All Rights Reserved.
3 *
4 * Module: dstdd
5 *
6 * Description
7 *
8 * @author
9 * @version $Revision: 1.1 $
10 *
11 ******************************************************************************/
12#include <stdio.h>
13#include <stdlib.h>
14#include <errno.h>   
15
16#include "dsthalcommon.h"
17#include "dsthalfe.h"
18#include "dstddfe.h"
19#include "dstddsys.h"
20#include "dstddcap.h"
21
22#include "S5H1409.h"
23
24#ifdef DMALLOC
25#include <dmalloc.h>
26#endif
27
28/******************************************************************************
29 * Global variable declaration
30 ******************************************************************************/
31int gddFeDbgLvl = 2;
32
33/******************************************************************************
34 * Imported variable declaration
35 ******************************************************************************/
36extern DST_FE sDSTFE_Tuner[TUNER_MAX-1];
37
38/******************************************************************************
39 * Imported function declaration
40 ******************************************************************************/
41
42/******************************************************************************
43 * Local definitions
44 ******************************************************************************/
45#define USE_S5H_DEMOD       0
46    // S5H14xx Demodulator »ç¿ë ¿©ºÎ.
47   
48
49/******************************************************************************
50 * Local typedefs
51 ******************************************************************************/
52
53/******************************************************************************
54 * Local variables declaration
55 ******************************************************************************/
56
57/******************************************************************************
58 * Local function prototypes
59 ******************************************************************************/
60
61
62DHL_RESULT DD_FE_Init( TunerType Tuner, P_DST_FE pDSTFETuner )
63{
64        DHL_RESULT dhlResult = DHL_OK;
65       
66        if ( Tuner == TUNER_FAT ) 
67        {
68#if USE_S5H_DEMOD
69            //
70            // Call the demodulator/tuner initialization API here.
71            //
72                if ( S5H_Initialize() ) 
73                        return DHL_FAIL;
74#endif
75        } 
76        else 
77        {
78                DHL_DbgPrintf( 0, DDDBG_FE, "Not Implemented!\n");
79                dhlResult = DHL_FAIL;
80        }
81        return dhlResult;
82} 
83
84DHL_RESULT DD_FE_SetChannelFAT( P_DST_FE pDSTFETuner, DS_U32 Frequency, TunerDemod *Demod )
85{
86        DHL_RESULT dhlResult = DHL_OK;
87   
88#if USE_S5H_DEMOD
89    int Result;
90
91    Result = S5H_Stop();
92    if ( Result )
93    {
94        dhlResult = DHL_FAIL;
95        goto done;
96    }
97       
98    Result = S5H_SetFrequency( Frequency );
99    if ( Result )
100    {
101        dhlResult = DHL_FAIL;
102        goto done;
103    }
104
105    Result = S5H_Start( (TunerDemod)*Demod, (*Demod == DEMOD_NTSC), 0 /*Cable - Doesn't matter*/ );
106    if ( Result )
107    {
108        dhlResult = DHL_FAIL;
109        goto done;
110    }
111
112done:   
113#endif
114
115        return dhlResult;
116}
117
118DHL_RESULT DD_FE_SetChannelFDC( P_DST_FE pDSTFETuner, DS_U32 Frequency, TunerDemod *Demod )
119{
120        DHL_RESULT dhlResult = DHL_OK;
121
122        DHL_DbgPrintf( 0, DDDBG_FE, "NOT IMPLEMENTED!\n");
123        dhlResult = DHL_FAIL;
124       
125        return dhlResult;
126}
127
128DHL_RESULT DD_FE_Stop( P_DST_FE pDSTFETuner )
129{
130        DHL_RESULT dhlResult = DHL_OK;
131
132#if USE_S5H_DEMOD
133        DHL_CHECK( S5H_Stop() == 0, dhlResult, DHL_FAIL_CORE_DRIVER );
134
135done:   
136#endif
137        return dhlResult;
138}
139
140DHL_RESULT DD_FE_Close( P_DST_FE pDSTFETuner )
141{
142        DHL_RESULT dhlResult = DHL_OK;
143
144
145        return dhlResult;
146}
147
148DHL_RESULT DD_FE_GetLockStatus( P_DST_FE pDSTFETuner, DS_BOOL *pLockStatus )
149{
150        DHL_RESULT dhlResult = DHL_OK;
151        int err = 0;
152        int lockStatus;
153       
154        if ( pDSTFETuner->bCurDemod == DEMOD_NTSC ) 
155                *pLockStatus = 0;
156#if USE_S5H_DEMOD
157        else
158                err = S5H_GetLockStatus( &lockStatus );
159#endif
160        lockStatus = DS_TRUE;
161       
162        if ( err != 0 )
163                dhlResult = DHL_FAIL;
164
165        if ( lockStatus )
166                *pLockStatus = 1;
167        else
168                *pLockStatus = 0;
169               
170        return dhlResult;
171}
172
173DHL_RESULT DD_FE_GetSNR( P_DST_FE pDSTFETuner, float *pSNR )
174{
175        DHL_RESULT dhlResult = DHL_OK;
176       
177#if USE_S5H_DEMOD
178        int err = 0;
179
180        err = S5H_GetSNR( pSNR );
181        if ( err != 0 )
182                dhlResult = DHL_FAIL;
183#endif
184
185        return dhlResult;
186}
187
188DHL_RESULT DD_FE_GetTrellisSNR( P_DST_FE pDSTFETuner, double *pTrellisSNR )
189{
190        DHL_RESULT dhlResult = DHL_OK;
191
192
193        return dhlResult;
194}
195
196DHL_RESULT DD_FE_GetSignalStrength( P_DST_FE pDSTFETuner, DS_U32 *pSQI )
197{
198        DHL_RESULT dhlResult = DHL_OK;
199
200#if USE_S5H_DEMOD
201        if ( S5H_GetSignalStrength( (int *)pSQI ) != 0 )
202                dhlResult = DHL_FAIL;
203#endif
204
205        return dhlResult;
206}
207
208DHL_RESULT DD_FE_GetRSError( P_DST_FE pDSTFETuner, DS_U32 *pRSErrorCnt, float *pRSErrorRate )
209{
210        DHL_RESULT dhlResult = DHL_OK;
211       
212#if USE_S5H_DEMOD
213        if ( S5H_GetErrCount( pRSErrorCnt ) != 0 )
214                dhlResult = DHL_FAIL;
215#endif
216
217        return dhlResult;
218}
219
220DHL_RESULT DD_FE_GetBERT( P_DST_FE pDSTFETuner, DS_U32 *pErrorCnt, float *pErrorRate )
221{
222        DHL_RESULT dhlResult = DHL_OK;
223
224
225        return dhlResult;
226}
227
228DHL_RESULT DD_FE_BERTStart( P_DST_FE pDSTFETuner, FEBertRm HdrRm, FEBertSource Source, FEBertPNInv PNInv, FEBertPNSeq PNSeq)
229{
230        DHL_RESULT dhlResult = DHL_OK;
231
232
233        return dhlResult;
234}
235
236DHL_RESULT DD_FE_BERTStop( P_DST_FE pDSTFETuner )
237{
238        DHL_RESULT dhlResult = DHL_OK;
239
240
241        return dhlResult;
242}
243
244DHL_RESULT DD_FE_GetModFormat( P_DST_FE pDSTFETuner, TunerDemod *pModFormat )
245{
246        DHL_RESULT dhlResult = DHL_OK;
247       
248        //DHL_CHECK( S5H_GetModFormat( pModFormat ) == 0, dhlResult, DHL_FAIL );
249        *pModFormat = DEMOD_ISDBT;
250
251//done:
252        return dhlResult;
253}
254
255DHL_RESULT DD_FE_SetFDCConfig( P_DST_FE pDSTFETuner, DS_U32 RFFreq, FdcSymbolRate_t SymbolRate, 
256                                                                FdcSignalPolarity_t ClockPol, FdcSignalPolarity_t DataPol, 
257                                                                FdcSignalPolarity_t DecoderMode, DS_U32 RefDivider )
258{
259        DHL_RESULT dhlResult = DHL_OK;
260
261
262        return dhlResult;
263}
264
265DHL_RESULT DD_FE_CheckAlive( P_DST_FE pDSTFETuner )
266{
267        DHL_RESULT dhlResult = DHL_OK;
268
269
270        return dhlResult;
271}
272
273DHL_RESULT DD_FE_SetGPIOC( P_DST_FE pDSTFETuner, int mask, int value )
274{
275        DHL_RESULT dhlResult = DHL_OK;
276
277
278        return dhlResult;
279}
280
281DHL_RESULT DD_FE_GetGPIOC( P_DST_FE pDSTFETuner, int mask, int *value )
282{
283        DHL_RESULT dhlResult = DHL_OK;
284
285        *value = 0;
286
287        return (dhlResult);
288}
289
290DHL_RESULT DD_FE_SetFrequency( P_DST_FE pDSTFETuner, DS_U32 Frequency, TunerDemod Demod, int isUpdate )
291{
292        DHL_RESULT dhlResult = DHL_OK;
293        TunerDemod dmd = Demod;
294       
295#if USE_S5H_DEMOD
296        int ret = -1;
297#endif
298
299        if ( !isUpdate ) {
300#if USE_S5H_DEMOD
301                if ( Demod == DEMOD_NTSC )
302                        ret = S5H_SetFrequencyNTSC( Frequency );
303                else
304                        ret = S5H_SetFrequency( Frequency );
305           
306            DHL_CHECK( ret >= 0, dhlResult, DHL_FAIL );
307#endif
308
309        } else
310                dhlResult = DD_FE_SetChannelFAT( pDSTFETuner, Frequency, &dmd );
311
312#if USE_S5H_DEMOD
313done:   
314#endif
315        return dhlResult;
316}
317
318DS_U32 DD_FE_GetFrequency(P_DST_FE pDSTFETuner)
319{
320#if USE_S5H_DEMOD
321        return S5H_GetFrequency();
322#endif
323    return 213000;
324}
325
326DHL_RESULT DD_FE_SetAudioMode( FEAudioMode_t audioMode, FEAudioStandard_t audioStandard )
327{
328        DHL_RESULT dhlResult = DHL_OK;
329
330        switch(audioMode) 
331    {
332                case FE_AUDIO_STEREO:
333                        break;
334
335                case FE_AUDIO_SAP:
336                case FE_AUDIO_MONO_SAP:
337                        break;
338
339                case FE_AUDIO_MONO:
340                default:
341                    break;
342        }
343       
344#if USE_S5H_DEMOD
345        DHL_CHECK( S5H_SetAudioMode( audioMode ) == 0, dhlResult, DHL_FAIL );
346    DHL_CHECK( S5H_SetAudioStandard( audioStandard) == 0, dhlResult, DHL_FAIL );       
347
348done:
349#endif
350       
351        return dhlResult;
352}
353
354DHL_RESULT DD_FE_GetAudioMode( FEAudioMode_t *audioMode, FEAudioStandard_t *audioStandard )
355{
356        DHL_RESULT dhlResult = DHL_OK;
357        return dhlResult;
358}
359
360DHL_RESULT DD_FE_GetTDA9885Reg( P_DST_FE pDSTFETuner, DS_U8 *pStatus )
361{
362        DHL_RESULT dhlResult = DHL_OK;
363       
364        return dhlResult;
365}
366
367DHL_RESULT DD_FE_GetAFCReg( P_DST_FE pDSTFETuner, DS_U8 *pStatus )
368{
369        DHL_RESULT dhlResult = DHL_OK;
370       
371        return dhlResult;
372}
373
374DHL_RESULT DD_FE_SetInput( P_DST_FE pDSTFETuner, int Cable )
375{
376        DHL_RESULT dhlResult = DHL_OK;
377
378
379        return dhlResult;
380}
381
382DS_U32 DD_FE_GetVersion()
383{
384        DS_U32 FEVersion = 0;
385       
386        return FEVersion;
387}
388
389DHL_RESULT DD_FE_AnalogGetLockStatus( P_DST_FE pDSTFETuner, DS_BOOL *pLockStatus )
390{
391        DHL_RESULT dhlResult = DHL_OK;
392
393        return dhlResult;
394}
395
396DHL_RESULT DD_FE_AnalogGetLockStatusEx( P_DST_FE pDSTFETuner, DS_BOOL *pLockStatus )
397{
398        DHL_RESULT dhlResult = DHL_OK;
399
400        return dhlResult;
401}
402
403DHL_RESULT DD_FE_GetSignalPower( P_DST_FE pDSTFETuner, DS_U32 *pPower )
404{
405        DHL_RESULT dhlResult = DHL_OK;
406
407#if USE_S5H_DEMOD
408        if ( S5H_GetSignalPower( (int *)pPower ) != 0 )
409                dhlResult = DHL_FAIL;
410#endif
411
412        return (dhlResult);
413}
Note: See TracBrowser for help on using the repository browser.