source: svn/trunk/zasc/app/DST_WinSignalMeter.cpp @ 76

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

1.phkim

  1. revision copy newcon3sk r27
  • Property svn:executable set to *
File size: 3.0 KB
Line 
1#include "DST_WinManager.h"
2#include "DST_OSDImage.h"
3#include "DST_CommonAPI.h"
4#include "DST_UserInterface.h"
5#include "DST_DataStrings.h"
6#include "DST_SignalMonitor.h"
7
8#if 0
9____CVolumeWin___()
10#endif
11
12
13class CSignalMeterWin : public CWindow
14{
15public:
16        CSignalMeterWin(SWinEventMsg event):CWindow(event)
17        {
18                rect.w = DST_GetImageWidth(newcon2_gui_signalmeter_back);
19                rect.h = DST_GetImageHeight(newcon2_gui_signalmeter_back);
20                rect.x = (DST_GetScreenWidth() - rect.w) / 2;
21                rect.y = DST_GetScreenHeight()*9/10 - rect.h;
22                SetTimeOut(30);
23        }
24        virtual void Show(WinID id)
25        {
26                switch(id)
27                {
28                        case WIN_EWS:
29                        case WIN_CHANNEL_BANNER:
30                        case WIN_DIRECT_TUNE:
31                        case WIN_VOLUME:
32                        case WIN_VOLUME_MUTE:
33                        case WIN_AUDIO_HOT:
34                        case WIN_DISPLAY_MODE_HOT:
35                        case WIN_CLOSED_CAPTION_HOT:
36                        case WIN_FACTORY_RESET:
37                        case WIN_FACTORY_RESET_ASK:
38                        case WIN_INFOR_BANNER:
39                        case WIN_MAIN_MENU:
40                        case WIN_POWER_DOWN_CAUTION:
41                        case WIN_SUB_MENU_2DEPTH:
42                        case WIN_SUB_MENU_3DEPTH:
43                        case WIN_SUB_MENU_4DEPTH:
44                        case WIN_AUTO_SEARCH:
45                        case WIN_MANUAL_SEARCH:
46                        case WIN_CHANNEL_LIST:
47                        case WIN_PROGRAM_GUIDE:
48                                Close();
49                                break;
50                        default:
51                                break;
52                }
53        }
54        virtual void OnMessage(SWinEventMsg event)
55        {
56                switch (event.cmd)
57                {
58                        case WM_POWER_OFF:
59                                Close();
60                                break;
61                }
62        }
63        virtual void Show()
64        {
65                Draw();
66        }
67
68        void Draw()
69        {
70                RegisterKey(VK_CANCEL,true);
71                RegisterKey(VK_SIGNAL_METER,true);
72                DrawImage(0, 0, newcon2_gui_signalmeter_back);
73                setFontStyle(20, 0xFFC8C8C8, ALIGN_MIDDLE, ALIGN_CENTER);
74
75                DrawTextUni(71 , 0, rect.w, rect.h/2, pz_Sub_SignalMeter[OSD_Lang], &font);
76                DrawTextUni(9 , 48, 98, 50, pz_Weak[OSD_Lang], &font);
77                DrawTextUni(338 , 48, 98, 50, pz_Good[OSD_Lang], &font);
78
79               
80                DrawSignalBar();
81                SetTimer(1,500);
82        }
83       
84        void DrawSignalBar(void)
85        {
86                int xPos        = 131;
87                int yPos        = 67;
88                int width   = 183;
89                int range       = 100;
90                int signal      = DST_GetSignalStrength();
91
92                int division =  width/3;
93                int position = (width*signal)/(range);
94               
95                //signal text
96                setFontStyle(15, 0xFFC8C8C8, ALIGN_TOP, ALIGN_CENTER);
97                char tmp[5]={0};
98                sprintf(tmp, "%d", signal);
99                DrawText(0, rect.h*3/4 +8, rect.w, 15, tmp, &font);
100
101                //signal meter
102                for (int i=xPos; i < xPos+position; i++)
103                {
104                        if ((i-xPos) <= division)
105                                DrawImage(i, yPos, newcon2_gui_progress_red);
106                        else if ((i-xPos) <= (division*2))
107                                DrawImage(i, yPos, newcon2_gui_progress_yellow);
108                        else
109                                DrawImage(i, yPos, newcon2_gui_progress_green);
110                }
111               
112
113        }
114        virtual void OnTimer(char nID)
115        {
116                switch(nID)
117                {
118                        case 1:
119                                KillTimer(1);
120                                Draw();
121                                break;
122                        default:
123                                break;
124                }
125        }
126        virtual void KeyInput(DS_U8 key, bool /*bRepeat*/)
127        {
128                switch (key)
129                {
130                        case VK_SIGNAL_METER:
131                        case VK_CANCEL:
132                                Close();
133                                break;
134                }
135        }
136
137
138};
139void DST_CreateSignalMeterWindow(SWinEventMsg event)
140{
141        DST_AddWin((WinID)(event.data[0]), new CSignalMeterWin(event));
142}
143
144
145
Note: See TracBrowser for help on using the repository browser.