FreeCalypso > hg > fc-magnetite
comparison src/aci2/bmi/mmiEm.c @ 3:93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 26 Sep 2016 00:29:36 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
2:c41a534f33c6 | 3:93999a60b835 |
---|---|
1 /******************************************************************************* | |
2 | |
3 CONDAT (UK) | |
4 | |
5 ******************************************************************************** | |
6 | |
7 This software product is the property of Condat (UK) Ltd and may not be | |
8 disclosed to any third party without the express permission of the owner. | |
9 | |
10 ******************************************************************************** | |
11 | |
12 $Project name: Basic MMI | |
13 $Project code: BMI (6349) | |
14 $Module: MMI | |
15 $File: MmiEm.c | |
16 $Revision: 1.0 | |
17 | |
18 $Author: Condat(UK) | |
19 $Date: 23/09/02 | |
20 | |
21 ******************************************************************************** | |
22 | |
23 Description: | |
24 | |
25 MMI engineering mode handling | |
26 | |
27 ******************************************************************************** | |
28 $History: MmiExtras.c | |
29 | |
30 23/09/02 Original Condat(UK) BMI version. | |
31 | |
32 $End | |
33 | |
34 *******************************************************************************/ | |
35 | |
36 | |
37 | |
38 | |
39 /******************************************************************************* | |
40 | |
41 Include Files | |
42 | |
43 *******************************************************************************/ | |
44 #define ENTITY_MFW | |
45 | |
46 /* includes */ | |
47 #include <string.h> | |
48 #include <stdio.h> | |
49 #include <stdlib.h> | |
50 | |
51 #if defined (NEW_FRAME) | |
52 | |
53 #include "typedefs.h" | |
54 #include "vsi.h" | |
55 #include "pei.h" | |
56 #include "custom.h" | |
57 #include "gsm.h" | |
58 | |
59 #else | |
60 | |
61 #include "STDDEFS.H" | |
62 #include "custom.h" | |
63 #include "gsm.h" | |
64 #include "vsi.h" | |
65 | |
66 #endif | |
67 #include "mfw_sys.h" | |
68 | |
69 #include "prim.h" | |
70 #include "cus_aci.h" | |
71 | |
72 #include "mfw_mfw.h" | |
73 #include "mfw_win.h" | |
74 #include "mfw_kbd.h" | |
75 /* SPR#1428 - SH - New Editor changes */ | |
76 #ifndef NEW_EDITOR | |
77 #include "mfw_edt.h" | |
78 #endif | |
79 #include "mfw_lng.h" | |
80 #include "mfw_tim.h" | |
81 #include "mfw_icn.h" | |
82 #include "mfw_mnu.h" | |
83 #include "mfw_phb.h" | |
84 #include "mfw_cm.h" | |
85 #include "mfw_sim.h" | |
86 #include "mfw_nm.h" | |
87 #include "mfw_sat.h" | |
88 #include "mfw_ss.h" /*for convert*/ | |
89 #include "mfw_phb.h" | |
90 #include "ksd.h" | |
91 #include "psa.h" | |
92 #include "mfw_sms.h" | |
93 #include "mfw_cphs.h" | |
94 #include "mfw_sat.h" | |
95 #include "Mfw_band.h" | |
96 #include "mfw_ffs.h" | |
97 | |
98 #include "dspl.h" | |
99 | |
100 #include "MmiMmi.h" | |
101 #include "MmiDialogs.h" | |
102 #include "MmiLists.h" | |
103 #include "MmiBand.h" | |
104 #include "MmiCPHS.h" | |
105 /* SPR#1428 - SH - New Editor changes */ | |
106 #ifdef NEW_EDITOR | |
107 #include "ATBCommon.h" | |
108 #include "ATBDisplay.h" | |
109 #include "ATBEditor.h" | |
110 #include "AUIEditor.h" | |
111 #else | |
112 #include "MmiEditor.h" | |
113 #endif | |
114 #include"MmiBookShared.h" | |
115 | |
116 | |
117 #include "Mfw_em.h" | |
118 #include "MmiEm.h" | |
119 | |
120 #include "mmiColours.h" | |
121 | |
122 | |
123 #define EM_UPDATE_RATE 1000 | |
124 | |
125 #define EM_EDITOR_SIZE 300 /*SPR 1757, increased size of editor buffer*/ | |
126 /* | |
127 **************************************Datatypes**************************************** | |
128 */ | |
129 typedef struct _tEmData_ | |
130 { | |
131 /* administrative data */ | |
132 | |
133 T_MMI_CONTROL mmi_control; | |
134 T_MFW_HND win; | |
135 T_MFW_HND parent_win; | |
136 | |
137 /* associated handlers */ | |
138 | |
139 T_MFW_HND kbd; /*keyboard handler*/ | |
140 T_MFW_HND tim; /*timer handler*/ | |
141 | |
142 /* SPR#1428 - SH - New Editor changes */ | |
143 #ifdef NEW_EDITOR | |
144 T_ED_DATA * editor; | |
145 T_ED_ATTR editor_attr; | |
146 #else /* NEW_EDITOR */ | |
147 T_MFW_HND edt; /*mfw editor handler*/ | |
148 MfwEdtAttr editor_data; /*editor config data*/ | |
149 #endif /* NEW_EDITOR */ | |
150 | |
151 /* internal data */ | |
152 char edtBuffer[EM_EDITOR_SIZE*2];/*SPR 1757*//*editor contentbuffer*/ | |
153 MfwEmDataType CurrentWindow; /*type of data being displayed*/ | |
154 | |
155 } tEmData; | |
156 | |
157 | |
158 /* | |
159 **************************************Prototypes**************************************** | |
160 */ | |
161 int Mmi_em_event_cb(T_MFW_EVENT event, T_MFW_HND para); //Handles events from the MFW | |
162 T_MFW_HND Mmi_em_create(T_MFW_HND parent_window, MfwEmDataType data_type); //Create a window to display the information, specifying the keyboard, display and timer handlers. | |
163 void Mmi_em_destroy(T_MFW_HND own_window); //Deallocate window data and delete window. | |
164 int Mmi_em_kbd_cb(T_MFW_EVENT event,T_MFW_KBD * kc ); //Handles key presses in the display window | |
165 int Mmi_em_win_cb(T_MFW_EVENT event,T_MFW_WIN * win );// Handles the information display. | |
166 void Mmi_em_tim_cb(T_MFW_EVENT event,T_MFW_TIM * t); //Handles the timer events. | |
167 | |
168 | |
169 | |
170 | |
171 /* | |
172 **************************************Public functions**************************************** | |
173 */ | |
174 | |
175 | |
176 /******************************************************************************* | |
177 | |
178 $Function: mmi_em_init() | |
179 | |
180 $Description: initialise Engineering Mode module | |
181 | |
182 $Returns: None | |
183 | |
184 $Arguments: None | |
185 | |
186 *******************************************************************************/ | |
187 void mmi_em_init() | |
188 { | |
189 Mfw_em_init(); | |
190 | |
191 } | |
192 | |
193 /******************************************************************************* | |
194 | |
195 $Function: mmi_em_enit() | |
196 | |
197 $Description: exit Engineering Mode module | |
198 | |
199 $Returns: None | |
200 | |
201 $Arguments: None | |
202 | |
203 *******************************************************************************/ | |
204 void mmi_em_exit() | |
205 { | |
206 Mfw_em_exit(); | |
207 } | |
208 | |
209 /******************************************************************************* | |
210 | |
211 $Function: mmi_em_start_eng_mode_menus() | |
212 | |
213 $Description: starts the emergency mode menu | |
214 | |
215 $Returns: None | |
216 | |
217 $Arguments: parent window | |
218 | |
219 *******************************************************************************/ | |
220 void mmi_em_start_eng_mode_menus(T_MFW_HND parent) | |
221 { | |
222 TRACE_EVENT("mmi_em_start_eng_mode_menus"); | |
223 bookMenuStart(parent, EngModeAttributes(), NULL); | |
224 | |
225 } | |
226 | |
227 /******************************************************************************* | |
228 | |
229 $Function: Mmi_em_display_mobile_info_data() | |
230 | |
231 $Description: Called from menu; begins process to display Mobile Information | |
232 | |
233 $Returns: status integer | |
234 | |
235 $Arguments: menu and item (not used) | |
236 | |
237 *******************************************************************************/ | |
238 | |
239 | |
240 int Mmi_em_display_mobile_info_data(MfwMnu* m, MfwMnuItem* i) | |
241 { T_MFW_HND parent = mfwParent( mfw_header()); | |
242 TRACE_EVENT_P1("Mmi_em_display_mobile_info(), parent win %d", parent); | |
243 TRACE_EVENT_P1("Memory left:%d", mfwCheckMemoryLeft()); | |
244 Mmi_em_create(parent, EM_MOBILE_INFO); | |
245 | |
246 return MFW_EVENT_CONSUMED; | |
247 } | |
248 /******************************************************************************* | |
249 | |
250 $Function: Mmi_em_display_serving_cell_params() | |
251 | |
252 $Description: Called from menu; begins process to display Serving Cell parameters | |
253 | |
254 $Returns: status integer | |
255 | |
256 $Arguments: menu and item (not used) | |
257 | |
258 *******************************************************************************/ | |
259 | |
260 int Mmi_em_display_serving_cell_params(MfwMnu* m, MfwMnuItem* i) | |
261 { T_MFW_HND parent = mfwParent( mfw_header()); | |
262 TRACE_EVENT_P1("MMiEm, Memory left:%d", mfwCheckMemoryLeft()); | |
263 Mmi_em_create(parent, EM_SERVING_CELL_PARAMS); | |
264 | |
265 return MFW_EVENT_CONSUMED; | |
266 } | |
267 /******************************************************************************* | |
268 | |
269 $Function: Mmi_em_display_neighbour_cell_params() | |
270 | |
271 $Description: Called from menu; begins process to display Neighbouring Cell parameters | |
272 | |
273 $Returns: status integer | |
274 | |
275 $Arguments: menu and item (not used) | |
276 | |
277 *******************************************************************************/ | |
278 int Mmi_em_display_neighbour_cell_params(MfwMnu* m, MfwMnuItem* i) | |
279 { T_MFW_HND parent = mfwParent( mfw_header()); | |
280 TRACE_EVENT_P1("MMiEm, Memory left:%d", mfwCheckMemoryLeft()); | |
281 Mmi_em_create(parent, EM_NEIGHBOURING_CELL_PARAMS); | |
282 | |
283 return MFW_EVENT_CONSUMED; | |
284 } | |
285 | |
286 /******************************************************************************* | |
287 | |
288 $Function: Mmi_em_display_location_params() | |
289 | |
290 $Description: Called from menu; begins process to display Locationparameters | |
291 | |
292 $Returns: status integer | |
293 | |
294 $Arguments: menu and item (not used) | |
295 | |
296 *******************************************************************************/ | |
297 int Mmi_em_display_location_params(MfwMnu* m, MfwMnuItem*i ) | |
298 { T_MFW_HND parent = mfwParent( mfw_header()); | |
299 | |
300 Mmi_em_create(parent, EM_LOCATION_PARAMS); | |
301 | |
302 return MFW_EVENT_CONSUMED; | |
303 } | |
304 | |
305 /******************************************************************************* | |
306 | |
307 $Function: Mmi_em_display_ciph_hop_DTX_params() | |
308 | |
309 $Description: Called from menu; begins process to display Ciphering, hopping and | |
310 discontinuous transmission parameters | |
311 | |
312 $Returns: status integer | |
313 | |
314 $Arguments: menu and item (not used) | |
315 | |
316 *******************************************************************************/ | |
317 int Mmi_em_display_ciph_hop_DTX_params(MfwMnu* m, MfwMnuItem* i) | |
318 { T_MFW_HND parent = mfwParent( mfw_header()); | |
319 TRACE_EVENT_P1("MMiEm, Memory left:%d", mfwCheckMemoryLeft()); | |
320 Mmi_em_create(parent, EM_CIPH_HOP_DTX_PARAMS); | |
321 | |
322 return MFW_EVENT_CONSUMED; | |
323 } | |
324 | |
325 /******************************************************************************* | |
326 | |
327 $Function: Mmi_em_display_GPRS_params() | |
328 | |
329 $Description: Called from menu; begins process to display GPRS specific parameters | |
330 | |
331 $Returns: status integer | |
332 | |
333 $Arguments: menu and item (not used) | |
334 | |
335 *******************************************************************************/ | |
336 | |
337 int Mmi_em_display_GPRS_params(MfwMnu* m, MfwMnuItem* i) | |
338 { T_MFW_HND parent = mfwParent( mfw_header()); | |
339 TRACE_EVENT_P1("MMiEm, Memory left:%d", mfwCheckMemoryLeft()); | |
340 Mmi_em_create(parent, EM_GPRS_PARAMS); | |
341 | |
342 return MFW_EVENT_CONSUMED; | |
343 } | |
344 | |
345 /* | |
346 ************************************Internal Functions************************************** | |
347 */ | |
348 | |
349 /******************************************************************************* | |
350 | |
351 $Function: Mmi_em_create() | |
352 | |
353 $Description: Creates emergency mode display window | |
354 | |
355 $Returns: window handle | |
356 | |
357 $Arguments: parent window, kind of data to be displayed | |
358 | |
359 *******************************************************************************/ | |
360 | |
361 T_MFW_HND Mmi_em_create(T_MFW_HND parent_window, MfwEmDataType data_type) | |
362 { | |
363 tEmData * data = (tEmData *)ALLOC_MEMORY (sizeof (tEmData )); | |
364 T_MFW_WIN * win; | |
365 | |
366 if (data EQ NULL) | |
367 { | |
368 return NULL; | |
369 } | |
370 | |
371 // Create window handler | |
372 data->win = win_create (parent_window, 0, E_WIN_VISIBLE, (MfwCb)Mmi_em_win_cb); | |
373 if (data->win EQ NULL) | |
374 { | |
375 | |
376 return NULL; | |
377 } | |
378 TRACE_EVENT_P1("Mmi_em_create(), data->win %d", data->win); | |
379 //no window event handler needed | |
380 data->mmi_control.dialog = (T_DIALOG_FUNC)NULL; | |
381 data->mmi_control.data = data; | |
382 | |
383 data->kbd = kbd_create (data->win, KEY_ALL, (T_MFW_CB)Mmi_em_kbd_cb); | |
384 | |
385 /*Mobile Info is the only data screen which doesn't need to be updated every second*/ | |
386 if (data_type != EM_MOBILE_INFO) | |
387 { data->tim = tim_create(data->win, EM_UPDATE_RATE, (T_MFW_CB)Mmi_em_tim_cb); | |
388 timStart(data->tim);//start timer | |
389 } | |
390 | |
391 | |
392 /*populate the user data*/ | |
393 win = ((T_MFW_HDR *)data->win)->data; | |
394 win->user = (void *)data; | |
395 data->parent_win = parent_window; | |
396 | |
397 /* SPR#1428 - SH - New Editor changes */ | |
398 #ifdef NEW_EDITOR | |
399 /*SPR 1757, removed code for Chinese special case*/ | |
400 AUI_edit_SetAttr(&data->editor_attr, EM_CREATE_EDITOR, COLOUR_EDITOR_XX, EDITOR_FONT, ED_MODE_READONLY, ED_CURSOR_NONE, ATB_DCS_ASCII, (UBYTE *)data->edtBuffer,EM_EDITOR_SIZE); | |
401 data->editor = ATB_edit_Create(&data->editor_attr,0); | |
402 /*Clear editor buffer*/ | |
403 memset(data->edtBuffer, 0, sizeof(EM_EDITOR_SIZE*2)); | |
404 ATB_edit_Init(data->editor); | |
405 #else /* NEW_EDITOR */ | |
406 /*SPR 1757, removed code for Chinese special case*/ | |
407 bookSetEditAttributes(EM_CREATE_EDITOR,COLOUR_EDITOR_XX,0,edtCurNone,0,data->edtBuffer,EM_EDITOR_SIZE*2,&data->editor_data); | |
408 data->edt = edtCreate(data->win, &data->editor_data, NULL, NULL); | |
409 edtUnhide( data->edt ); | |
410 /*Clear editor buffer*/ | |
411 memset(data->edtBuffer, 0, sizeof(EM_EDITOR_SIZE*2)); | |
412 #endif /* NEW_EDITOR */ | |
413 | |
414 /*Make sure we store the kind of window we want to show*/ | |
415 data->CurrentWindow = data_type; | |
416 | |
417 /*bind the MFW event handler to any events from the MFW Eng Mode module*/ | |
418 Mfw_em_create(data->win, 0xFF, (MfwCb)Mmi_em_event_cb); | |
419 Mfw_em_get_data(data_type);/*ask MFW for the required data*/ | |
420 win_show(data->win);/*show the screen*/ | |
421 return data->win; | |
422 | |
423 } | |
424 | |
425 /******************************************************************************* | |
426 | |
427 $Function: Mmi_em_event_cb() | |
428 | |
429 $Description: Handles events coming from the MFW | |
430 | |
431 $Returns: status integer | |
432 | |
433 $Arguments: event type, pointer to data | |
434 | |
435 *******************************************************************************/ | |
436 int Mmi_em_event_cb(T_MFW_EVENT event,void* para) | |
437 { T_MFW_HND win = mfw_parent (mfw_header()); | |
438 T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data; | |
439 tEmData * data = (tEmData *)win_data->user; | |
440 | |
441 MFW_EM_Mobile_Info* mob_info; | |
442 MFW_EM_Serving_Cell_Parameters* sc_info; | |
443 MFW_EM_Neighbour_Cell_Parameters* nc_info; | |
444 MFW_EM_Location_Parameters* loc_info; | |
445 MFW_EM_Ciph_hop_DTX_Parameters* ciph_hop_dtx_info; | |
446 MFW_EM_GPRS_Parameter* gprs_info; | |
447 char * DTX_Status; | |
448 char temp_buffer[EM_EDITOR_SIZE];/*SPR 1757 temporary buffer to hold information*/ | |
449 #ifdef NEW_EDITOR | |
450 T_ATB_TEXT temp_text;/*SPR 1757*/ | |
451 #endif | |
452 TRACE_EVENT_P1("Mmi_em_event_cb(), event:%d", event); | |
453 | |
454 memset(temp_buffer, 0, EM_EDITOR_SIZE); | |
455 | |
456 /*if event matches current window type*/ | |
457 if (event == data->CurrentWindow) | |
458 { switch (event) | |
459 { | |
460 case EM_MOBILE_INFO: | |
461 { mob_info = (MFW_EM_Mobile_Info*)para;/*cast parameter to appropriate type*/ | |
462 /*copy data to editor buffer*/ | |
463 /*MC, SPR 1554 Added all SW versions to editor string*/ | |
464 sprintf(temp_buffer, "SIM_VERSION:%d CC_VERSION:%d SS_VERSION:%d SMS_VERSION:%d MM_VERSION:%d RR_VERSION:%d DL_VERSION:%d ALR_VERSION:%d IMEI:%s IMSI:%s TMSI:%u", | |
465 mob_info->SIM_version, mob_info->CC_version, mob_info->SS_version, | |
466 mob_info->SMS_version, mob_info->MM_version, mob_info->RR_version, | |
467 mob_info->DL_version, mob_info->ALR_version,mob_info->IMEI, mob_info->IMSI, | |
468 mob_info->TMSI); | |
469 /* SPR#1428 - SH - New Editor - string has changed, update word wrap */ | |
470 #ifdef NEW_EDITOR | |
471 /*SPR 1757 Insert temp buffer into editor*/ | |
472 temp_text.data = (UBYTE*)temp_buffer; | |
473 temp_text.dcs = ATB_DCS_ASCII; | |
474 ATB_string_Length(&temp_text); | |
475 ATB_edit_ResetMode(data->editor, ED_MODE_READONLY); /* Switch off read only to add text */ | |
476 ATB_edit_ClearAll(data->editor); | |
477 ATB_edit_InsertString(data->editor, &temp_text); /* Insert name string */ | |
478 ATB_edit_SetMode(data->editor, ED_MODE_READONLY); /* Switch on read only again */ | |
479 ATB_edit_Refresh(data->editor); | |
480 #else /* !NEW_EDITOR */ | |
481 strncpy(data->edtBuffer, temp_buffer, EM_EDITOR_SIZE);/*SPR 1757*/ | |
482 #endif | |
483 win_show(data->win);/*show data*/ | |
484 } | |
485 break; | |
486 case EM_SERVING_CELL_PARAMS: | |
487 { | |
488 sc_info = (MFW_EM_Serving_Cell_Parameters*)para;/*cast parameter to appropriate type*/ | |
489 sprintf(temp_buffer, "ARFCN:%d RSSI:%d RXQ:%d RLT:%d C1:%d C2:%d LAC:%d BSIC:%d TAV:%d",\ | |
490 sc_info->arfcn, sc_info->RSSI, sc_info->RXQ, sc_info->RLT, sc_info->C1, sc_info->C2,\ | |
491 sc_info->LAC, sc_info->BSIC, sc_info->TAV); | |
492 | |
493 /* SPR#1428 - SH - New Editor - string has changed, update word wrap */ | |
494 #ifdef NEW_EDITOR | |
495 /*SPR 1757 Insert temp buffer into editor*/ | |
496 temp_text.data = (UBYTE*)temp_buffer; | |
497 temp_text.dcs = ATB_DCS_ASCII; | |
498 ATB_string_Length(&temp_text); | |
499 ATB_edit_ResetMode(data->editor, ED_MODE_READONLY); /* Switch off read only to add text */ | |
500 ATB_edit_ClearAll(data->editor); | |
501 ATB_edit_InsertString(data->editor, &temp_text); /* Insert name string */ | |
502 ATB_edit_SetMode(data->editor, ED_MODE_READONLY); /* Switch on read only again */ | |
503 ATB_edit_Refresh(data->editor); | |
504 #else /* !NEW_EDITOR */ | |
505 strncpy(data->edtBuffer, temp_buffer, EM_EDITOR_SIZE);/*SPR 1757*/ | |
506 #endif | |
507 win_show(data->win); | |
508 } | |
509 break; | |
510 case EM_NEIGHBOURING_CELL_PARAMS: | |
511 { nc_info = (MFW_EM_Neighbour_Cell_Parameters*)para;/*cast parameter to appropriate type*/ | |
512 /*copy data to editor buffer*/ | |
513 sprintf(temp_buffer, "NUM:%d\nARFCN:RSSI:C2:LAC:BSIC\n %5d%5d%5d%6d%5d\n %5d%5d%5d%6d%5d\n %5d%5d%5d%6d%5d\n %5d%5d%5d%6d%5d\n %5d%5d%5d%6d%5d\n %5d%5d%5d%6d%5d\n SC%4d%5d%5d%6d%5d",\ | |
514 nc_info->NUM,\ | |
515 nc_info->arfcn[0], nc_info->RSSI[0], nc_info->C2[0], nc_info->LAC_NC[0], nc_info->BSIC_NC[0],\ | |
516 nc_info->arfcn[1], nc_info->RSSI[1], nc_info->C2[1], nc_info->LAC_NC[1], nc_info->BSIC_NC[1],\ | |
517 nc_info->arfcn[2], nc_info->RSSI[2], nc_info->C2[2], nc_info->LAC_NC[2], nc_info->BSIC_NC[2],\ | |
518 nc_info->arfcn[3], nc_info->RSSI[3], nc_info->C2[3], nc_info->LAC_NC[3], nc_info->BSIC_NC[3],\ | |
519 nc_info->arfcn[4], nc_info->RSSI[4], nc_info->C2[4], nc_info->LAC_NC[4], nc_info->BSIC_NC[4],\ | |
520 nc_info->arfcn[5], nc_info->RSSI[5], nc_info->C2[5], nc_info->LAC_NC[5], nc_info->BSIC_NC[5],\ | |
521 nc_info->arfcn[6], nc_info->RSSI[6], nc_info->C2[6], nc_info->LAC_NC[6], nc_info->BSIC_NC[6]); | |
522 /* SPR#1428 - SH - New Editor - string has changed, update word wrap */ | |
523 #ifdef NEW_EDITOR | |
524 /*SPR 1757 Insert temp buffer into editor*/ | |
525 temp_text.data = (UBYTE*)temp_buffer; | |
526 temp_text.dcs = ATB_DCS_ASCII; | |
527 ATB_string_Length(&temp_text); | |
528 ATB_edit_ResetMode(data->editor, ED_MODE_READONLY); /* Switch off read only to add text */ | |
529 ATB_edit_ClearAll(data->editor); | |
530 ATB_edit_InsertString(data->editor, &temp_text); /* Insert name string */ | |
531 ATB_edit_SetMode(data->editor, ED_MODE_READONLY); /* Switch on read only again */ | |
532 ATB_edit_Refresh(data->editor); | |
533 #else /* !NEW_EDITOR */ | |
534 strncpy(data->edtBuffer, temp_buffer, EM_EDITOR_SIZE);/*SPR 1757*/ | |
535 #endif | |
536 /*show the window*/ | |
537 win_show(data->win); | |
538 } | |
539 break; | |
540 case EM_LOCATION_PARAMS: | |
541 { loc_info = (MFW_EM_Location_Parameters*)para;/*cast parameter to appropriate type*/ | |
542 /*copy data to editor buffer*/ | |
543 /*MC, SPR 1554 Removed Cell id from editor string*/ | |
544 sprintf(temp_buffer, "LUP:%d MCC:%s MNC:%s LAC:%d ", loc_info->LUP, loc_info->MCC, loc_info->MNC, loc_info->LAC); | |
545 /* SPR#1428 - SH - New Editor - string has changed, update word wrap */ | |
546 #ifdef NEW_EDITOR | |
547 /*SPR 1757 Insert temp buffer into editor*/ | |
548 temp_text.data = (UBYTE*)temp_buffer; | |
549 temp_text.dcs = ATB_DCS_ASCII; | |
550 ATB_string_Length(&temp_text); | |
551 ATB_edit_ResetMode(data->editor, ED_MODE_READONLY); /* Switch off read only to add text */ | |
552 ATB_edit_ClearAll(data->editor); | |
553 ATB_edit_InsertString(data->editor, &temp_text); /* Insert name string */ | |
554 ATB_edit_SetMode(data->editor, ED_MODE_READONLY); /* Switch on read only again */ | |
555 ATB_edit_Refresh(data->editor); | |
556 #else /* !NEW_EDITOR */ | |
557 strncpy(data->edtBuffer, temp_buffer, EM_EDITOR_SIZE);/*SPR 1757*/ | |
558 #endif | |
559 /*show the window*/ | |
560 win_show(data->win); | |
561 } | |
562 break; | |
563 case EM_CIPH_HOP_DTX_PARAMS: | |
564 { ciph_hop_dtx_info = (MFW_EM_Ciph_hop_DTX_Parameters*)para;/*cast parameter to appropriate type*/ | |
565 /*convert DTX status to string*/ | |
566 if (ciph_hop_dtx_info->DTX_status == FALSE) | |
567 DTX_Status = "Off"; | |
568 else | |
569 DTX_Status = "On"; | |
570 //copy data to editor | |
571 sprintf(temp_buffer, "STATUS:%d HSN:%d DTX:%s ", ciph_hop_dtx_info->ciph_status, ciph_hop_dtx_info->HSN, DTX_Status); | |
572 /*show the window*/ | |
573 /* SPR#1428 - SH - New Editor - string has changed, update word wrap */ | |
574 #ifdef NEW_EDITOR | |
575 /*SPR 1757 Insert temp buffer into editor*/ | |
576 temp_text.data = (UBYTE*)temp_buffer; | |
577 temp_text.dcs = ATB_DCS_ASCII; | |
578 ATB_string_Length(&temp_text); | |
579 ATB_edit_ResetMode(data->editor, ED_MODE_READONLY); /* Switch off read only to add text */ | |
580 ATB_edit_ClearAll(data->editor); | |
581 ATB_edit_InsertString(data->editor, &temp_text); /* Insert name string */ | |
582 ATB_edit_SetMode(data->editor, ED_MODE_READONLY); /* Switch on read only again */ | |
583 ATB_edit_Refresh(data->editor); | |
584 #else /* !NEW_EDITOR */ | |
585 strncpy(data->edtBuffer, temp_buffer, EM_EDITOR_SIZE);/*SPR 1757*/ | |
586 #endif | |
587 win_show(data->win); | |
588 } | |
589 break; | |
590 case EM_GPRS_PARAMS: | |
591 { gprs_info = (MFW_EM_GPRS_Parameter*)para;//cast parameter to appropriate type | |
592 /*MC, SPR 1554 Changed ediotr string to show Network Mode of Operation*/ | |
593 sprintf(temp_buffer, "NMO:%d NDTS:%d RAC:%d C31:%d C32:%d",\ | |
594 gprs_info->NMO, gprs_info->NDTS, gprs_info->RAC, gprs_info->C31, gprs_info->C32); | |
595 //show the window | |
596 /* SPR#1428 - SH - New Editor - string has changed, update word wrap */ | |
597 #ifdef NEW_EDITOR | |
598 /*SPR 1757 Insert temp buffer into editor*/ | |
599 temp_text.data = (UBYTE*)temp_buffer; | |
600 temp_text.dcs = ATB_DCS_ASCII; | |
601 ATB_string_Length(&temp_text); | |
602 ATB_edit_ResetMode(data->editor, ED_MODE_READONLY); /* Switch off read only to add text */ | |
603 ATB_edit_ClearAll(data->editor); | |
604 ATB_edit_InsertString(data->editor, &temp_text); /* Insert name string */ | |
605 ATB_edit_SetMode(data->editor, ED_MODE_READONLY); /* Switch on read only again */ | |
606 ATB_edit_Refresh(data->editor); | |
607 #else /* !NEW_EDITOR */ | |
608 strncpy(data->edtBuffer, temp_buffer, EM_EDITOR_SIZE);/*SPR 1757*/ | |
609 #endif | |
610 win_show(data->win); | |
611 } | |
612 break; | |
613 } | |
614 } | |
615 | |
616 } | |
617 | |
618 /******************************************************************************* | |
619 | |
620 $Function: Mmi_em_destroy() | |
621 | |
622 $Description: Delete the window | |
623 | |
624 $Returns: none | |
625 | |
626 $Arguments: window handle | |
627 | |
628 *******************************************************************************/ | |
629 void Mmi_em_destroy(T_MFW_HND own_window) | |
630 { | |
631 T_MFW_WIN * win = ((T_MFW_HDR *)own_window)->data; | |
632 tEmData * data = (tEmData *)win->user; | |
633 | |
634 TRACE_EVENT ("Mmi_em_destroy()"); | |
635 | |
636 if (own_window == NULL) | |
637 { | |
638 TRACE_EVENT ("Error :- Called with NULL Pointer"); | |
639 return; | |
640 } | |
641 | |
642 if (data) | |
643 { | |
644 /* | |
645 * Exit TIMER & KEYBOARD Handle | |
646 */ | |
647 kbd_delete (data->kbd); | |
648 tim_delete (data->tim); | |
649 /* SPR#1428 - SH - New Editor changes */ | |
650 #ifdef NEW_EDITOR | |
651 ATB_edit_Destroy(data->editor); | |
652 #else | |
653 edt_delete(data->edt); | |
654 #endif | |
655 /* | |
656 * Delete WIN Handler | |
657 */ | |
658 win_delete (data->win); | |
659 /* | |
660 * Free Memory | |
661 */ | |
662 FREE_MEMORY ((void *)data, sizeof (tEmData)); | |
663 } | |
664 TRACE_EVENT_P1("MMiEm END, Memory left:%d", mfwCheckMemoryLeft()); | |
665 } | |
666 | |
667 /******************************************************************************* | |
668 | |
669 $Function: Mmi_em_kbd_cb() | |
670 | |
671 $Description: Keyboard handler | |
672 | |
673 $Returns: status int | |
674 | |
675 $Arguments: event, keyboard data | |
676 | |
677 *******************************************************************************/ | |
678 int Mmi_em_kbd_cb(T_MFW_EVENT event,T_MFW_KBD * kc ) | |
679 { T_MFW_HND win = mfw_parent (mfw_header()); | |
680 T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data; | |
681 tEmData * data = (tEmData *)win_data->user; | |
682 | |
683 TRACE_EVENT_P2("Mmi_em_kbd_cb, key:%d, win;%d", kc->code, data->win); | |
684 | |
685 switch(kc->code) | |
686 { | |
687 | |
688 case KCD_MNUUP:/*scroll up */ | |
689 /* SPR#1428 - SH - New Editor changes */ | |
690 #ifdef NEW_EDITOR | |
691 ATB_edit_MoveCursor(data->editor, ctrlUp, TRUE); | |
692 #else /* NEW_EDITOR */ | |
693 edtChar(data->edt,ecUp); | |
694 #endif /* NEW_EDITOR */ | |
695 | |
696 break; | |
697 | |
698 case KCD_MNUDOWN:/*scroll down*/ | |
699 /* SPR#1428 - SH - New Editor changes */ | |
700 #ifdef NEW_EDITOR | |
701 ATB_edit_Char(data->editor,ctrlDown, TRUE); | |
702 #else /* NEW_EDITOR */ | |
703 edtChar(data->edt,ecDown); | |
704 #endif /* NEW_EDITOR */ | |
705 | |
706 break; | |
707 case KCD_HUP: /*destroy window*/ | |
708 case KCD_RIGHT: | |
709 Mmi_em_destroy(data->win); | |
710 break; | |
711 default: | |
712 break; | |
713 } | |
714 return MFW_EVENT_CONSUMED; | |
715 } | |
716 | |
717 /******************************************************************************* | |
718 | |
719 $Function: Mmi_em_win_cb() | |
720 | |
721 $Description: Display handler | |
722 | |
723 $Returns: status int | |
724 | |
725 $Arguments: event, window handle | |
726 | |
727 *******************************************************************************/ | |
728 int Mmi_em_win_cb(T_MFW_EVENT event,T_MFW_WIN * win ) | |
729 { | |
730 tEmData * data = (tEmData *)win->user; | |
731 | |
732 | |
733 | |
734 TRACE_EVENT_P1("EM window: %d", win); | |
735 TRACE_EVENT_P1("Mmi_em_win_cb(), data->CurrentWindow %d", data->CurrentWindow); | |
736 | |
737 switch( event ) | |
738 { | |
739 case MfwWinVisible: | |
740 /*clear screen*/ | |
741 dspl_ClearAll(); | |
742 | |
743 /*Show editor content*/ | |
744 /* SPR#1428 - SH - New Editor changes */ | |
745 #ifdef NEW_EDITOR | |
746 ATB_edit_Show(data->editor); | |
747 #else /* NEW_EDITOR */ | |
748 edtShow(data->edt); | |
749 #endif /* NEW_EDITOR */ | |
750 | |
751 displaySoftKeys(TxtNull, TxtSoftBack); /*show the softkeys*/ | |
752 break; | |
753 default: | |
754 return MFW_EVENT_PASSED; | |
755 break; | |
756 } | |
757 | |
758 return MFW_EVENT_CONSUMED; | |
759 | |
760 } | |
761 | |
762 /******************************************************************************* | |
763 | |
764 $Function: Mmi_em_tim_cb() | |
765 | |
766 $Description: Timer handler (every second) | |
767 | |
768 $Returns: none | |
769 | |
770 $Arguments: event, timer data | |
771 | |
772 *******************************************************************************/ | |
773 void Mmi_em_tim_cb(T_MFW_EVENT event,T_MFW_TIM * t) | |
774 { T_MFW_HND win = mfw_parent (mfw_header()); | |
775 T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data; | |
776 tEmData * data = (tEmData *)win_data->user; | |
777 TRACE_EVENT_P1("Mmi_em_tim_cb(), win:%d", data->win); | |
778 /*Request the data from MFW again*/ | |
779 Mfw_em_get_data(data->CurrentWindow); | |
780 /*restart timer*/ | |
781 timStart(data->tim); | |
782 } |