FireBirdLib - Topfield TMS PVR TAP Programming Library
OSDMenuEvent.c
Go to the documentation of this file.
1#include "FBLib_TMSOSDMenu.h"
2
3bool OSDMenuEvent(word *event, dword *param1, dword *param2)
4{
6
7 (void) param2;
8
10 {
12
13 if(event && param1 && (*event == EVT_KEY))
14 {
15 if(*param1 == RKEY_Exit)
16 {
18 *param1 = 0;
19 }
20
22
23 TRACEEXIT();
24 return TRUE;
25 }
26
27 if(!event || (*event == EVT_IDLE))
28 {
29 if(TAP_GetTick() > InfoBoxTimeOut) OSDMenuInfoBoxDestroy();
30 }
31
32 TRACEEXIT();
33 return FALSE;
34 }
35
37 {
38 if(event && param1 && (*event == EVT_KEY))
39 {
40 switch(*param1)
41 {
42 case RKEY_Ok:
43 {
46 else
48
49 *param1 = 0;
50 break;
51 }
52
53 case RKEY_Exit:
54 {
57 else
59 MessageBox.CurrentButton = (dword) -1;
60
61 *param1 = 0;
62 break;
63 }
64
65 case RKEY_Right:
66 {
68 {
71 }
73 {
76 }
77
78 *param1 = 0;
79 break;
80 }
81
82 case RKEY_Left:
83 {
85 {
88 }
90 {
93 }
94
95 *param1 = 0;
96 break;
97 }
98 }
99
101
102 TRACEEXIT();
103 return TRUE;
104 }
105
106 TRACEEXIT();
107 return FALSE;
108 }
109
111 {
112 if(event && param1 && (*event == EVT_KEY))
113 {
114 switch(*param1)
115 {
116 case RKEY_Red:
117 {
119 {
123 TAP_Osd_Sync();
124 }
125
126 *param1 = 0;
127 break;
128 }
129
130 case RKEY_Green:
131 {
133 {
137 TAP_Osd_Sync();
138 }
139
140 *param1 = 0;
141 break;
142 }
143
144 case RKEY_Blue:
145 {
147 {
151 TAP_Osd_Sync();
152 }
153
154 *param1 = 0;
155 break;
156 }
157
158 case RKEY_Down:
159 {
160 int Color = 0;
161
163 {
164 case CCS_Red: Color = (ColorPickerColor >> 16) & 0xff; break;
165 case CCS_Green: Color = (ColorPickerColor >> 8) & 0xff; break;
166 case CCS_Blue: Color = ColorPickerColor & 0xff; break;
167 }
168
169 Color -= 10;
170 if(Color < 0x00) Color = 0x00;
172 {
173 case CCS_Red: ColorPickerColor = (ColorPickerColor & 0xff00ffff) | (Color << 16); break;
174 case CCS_Green: ColorPickerColor = (ColorPickerColor & 0xffff00ff) | (Color << 8); break;
175 case CCS_Blue: ColorPickerColor = (ColorPickerColor & 0xffffff00) | Color; break;
176 }
178 TAP_Osd_Sync();
179
180 *param1 = 0;
181 break;
182 }
183
184 case RKEY_Up:
185 {
186 int Color = 0;
187
189 {
190 case CCS_Red: Color = (ColorPickerColor >> 16) & 0xff; break;
191 case CCS_Green: Color = (ColorPickerColor >> 8) & 0xff; break;
192 case CCS_Blue: Color = ColorPickerColor & 0xff; break;
193 }
194
195 Color += 10;
196 if(Color > 0xff) Color = 0xff;
198 {
199 case CCS_Red: ColorPickerColor = (ColorPickerColor & 0xff00ffff) | (Color << 16); break;
200 case CCS_Green: ColorPickerColor = (ColorPickerColor & 0xffff00ff) | (Color << 8); break;
201 case CCS_Blue: ColorPickerColor = (ColorPickerColor & 0xffffff00) | Color; break;
202 }
204 TAP_Osd_Sync();
205
206 *param1 = 0;
207 break;
208 }
209
210 case RKEY_Right:
211 {
212 int Color = 0;
213
215 {
216 case CCS_Red: Color = (ColorPickerColor >> 16) & 0xff; break;
217 case CCS_Green: Color = (ColorPickerColor >> 8) & 0xff; break;
218 case CCS_Blue: Color = ColorPickerColor & 0xff; break;
219 }
220
221 if(Color < 0xff)
222 {
223 Color++;
225 {
226 case CCS_Red: ColorPickerColor = (ColorPickerColor & 0xff00ffff) | (Color << 16); break;
227 case CCS_Green: ColorPickerColor = (ColorPickerColor & 0xffff00ff) | (Color << 8); break;
228 case CCS_Blue: ColorPickerColor = (ColorPickerColor & 0xffffff00) | Color; break;
229 }
231 TAP_Osd_Sync();
232 }
233
234 *param1 = 0;
235 break;
236 }
237
238 case RKEY_Left:
239 {
240 int Color = 0;
241
243 {
244 case CCS_Red: Color = (ColorPickerColor >> 16) & 0xff; break;
245 case CCS_Green: Color = (ColorPickerColor >> 8) & 0xff; break;
246 case CCS_Blue: Color = ColorPickerColor & 0xff; break;
247 }
248
249 if(Color > 0x00)
250 {
251 Color--;
253 {
254 case CCS_Red: ColorPickerColor = (ColorPickerColor & 0xff00ffff) | (Color << 16); break;
255 case CCS_Green: ColorPickerColor = (ColorPickerColor & 0xffff00ff) | (Color << 8); break;
256 case CCS_Blue: ColorPickerColor = (ColorPickerColor & 0xffffff00) | Color; break;
257 }
259 TAP_Osd_Sync();
260 }
261
262 *param1 = 0;
263 break;
264 }
265
266 case RKEY_Ok:
267 {
269 *param1 = 0;
270 break;
271 }
272
273 case RKEY_Exit:
274 {
277 *param1 = 0;
278 break;
279 }
280 }
281
283
284 TRACEEXIT();
285 return TRUE;
286 }
287
288 TRACEEXIT();
289 return FALSE;
290 }
291
292 if(OSDRgn)
293 {
294 if(event && param1 && (*event == EVT_KEY))
295 {
297
298 switch(*param1)
299 {
300 case RKEY_Up:
301 {
303 OSDMenuUpdate(FALSE);
304 *param1 = 0;
305
306 TRACEEXIT();
307 return TRUE;
308 }
309
310 case RKEY_Down:
311 {
313 OSDMenuUpdate(FALSE);
314 *param1 = 0;
315
316 TRACEEXIT();
317 return TRUE;
318 }
319
320 case RKEY_ChDown:
321 case RKEY_VolDown:
322 {
324 OSDMenuUpdate(FALSE);
325 *param1 = 0;
326
327 TRACEEXIT();
328 return TRUE;
329 }
330
331 case RKEY_ChUp:
332 case RKEY_VolUp:
333 {
335 OSDMenuUpdate(FALSE);
336 *param1 = 0;
337
338 TRACEEXIT();
339 return TRUE;
340 }
341
342 case RKEY_Left:
343 {
344 if(!Menu[CurrentMenuLevel].hasValueArrows)
345 {
347 OSDMenuUpdate(FALSE);
348 *param1 = 0;
349
350 TRACEEXIT();
351 return TRUE;
352 }
353 break;
354 }
355
356 case RKEY_Right:
357 {
358 if(!Menu[CurrentMenuLevel].hasValueArrows)
359 {
361 OSDMenuUpdate(FALSE);
362 *param1 = 0;
363
364 TRACEEXIT();
365 return TRUE;
366 }
367 break;
368 }
369 }
370
372 }
373
374 }
375
376 TRACEEXIT();
377 return FALSE;
378}
void OSDMenuColorPickerDrawCursor(tCurrentColorSelected CursorColor, bool Selected)
dword LastUnprocessedOSDMenuKey
Definition: OSDMenuInit.c:37
tMenu Menu[NRMENULEVELS]
Definition: OSDMenuInit.c:6
tMessageBox MessageBox
Definition: OSDMenuInit.c:19
word MessageBoxOSDRgn
Definition: OSDMenuInit.c:18
dword InfoBoxTimeOut
Definition: OSDMenuInit.c:13
void OSDMenuWaitSpinnerIdle(void)
bool MessageBoxAllowScrollOver
Definition: OSDMenuInit.c:21
word InfoBoxOSDRgn
Definition: OSDMenuInit.c:12
tCurrentColorSelected CurrentColorSelected
Definition: OSDMenuInit.c:30
dword CurrentMenuLevel
Definition: OSDMenuInit.c:7
word ColorPickerOSDRgn
Definition: OSDMenuInit.c:27
word WaitSpinnerRgn
Definition: OSDMenuInit.c:33
word OSDRgn
Definition: OSDMenuInit.c:4
dword ColorPickerDefaultColor
Definition: OSDMenuInit.c:29
bool MessageBoxNoNormalMode
Definition: OSDMenuInit.c:20
@ CCS_Green
@ CCS_Red
@ CCS_Blue
dword ColorPickerColor
Definition: OSDMenuInit.c:28
bool OSDMenuEvent(word *event, dword *param1, dword *param2)
Definition: OSDMenuEvent.c:3
void OSDMenuUpdate(bool SuppressOSDSync)
Definition: OSDMenuUpdate.c:3
#define TRACEEXIT()
Definition: libFireBird.h:1244
#define RKEY_Red
Definition: libFireBird.h:211
int OSDMenuScrollDown(void)
void OSDMenuMessageBoxDestroy(void)
int OSDMenuScrollPageUp(void)
void OSDMenuMessageBoxDestroyNoOSDUpdate(void)
#define RKEY_Green
Definition: libFireBird.h:212
void OSDMenuMessageBoxShow(void)
#define TRACEENTER()
Definition: libFireBird.h:1243
void OSDMenuInfoBoxDestroy(void)
int OSDMenuScrollPageDown(void)
void OSDMenuColorPickerDestroy(void)
int OSDMenuScrollUp(void)
#define RKEY_Blue
Definition: libFireBird.h:214