source: svn/zas_dstar/hal/common/dsthaluirt.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: 13.2 KB
Line 
1/****************************************************************************
2 * Copyright (c) 2004 DST Technologies Inc.  All Rights Reserved.
3 *
4 * Module:      dsthalir.c
5 *
6 * Description: DST UIRT INTERFACE IMPLEMENTATION
7 *             
8 *
9 * notes: JFET_20050527
10 *
11 ***************************************************************************/
12
13#include <stdlib.h>
14
15#include "dsthallocal.h"
16#include "dsthalcommon.h"
17#include "dstdduirt.h"
18
19#ifdef DMALLOC
20#include <dmalloc.h>
21#endif
22
23/******************************************************************************
24 * Global variable declaration
25 ******************************************************************************/
26DS_U32 gIRDbgLvl = 1;           //DHL_AV debug level
27
28/******************************************************************************
29 * Imported variable declaration
30 ******************************************************************************/
31
32
33/******************************************************************************
34 * Imported function declaration
35 ******************************************************************************/
36
37
38/******************************************************************************
39 * Local definitions
40 ******************************************************************************/
41
42
43/******************************************************************************
44 * Local typedefs
45 ******************************************************************************/
46
47
48/******************************************************************************
49 * Local variables declaration
50 ******************************************************************************/
51DS_PRIVATE IRCbFunc_t cbIRFunc = (IRCbFunc_t)0;
52
53/******************************************************************************
54 * Local function prototypes
55 ******************************************************************************/
56
57/********************************************************************************
58FUNCTION:                                                                   
59    DHL_KeyPad_Init
60
61Purpose:                                                                   
62        IR(UIRT) Initilaization
63Arguments:                                                                     
64
65Returns:                                                                   
66                       
67*********************************************************************************/
68DHL_RESULT DHL_KeyPad_Init(void)
69{
70        DHL_RESULT dhlResult = DHL_OK;
71        dhlResult = DD_KeyPad_Init();
72        if ( dhlResult != DHL_OK )
73                DHL_DbgPrintf(0,DHLDBG_IR," failure. (Line=%d)\n", __LINE__);
74       
75        return dhlResult;
76}
77
78/********************************************************************************
79FUNCTION:                                                                   
80    DHL_KeyPad_Close
81
82Purpose:                                                                   
83        IR(UIRT) close
84Arguments:                                                                     
85
86Returns:                                                                   
87                       
88*********************************************************************************/
89DHL_RESULT DHL_KeyPad_Close(void)
90{
91        DHL_RESULT dhlResult = DHL_OK;
92       
93        dhlResult = DD_KeyPad_Close();
94        if ( dhlResult != DHL_OK )
95                DHL_DbgPrintf(0,DHLDBG_IR," failure. (Line=%d)\n", __LINE__);
96       
97        return dhlResult;
98}
99
100void DHL_KeyPad_SetScanTime(DS_U16 ScanTime)
101{
102        DD_KeyPad_SetScanTime(ScanTime);
103}
104
105/********************************************************************************
106FUNCTION:                                                                   
107    DHL_IR_Init
108
109Purpose:                                                                   
110        IR(UIRT) Initilaization
111Arguments:                                                                     
112
113Returns:                                                                   
114                       
115*********************************************************************************/
116DHL_RESULT DHL_IR_Init(DHL_IR_FORMAT IrFormat)
117{
118        DHL_RESULT dhlResult = DHL_OK;
119       
120        if ( IrFormat <= DHL_IR_START || IrFormat >= DHL_IR_END ) {
121                DHL_DbgPrintf(0,DHLDBG_IR,"ERROR: LINE=%d\n", __LINE__);
122                return DHL_FAIL_INVALID_PARAM;
123        }
124       
125        dhlResult = DD_IR_Init(IrFormat);
126        if ( dhlResult != DHL_OK )
127                DHL_DbgPrintf(0,DHLDBG_IR," failure. (Line=%d)\n", __LINE__);
128       
129        return dhlResult;
130}
131
132/********************************************************************************
133FUNCTION:                                                                   
134    DHL_IR_Close
135
136Purpose:                                                                   
137        IR(UIRT) close
138Arguments:                                                                     
139
140Returns:                                                                   
141                       
142*********************************************************************************/
143DHL_RESULT DHL_IR_Close(void)
144{
145        DHL_RESULT dhlResult = DHL_OK;
146       
147        dhlResult = DD_IR_Close();
148        if ( dhlResult != DHL_OK )
149                DHL_DbgPrintf(0,DHLDBG_IR," failure. (Line=%d)\n", __LINE__);
150       
151        return dhlResult;
152}
153
154/********************************************************************************
155FUNCTION:                                                                   
156    DHL_IR_SetIrFormat
157    DHL_IR_SetCustomCode
158
159Purpose:                                                                   
160        DHL_IR_SetIrFormat: Set IR format, such as NEC, RC5, SONY and so on.
161        DHL_IR_SetCustomCode: Set CustomCode of Remocon.
162       
163Arguments:                                                                     
164
165Returns:                                                                   
166                       
167*********************************************************************************/
168DHL_RESULT DHL_IR_SetIrFormat(DHL_IR_FORMAT IrFormat)
169{
170        DHL_RESULT dhlResult = DHL_OK;
171
172        dhlResult = DD_IR_SetFormat(IrFormat);
173        if ( dhlResult != DHL_OK )
174                DHL_DbgPrintf(0,DHLDBG_IR," failure. (Line=%d)\n", __LINE__);
175
176        return dhlResult;
177}
178
179DHL_RESULT DHL_IR_SetCustomCode(DS_U16 CustomCode)
180{
181        DHL_RESULT dhlResult = DHL_OK;
182       
183        dhlResult = DD_IR_SetCustomCode(CustomCode);
184        if ( dhlResult != DHL_OK )
185                DHL_DbgPrintf(0,DHLDBG_IR," failure. (Line=%d)\n", __LINE__);
186       
187        return dhlResult;
188}       
189
190/********************************************************************************
191FUNCTION:                                                                   
192    DHL_IR_SetCbFunc
193
194Purpose:                                                                   
195        IR(UIRT) Get Data
196Arguments:                                                                     
197
198Returns:                                                                   
199                       
200*********************************************************************************/
201DHL_RESULT DHL_IR_SetCbFunc(IRCbFunc_t CBFuncPtr)
202{
203        DHL_RESULT dhlResult = DHL_OK;
204       
205        if (!CBFuncPtr) {
206                DHL_DbgPrintf(gIRDbgLvl,DHLDBG_IR,"ERROR: LINE=%d\n", __LINE__);
207                return DHL_FAIL_INVALID_PARAM;
208        }
209        cbIRFunc = CBFuncPtr;
210       
211        return dhlResult;
212}
213
214void DHL_IR_SetScanTime(DS_U16 ScanTime)
215{
216        DD_IR_SetScanTime(ScanTime);
217}
218
219void DHL_IR_Input(DS_U32 Code, int bPressed)
220{
221    printf("|%s| Code: 0x%lx, bPress:%d\n", __FUNCTION__, Code, bPressed);
222    if (cbIRFunc)
223            (cbIRFunc)(0, Code, bPressed);
224}
225
226#if 0
227/********************************************************************************
228FUNCTION:                                                                   
229    DHL_UIRT_Initialize
230
231Purpose:                                                                   
232        UIRT Initialization
233                - port open
234
235Arguments:                                                                     
236        uirtport
237       
238Returns:                                                                   
239                       
240*********************************************************************************/
241DHL_RESULT DHL_UIRT_Initialize(DHL_UIRT_PORT uirtport)
242{
243        DHL_RESULT dhlResult = DHL_OK;
244        dhlResult = DD_UIRT_OpenEx(uirtport);
245        return dhlResult;       
246}
247
248/********************************************************************************
249FUNCTION:                                                                   
250    DHL_UIRT_Close
251
252Purpose:                                                                   
253        UIRT Close
254                - port close
255
256Arguments:                                                                     
257        uirtport
258       
259Returns:                                                                   
260                       
261*********************************************************************************/
262DHL_RESULT DHL_UIRT_Close(DHL_UIRT_PORT uirtport)
263{
264        DHL_RESULT dhlResult = DHL_OK;
265        dhlResult = DD_UIRT_Close(uirtport);
266        return dhlResult;       
267}
268/********************************************************************************
269FUNCTION:                                                                   
270    DHL_UIRT_IsXmitBusy
271
272Purpose:                                                                   
273        UIRT Close
274
275Arguments:                                                                     
276        uirtport
277       
278Returns:                                                                   
279                       
280*********************************************************************************/
281DS_BOOL DHL_UIRT_XmitIsBusy(DHL_UIRT_PORT uirtport)
282{
283        DHL_RESULT dhlResult = DHL_OK;
284        DS_BOOL bBusy = FALSE;
285        dhlResult = DD_UIRT_GetXmitBusy(uirtport,(DS_U32*)&bBusy);
286        if(DHL_ERROR(dhlResult))
287                DHL_DbgPrintf(1,DHLDBG_IR," |error| %d \n",__LINE__);
288        return bBusy;   
289}
290
291/********************************************************************************
292FUNCTION:                                                                   
293    DHL_UIRT_IsXmitBusy
294
295Purpose:                                                                   
296        UIRT Close
297
298Arguments:                                                                     
299        uirtport
300       
301Returns:                                                                   
302                       
303*********************************************************************************/
304DHL_RESULT DHL_UIRT_XmitWriteBuf(DHL_UIRT_PORT uirtport, DS_U32 * buffer, DS_U32 lebgth)
305{
306        DHL_RESULT dhlResult = DHL_OK;
307        dhlResult = DD_UIRT_WriteBuf(uirtport, buffer, lebgth);
308        return dhlResult;       
309}
310
311/********************************************************************************
312FUNCTION:                                                                   
313    DHL_UIRT_SetXmitClkDiv
314
315Purpose:                                                                   
316        UIRT Close
317
318Arguments:                                                                     
319        uirtport
320       
321Returns:                                                                   
322                       
323*********************************************************************************/
324DHL_RESULT DHL_UIRT_SetXmitClkDiv(DHL_UIRT_PORT uirtport, DS_U32 xclkdiv)
325{
326        DHL_RESULT dhlResult = DHL_OK;
327        dhlResult = DD_UIRT_SetXmitClkDiv(uirtport, xclkdiv);
328        return dhlResult;       
329}
330
331/********************************************************************************
332FUNCTION:                                                                   
333    DHL_UIRT_SetXmitModParams
334
335Purpose:                                                                   
336        Set register UIRT_XMIT_MOD_CNTL
337
338Arguments:                                                                     
339        uirtport
340        xcd - transmiter carrier divider
341        bnonmodulate - non-modulated
342Returns:                                                                   
343note:
344
345XMIT_CARRIER_DIV        11:0    0x4b0   Clock Divisor for transmitter carrier frequency
346                                                                        Number of 48MHz clocks that are in the period of the carrier signal
347                                                                        Default is 40 kHz.
348XMIT_CARRIER_HI         26:16   0x12c   Number of 48MHz clocks that the carrier signal is high
349                                                                        Default is 25% duty cycle
350XMIT_MOD_EN             28              0x1     Enable Modulation of the transmitted signal with the carrier signal
351*********************************************************************************/
352DHL_RESULT DHL_UIRT_SetXmitCarrierDivider(DHL_UIRT_PORT uirtport, DS_U32 CarrierFreq, DS_BOOL bmodulate)
353{
354        DHL_RESULT dhlResult = DHL_OK;
355        DS_U32 mod_param = 0;
356        DS_U32 xmit_carrier_divider = 0;
357        DS_U32 xmit_carrier_hi  = 0x12c /*300*/;
358        DS_U32 xmit_mode_en     = 0x0;
359
360        if(bmodulate)
361                xmit_mode_en = 0x1;
362       
363        xmit_carrier_divider = 48000000/CarrierFreq;
364        printf("carrier_divider = %d\n",xmit_carrier_divider);
365       
366        mod_param = (xmit_mode_en<<28) | (xmit_carrier_hi<<16) | xmit_carrier_divider ;
367       
368        dhlResult = DD_UIRT_SetXmitModParams( uirtport, mod_param );
369        return dhlResult;       
370}
371/********************************************************************************
372FUNCTION:                                                                   
373    DHL_UIRT_XmitAbortTransmit
374
375Purpose:                                                                   
376        UIRT Tx stop the data transmit
377
378Arguments:                                                                     
379        uirtport
380       
381Returns:                                                                   
382                       
383*********************************************************************************/
384DHL_RESULT DHL_UIRT_XmitAbortTransmit(DHL_UIRT_PORT uirtport)
385{
386        DHL_RESULT dhlResult = DHL_OK;
387        dhlResult = DD_UIRT_XmitAbortTransmit(uirtport);
388        return dhlResult;
389}
390#endif
391
392//////////////////////////////////////////////////////////////////////////////////
393//TEST FOR UIRT RX
394
395void start_ir(void)
396{
397        DHL_IR_Init(DHL_IR_NEC);
398}
399
400void stop_ir(void)
401{
402        DHL_IR_Close();
403}
404
405//end of file
Note: See TracBrowser for help on using the repository browser.