source: svn/trunk/zasc/app/DST_WinManualSearch.cpp @ 2

Last change on this file since 2 was 2, checked in by phkim, 11 years ago

1.phkim

  1. revision copy newcon3sk r27
  • Property svn:executable set to *
File size: 6.2 KB
Line 
1#include "DST_WinManager.h"
2#include "DST_ChannelTune.h"
3#include "DST_SignalMonitor.h"
4
5#include "DST_DataStrings.h"
6#include "DST_OSDImage.h"
7#include "DST_UserInterface.h"
8
9#include "DST_ISDBT_ChannelTask.h"
10#include "DST_ChannelTune.h"
11#include "DST_DB.h"
12#include "DST_DB_Engine.h"
13
14#define AS_RF_W                 77
15#define AS_CH_NO_W              111
16#define AS_CH_NAME_W    364
17
18#define PROGRESS_BAR_X  33
19#define PROGRESS_BAR_Y  266
20#define PROGRESS_BAR_W  333
21
22
23class CManualSearchWin : public CWindow
24{
25private:
26        CHANNEL_DISPLAY ch[4];
27        int m_nRF; // È­¸é¿¡ Ç¥½ÃµÈ RFÀÇ À妽º ¹øÈ£
28        bool m_bReceiveSI; 
29public:
30        CManualSearchWin(SWinEventMsg event):CWindow(event)
31        {
32                m_nRF = DST_EEPROM_GetRF();
33                m_bReceiveSI = true;
34               
35                rect.w = DST_GetImageWidth(newcon2_gui_autoscan_back);
36                rect.h = DST_GetImageHeight(newcon2_gui_autoscan_back);
37                rect.x = (DST_GetScreenWidth() - rect.w) / 2;
38                rect.y = (DST_GetScreenHeight()- rect.h) / 2;
39               
40                RegisterAllKey();
41                RegisterKey(VK_PWR, false);
42                DST_UI_ChannelTune(m_nRF, 0);   
43        }
44
45        virtual ~CManualSearchWin()
46        {
47                DST_UI_ChannelTune(m_nRF, 0);   
48        }
49       
50        void ClearChList()
51        {               
52                memset(ch, 0, sizeof(ch));
53        }
54       
55        void AddChList(int rf, int major, int minor, char* name)
56        {
57                int nPos = 4;
58                for (int i = 0; i < 4; i++)
59                {
60                        if (strlen(ch[i].num) != 0) continue;
61                        nPos = i;
62                        break;
63                }
64                if (nPos > 3) 
65                {
66                        nPos = 3;
67                        memcpy(&ch[0], &ch[1], sizeof(CHANNEL_DISPLAY)* 3);
68                }
69                if (minor == 0)
70                {
71                        sprintf(ch[nPos].num, "%d(%d)", major, DST_GetFrequencyNumberbyIndex(rf));
72                }
73                else
74                {
75                        sprintf(ch[nPos].num, "%d-%d(%d)", major, minor, DST_GetFrequencyNumberbyIndex(rf));
76                }
77                strcpy((char*)ch[nPos].name, (char*)name);
78        }
79       
80        void AddChList(int RF)
81        {
82                CDB db;
83                db.GetTable("select major, minor, name from channel_db where rf =%d order by major,minor", RF);
84                if (db.GetRow() < 1) return;
85                for (int i = 0; i < db.GetRow(); i++)
86                {
87                        AddChList(RF, 
88                                atoi(db.GetResult((i+1)*db.GetCol()+0)), 
89                                atoi(db.GetResult((i+1)*db.GetCol()+1)), 
90                                db.GetResult((i+1)*db.GetCol()+2));
91                }
92        }
93       
94        virtual void OnTimer(char nID)
95        {
96                switch (nID)
97                {
98                        case 1:
99                                KillTimer(1);
100                                ClearChList();
101                                AddChList(m_nRF);
102                                Show();
103                                break;
104                        default:
105                                break;
106                }
107        }
108       
109        virtual void OnMessage(SWinEventMsg event)
110        {
111                switch (event.cmd)
112                {
113                        case WM_POWER_OFF:
114                                Close();
115                                break;
116                               
117                        case WM_CT_MSG:
118                                switch (event.data32[0])
119                                {
120                                        case CT_RECEIVE_TVCT:
121                                        case CT_RECEIVE_CVCT:
122                                        case CT_RECEIVE_PMT:
123                                                m_bReceiveSI = true;
124                                                SetTimer(1,100);
125                                                T();
126                                                break;
127                                        case CT_SCAN_START:
128                                                T();
129                                                DST_UI_ChannelTune(m_nRF, 0);   
130                                                break;
131                                }
132                                break;
133                }
134        }
135       
136        virtual void Show(void)
137        {
138                // ¹è°æ
139                DrawImage(0, 0, newcon2_gui_manulscan_back);
140                // ŸÀÌÆ²
141                setFontStyle(20,0xC8C8C8,ALIGN_MIDDLE,ALIGN_CENTER);
142                // Ç׸ñ À̸§  ä³Î¹øÈ£ RF ä³ÎÀ̸§
143#if DESIGN_TYPE == 1
144                DrawTextUni( 27, 10,  118, 29, pz_Scan_ChannelNumber[OSD_Lang], &font);
145                DrawTextUni(174, 10, 176, 29, pz_chName[OSD_Lang], &font);
146#else
147                DrawTextUni( 15, 10,  160, 29, pz_Scan_ChannelNumber[OSD_Lang], &font);
148                DrawTextUni(187, 10, 160, 29, pz_chName[OSD_Lang], &font);
149#endif
150
151                // ¹öư ±×¸®±â
152                char rfNumberStr[10] = {0,};
153                sprintf(rfNumberStr,"%d",DST_GetFrequencyNumberbyIndex(m_nRF));
154                setFontStyle(19,0xC8C8C8,ALIGN_MIDDLE,ALIGN_CENTER);
155                DrawTextUni(367, 18, 137, 35, pz_Scan_NoRF[OSD_Lang], &font);
156                DrawText(400, 57, 69, 35, rfNumberStr, &font);
157               
158                DrawImage(384, 122, newcon2_gui_depth3_button_small_selected,true);
159                DrawTextUni(384, 122, DST_GetImageWidth(newcon2_gui_depth3_button_small_selected), DST_GetImageHeight(newcon2_gui_depth3_button_small_selected), pz_Scan_ChannelSearch[OSD_Lang], &font);
160#if DESIGN_TYPE == 1
161#else
162                setFontStyle(19,0x000000,ALIGN_MIDDLE,ALIGN_CENTER);
163#endif
164
165                DrawImage(384, 122, newcon2_gui_depth3_button_small_cursor,true);
166                DrawTextUni(384, 122,
167                        DST_GetImageWidth(newcon2_gui_depth3_button_small_selected), 
168                        DST_GetImageHeight(newcon2_gui_depth3_button_small_selected), 
169                        m_bReceiveSI ? pz_Scan_ChannelSearch[OSD_Lang] : pz_Scan_Searching[OSD_Lang], 
170                        &font);
171                setFontStyle(20,0xC8C8C8,ALIGN_MIDDLE,ALIGN_CENTER);
172                // Ç׸ñ Ç¥½Ã
173                for (int i=0; i < 4; i++)
174                {
175                        if (strlen(ch[i].num) == 0) continue;
176                        DS_U32* strText32 = DST_UTF82Uni((DS_U8*)ch[i].name); // È£ÃâÇÑ ÂÊ¿¡¼­ ¸Þ¸ð¸® ÇØÁ¦
177                        // ä³Î ¹øÈ£ , RF
178#if DESIGN_TYPE == 1
179                        DrawText( 27, 10+(i+1)*36,      118, 29,  ch[i].num, &font);
180                        // ä³Î À̸§
181                        DrawText32(174, 10+(i+1)*36, 174, 29, strText32, &font);
182#else
183                        DrawText( 15, 10+(i+1)*36,      160, 29,  ch[i].num, &font);
184                        // ä³Î À̸§
185                        DrawText32(187, 10+(i+1)*36, 160, 29, strText32, &font);
186#endif
187                }
188        }
189
190
191        virtual void KeyInput(unsigned char key, bool /*bRepeat*/)
192        {
193                switch(key)
194                {
195                        case VK_UP:
196                                m_bReceiveSI = true;
197                                m_nRF+=10;
198                                if (m_nRF > DST_MaxRF()) m_nRF = DST_MinRF();
199                                ClearChList(); 
200                                AddChList(m_nRF);
201                                Show();
202                                DST_UI_ChannelTune(m_nRF, 0);           
203                                break;
204                        case VK_DN:
205                                m_bReceiveSI = true;
206                                m_nRF-=10;
207                                if(m_nRF < DST_MinRF()) m_nRF = DST_MaxRF();
208                                ClearChList(); 
209                                AddChList(m_nRF);
210                                Show(); 
211                                DST_UI_ChannelTune(m_nRF, 0);   
212                                break;
213                        case VK_RIGHT:
214                                //JST_Stop();
215                                m_bReceiveSI = true;
216                                m_nRF++;
217                                if (m_nRF > DST_MaxRF()) m_nRF = DST_MinRF();
218                                ClearChList(); 
219                                AddChList(m_nRF);
220                                Show(); 
221                                DST_UI_ChannelTune(m_nRF, 0);   
222                                break;
223                        case VK_LEFT:
224                                //JST_Stop();
225                                m_bReceiveSI = true;
226                                m_nRF--;
227                                if(m_nRF < DST_MinRF()) m_nRF = DST_MaxRF();
228                                ClearChList(); 
229                                AddChList(m_nRF);
230                                Show(); 
231                                DST_UI_ChannelTune(m_nRF, 0);   
232                                break;
233                case VK_OK:
234                                JST_Stop();
235                                m_bReceiveSI = false;
236                                JST_DB_Del(m_nRF);
237                                ClearChList();
238                                Show(); 
239                                //DST_UI_ChannelTune(m_nRF, 0);
240                                // DST_UI_ChannelTuneÀ» »ç¿ëÇÏ¸é µ¿ÀÏ Ã¤³Î¿¡¼­ µÎ ¹ø ½ÃµµÇÒ ¶§ µ¿ÀÛÇÏÁö ¾Ê´Â´Ù.
241                                // ¿ì¼± ½ºÄµÀ» È£ÃâÇÏ°í ½ºÄµ ½ÃÀÛÇÏÁö¸¶ÀÚ Äݹ鿡¼­ Æ©´×À» ÇÑ´Ù.
242                                JST_Scan(m_nRF);       
243                                break;
244                        case VK_CANCEL:
245                        case VK_MENU:
246                                Close();
247                                break;
248                }
249        }
250};
251
252void DST_CreateManualSearchWin(SWinEventMsg event)
253{
254        DST_AddWin((WinID)(event.data[0]), new CManualSearchWin(event));
255}
256
Note: See TracBrowser for help on using the repository browser.