FreeCalypso > hg > tcs211-c139
comparison g23m/condat/ms/src/bmi/MmiCameraTest.c @ 0:509db1a7b7b8
initial import: leo2moko-r1
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Mon, 01 Jun 2015 03:24:05 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:509db1a7b7b8 |
---|---|
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: CAMERATEST | |
15 $File: MmiCameraTest.c | |
16 $Revision: 1.0 | |
17 $Author: Texas Instruments France | |
18 $Date: 25/06/04 | |
19 | |
20 ******************************************************************************** | |
21 | |
22 Description: | |
23 | |
24 This module provides the Camera functionality. | |
25 | |
26 ******************************************************************************** | |
27 $History: MmiCameraTest.c | |
28 | |
29 Sept 15, 2005 REF: LOCOSTO-ENH-34257 - xpradipg | |
30 Description: Locosto: MIgration to New LCD APIs | |
31 Solution: Migrated to New APIs by replacing the old driver APIs with | |
32 corresponding New LCD APIs | |
33 | |
34 Aug 22 2005, xpradipg - LOCOSTO-ENH-31154 | |
35 Description: Application to test camera | |
36 Solution: Implemented the camera application with following functionalities | |
37 preview, snapshot and image saving. | |
38 | |
39 25/06/04 Texas Instruments France original version | |
40 | |
41 $End | |
42 | |
43 *******************************************************************************/ | |
44 | |
45 | |
46 | |
47 | |
48 /******************************************************************************* | |
49 | |
50 Include files | |
51 | |
52 *******************************************************************************/ | |
53 #define ENTITY_MFW | |
54 /* includes */ | |
55 #include <string.h> | |
56 #include <stdio.h> | |
57 #include <stdlib.h> | |
58 | |
59 #include "typedefs.h" | |
60 #include "vsi.h" | |
61 #include "pei.h" | |
62 #include "custom.h" | |
63 | |
64 #if defined (NEW_FRAME) | |
65 | |
66 #include "typedefs.h" | |
67 #include "vsi.h" | |
68 #include "pei.h" | |
69 #include "custom.h" | |
70 #include "prim.h" | |
71 | |
72 #else | |
73 | |
74 #include "STDDEFS.H" | |
75 #include "custom.h" | |
76 #include "gsm.h" | |
77 #include "vsi.h" | |
78 | |
79 #endif | |
80 | |
81 #include "message.h" /* included for aci_cmh.h .... */ | |
82 #include "aci_cmh.h" /* included for mfw_sat.h, included for MmiDummy.h, included for MmiMenu.h */ | |
83 | |
84 #include "mfw_mfw.h" | |
85 #include "mfw_win.h" | |
86 #include "mfw_icn.h" /* included for mfw_mnu.h */ | |
87 #include "mfw_mnu.h" | |
88 #include "mfw_tim.h" | |
89 #include "mfw_kbd.h" | |
90 #include "mfw_sat.h" /* included for MmiDummy.h, included for MmiMenu.h */ | |
91 #include "mfw_cm.h" | |
92 #include "mfw_cam.h" | |
93 #include "MmiBlkLangDB.h" | |
94 #include "mmiColours.h" | |
95 #include "MmiDialogs.h" | |
96 | |
97 #include "MmiDummy.h" /* included for MmiMenu.h */ | |
98 #include "MmiLists.h" | |
99 #include "MmiMenu.h" | |
100 #include "MmiSoftKeys.h" | |
101 #include "AUIEditor.h" | |
102 #include "MmiMain.h" | |
103 #include "Mmiicons.h" | |
104 #include "MmiCameraTest.h" | |
105 #include "MmiWindow.h" | |
106 #include "MmiCall.h" | |
107 | |
108 #include "r2d/r2d.h" | |
109 | |
110 /******************************************************************************* | |
111 | |
112 internal data | |
113 | |
114 *******************************************************************************/ | |
115 //Events for window | |
116 #define CT_INIT 0 | |
117 #define CT_RETURN 1 | |
118 #define CT_RESUME 2 | |
119 | |
120 //Events for editor | |
121 #define CT_EDITOR_CANCEL 2 | |
122 #define CT_EDITOR_SELECT 3 | |
123 | |
124 //Dialog Screen timeout | |
125 #define CT_INFO_SCRN_TIMEOUT 1000 | |
126 //Default Filename of the Jpeg file to be saved. | |
127 #define CT_DEFAULT_FILENAME "Snapshot" | |
128 #define CT_FILENAME_EDITOR_INPUT_LEN 45 | |
129 | |
130 /* | |
131 * Structures | |
132 */ | |
133 | |
134 /*camera window structure*/ | |
135 typedef struct{ | |
136 T_MMI_CONTROL mmi_control; | |
137 MfwHnd win; | |
138 MfwHnd mfwwin; | |
139 T_MFW_HND optwin; | |
140 T_MFW_HND infowin; | |
141 MfwHnd parent; | |
142 MfwHnd kbd; | |
143 MfwIcnAttr ct_bitmap; | |
144 SHORT id; | |
145 } T_MMI_CT_Win_data; | |
146 | |
147 typedef struct | |
148 { | |
149 /* administrative data */ | |
150 | |
151 T_MMI_CONTROL mmi_control; | |
152 T_MFW_HND win; | |
153 SHORT id; | |
154 T_MFW_HND parent; | |
155 /* associated handlers */ | |
156 T_MFW_HND kbd; | |
157 T_MFW_HND kbd_long; | |
158 T_MFW_HND menu; | |
159 | |
160 } T_MMI_CT_Opt_data; | |
161 | |
162 /*editor data structure*/ | |
163 typedef struct{ | |
164 T_MMI_CONTROL mmi_control; | |
165 MfwHnd win; | |
166 MfwHnd ct_win_editor; | |
167 UBYTE ct_buffer[CT_FILE_NAME_LENGTH+1]; | |
168 } T_CT_Editor_Data; | |
169 | |
170 //Camera Option Menu Items | |
171 static const MfwMnuItem Mmi_camera_OPTItems [] = | |
172 { | |
173 {0,0,0,(char *)TxtQuality,0,(MenuFunc)M_exeQuality,item_flag_none}, | |
174 //{0,0,0,(char *)TxtColour,0,(MenuFunc)M_exeColor,item_flag_none}, | |
175 //{0,0,0,(char *)TxtDigiZoom,0,(MenuFunc)M_exeZoom,item_flag_none}, | |
176 {0,0,0,(char *)TxtFilename,0,(MenuFunc)mmi_camera_edit_filename,item_flag_none} | |
177 }; | |
178 | |
179 //Camera Option menu Atrributes | |
180 static const MfwMnuAttr Mmi_camera_OPTAttrib = | |
181 { | |
182 &SmsSend_R_OPTArea, | |
183 MNU_LEFT | MNU_LIST | MNU_CUR_LINE, /* centered page menu */ | |
184 -1, /* use default font */ | |
185 (MfwMnuItem*)Mmi_camera_OPTItems, /* with these items */ | |
186 sizeof(Mmi_camera_OPTItems)/sizeof(MfwMnuItem), /* number of items */ | |
187 COLOUR_LIST_SMS, TxtNull, NULL, MNUATTRSPARE | |
188 | |
189 }; | |
190 //Variable to track the different Camera states. | |
191 extern UBYTE camera_state; | |
192 //Window Handler for Option window. | |
193 T_MFW_HND optwin; | |
194 //Variable to track active Call | |
195 extern T_call call_data; | |
196 //Default filename for captured image | |
197 char new_filename[CT_FILE_NAME_LENGTH] = CT_DEFAULT_FILENAME; | |
198 UBYTE IsCamInit = FALSE; //Variable to initialise Camil only once. | |
199 T_MFW_HND digwin1 = NULL; //Window handler for Info Dialog. | |
200 /******************************************************************************* | |
201 | |
202 Local prototypes | |
203 | |
204 *******************************************************************************/ | |
205 int mmi_camera_test_exec_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter); | |
206 T_MFW_HND mmi_camera_test_win_create(T_MFW_HND parent); | |
207 static int mmi_camera_test_opt_kbd_cb (MfwEvt e, MfwKbd *k); | |
208 static int mmi_camera_test_opt_mnu_cb (MfwEvt e, MfwMnu *m); | |
209 void mmi_camera_test_opt_exec_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter); | |
210 int mmi_camera_test_opt_win_cb (MfwEvt evt, MfwHnd win); | |
211 static int mmi_camera_test_kbd_cntrl (MfwEvt e, MfwKbd *k); | |
212 static void mmi_camera_test_opt_destroy(MfwHnd own_window); | |
213 void mmi_camera_test_update_softkeys (int lsk, int rsk); | |
214 T_MFW_HND mmi_camera_editor_create(T_MFW_HND parent); | |
215 | |
216 /******************************************************************************* | |
217 | |
218 $Function: mmi_camera_test_show_info | |
219 | |
220 $Description: Displays the dialog box | |
221 | |
222 $Returns: Dialog window | |
223 | |
224 $Arguments: parent -parent window for dialog | |
225 str1- String to be displayed in dialog | |
226 str2 -String to be displayed in dialog | |
227 callback- Callback function | |
228 | |
229 *******************************************************************************/ | |
230 static MfwHnd mmi_camera_test_show_info(T_MFW_HND parent, int str1, int str2, T_VOID_FUNC callback) | |
231 { | |
232 T_DISPLAY_DATA display_info; | |
233 T_MFW_HND win; | |
234 | |
235 TRACE_EVENT ("mmi_camera_test_show_info()"); | |
236 | |
237 /* | |
238 ** Create a timed dialog to display the Message . | |
239 */ | |
240 dlg_initDisplayData_TextId( &display_info, TxtNull, TxtNull, str1, str2, COLOUR_STATUS); | |
241 dlg_initDisplayData_events( &display_info, callback, THREE_SECS, KEY_LEFT | KEY_CLEAR | KEY_HUP/*0*/); | |
242 | |
243 win = info_dialog(parent, &display_info); | |
244 dspl_Enable(1); | |
245 return win; | |
246 } | |
247 | |
248 /******************************************************************************* | |
249 | |
250 $Function: mmi_camera_test_show_saving_info | |
251 | |
252 $Description: Displays the Saving dialog box | |
253 | |
254 $Returns: Dialog window | |
255 | |
256 $Arguments: parent -parent window for dialog | |
257 callback- Callback function | |
258 | |
259 *******************************************************************************/ | |
260 | |
261 static MfwHnd mmi_camera_test_show_saving_info(T_MFW_HND parent, T_VOID_FUNC callback) | |
262 { | |
263 T_DISPLAY_DATA display_info; | |
264 T_MFW_HND win; | |
265 TRACE_EVENT ("mmi_camera_test_show_saving_info()"); | |
266 | |
267 dspl_Clear(0,0,SCREEN_SIZE_X-1,SCREEN_SIZE_Y-1 ); | |
268 dlg_initDisplayData_TextId( &display_info, TxtNull, TxtNull, TxtSnapSaving,TxtNull, COLOUR_STATUS); | |
269 dlg_initDisplayData_events( &display_info, callback, FOREVER, KEY_LEFT | KEY_CLEAR | KEY_HUP/*0*/); | |
270 win = info_dialog(parent, &display_info); | |
271 //Sept 15, 2005 REF: LOCOSTO-ENH-34257 - xpradipg | |
272 //replaced the flag with the function call, to migrate to the new Lcd APIs | |
273 dspl_control(DSPL_ACCESS_ENABLE); | |
274 dspl_Enable(1); | |
275 return win; | |
276 } | |
277 /******************************************************************************* | |
278 | |
279 $Function: mmi_camera_test_win_cntrl | |
280 | |
281 $Description: This is the dialog control function for the Camera Window. It | |
282 receives the signals from the MFW and determines what action, if any, to take. | |
283 | |
284 $Returns: None | |
285 | |
286 $Arguments: win : The pointer to the window handler, so the function can reference the | |
287 dynamic user data, if any. | |
288 event : The incoming event | |
289 value : Generic incoming Parameter, it will be 'event' dependant | |
290 parameter : Generic incoming Parameter, it will be 'event' dependant | |
291 | |
292 *******************************************************************************/ | |
293 int mmi_camera_test_exec_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter) | |
294 { | |
295 T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; | |
296 T_MMI_CT_Win_data * data = (T_MMI_CT_Win_data *)win_data->user; | |
297 | |
298 TRACE_EVENT ("mmi_camera_test_exec_cb()"); | |
299 switch (event) | |
300 { | |
301 case CT_INIT: | |
302 TRACE_EVENT(">> mmi_camera_test_exec_cb(), CT_INIT "); | |
303 camera_state = CAMERA_STATE_VIEWFINDER; | |
304 //Create keyboard handler | |
305 data->kbd = kbd_create (data->win,KEY_ALL,(T_MFW_CB)mmi_camera_test_kbd_cntrl); | |
306 winShow(data->win); | |
307 break; | |
308 | |
309 case CT_RESUME: | |
310 break; | |
311 | |
312 case CT_RETURN: | |
313 TRACE_EVENT(">> mmi_camera_test_exec_cb(), CT_RETURN "); | |
314 winShow(data->win); | |
315 break; | |
316 default: | |
317 TRACE_EVENT(">> mmi_camera_test_exec_cb(), default "); | |
318 | |
319 } | |
320 return MFW_EVENT_CONSUMED; | |
321 } | |
322 | |
323 | |
324 /******************************************************************************* | |
325 | |
326 $Function: mmi_camera_dialog_cb | |
327 | |
328 $Description: Callback for Dialog | |
329 | |
330 $Returns:None | |
331 | |
332 $Arguments: win - Window Handler | |
333 identifier - Identifier | |
334 reason - | |
335 | |
336 *******************************************************************************/ | |
337 void mmi_camera_dialog_cb(T_MFW_HND win, UBYTE identifier, UBYTE reason) | |
338 { | |
339 TRACE_FUNCTION ("mmi_camera_dialog_cb()"); | |
340 | |
341 switch (reason) | |
342 { | |
343 case INFO_TIMEOUT: | |
344 /* no break; */ | |
345 case INFO_KCD_HUP: | |
346 /* no break; */ | |
347 case INFO_KCD_LEFT: | |
348 /* no break; */ | |
349 case INFO_KCD_RIGHT: | |
350 /* no break; */ | |
351 case INFO_KCD_CLEAR: | |
352 if( digwin1) | |
353 dialog_info_destroy(digwin1); | |
354 digwin1 = NULL; | |
355 mmi_camera_test_update_softkeys(TxtSoftOptions,TxtSoftBack); | |
356 rvf_delay(40); | |
357 //Sept 15, 2005 REF: LOCOSTO-ENH-34257 - xpradipg | |
358 //replaced the flag with the function call, to migrate to the new Lcd APIs | |
359 dspl_control(DSPL_ACCESS_DISABLE); | |
360 mfw_cam_set_viewfinder_mode(); | |
361 break; | |
362 } | |
363 } | |
364 | |
365 /******************************************************************************* | |
366 | |
367 $Function: mmi_camera_saving_info_cb | |
368 | |
369 $Description: Callback for Dialog | |
370 | |
371 $Returns:None | |
372 | |
373 $Arguments: win - Window Handler | |
374 identifier - Identifier | |
375 reason - | |
376 | |
377 *******************************************************************************/ | |
378 void mmi_camera_saving_info_cb(T_MFW_HND win, UBYTE identifier, UBYTE reason) | |
379 { | |
380 } | |
381 | |
382 /******************************************************************************* | |
383 | |
384 $Function: mmi_camera_test_kbd_cntrl | |
385 | |
386 $Description: Keyboard event handler for camera window | |
387 | |
388 $Returns: status int | |
389 | |
390 $Arguments: e - window handle event | |
391 k - keyboard control block | |
392 *******************************************************************************/ | |
393 static int mmi_camera_test_kbd_cntrl (MfwEvt e, MfwKbd *k) | |
394 { | |
395 T_MFW_HND win = mfwParent(mfw_header()); | |
396 T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; | |
397 T_MMI_CT_Win_data * data = (T_MMI_CT_Win_data *)win_data->user; | |
398 | |
399 TRACE_EVENT ("mmi_camera_test_kbd_cntrl()"); | |
400 switch (k->code) | |
401 { | |
402 | |
403 case KCD_LEFT: | |
404 | |
405 TRACE_EVENT ("mmi_camera_test_kbd_cntrl() KCD_LEFT"); | |
406 switch (camera_state) | |
407 { | |
408 case CAMERA_STATE_SNAPSHOT: | |
409 TRACE_EVENT ("mmi_camera_test_kbd_cntrl()-CAMERA_STATE_SNAPSHOT"); | |
410 //call MFW function to save snapshot | |
411 camera_state = CAMERA_STATE_SAVE; | |
412 if(mfw_cam_save_snapshot() == MFW_CAM_FAILED) | |
413 { | |
414 //Display the error message | |
415 mmi_camera_test_show_info(win, TxtFailed, TxtNull, (T_VOID_FUNC)mmi_camera_dialog_cb); | |
416 break; | |
417 } | |
418 //Display the Saving Dialog box | |
419 digwin1 = mmi_camera_test_show_saving_info(win,(T_VOID_FUNC)mmi_camera_saving_info_cb); | |
420 | |
421 break; | |
422 | |
423 case CAMERA_STATE_VIEWFINDER: | |
424 TRACE_EVENT ("mmi_camera_test_kbd_cntrl()-CAMERA_STATE_VIEWFINDER"); | |
425 if(data) | |
426 { | |
427 //Disable sensor and display the Options window. | |
428 mfw_cam_disable_sensor(); | |
429 rvf_delay(40); //Since MMI is not waiting the callback of disable camera, a delay is given. | |
430 //Sept 15, 2005 REF: LOCOSTO-ENH-34257 - xpradipg | |
431 //replaced the flag with the function call, to migrate to the new Lcd APIs | |
432 dspl_control(DSPL_ACCESS_ENABLE); | |
433 camera_state = CAMERA_STATE_CONFIGURE; | |
434 mmi_camera_test_opt_start(data->win,(MfwMnuAttr*)&Mmi_camera_OPTAttrib); | |
435 } | |
436 break; | |
437 | |
438 case CAMERA_STATE_SAVE: | |
439 TRACE_EVENT ("mmi_camera_test_kbd_cntrl()-CAMERA_STATE_SAVE"); | |
440 mmi_camera_test_update_softkeys(TxtSoftOptions,TxtSoftBack); | |
441 mfw_cam_set_viewfinder_mode(); | |
442 break; | |
443 } | |
444 break; | |
445 case KCD_MNUSELECT: | |
446 switch (camera_state) | |
447 { | |
448 case CAMERA_STATE_VIEWFINDER: | |
449 TRACE_EVENT ("mmi_camera_test_kbd_cntrl()-CAMERA_STATE_SNAPSHOT"); | |
450 camera_state = CAMERA_STATE_SNAPSHOT; | |
451 //Take the Snapshot | |
452 mfw_cam_take_snapshot(); | |
453 //Display the softkeys for Snapshot | |
454 mmi_camera_test_update_softkeys(TxtSoftSnapSave,TxtSoftBack); | |
455 rvf_delay(40); | |
456 //Sept 15, 2005 REF: LOCOSTO-ENH-34257 - xpradipg | |
457 //replaced the flag with the function call, to migrate to the new Lcd APIs | |
458 dspl_control(DSPL_ACCESS_DISABLE); | |
459 break; | |
460 } | |
461 break; | |
462 case KCD_RIGHT: | |
463 case KCD_HUP: | |
464 TRACE_EVENT ("mmi_camera_test_kbd_cntrl() Back"); | |
465 switch (camera_state) | |
466 { | |
467 case CAMERA_STATE_SNAPSHOT: | |
468 TRACE_EVENT ("mmi_camera_test_kbd_cntrl()-mfw_cam_set_viewfinder_mode snapshot"); | |
469 camera_state = CAMERA_STATE_VIEWFINDER; | |
470 //Goback to the Viewfinder Mode | |
471 mmi_camera_test_update_softkeys(TxtSoftOptions,TxtSoftBack); | |
472 rvf_delay(40); | |
473 mfw_cam_set_viewfinder_mode(); | |
474 break; | |
475 | |
476 case CAMERA_STATE_SAVE: | |
477 TRACE_EVENT ("mmi_camera_test_kbd_cntrl()-mfw_cam_set_viewfinder_mode save"); | |
478 camera_state = CAMERA_STATE_VIEWFINDER; | |
479 //Goback to the Viewfinder Mode | |
480 mmi_camera_test_update_softkeys(TxtSoftOptions,TxtSoftBack); | |
481 mfw_cam_set_viewfinder_mode(); | |
482 break; | |
483 | |
484 case CAMERA_STATE_VIEWFINDER: | |
485 TRACE_EVENT ("mmi_camera_test_kbd_cntrl()-CAMERA_STATE_VIEWFINDER"); | |
486 //Disable the Camera and goto the Application Menu | |
487 mfw_cam_disable_sensor(); | |
488 rvf_delay(100); | |
489 camera_state = CAMERA_STATE_IDLE; | |
490 //Sept 15, 2005 REF: LOCOSTO-ENH-34257 - xpradipg | |
491 //replaced the flag with the function call, to migrate to the new Lcd APIs | |
492 dspl_control(DSPL_ACCESS_ENABLE); | |
493 if(data->win != NULL) | |
494 { | |
495 winDelete (data->win); | |
496 mfwFree((void *)data, sizeof (T_MMI_CT_Win_data)); | |
497 } | |
498 break; | |
499 | |
500 } | |
501 break; | |
502 | |
503 default: | |
504 | |
505 break; | |
506 } | |
507 return MFW_EVENT_CONSUMED; | |
508 } | |
509 | |
510 | |
511 /******************************************************************************* | |
512 | |
513 $Function: mmi_camera_test_win_cb | |
514 | |
515 $Description: This function is the windows callback function for the mmi camera Root window. | |
516 It has no display. | |
517 | |
518 $Returns: MFW_EVENT_CONSUMED | |
519 | |
520 $Arguments: event - window handle event | |
521 win - Camera window | |
522 | |
523 *******************************************************************************/ | |
524 int mmi_camera_test_win_cb (MfwEvt evt, MfwHnd win) | |
525 { | |
526 T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data; | |
527 T_MMI_CT_Win_data *data = (T_MMI_CT_Win_data *)win_data->user; | |
528 | |
529 TRACE_EVENT("mmi_camera_test_win_cb()"); | |
530 switch (evt) | |
531 { | |
532 case MfwWinVisible: /* window is visible */ | |
533 | |
534 TRACE_EVENT("mmi_camera_test_win_cb()---MfwWinVisible"); | |
535 if(camera_state == CAMERA_STATE_IDLE || camera_state == CAMERA_STATE_VIEWFINDER ) | |
536 { | |
537 | |
538 mmi_camera_test_update_softkeys(TxtSoftOptions,TxtSoftBack); | |
539 rvf_delay(40); | |
540 mfw_cam_launch_viewfinder_dma(); | |
541 } | |
542 break; | |
543 | |
544 // Post the SUSPEND event | |
545 case MfwWinSuspend: /* window is suspended */ | |
546 | |
547 TRACE_EVENT("mmi_camera_test_win_cb()-suspend"); | |
548 break; | |
549 | |
550 // Post the RESUME event | |
551 case MfwWinResume: /* window is resumed */ | |
552 TRACE_EVENT("mmi_camera_test_win_cb()-resume"); | |
553 camera_state = CAMERA_STATE_VIEWFINDER; | |
554 break; | |
555 | |
556 case MfwWinFocussed: /* input focus / selected */ | |
557 TRACE_EVENT("mmi_camera_test_win_cb()-MfwWinFocussed"); | |
558 case MfwWinDelete: /* window will be deleted */ | |
559 default: | |
560 return MFW_EVENT_REJECTED; | |
561 } | |
562 return MFW_EVENT_CONSUMED; | |
563 } | |
564 | |
565 | |
566 | |
567 /******************************************************************************* | |
568 | |
569 $Function: mmi_camera_test_win_create | |
570 | |
571 $Description: This function performs the necessary steps to create the a window to handle the | |
572 viewfinder related softkeys and the viewfinder bitmaps. It will be removed, | |
573 or rather remove itself on returning the data to the Mfw. | |
574 | |
575 $Returns: T_MFW_HND : Window Handle to the New Window, Null if failed. | |
576 | |
577 $Arguments: parent : pointer to the parent window. | |
578 | |
579 *******************************************************************************/ | |
580 T_MFW_HND mmi_camera_test_win_create(T_MFW_HND parent) | |
581 { | |
582 T_MMI_CT_Win_data *data; | |
583 T_MFW_WIN * win; | |
584 | |
585 TRACE_EVENT ("mmi_camera_test_win_create()"); | |
586 | |
587 data = (T_MMI_CT_Win_data *)mfwAlloc((U16)sizeof(T_MMI_CT_Win_data)); | |
588 | |
589 data->win = winCreate(parent, 0, E_WIN_VISIBLE|MfwWinSuspend|MfwWinResume, mmi_camera_test_win_cb); | |
590 | |
591 if (data->win == NULL) | |
592 { | |
593 /* | |
594 ** Failed to start : Free Memory, and exit | |
595 */ | |
596 mfwFree((U8 *)data, (U16)sizeof(T_MMI_CT_Win_data)); | |
597 data = NULL; | |
598 return data; | |
599 } | |
600 else | |
601 { | |
602 | |
603 /* | |
604 ** Setup the Dialog control functions | |
605 */ | |
606 data->mmi_control.dialog = (T_DIALOG_FUNC)mmi_camera_test_exec_cb; | |
607 data->mmi_control.data = data; | |
608 win = ((T_MFW_HDR *)data->win)->data; | |
609 win->user = (void *)data; | |
610 //initialize bitmap data | |
611 data->ct_bitmap.area.px = 0; | |
612 data->ct_bitmap.area.py = 0; | |
613 data->ct_bitmap.area.sx = 175; | |
614 data->ct_bitmap.area.sy = 220; | |
615 data->ct_bitmap.icnType = BMP_FORMAT_16BIT_LCD_COLOUR; | |
616 data->ct_bitmap.iconCol = COLOUR_ICON_XX; | |
617 scrDrawFilledRect ( data->ct_bitmap.area.px, data->ct_bitmap.area.py, data->ct_bitmap.area.sx, data->ct_bitmap.area.sy, dspl_GetBgdColour() ); | |
618 //define softkeys | |
619 displaySoftKeys(TxtSoftOptions,TxtSoftBack); | |
620 dspl_Enable(1); | |
621 if(IsCamInit == FALSE) | |
622 { | |
623 TRACE_EVENT("Initialising Camil"); | |
624 mfw_cam_init(); | |
625 IsCamInit = TRUE; | |
626 } | |
627 } | |
628 | |
629 return data->win; | |
630 | |
631 } | |
632 | |
633 /******************************************************************************* | |
634 | |
635 $Function: mmi_camera_test_start | |
636 | |
637 $Description: create a new camera dialog | |
638 | |
639 $Returns: Dialogue info win | |
640 | |
641 $Arguments: parent win, display info | |
642 | |
643 *******************************************************************************/ | |
644 T_MFW_HND mmi_camera_test_start (T_MFW_HND parent_win) | |
645 { | |
646 T_MFW_HND win; | |
647 TRACE_FUNCTION("mmi_camera_test_start()"); | |
648 | |
649 win = mmi_camera_test_win_create(parent_win); | |
650 if (win NEQ NULL) | |
651 { | |
652 SEND_EVENT (win, CT_INIT, NULL, NULL); | |
653 } | |
654 | |
655 return win; | |
656 } | |
657 | |
658 /******************************************************************************* | |
659 | |
660 $Function: mmi_camera_test_launch_view_finder | |
661 | |
662 $Description: Create the window which is going to have | |
663 the viewfinder bitmaps displayed on top of it. | |
664 | |
665 $Returns: Always returns MFW_EVENT_CONSUMED (1) | |
666 | |
667 $Arguments: m : pointer to the mnu data for the menu which caused this function to be called. | |
668 i : pointer to the item data from the menu. | |
669 | |
670 *******************************************************************************/ | |
671 GLOBAL int mmi_camera_test_launch_view_finder (MfwMnu* m, MfwMnuItem* i) | |
672 { | |
673 | |
674 T_MFW_HND win = mfw_parent(mfw_header()); | |
675 | |
676 TRACE_EVENT("mmi_camera_test_launch_view_finder()"); | |
677 mmi_camera_test_start(win); | |
678 | |
679 return MFW_EVENT_CONSUMED; | |
680 } | |
681 | |
682 | |
683 /******************************************************************************* | |
684 | |
685 $Function: mmi_camera_test_opt_start | |
686 | |
687 $Description: called when the user press the Option menu in Camera Window | |
688 | |
689 $Returns: T_MFW_HND : Window Handle to the New Window, Null if failed. | |
690 | |
691 $Arguments: parent_window -parent window handle | |
692 menuAttr - Menu attributes. | |
693 | |
694 *******************************************************************************/ | |
695 | |
696 T_MFW_HND mmi_camera_test_opt_start(T_MFW_HND parent_window, MfwMnuAttr *menuAttr) | |
697 { | |
698 T_MFW_HND win; | |
699 | |
700 TRACE_FUNCTION ("mmi_camera_test_opt_start()"); | |
701 | |
702 optwin = (T_MFW_HND)mmi_camera_test_opt_create (parent_window); | |
703 | |
704 if (optwin NEQ NULL) | |
705 { | |
706 SEND_EVENT (optwin, CT_INIT, NULL, (void *)menuAttr); | |
707 } | |
708 return win; | |
709 } | |
710 | |
711 /******************************************************************************* | |
712 | |
713 $Function: mmi_camera_test_opt_win_create | |
714 | |
715 $Description: This function performs the necessary steps to create the a window . | |
716 | |
717 $Returns: T_MFW_HND : Window Handle to the New Window, Null if failed. | |
718 | |
719 $Arguments: parent : pointer to the parent window. | |
720 | |
721 *******************************************************************************/ | |
722 T_MFW_HND mmi_camera_test_opt_create(T_MFW_HND parent) | |
723 { | |
724 T_MMI_CT_Opt_data * data = (T_MMI_CT_Opt_data *)ALLOC_MEMORY (sizeof (T_MMI_CT_Opt_data)); | |
725 T_MFW_WIN * win; | |
726 | |
727 TRACE_FUNCTION ("mmi_camera_test_opt_create()"); | |
728 | |
729 /* | |
730 * Create window handler | |
731 */ | |
732 | |
733 data->win = | |
734 win_create (parent, 0, E_WIN_VISIBLE, (T_MFW_CB)mmi_camera_test_opt_win_cb); | |
735 if (data->win EQ NULL) | |
736 { | |
737 return NULL; | |
738 } | |
739 /* | |
740 * connect the dialog data to the MFW-window | |
741 */ | |
742 | |
743 data->mmi_control.dialog = (T_DIALOG_FUNC)mmi_camera_test_opt_exec_cb; | |
744 data->mmi_control.data = data; | |
745 win = ((T_MFW_HDR *)data->win)->data; | |
746 win->user = (void *)data; | |
747 data->parent = parent; | |
748 | |
749 /* | |
750 * return window handle | |
751 */ | |
752 | |
753 return data->win; | |
754 } | |
755 | |
756 /******************************************************************************* | |
757 | |
758 $Function: mmi_camera_test_opt_win_cb | |
759 | |
760 $Description: This function is the windows callback function for the mmi camera option window. | |
761 | |
762 $Returns: MFW_EVENT_CONSUMED | |
763 | |
764 $Arguments: event - window handle event | |
765 win - Camera window | |
766 | |
767 *******************************************************************************/ | |
768 int mmi_camera_test_opt_win_cb (MfwEvt evt, MfwHnd win) | |
769 { | |
770 TRACE_EVENT("mmi_camera_test_opt_win_cb()"); | |
771 switch (evt) | |
772 { | |
773 case MfwWinVisible: /* window is visible */ | |
774 displaySoftKeys(TxtSoftSelect,TxtSoftBack); | |
775 break; | |
776 case MfwWinFocussed: /* input focus / selected */ | |
777 case MfwWinDelete: /* window will be deleted */ | |
778 default: | |
779 return MFW_EVENT_REJECTED; | |
780 } | |
781 return MFW_EVENT_CONSUMED; | |
782 | |
783 } | |
784 | |
785 /******************************************************************************* | |
786 | |
787 $Function: mmi_camera_test_opt_exec_cb | |
788 | |
789 $Description: This is the dialog control function for the Camera Option Window. It | |
790 receives the signals from the MFW and determines what action, if any, to take. | |
791 | |
792 $Returns: None | |
793 | |
794 $Arguments: win : The pointer to the window handler, so the function can reference the | |
795 dynamic user data, if any. | |
796 event : The incoming event | |
797 value : Generic incoming Parameter, it will be 'event' dependant | |
798 parameter : Generic incoming Parameter, it will be 'event' dependant | |
799 | |
800 *******************************************************************************/ | |
801 void mmi_camera_test_opt_exec_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter) | |
802 { | |
803 T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; | |
804 T_MMI_CT_Opt_data * data = (T_MMI_CT_Opt_data *)win_data->user; | |
805 TRACE_FUNCTION ("mmi_camera_test_opt_exec_cb()"); | |
806 switch (event) | |
807 { | |
808 case CT_INIT: | |
809 TRACE_EVENT(">> mmi_camera_test_opt_exec_cb(), CT_INIT "); | |
810 /* initialization of administrative data */ | |
811 data->id = value; | |
812 | |
813 data->kbd = kbdCreate(data->win,KEY_ALL, (MfwCb)mmi_camera_test_opt_kbd_cb); | |
814 data->kbd_long = kbdCreate(data->win,KEY_ALL|KEY_LONG,(MfwCb)mmi_camera_test_opt_kbd_cb); | |
815 data->menu = mnuCreate(data->win,(MfwMnuAttr *)&Mmi_camera_OPTAttrib, E_MNU_ESCAPE, (MfwCb)mmi_camera_test_opt_mnu_cb); | |
816 mnuLang(data->menu,mainMmiLng); | |
817 | |
818 /* put the (new) dialog window on top of the window stack */ | |
819 mnuUnhide(data->menu); | |
820 winShow(data->win); | |
821 break; | |
822 | |
823 case CT_RETURN: | |
824 TRACE_EVENT(">> mmi_camera_test_opt_exec_cb(), CT_RETURN "); | |
825 mmi_camera_test_opt_destroy(optwin); | |
826 mmi_camera_test_update_softkeys(TxtSoftOptions,TxtSoftBack); | |
827 mfw_cam_launch_viewfinder_dma(); | |
828 break; | |
829 | |
830 default: | |
831 return; | |
832 } | |
833 } | |
834 | |
835 /******************************************************************************* | |
836 | |
837 $Function: mmi_camera_test_opt_kbd_cb | |
838 | |
839 $Description: Keyboard event handler for camera Option window | |
840 | |
841 $Returns: execution status | |
842 | |
843 $Arguments: e - event id | |
844 k - keyboard info | |
845 *******************************************************************************/ | |
846 | |
847 static int mmi_camera_test_opt_kbd_cb (MfwEvt e, MfwKbd *k) | |
848 { | |
849 T_MFW_HND win = mfwParent(mfw_header()); | |
850 T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data; | |
851 T_MMI_CT_Opt_data * data = (T_MMI_CT_Opt_data *)win_data->user; | |
852 | |
853 TRACE_FUNCTION ("mmi_camera_test_opt_kbd_cb()"); | |
854 | |
855 if (e & KEY_LONG) | |
856 { | |
857 switch (k->code) | |
858 { | |
859 case KCD_HUP: /* back to previous menu */ | |
860 mnuEscape(data->menu); | |
861 break; | |
862 case KCD_RIGHT: /* Power Down */ | |
863 return MFW_EVENT_REJECTED; /* handled by idle */ | |
864 default: /* no response to all other keys */ | |
865 return MFW_EVENT_CONSUMED; | |
866 } | |
867 } | |
868 else | |
869 { | |
870 switch (k->code) | |
871 { | |
872 case KCD_MNUUP: /* highlight previous entry */ | |
873 mnuUp(data->menu); | |
874 break; | |
875 case KCD_MNUDOWN: /* highlight next entry */ | |
876 mnuDown(data->menu); | |
877 break; | |
878 case KCD_MNUSELECT: | |
879 case KCD_LEFT: /* activate this entry */ | |
880 mnuSelect(data->menu); | |
881 break; | |
882 case KCD_HUP: /* back to previous menu */ | |
883 case KCD_RIGHT: /* back to previous menu */ | |
884 mnuEscape(data->menu); | |
885 break; | |
886 default: /* no response to all other keys */ | |
887 return MFW_EVENT_CONSUMED; | |
888 } | |
889 } | |
890 return MFW_EVENT_CONSUMED; | |
891 } | |
892 | |
893 /******************************************************************************* | |
894 | |
895 $Function: mmi_camera_test_opt_mnu_cb | |
896 | |
897 $Description: Menu callback function for the Option window | |
898 | |
899 $Returns: Execution status | |
900 | |
901 $Arguments: e - event id | |
902 m - menu handle | |
903 *******************************************************************************/ | |
904 | |
905 static int mmi_camera_test_opt_mnu_cb (MfwEvt e, MfwMnu *m) | |
906 { | |
907 T_MFW_HND win = mfwParent(mfw_header()); | |
908 T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data; | |
909 T_MMI_CT_Opt_data * data = (T_MMI_CT_Opt_data *)win_data->user; | |
910 | |
911 TRACE_FUNCTION ("mmi_camera_test_opt_mnu_cb()"); | |
912 | |
913 switch (e) | |
914 { | |
915 case E_MNU_ESCAPE: /* back to previous menu */ | |
916 TRACE_EVENT("E_MNU_ESCAPE"); | |
917 SEND_EVENT (optwin, CT_RETURN, data->id, NULL); | |
918 camera_state = CAMERA_STATE_VIEWFINDER; | |
919 break; | |
920 default: /* in mnuCreate() only E_MNU_ESCAPE has been enabled! */ | |
921 return MFW_EVENT_REJECTED; | |
922 } | |
923 return MFW_EVENT_CONSUMED; | |
924 } | |
925 | |
926 /******************************************************************************* | |
927 | |
928 $Function: mmi_camera_test_opt_destroy | |
929 | |
930 $Description: Destroy the Camera Option window | |
931 | |
932 $Returns: mfw window handle | |
933 | |
934 $Arguments: own_window - current window | |
935 | |
936 *******************************************************************************/ | |
937 | |
938 static void mmi_camera_test_opt_destroy(MfwHnd own_window) | |
939 { | |
940 T_MFW_WIN * win_data; | |
941 T_MMI_CT_Opt_data * data; | |
942 | |
943 TRACE_FUNCTION ("mmi_camera_test_opt_destroy()"); | |
944 | |
945 if (own_window) | |
946 { | |
947 win_data = ((T_MFW_HDR *)own_window)->data; | |
948 data = (T_MMI_CT_Opt_data *)win_data->user; | |
949 | |
950 if (data) | |
951 { | |
952 | |
953 /* | |
954 ** Failed to start : Free Memory, and exit | |
955 */ | |
956 | |
957 if(data->kbd != NULL) | |
958 { | |
959 kbdDelete (data->kbd); | |
960 } | |
961 | |
962 if(data->kbd_long!= NULL) | |
963 { | |
964 kbdDelete (data->kbd_long); | |
965 } | |
966 | |
967 if(data->menu!= NULL) | |
968 { | |
969 mnuDelete(data->menu); | |
970 } | |
971 | |
972 // Delete WIN handler | |
973 | |
974 win_delete (data->win); | |
975 | |
976 // Free Memory | |
977 | |
978 FREE_MEMORY ((void *)data, sizeof (T_MMI_CT_Opt_data)); | |
979 } | |
980 else | |
981 { | |
982 TRACE_EVENT ("mmi_camera_test_opt_destroy() called twice"); | |
983 } | |
984 } | |
985 } | |
986 | |
987 /******************************************************************************* | |
988 | |
989 $Function: mmi_camera_test_set_quality | |
990 | |
991 $Description: Set the Quality factor for the image to be saved. | |
992 | |
993 $Returns: Always returns MFW_EVENT_CONSUMED (1) | |
994 | |
995 $Arguments: m : pointer to the mnu data for the menu which caused this function to be called. | |
996 i : pointer to the item data from the menu. | |
997 | |
998 *******************************************************************************/ | |
999 GLOBAL int mmi_camera_test_set_quality (MfwMnu* m, MfwMnuItem* i) | |
1000 { | |
1001 int txtId = TxtStandard; | |
1002 UBYTE qfactor; | |
1003 TRACE_FUNCTION ("mmi_camera_test_set_quality()"); | |
1004 switch (m->lCursor[m->level]) | |
1005 { | |
1006 case 0: | |
1007 txtId = TxtEconomy; | |
1008 qfactor = QUALITY_ECONOMY; | |
1009 | |
1010 break; | |
1011 case 1: | |
1012 txtId = TxtStandard; | |
1013 qfactor = QUALITY_STANDARD; | |
1014 break; | |
1015 case 2: | |
1016 txtId = TxtHigh; | |
1017 qfactor = QUALITY_HIGH; | |
1018 break; | |
1019 | |
1020 default: | |
1021 txtId = TxtStandard; | |
1022 qfactor = QUALITY_STANDARD; | |
1023 break; | |
1024 | |
1025 } | |
1026 //Set the Quality Factor. | |
1027 mfw_cam_set_quality_factor(qfactor); | |
1028 //Display the dialgbox to the user. | |
1029 mmi_camera_test_show_info(0, txtId,TxtNull,NULL); | |
1030 return MFW_EVENT_CONSUMED; | |
1031 } | |
1032 | |
1033 /******************************************************************************* | |
1034 | |
1035 $Function: mmi_camera_test_set_color | |
1036 | |
1037 $Description: Set the Color for the Viewfinder | |
1038 | |
1039 $Returns: Always returns MFW_EVENT_CONSUMED (1) | |
1040 | |
1041 $Arguments: m : pointer to the mnu data for the menu which caused this function to be called. | |
1042 i : pointer to the item data from the menu. | |
1043 | |
1044 *******************************************************************************/ | |
1045 GLOBAL int mmi_camera_test_set_color (MfwMnu* m, MfwMnuItem* i) | |
1046 { | |
1047 int txtId; | |
1048 UBYTE blackandwhite; | |
1049 TRACE_FUNCTION ("mmi_camera_test_set_color()"); | |
1050 switch (m->lCursor[m->level]) | |
1051 { | |
1052 case 0: | |
1053 txtId = TxtColor; | |
1054 blackandwhite = FALSE; | |
1055 break; | |
1056 case 1: | |
1057 txtId = TxtSepia; | |
1058 blackandwhite = FALSE; | |
1059 break; | |
1060 case 2: | |
1061 txtId = TxtBlackandWhite; | |
1062 blackandwhite = TRUE; | |
1063 break; | |
1064 case 3: | |
1065 txtId = TxtNegative; | |
1066 blackandwhite = FALSE; | |
1067 break; | |
1068 | |
1069 } | |
1070 mfw_cam_set_viewfinder_param_color(blackandwhite); | |
1071 mmi_camera_test_show_info(0, txtId,TxtNull,NULL); | |
1072 return MFW_EVENT_CONSUMED; | |
1073 } | |
1074 | |
1075 | |
1076 /******************************************************************************* | |
1077 | |
1078 $Function: M_exeQuality | |
1079 | |
1080 $Description: This function is called when the user press "Quality" in the | |
1081 Camera Options screen.This function creates and displays the | |
1082 Quality menu in the option screen. | |
1083 | |
1084 $Returns: Execution status | |
1085 | |
1086 $Arguments: m - menu handler | |
1087 i - Menu item selected | |
1088 | |
1089 *******************************************************************************/ | |
1090 | |
1091 int M_exeQuality(MfwMnu* m, MfwMnuItem* i) | |
1092 { | |
1093 | |
1094 T_MFW_HND win = mfwParent(mfw_header()); | |
1095 T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data; | |
1096 T_MMI_CT_Opt_data * data = (T_MMI_CT_Opt_data *)win_data->user; | |
1097 TRACE_FUNCTION("M_exeQuality"); | |
1098 | |
1099 bookMenuStart(data->win, qualityMenuAttributes(),0); | |
1100 return MFW_EVENT_CONSUMED; | |
1101 | |
1102 } | |
1103 | |
1104 /******************************************************************************* | |
1105 | |
1106 $Function: M_exeColor | |
1107 | |
1108 $Description: This function is called when the user press "Color" in the | |
1109 Camera Options screen.This function creates and displays the | |
1110 Color menu in the option screen. | |
1111 | |
1112 $Returns: Execution status | |
1113 | |
1114 $Arguments: m - menu handler | |
1115 i - Menu item selected | |
1116 | |
1117 *******************************************************************************/ | |
1118 | |
1119 int M_exeColor(MfwMnu* m, MfwMnuItem* i) | |
1120 { | |
1121 T_MFW_HND win = mfwParent(mfw_header()); | |
1122 T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data; | |
1123 T_MMI_CT_Opt_data * data = (T_MMI_CT_Opt_data *)win_data->user; | |
1124 TRACE_FUNCTION("M_exeColor"); | |
1125 | |
1126 bookMenuStart(data->win, colorMenuAttributes(),0); | |
1127 return MFW_EVENT_CONSUMED; | |
1128 } | |
1129 | |
1130 /******************************************************************************* | |
1131 | |
1132 $Function: M_exeZoom | |
1133 | |
1134 $Description: This function is called when the user press "Zoom" in the | |
1135 Camera Options screen.This function creates and displays the | |
1136 Zoom menu in the option screen. | |
1137 | |
1138 $Returns: Execution status | |
1139 | |
1140 $Arguments: m - menu handler | |
1141 i - Menu item selected | |
1142 | |
1143 *******************************************************************************/ | |
1144 | |
1145 int M_exeZoom(MfwMnu* m, MfwMnuItem* i) | |
1146 { | |
1147 int txtId = TxtDigiZoom; | |
1148 TRACE_FUNCTION("M_exeZoom"); | |
1149 mfw_cam_set_viewfinder_param_zoom(TRUE); | |
1150 mmi_camera_test_show_info(0, txtId,TxtNull,NULL); | |
1151 return MFW_EVENT_CONSUMED; | |
1152 } | |
1153 | |
1154 /******************************************************************************* | |
1155 | |
1156 $Function: mmi_filename_editor_cb | |
1157 | |
1158 $Description: This function provides the callback functionality to the editor to rename the | |
1159 default jpeg filename. | |
1160 | |
1161 $Returns: None | |
1162 | |
1163 $Arguments: | |
1164 | |
1165 *******************************************************************************/ | |
1166 static void mmi_filename_editor_cb(T_MFW_HND win, USHORT identifier, SHORT reason) | |
1167 { | |
1168 T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; | |
1169 T_CT_Editor_Data* dev_name_data = (T_CT_Editor_Data *)win_data->user; | |
1170 UBYTE * editor_buffer = NULL; | |
1171 SHORT max_edit_size = 0; | |
1172 T_MFW_HND editor_win; | |
1173 T_MFW_HND parent; | |
1174 | |
1175 TRACE_FUNCTION ("mmi_filename_editor_cb()"); | |
1176 | |
1177 editor_buffer = dev_name_data->ct_buffer; | |
1178 max_edit_size =CT_FILENAME_EDITOR_INPUT_LEN; | |
1179 editor_win = dev_name_data->ct_win_editor; | |
1180 parent = dev_name_data->win; | |
1181 | |
1182 switch (reason) | |
1183 { | |
1184 case INFO_KCD_LEFT: | |
1185 { | |
1186 /* | |
1187 ** If there is no string entered, treat this as if it was a "Cancel" | |
1188 */ | |
1189 if (editor_buffer[0] == NULL) | |
1190 { | |
1191 /* | |
1192 ** Send a "Cancel" to the window | |
1193 */ | |
1194 SEND_EVENT(parent, CT_EDITOR_CANCEL, identifier, NULL); | |
1195 } | |
1196 else | |
1197 { | |
1198 //If the file extn is not jpg, send cancel event | |
1199 /* | |
1200 ** Send a "Select" to the window | |
1201 */ | |
1202 SEND_EVENT(parent, CT_EDITOR_SELECT, identifier, NULL); | |
1203 } | |
1204 } | |
1205 break; | |
1206 | |
1207 case INFO_KCD_RIGHT: | |
1208 if (strlen((char *)editor_buffer) == NULL) | |
1209 { | |
1210 | |
1211 /* | |
1212 ** Send a "Cancel" to the window | |
1213 */ | |
1214 SEND_EVENT(parent, CT_EDITOR_CANCEL, identifier, NULL); | |
1215 } | |
1216 break; | |
1217 | |
1218 case INFO_KCD_HUP: | |
1219 /* | |
1220 ** Set the buffer to NULLS | |
1221 */ | |
1222 memset(editor_buffer, 0x00, max_edit_size); | |
1223 | |
1224 /* | |
1225 ** Send a "Cancel" to the window | |
1226 */ | |
1227 SEND_EVENT(parent, CT_EDITOR_CANCEL, identifier, NULL); | |
1228 break; | |
1229 | |
1230 default: | |
1231 /* otherwise no action to be performed | |
1232 */ | |
1233 break; | |
1234 } | |
1235 } | |
1236 | |
1237 | |
1238 /******************************************************************************* | |
1239 | |
1240 $Function: mmi_camera_test_update_softkeys | |
1241 | |
1242 $Description: This function updates only the softkeys region. | |
1243 | |
1244 $Returns: None | |
1245 | |
1246 $Arguments: None | |
1247 | |
1248 *******************************************************************************/ | |
1249 void mmi_camera_test_update_softkeys (int lsk, int rsk) | |
1250 { | |
1251 TRACE_EVENT("mmi_camera_test_update_softkeys"); | |
1252 dspl_SetBgdColour(COL_White); | |
1253 dspl_ClearAll(); | |
1254 displaySoftKeys(lsk,rsk); | |
1255 //Sept 15, 2005 REF: LOCOSTO-ENH-34257 - xpradipg | |
1256 //replaced the flag with the function call, to migrate to the new Lcd APIs | |
1257 dspl_control(DSPL_ACCESS_ENABLE); | |
1258 dspl_Enable(1); | |
1259 } | |
1260 | |
1261 /******************************************************************************* | |
1262 | |
1263 $Function: mmi_camera_editor_destroy | |
1264 | |
1265 $Description: Destroy the filename editor window | |
1266 | |
1267 $Returns: mfw window handle | |
1268 | |
1269 $Arguments: own_window - current window | |
1270 | |
1271 *******************************************************************************/ | |
1272 MfwRes mmi_camera_editor_destroy(T_MFW_HND win) | |
1273 { | |
1274 T_MFW_WIN * win_data; | |
1275 T_CT_Editor_Data * data; | |
1276 | |
1277 TRACE_FUNCTION ("mmi_camera_editor_destroy"); | |
1278 if (win == NULL) | |
1279 return MfwResIllHnd; | |
1280 | |
1281 win_data = ((T_MFW_HDR *) win)->data; | |
1282 data = (T_CT_Editor_Data *)win_data->user; | |
1283 | |
1284 /* | |
1285 ** Destroy the Window | |
1286 */ | |
1287 win_delete(data->win); | |
1288 | |
1289 /* | |
1290 ** Free the dynamically allocated memory | |
1291 */ | |
1292 mfwFree((U8 *)data, (U16)sizeof(T_CT_Editor_Data)); | |
1293 | |
1294 return MfwResOk; | |
1295 } | |
1296 | |
1297 /******************************************************************************* | |
1298 | |
1299 $Function: mmi_camera_editor_cntrl | |
1300 | |
1301 $Description: Exec callback function for the edit filename window | |
1302 | |
1303 $Returns: none | |
1304 | |
1305 $Arguments: win - current window | |
1306 event - event id | |
1307 value - unique id | |
1308 parameter - optional data. | |
1309 | |
1310 *******************************************************************************/ | |
1311 void mmi_camera_editor_cntrl (T_MFW_HND win, USHORT event, SHORT value, void * parameter) | |
1312 { | |
1313 T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; | |
1314 T_CT_Editor_Data * data = (T_CT_Editor_Data *)win_data->user; | |
1315 T_AUI_EDITOR_DATA editor_data; | |
1316 | |
1317 TRACE_FUNCTION ("mmi_camera_editor_cntrl"); | |
1318 | |
1319 switch (event) | |
1320 { | |
1321 case CT_INIT: | |
1322 #ifdef NEW_EDITOR | |
1323 //Clear the editor buffer | |
1324 memset(&editor_data,'\0',sizeof(editor_data)); | |
1325 // copy the default name in the editor buffer | |
1326 strcpy((char *)data->ct_buffer,CT_DEFAULT_FILENAME); | |
1327 | |
1328 /* | |
1329 ** Initialise the editor | |
1330 */ | |
1331 AUI_edit_SetDefault(&editor_data); | |
1332 AUI_edit_SetBuffer(&editor_data, ATB_DCS_ASCII, data->ct_buffer, CT_FILE_NAME_LENGTH); | |
1333 AUI_edit_SetTextStr(&editor_data, TxtSoftOK, TxtDelete, TxtFilename, NULL); | |
1334 AUI_edit_SetAltTextStr(&editor_data, 1, TxtNull, TRUE, TxtSoftBack); | |
1335 AUI_edit_SetEvents(&editor_data, 0, TRUE, FOREVER, (T_AUI_EDIT_CB)mmi_filename_editor_cb); | |
1336 data->ct_win_editor = AUI_edit_Start(data->win, &editor_data); | |
1337 #endif | |
1338 break; | |
1339 | |
1340 case CT_EDITOR_CANCEL: | |
1341 /* | |
1342 ** The editor will be destroyed. Reset the Window handler | |
1343 */ | |
1344 data->ct_win_editor = NULL; | |
1345 | |
1346 /* | |
1347 ** Destroy the editor Window | |
1348 */ | |
1349 TRACE_FUNCTION ("mmi_camera_editor_cntrl CT_EDITOR_CANCEL"); | |
1350 mmi_camera_editor_destroy(data->win); | |
1351 SEND_EVENT (optwin, CT_RETURN, NULL, NULL); | |
1352 camera_state = CAMERA_STATE_VIEWFINDER; | |
1353 break; | |
1354 | |
1355 case CT_EDITOR_SELECT: | |
1356 //copy the file name from the editor | |
1357 strcpy(new_filename,(char *)data->ct_buffer); | |
1358 mmi_camera_editor_destroy(data->win); | |
1359 SEND_EVENT (optwin, CT_RETURN, NULL, NULL); | |
1360 camera_state = CAMERA_STATE_VIEWFINDER; | |
1361 break; | |
1362 | |
1363 default: | |
1364 TRACE_FUNCTION ("mmi_camera_editor_cntrl(), Unexpected Event!"); | |
1365 break; | |
1366 } | |
1367 | |
1368 | |
1369 } | |
1370 | |
1371 /******************************************************************************* | |
1372 | |
1373 $Function: mmi_camera_edit_filename | |
1374 | |
1375 $Description: This function is called when the user press Filename in the option menu . | |
1376 | |
1377 $Returns: Execution status | |
1378 | |
1379 $Arguments: m - menu handler | |
1380 i - Menu item selected | |
1381 | |
1382 *******************************************************************************/ | |
1383 GLOBAL int mmi_camera_edit_filename(MfwMnu* m, MfwMnuItem* i) | |
1384 { | |
1385 T_MFW_HND win = mfw_parent(mfw_header()); | |
1386 T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; | |
1387 T_CT_Editor_Data * data = (T_CT_Editor_Data *)(win_data->user); | |
1388 | |
1389 TRACE_FUNCTION ("mmi_camera_edit_filename()"); | |
1390 | |
1391 data->ct_win_editor = (MfwHnd)mmi_camera_editor_create(win); | |
1392 | |
1393 if (data->ct_win_editor != NULL) | |
1394 { | |
1395 SEND_EVENT(data->ct_win_editor, CT_INIT, 0, NULL); | |
1396 } | |
1397 else | |
1398 { | |
1399 TRACE_FUNCTION ("mmi_camera_edit_filename() : Unable to create Editor Win!"); | |
1400 } | |
1401 return MFW_EVENT_CONSUMED; | |
1402 } | |
1403 | |
1404 /******************************************************************************* | |
1405 | |
1406 $Function: mmi_camera_editor_create | |
1407 | |
1408 $Description: Create a window for editing the image file name to be saved. | |
1409 | |
1410 $Returns: window handle | |
1411 | |
1412 $Arguments: parent - parent window. | |
1413 | |
1414 *******************************************************************************/ | |
1415 | |
1416 | |
1417 T_MFW_HND mmi_camera_editor_create(T_MFW_HND parent) | |
1418 { | |
1419 T_CT_Editor_Data *data; | |
1420 T_MFW_WIN * win; | |
1421 | |
1422 TRACE_FUNCTION ("mmi_camera_editor_create"); | |
1423 | |
1424 data = (T_CT_Editor_Data *)mfwAlloc((U16)sizeof(T_CT_Editor_Data)); | |
1425 | |
1426 if (data == NULL) | |
1427 return data; | |
1428 | |
1429 data->win = winCreate(parent, 0, E_WIN_VISIBLE, NULL); | |
1430 | |
1431 if (data->win == NULL) | |
1432 { | |
1433 /* | |
1434 ** Failed to start : Free Memory, and exit | |
1435 */ | |
1436 mfwFree((U8 *)data, (U16)sizeof(T_CT_Editor_Data)); | |
1437 data = NULL; | |
1438 return data; | |
1439 } | |
1440 else | |
1441 { | |
1442 /* | |
1443 ** Setup the Dialog control functions | |
1444 */ | |
1445 data->mmi_control.dialog = (T_DIALOG_FUNC)mmi_camera_editor_cntrl; | |
1446 data->mmi_control.data = data; | |
1447 | |
1448 win = ((T_MFW_HDR *)data->win)->data; | |
1449 win->user = (void *)data; | |
1450 } | |
1451 | |
1452 return data->win; | |
1453 | |
1454 } | |
1455 | |
1456 /******************************************************************************* | |
1457 | |
1458 $Function: display_saved_image | |
1459 | |
1460 $Description: Displays the Dialog to show the status of save image | |
1461 | |
1462 $Returns: None | |
1463 | |
1464 $Arguments: res - Status of Save Image | |
1465 | |
1466 *******************************************************************************/ | |
1467 | |
1468 void display_saved_image(BOOL res) | |
1469 { | |
1470 | |
1471 if(call_data.win) | |
1472 { | |
1473 dialog_info_destroy(digwin1); | |
1474 digwin1 = NULL; | |
1475 return; | |
1476 } | |
1477 //Sept 15, 2005 REF: LOCOSTO-ENH-34257 - xpradipg | |
1478 //replaced the flag with the function call, to migrate to the new Lcd APIs | |
1479 dspl_control(DSPL_ACCESS_ENABLE); | |
1480 dspl_Clear(0,0,SCREEN_SIZE_X-1,SCREEN_SIZE_Y-1 ); | |
1481 if( res) | |
1482 mmi_camera_test_show_info(digwin1, TxtSaved, TxtNull,(T_VOID_FUNC) mmi_camera_dialog_cb); | |
1483 else | |
1484 mmi_camera_test_show_info(digwin1, TxtFailed, TxtNull,(T_VOID_FUNC) mmi_camera_dialog_cb); | |
1485 } | |
1486 | |
1487 |