comparison src/ui/bmi/mmiBookController.c @ 3:67bfe9f274f6

src/ui: import of src/ui3 from Magnetite
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 16 Oct 2020 06:33:10 +0000
parents
children c0052fe355d3
comparison
equal deleted inserted replaced
2:3a14ee9a9843 3:67bfe9f274f6
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: PhoneBook
15 $File: MmiBookController.c
16 $Revision: 1.0
17
18 $Author: Condat(UK)
19 $Date: 25/10/00
20
21 ********************************************************************************
22
23 Description:
24
25 The book controller module provides the external
26 interface to the phone book. It provides ALL external
27 entry points to the phone book system.
28
29 ********************************************************************************
30
31 $History: MmiBookController.c
32
33 Nov 10, 2006 DRT: OMAPS000103354 x0039928
34 Description: Delete all failure in LDN Phonebook
35 Solution: phb_delete_all is called with the proper phone book as input.
36
37 Aug 18, 2006 ER: OMAPS00089840 x0039928
38 Description: Changes to be made in MMI for the functionality "Delete all" ADN entries
39 Solution: A new menu item "Delete All" is added in the phone book menu.
40
41 July 21,2006 REF:DR OMAPS00085695 x0047075
42 Description:Fail to delete the correct entry in LDN, LRN and LMN with Locosto.
43 Solution:After deleting any entry in the LDN,LRN,LMN book,we highlight the first entry as the
44 current selected entry.
45
46 Jun 13, 2005 REF: SPR 31705 x0021308
47 Description: Once maximum limit of the My Number is exceeded, display info : Phonebook full,
48 expected is MyNumber Full
49 Solution: Replaced the Return tag in function Protected Menu Handler(booksetownNumber) from
50 Phonebookfull with MyNumberfull.
51
52 Jun 13, 2005 REF: SPR 31710 x0021308
53 Description: Once maximum limit of the FDN Number is exceeded, display info : Phonebook full,
54 expected is FDNList Full
55 Solution: Replaced the Return tag in function Protected Menu Handler(booksetownNumber) from
56 Phonebookfull with FDNListfull While checking whether in FDNMenu is active using MenuFDN global
57 variable.
58
59
60 Sep 22, 2004 REF: CRR 21392 xvilliva
61 Bug: PIN2 Screen is not displaying, While Adding FDN Number thru
62 Recent call Menu.
63 Fix: We add the "bookRepRedNameEnter" to "ProtectedActions" array.
64 If FDN is enabled, Pin2 will be asked.
65
66 June 26, 2006 REF : OMAPS00083148 x0023848
67 Bug: SMS send is failed when trying through missed call list
68 Fix: Assignemnt of SmsData.called_from_reply_item to FALSE is Added
69
70 25/10/00 Original Condat(UK) BMI version.
71
72
73
74 $End
75
76 // Issue Number : MMI-FIX-12161 on 07/04/04 by Nishikant Kulkarni/Ajith K.P
77
78 *******************************************************************************/
79
80
81 /*******************************************************************************
82
83 Include Files
84
85 *******************************************************************************/
86
87 /* MMI phone book specific include files
88 */
89 #define ENTITY_MFW
90
91 /* includes */
92 #include <string.h>
93 #include <stdio.h>
94 #include <stdlib.h>
95
96 #if defined (NEW_FRAME)
97
98 #include "typedefs.h"
99 #include "vsi.h"
100 #include "pei.h"
101 #include "custom.h"
102 #include "gsm.h"
103
104 #else
105
106 #include "STDDEFS.H"
107 #include "custom.h"
108 #include "gsm.h"
109 #include "vsi.h"
110
111 #endif
112 #include "mfw_sys.h"
113
114 #include "mfw_mfw.h"
115 #include "mfw_win.h"
116 #include "mfw_kbd.h"
117 #include "mfw_lng.h"
118 /* SPR#1428 - SH - New Editor changes */
119 #ifndef NEW_EDITOR
120 #include "mfw_edt.h"
121 #endif
122 #include "mfw_icn.h"
123 #include "mfw_mnu.h"
124 #include "mfw_tim.h"
125
126 #include "mfw_sim.h"
127 #include "mfw_cm.h"
128 #include "mfw_nm.h"
129 #include "mfw_phb.h"
130 #include "mfw_mme.h"
131 #include "mfw_sat.h"
132 #include "mfw_sms.h"
133
134 #include "dspl.h"
135
136 #include "ksd.h"
137 #include "psa.h"
138
139 #include "MmiMain.h"
140 #include "MmiBookController.h"
141 #include "MmiDummy.h"
142 #include "MmiDialogs.h"
143 #include "MmiLists.h"
144
145
146
147 #include "MmiMenu.h"
148 #include "mmiCall.h"
149 #include "Mmiicons.h"
150 #include "MmiIdle.h"
151
152 #include "MmiSoftKeys.h"
153 #include "MmiSounds.h"
154 #include "MmiIdle.h"
155 #include "MmiNetwork.h"
156 #include "mmiSat_i.h"
157 #include "MmiAoc.h"
158
159 #include "gdi.h"
160 #include "audio.h"
161
162 #include "cus_aci.h"
163 #include "MmiTimers.h"
164
165
166 #include "MmiBookController.h"
167 #include "MmiBookUtils.h"
168
169 /* MMI specific includes, outside scope of phone book
170 */
171 #include "MmiPins.h"
172 #include "mmiSmsMenu.h"
173 #include "mmismssend.h"
174 #include "mmiCall.h"
175 #include "MmiIdle.h"
176 #include "MmiCPHS.h"
177
178
179 /*******************************************************************************
180
181 Definitions
182
183 *******************************************************************************/
184
185 /* Since we want to make sure all of the menu handlers get
186 treated the same way, and have a protected handler, define
187 a new macro, in terms of the MENU_HANDLER, which will
188 invoke the protected function correctly (See below for
189 further details)
190 */
191 #define PROTECTED_MENU_HANDLER( Name ) \
192 static MENU_HANDLER( Protected##Name ); \
193 MENU_HANDLER( Name ) \
194 { \
195 return Protected( Name, Protected##Name, Menu, Item ); \
196 } \
197 static MENU_HANDLER( Protected##Name )
198
199 /*
200 ** Since PROTECTED_MENU_HANDLER handles only FDN protection, the following is a menu handler to ensure
201 ** that PIN2 entry is required for any associated menu action
202 */
203 #define PIN2RQD_MENU_HANDLER( Name ) \
204 static MENU_HANDLER( Pin2Rqd##Name ); \
205 MENU_HANDLER( Name ) \
206 { \
207 return Pin2Rqd( Name, Pin2Rqd##Name, Menu, Item ); \
208 } \
209 static MENU_HANDLER( Pin2Rqd##Name )
210
211 /*Added For Fix: MMI-FIX-12161 on 07/04/04 by Nishikant Kulkarni/Ajith K.P */
212 extern T_idle idle_data;
213
214
215 /*******************************************************************************
216
217 Local structures
218
219 *******************************************************************************/
220
221 /* A number of the actions the phone book is required to perform
222 can only be activated when the user enters a security PIN number,
223 the PIN2 code. In order to make the operation of the module
224 clear, we will build a list of the protected actions, and then
225 drive all menu operations through a single clearing process.
226
227 The module will use the following action list perform the
228 protection, note that the last entry in this list must be
229 NULL
230 */
231 typedef tBookStatus (*tProtectFunction)( tBookMfwMenu *Menu, tBookMfwMenuItem *Item );
232
233 tProtectFunction ProtectedActions[] = {
234 bookNameEnter,
235 bookNameEdit,
236 bookNameDelete,
237 bookNameDeleteAll,
238 // Sep 22, 2004 REF: CRR 21392 xvilliva
239 // A function, if added to this array would ask Pin2 when called.
240 // Storing a number from recent call list would ask for Pin2, if FDN is enabled.
241 bookRepRedNameEnter,
242 NULL };
243
244 // May 3, 2004 REF: CRR MMI-SPR-18555 Rashmi C N(Sasken)
245 // This flag will indicate when we are in FDN menu
246 int menuFDN;
247 extern T_call call_data;
248
249
250 /*******************************************************************************
251
252 Private methods
253
254 *******************************************************************************/
255
256 /*******************************************************************************
257
258 $Function: Mmir_BaseAddress
259
260 $Description: returns the base address of the Master Index Table
261
262 $Returns: As above
263
264 $Arguments: none.
265
266 *******************************************************************************/
267
268 /* Provide a local routine which will perform the protection
269 method. This will scan the list of protected actions, looking
270 for the provided function, if it isn't a protected function
271 then we will just call it directly, otherwise we will guard
272 it with the PIN2 security code if we have a protected book
273 */
274 static int Protected( tProtectFunction FunTag, tProtectFunction FunPtr, tBookMfwMenu *Menu, tBookMfwMenuItem *Item )
275 {
276 pBookMfwWin win_data = (pBookMfwWin) bookWindowData();
277 pBookPhonebook book = ((pBookStandard)win_data->user)->phbk;
278 int i;
279
280 /* Check for a protected book being used (details to be sorted
281 out at a later date)
282 */
283
284 // Sep 22, 2004 REF: CRR 21388 xvilliva
285 // We check if the call is not from FDN menu and if the current storage
286 // for phonebook is internal phone book, we avoid asking Pin2 accordingly.
287 if(menuFDN == 0 && bookActiveBook(WRITE) == PHB_IPB)
288 {
289 //Do nothing.
290 }
291 // May 3, 2004 REF: CRR MMI-SPR-18555 Rashmi C N(Sasken)
292 // Pin2 should be prompted when user does FDN related operations in FDN menu
293 // In FDN menu, receie an active call and FDN is disabled, pin2 should not be prompted for in call addressbook operations
294 else if ( phb_get_mode() == PHB_RESTRICTED || (menuFDN && (call_data.calls.numCalls==0)))
295 {
296 /* Is the requested function one of the ones we need
297 to protect ?
298 */
299 TRACE_FUNCTION("Phone Book in FDN mode:ask for pin 2");
300 for ( i = 0; ProtectedActions[i]; i++ )
301 {
302 if ( FunTag == ProtectedActions[i] )
303 {
304 /* Yup, so we need to store the pending action for
305 this window, this will be invoked by the checking
306 operation, indirectly, if the check is successful
307 */
308 book->pin2_next = (T_VOID_FUNC) FunPtr;
309
310 //We're cheating and passing the current window to the
311 //handler via the unused menu parameter -- MC
312 book->menu = (tBookMfwMenu*) bookCurrentWindow();
313 book->item = Item;
314
315 /* Call out to get the pin2 number checked, this will
316 respond with a message back to this object, which
317 we will deal with on receipt
318 */
319 return pin2_check( bookCurrentWindow());
320 }
321 }
322 }
323
324 /* we've come through the list of functions and either don't
325 have a protected action to perform, or the book itself
326 is not protected, so just invoke the requested action
327 */
328 return (FunPtr)( (tBookMfwMenu*) bookCurrentWindow()/*Menu*/, Item );
329 }
330
331
332 /*
333 ** This function will apply PIN2 protection to the associated menu functions at ALL times
334 **
335 */
336 static int Pin2Rqd( tProtectFunction FunTag, tProtectFunction FunPtr, tBookMfwMenu *Menu, tBookMfwMenuItem *Item )
337 {
338 pBookMfwWin win_data = (pBookMfwWin) bookWindowData();
339 pBookPhonebook book = ((pBookStandard)win_data->user)->phbk;
340 // int i; // RAVI
341
342 /* Yup, so we need to store the pending action for
343 this window, this will be invoked by the checking
344 operation, indirectly, if the check is successful
345 */
346 book->pin2_next = (T_VOID_FUNC) FunPtr;
347
348 //We're cheating and passing the current window to the
349 //handler via the unused menu parameter -- MC
350 book->menu = (tBookMfwMenu*) bookCurrentWindow();
351 book->item = Item;
352
353 /* Call out to get the pin2 number checked, this will
354 respond with a message back to this object, which
355 we will deal with on receipt
356 */
357 return pin2_check( bookCurrentWindow());
358 }
359
360 /*******************************************************************************
361
362 Public methods
363
364 *******************************************************************************/
365
366 /* Menu Handlers
367
368 We are routing all of the phone book functionality through
369 this module to allow the functional modules to be developed
370 independantly where possible.
371
372 This gives a single interface point for the rest of the
373 MMI subsystem.
374
375 All of the following functions use the MENU_HANDLER macro,
376 as such they all have a common interface, this is not therefore
377 documented in each case. The following information is common
378 for each menu handler
379
380
381 $Returns: Status from worker routine
382
383 $Arguments: Menu, the menu from which the function was activated
384 Item, the item associated with the call
385
386 */
387
388
389 /*******************************************************************************
390
391 $Function: bookNameEnter
392
393 $Description:
394
395 Add new name to the phone book
396
397 $Returns: Refer Menu Handlers Definition Block Above
398
399 $Arguments: Refer Menu Handlers Definition Block Above
400
401 *******************************************************************************/
402
403 PROTECTED_MENU_HANDLER( bookNameEnter )
404 {
405 //recast the menu parameter as the current window -- MC
406 T_MFW_HND win = (T_MFW_HND)Menu;
407 T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
408 tBookStandard *data = (tBookStandard *) win_data->user;
409 T_phbk *Phbk = data->phbk;
410
411 TRACE_FUNCTION("bookNameEnter");
412 /* Clear the input editor structures before we go any further
413 */
414
415 if (Phbk->UpdateAction!=ADD_FROM_IDLE)
416 memset( Phbk->phbk->edt_buf_number, '\0', PHB_MAX_LEN );
417 /*MC SPR 1257, replacing PHB_MAX_LEN with MAX_ALPHA_LEN for name strings*/
418 memset( Phbk->phbk->edt_buf_name, '\0', MAX_ALPHA_LEN );
419 /* Indicate this is an additional entry being created
420 */
421 Phbk->UpdateAction = CREATE_ENTRY;
422
423 // May 3, 2004 REF: CRR MMI-SPR-18555 Rashmi C N(Sasken)
424 // As the book is being changed for FDN menu operations, we need to
425 // get back the current book for the normal phonbook operations
426 Phbk->current.status.book = bookActiveBook(READ);
427
428 /* Determine if we have room to add any new entries
429 */
430 bookGetCurrentStatus( &Phbk->phbk->current.status );
431 if ( Phbk->phbk->current.status.avail_entries )
432 {
433 /* We are okay to input the number, use a worker routine
434 from the input handler module to actually deal with this
435 */
436 Phbk->input_number_win = bookInputStartNumberEditor( win, Phbk->edt_buf_number );
437 }
438 else
439 {
440 /* We have no room available to add the name, so check if
441 we have filled the namespace or not
442 */
443
444 /*If FDN menu active and no room for entries, then display FDN list full */
445 tIndexTagNames Tag ;
446 if(menuFDN)
447 {
448 Tag = ( Phbk->phbk->current.status.used_entries )
449 ? TxtFDNListFull : TxtOperationNotAvail; //SPR 31710 x0021308:RamG
450 }
451 else
452 {
453 Tag = ( Phbk->phbk->current.status.used_entries )
454 ? TxtPhbkFull : TxtOperationNotAvail;
455 }
456 bookShowInformation( win, Tag,NULL, NULL );
457
458
459 }
460
461 /* Always return event consumed
462 */
463 return MFW_EVENT_CONSUMED;
464 }
465
466
467 /*******************************************************************************
468
469 $Function: bookNameEdit
470
471 $Description:
472
473 Edit the name in the phone book
474
475 $Returns: Refer Menu Handlers Definition Block Above
476
477 $Arguments: Refer Menu Handlers Definition Block Above
478
479 *******************************************************************************/
480
481 PROTECTED_MENU_HANDLER( bookNameEdit )
482 {
483 //recast the menu parameter as the current window -- MC
484 T_MFW_HND win = /*mfwParent( mfw_header() )*/(T_MFW_HND)Menu;
485 T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
486 tBookStandard *data = (tBookStandard *) win_data->user;
487 T_phbk *Phbk = data->phbk;
488
489 /* Indicate this is an edit of a current entry
490 */
491 Phbk->UpdateAction = MODIFY_EXISTING;
492 /*MC SPR 1327, if UPN don't change phonebook type*/
493 if (data->phbk->current.status.book != PHB_UPN)
494 data->phbk->current.status.book = bookActiveBook(READ);
495
496 /*api - clear buffers before edit
497 */
498 memset( Phbk->phbk->edt_buf_number, '\0', PHB_MAX_LEN );
499 memset( Phbk->phbk->edt_buf_name, '\0', MAX_ALPHA_LEN );
500
501 TRACE_EVENT_P2("current phbk is = %d and current entry is = %d", data->phbk->current.status.book,data->phbk->current.entry[ data->phbk->current.selectedName ].book);
502
503 if(data->phbk->current.status.book == PHB_ADN_FDN)
504 {
505 if(data->phbk->current.entry[ data->phbk->current.selectedName ].book==PHB_FDN)
506 {
507 bookActivateFDN((T_MFW_HND)Menu);
508 }
509 else
510 {
511 /* And populate the buffers with the information to be modified
512 */
513 #ifdef NO_ASCIIZ
514 /*MC , SPR 1242 copy whole name, merged from b-sample build*/
515 memcpy( Phbk->phbk->edt_buf_name, Phbk->current.entry[ Phbk->current.selectedName ].name.data, MAX_ALPHA_LEN /*Phbk->current.entry[ Phbk->current.selectedName ].name.len*/);
516 #else
517 memcpy( Phbk->phbk->edt_buf_name, Phbk->current.entry[ Phbk->current.selectedName ].name, MAX_ALPHA_LEN );
518 #endif
519 memcpy( Phbk->phbk->edt_buf_number, Phbk->current.entry[ Phbk->current.selectedName ].number, PHB_MAX_LEN );
520
521 /* And edit the entry we currently have active
522 */
523 Phbk->input_number_win = bookInputStartNumberEditor( win, Phbk->edt_buf_number );
524 }
525 }
526 else
527 {
528 /* And populate the buffers with the information to be modified
529 */
530 #ifdef NO_ASCIIZ
531 /*MC , SPR 1242 copy whole name, merged from b-sample build*/
532 memcpy( Phbk->phbk->edt_buf_name, Phbk->current.entry[ Phbk->current.selectedName ].name.data, MAX_ALPHA_LEN/*Phbk->current.entry[ Phbk->current.selectedName ].name.len*/);
533 #else
534 memcpy( Phbk->phbk->edt_buf_name, Phbk->current.entry[ Phbk->current.selectedName ].name, MAX_ALPHA_LEN );
535 #endif
536 memcpy( Phbk->phbk->edt_buf_number, Phbk->current.entry[ Phbk->current.selectedName ].number, PHB_MAX_LEN );
537
538 /* And edit the entry we currently have active
539 */
540 Phbk->input_number_win = bookInputStartNumberEditor( win, Phbk->edt_buf_number );
541 }
542 /* Always return event consumed
543 */
544 return MFW_EVENT_CONSUMED;
545 }
546
547
548 /*******************************************************************************
549
550 $Function: bookNameDelete
551
552 $Description:
553
554 Delete name in phone book
555
556 $Returns: Refer Menu Handlers Definition Block Above
557
558 $Arguments: Refer Menu Handlers Definition Block Above
559
560 *******************************************************************************/
561
562 PROTECTED_MENU_HANDLER( bookNameDelete )
563 {
564
565 //recast the menu parameter as the current window -- MC
566 //and pass it on
567 //when ADN_FDN phonebook in use check if current entry is FDN
568 //is so then call information screen or allow entry to be deleted. --- AP 23/01/02
569 //Issue 1944 MZ Allow an entry in FDN list to be deleted.
570 T_MFW_HND win = (T_MFW_HND)Menu;
571 T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
572 tBookStandard *data = (tBookStandard *) win_data->user;
573
574 /*MC SPR 1327, if UPN don't change phonebook type*/
575 if (data->phbk->current.status.book != PHB_UPN)
576 data->phbk->current.status.book = bookActiveBook(READ);
577 if(data->phbk->current.status.book == PHB_ADN_FDN)
578 if(data->phbk->current.entry[ data->phbk->current.selectedName ].book==PHB_FDN)
579 bookActivateFDN((T_MFW_HND)Menu);
580 else
581 bookDeleteEntry((T_MFW_HND)Menu);
582 else
583 bookDeleteEntry((T_MFW_HND)Menu);
584
585 return MFW_EVENT_CONSUMED;
586 }
587
588 /*******************************************************************************
589
590 $Function: bookNameCall
591
592 $Description:
593
594 Call name in phone book
595
596 $Returns: Refer Menu Handlers Definition Block Above
597
598 $Arguments: Refer Menu Handlers Definition Block Above
599
600 *******************************************************************************/
601
602 PROTECTED_MENU_HANDLER( bookNameCall )
603 { T_MFW_HND win = mfwParent( mfw_header() );
604 T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
605 tBookStandard *data = (tBookStandard *) win_data->user;
606 T_phbk *Phbk = data->phbk;
607
608 callNumber( Phbk->current.entry[ Phbk->current.selectedName ].number );
609 return MFW_EVENT_CONSUMED;
610 }
611
612
613 /*******************************************************************************
614
615 $Function: bookDeleteAll
616
617 $Description:
618
619 Delete name in phone book
620
621 $Returns: Refer Menu Handlers Definition Block Above
622
623 $Arguments: Refer Menu Handlers Definition Block Above
624
625 *******************************************************************************/
626
627 PROTECTED_MENU_HANDLER( bookDeleteAll )
628 {
629 T_MFW_HND win = mfwParent( mfw_header() );
630 T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
631 tBookStandard *data = (tBookStandard *) win_data->user;
632 T_phbk *Phbk = data->phbk;
633
634 // Aug 18, 2006 ER: OMAPS00089840 x0039928
635 bookDeleteBook(Phbk->win);
636
637 return MFW_EVENT_CONSUMED;
638 }
639
640 // Nov 10, 2006 DRT: OMAPS000103354 x0039928
641 // Fix: phb_delete_book() is called with proper book information instead of bookDeleteBook().
642 /*******************************************************************************
643
644 $Function: bookDeleteRec
645
646 $Description:
647
648 Delete name in phone book
649
650 $Returns: Refer Menu Handlers Definition Block Above
651
652 $Arguments: Refer Menu Handlers Definition Block Above
653
654 *******************************************************************************/
655
656 PROTECTED_MENU_HANDLER( bookDeleteRec )
657 {
658 T_MFW_HND win = mfwParent( mfw_header() );
659 T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
660 tBookStandard *data = (tBookStandard *) win_data->user;
661 T_phbk *Phbk = data->phbk;
662
663 if (phb_delete_book(Phbk->current.status.book)==MFW_PHB_OK)
664 {
665 MmiBookSetCurrentText( TxtEntryDeleted);
666 bookShowInformation( Phbk->win, MmiBookCurrentText(),NULL, NULL );
667 bookPhonebookDestroy(Phbk->win);
668 }
669 else
670 {
671 MmiBookSetCurrentText(TxtFailed);
672 bookShowInformation( Phbk->win, MmiBookCurrentText(),NULL, NULL );
673 bookPhonebookDestroy(Phbk->win);
674 }
675
676 return MFW_EVENT_CONSUMED;
677 }
678
679 /*******************************************************************************
680
681 $Function: bookNameSearch
682
683 $Description:
684
685 Search for name in phone book
686
687 $Returns: Refer Menu Handlers Definition Block Above
688
689 $Arguments: Refer Menu Handlers Definition Block Above
690
691 *******************************************************************************/
692
693 PROTECTED_MENU_HANDLER( bookNameSearch )
694 {
695 T_MFW_HND win = mfwParent( mfw_header() );
696 T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
697 tBookStandard *data = (tBookStandard *) win_data->user;
698
699 data->phbk->current.KindOfSearch = SEARCH_BY_NAME;
700 data->phbk->current.status.book = bookActiveBook(READ);
701 data->phbk->search_win = bookSearchStart( data->phbk->win );
702
703 return MFW_EVENT_CONSUMED;
704 }
705
706
707
708 /*******************************************************************************
709
710 $Function: bookNumberSearch
711
712 $Description:
713
714 Search for name in phone book, order the elements by the phone book number
715
716 $Returns: Refer Menu Handlers Definition Block Above
717
718 $Arguments: Refer Menu Handlers Definition Block Above
719
720 *******************************************************************************/
721
722 PROTECTED_MENU_HANDLER( bookNumberSearch )
723 {
724 T_MFW_HND win = mfwParent( mfw_header() );
725 T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
726 tBookStandard *data = (tBookStandard *) win_data->user;
727
728 data->phbk->current.KindOfSearch = SEARCH_BY_NUMBER;
729 data->phbk->current.status.book = bookActiveBook(READ);
730 data->phbk->search_win = bookSearchStart( data->phbk->win );
731
732 return MFW_EVENT_CONSUMED;
733 }
734
735
736 /*******************************************************************************
737
738 $Function: bookLocationSearch
739
740 $Description:
741
742 Search for number in phone book, using SIM location to order search
743 window output
744
745 $Returns: Refer Menu Handlers Definition Block Above
746
747 $Arguments: Refer Menu Handlers Definition Block Above
748
749 *******************************************************************************/
750
751 PROTECTED_MENU_HANDLER( bookLocationSearch )
752 {
753 T_MFW_HND win = mfwParent( mfw_header() );
754 T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
755 tBookStandard *data = (tBookStandard *) win_data->user;
756
757 data->phbk->current.KindOfSearch = SEARCH_BY_LOCATION;
758 data->phbk->current.status.book = bookActiveBook(READ);
759 data->phbk->search_win = bookSearchStart( data->phbk->win );
760
761 return MFW_EVENT_CONSUMED;
762 }
763
764
765 /*******************************************************************************
766
767 $Function: bookNameDeleteAll
768
769 $Description:
770
771 Delete all names associated with a phone book
772
773 $Returns: Refer Menu Handlers Definition Block Above
774
775 $Arguments: Refer Menu Handlers Definition Block Above
776
777 *******************************************************************************/
778
779 PROTECTED_MENU_HANDLER( bookNameDeleteAll )
780 {
781 return NULL;
782 }
783
784
785
786
787 /*******************************************************************************
788
789 $Function: bookNameMessage
790
791 $Description:
792
793 Send message to the number selected
794
795 $Returns: Refer Menu Handlers Definition Block Above
796
797 $Arguments: Refer Menu Handlers Definition Block Above
798
799 *******************************************************************************/
800
801 PROTECTED_MENU_HANDLER( bookSendMessage )
802 {
803 T_MFW_HND win = mfwParent( mfw_header() );
804 T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
805 tBookStandard *data = (tBookStandard *) win_data->user;
806 T_phbk *Phbk = data->phbk;
807 T_SmsUserData SmsData;
808
809 /* Copy the number and name information to the SMS buffer
810 */
811 /* API - 13-01-03 - 1409 - Minus the Phbk->current.missedCallsOffset to point at the correct number in the missed calls */
812 memcpy( SmsData.NumberBuffer, (UBYTE *) Phbk->current.entry[ Phbk->current.selectedName - Phbk->current.missedCallsOffset ].number,
813 sizeof( SmsData.NumberBuffer ) );
814 /*MC SPR 1257, zero whole buffer for unicode*/
815 memset(SmsData.TextBuffer, '\0', MAX_MSG_LEN_ARRAY);
816 /* OMAPS00083148 - Assignement called_from_reply_item to FALSE is added*/
817 SmsData.called_from_reply_item = FALSE;
818
819 /* Create a dynamic menu window to perform the SMS sending
820 */
821 SmsSend_SEND_start( win, (void *) &SmsData );
822
823 return MFW_EVENT_CONSUMED;
824
825 }
826
827
828 /*******************************************************************************
829
830 $Function: bookGetOwnNumber
831
832 $Description:
833
834 Get own number
835
836 $Returns: Refer Menu Handlers Definition Block Above
837
838 $Arguments: Refer Menu Handlers Definition Block Above
839
840 *******************************************************************************/
841
842 PROTECTED_MENU_HANDLER( bookGetOwnNumber )
843 {
844 T_MFW_HND win = mfwParent( mfw_header() );
845 T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
846 tBookStandard *data = (tBookStandard *) win_data->user;
847
848
849 data->phbk->current.KindOfSearch = SEARCH_BY_NAME;
850 data->phbk->current.status.book = PHB_UPN;
851 data->phbk->search_win = bookSearchStart( data->phbk->win );
852
853 return MFW_EVENT_CONSUMED;
854 }
855
856
857 /*******************************************************************************
858
859 $Function: bookSetOwnNumber
860
861 $Description:
862
863 Set own number
864
865 $Returns: Refer Menu Handlers Definition Block Above
866
867 $Arguments: Refer Menu Handlers Definition Block Above
868
869 *******************************************************************************/
870
871 PROTECTED_MENU_HANDLER( bookSetOwnNumber )
872 { T_MFW_HND win = mfwParent( mfw_header() );
873 T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
874 tBookStandard *data = (tBookStandard *) win_data->user;
875 T_phbk *Phbk = data->phbk;
876
877 /* Clear the input editor structures before we go any further
878 */
879 /*MC SPR 1257, replacing PHB_MAX_LEN with MAX_ALPHA_LEN for name strings*/
880 memset( Phbk->phbk->edt_buf_name, '\0', MAX_ALPHA_LEN );
881 memset( Phbk->phbk->edt_buf_number, '\0', PHB_MAX_LEN );
882
883 /* Indicate this is an additional entry being created
884 */
885 Phbk->UpdateAction = CREATE_ENTRY;
886 data->phbk->current.status.book = PHB_UPN;
887 /* Determine if we have room to add any new entries
888 */
889 bookGetCurrentStatus( &Phbk->phbk->current.status );
890 if ( Phbk->phbk->current.status.avail_entries )
891 {
892 /* We are okay to input the number, use a worker routine
893 from the input handler module to actually deal with this
894 */
895 Phbk->input_number_win = bookInputStartNumberEditor( win, Phbk->edt_buf_number );
896 }
897 else
898 {
899 /* We have no room available to add the name, so check if
900 we have filled the namespace or not
901 */
902 tIndexTagNames Tag = ( Phbk->phbk->current.status.used_entries )
903 ? TxtMyNumberFull : TxtOperationNotAvail; //SPR 31705 x0021308:RamG.
904 bookShowInformation( win, Tag, NULL, NULL );
905 }
906
907 /* Always return event consumed
908 */
909 return MFW_EVENT_CONSUMED;
910 }
911
912
913 /*******************************************************************************
914
915 $Function: bookRepRedNameEnter
916
917 $Description:
918
919 Enter name associated with Reply-Redial number
920
921 $Returns: Refer Menu Handlers Definition Block Above
922
923 $Arguments: Refer Menu Handlers Definition Block Above
924
925 *******************************************************************************/
926
927 PROTECTED_MENU_HANDLER( bookRepRedNameEnter )
928 {
929 // Sep 22, 2004 REF: CRR 21392 xvilliva
930 // We use the variable "Menu", similar to bookNameEnter() to avoid a crash.
931 T_MFW_HND win = (T_MFW_HND)Menu;
932 T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
933 tBookStandard *data = (tBookStandard *) win_data->user;
934 T_phbk *Phbk = data->phbk;
935 char* selected_number;
936
937 selected_number = (char*)data->phbk->current.entry[data->phbk->current.selectedName].number;
938 // Sep 22, 2004 REF: CRR 21392 xvilliva
939 // We get the exact book that is selected.
940 data->phbk->current.status.book = bookActiveBook(WRITE);
941
942 Phbk->UpdateAction = CREATE_ENTRY;
943 bookGetCurrentStatus( &Phbk->phbk->current.status );
944 if ( Phbk->phbk->current.status.avail_entries )
945 {
946 /* We are okay to input the number, use a worker routine
947 from the input handler module to actually deal with this
948 */
949
950 bookAddName(win,selected_number);
951 }
952 else
953 {
954 /* We have no room available to add the name, so check if
955 we have filled the namespace or not
956 */
957 tIndexTagNames Tag = ( Phbk->phbk->current.status.used_entries )
958 ? TxtPhbkFull : TxtOperationNotAvail;
959 bookShowInformation( win, Tag, NULL, NULL );
960 }
961 /* free( selected_number); x0039928 - Lint warning removal */
962 return 1;
963 }
964
965
966 /*******************************************************************************
967
968 $Function: bookRepRedDelete
969
970 $Description:
971
972 Delete name associated with Reply-Redial Number
973
974 $Returns: Refer Menu Handlers Definition Block Above
975
976 $Arguments: Refer Menu Handlers Definition Block Above
977
978 *******************************************************************************/
979
980 PROTECTED_MENU_HANDLER( bookRepRedDelete )
981 {
982 T_MFW_HND win = mfwParent( mfw_header() );
983 T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
984 tBookStandard *data = (tBookStandard *) win_data->user;
985 T_phbk *Phbk = data->phbk;
986
987
988
989 deleteFromFile(Phbk,Phbk->current.status.book);
990 bookShowInformation( Phbk->win, MmiBookCurrentText(),NULL, NULL );
991 bookMenuDestroy(Phbk->menu_call_options_win);
992 // July 21, 2006 REF:DR OMAPS00085695 x0047075
993 // Fix : Always sending the CALLS_LIST_INIT event whenever we delete an entry from LDN ,LRN,LMN phonebook.
994 // if(Phbk->current.status.used_entries > 0)
995 // SEND_EVENT(Phbk->calls_list_win, SEARCH_SCROLL_UP, 0, 0 );
996 SEND_EVENT(Phbk->calls_list_win, CALLS_LIST_INIT, 0, (void*)Phbk->current.status.book );
997 return 1;
998 }
999
1000
1001 /*******************************************************************************
1002
1003 $Function: bookCallListDetails
1004
1005 $Description:
1006
1007 Retrieve details for call list
1008
1009 $Returns: Refer Menu Handlers Definition Block Above
1010
1011 $Arguments: Refer Menu Handlers Definition Block Above
1012
1013 *******************************************************************************/
1014
1015 PROTECTED_MENU_HANDLER( bookCallListDetails )
1016 {
1017 T_MFW_HND win = mfwParent( mfw_header() );
1018 T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
1019 tBookStandard *data = (tBookStandard *) win_data->user;
1020 T_phbk *Phbk = data->phbk;
1021
1022 bookCallDetailsStart( Phbk->win);
1023 return 1;
1024
1025 }
1026
1027
1028
1029 /*******************************************************************************
1030
1031 $Function: bookServiceNumbers
1032
1033 $Description:
1034
1035 Get service numbers
1036
1037 $Returns: Refer Menu Handlers Definition Block Above
1038
1039 $Arguments: Refer Menu Handlers Definition Block Above
1040
1041 *******************************************************************************/
1042
1043 PROTECTED_MENU_HANDLER( bookServiceNumbers )
1044 {
1045 T_MFW_HND win = mfwParent( mfw_header() );
1046 T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
1047 tBookStandard *data = (tBookStandard *) win_data->user;
1048
1049 data->phbk->current.KindOfSearch = SEARCH_BY_NAME;
1050 data->phbk->current.status.book = PHB_SDN;
1051 data->phbk->search_win = bookSearchStart( data->phbk->win );
1052
1053 return MFW_EVENT_CONSUMED;
1054 }
1055
1056
1057 /*******************************************************************************
1058
1059 $Function: bookMemoryStatus
1060
1061 $Description:
1062
1063 Show the status of the phone book memory.
1064
1065 $Returns: Refer Menu Handlers Definition Block Above
1066
1067 $Arguments: Refer Menu Handlers Definition Block Above
1068
1069 *******************************************************************************/
1070
1071 PROTECTED_MENU_HANDLER( bookMemoryStatus )
1072 {
1073 /* This performs the memory view functions, and returns MFW_EVENT_CONSUMED
1074 in all cases.
1075 */
1076 bookMemoryView();
1077 return MFW_EVENT_CONSUMED;
1078 }
1079
1080
1081 /*******************************************************************************
1082
1083 $Function: bookFDNActivate
1084
1085 $Description:
1086
1087 The FDN Activate routine is simply a wrapper for the real
1088 FDN Activate handler which resides in mmiPins.c
1089
1090 $Returns: Refer Menu Handlers Definition Block Above
1091
1092 $Arguments: Refer Menu Handlers Definition Block Above
1093
1094 *******************************************************************************/
1095
1096 PROTECTED_MENU_HANDLER( bookFDNActivate )
1097 {
1098 return fdnActivate( Menu, Item );
1099 }
1100
1101
1102 /*******************************************************************************
1103
1104 $Function: bookFDNDeactivate
1105
1106 $Description:
1107
1108 The FDN Deactivate routine is simply a wrapper for the real
1109 FDN Deactivate handler which resides in mmiPins.c
1110
1111 $Returns: Refer Menu Handlers Definition Block Above
1112
1113 $Arguments: Refer Menu Handlers Definition Block Above
1114
1115 *******************************************************************************/
1116
1117 PROTECTED_MENU_HANDLER( bookFDNDeactivate )
1118 {
1119 return fdnDeactivate( Menu, Item );
1120 }
1121
1122 /*******************************************************************************
1123
1124 $Function: bookEnterLDN
1125
1126 $Description:
1127
1128 Enters de LDN List
1129
1130 $Returns: Refer Menu Handlers Definition Block Above
1131
1132 $Arguments: Refer Menu Handlers Definition Block Above
1133
1134 *******************************************************************************/
1135
1136 PROTECTED_MENU_HANDLER( bookEnterLDN )
1137 {
1138 T_MFW_HND win = mfwParent( mfw_header() );
1139
1140 bookPhonebookStart(win,PhbkRedialListNormal);
1141 return MFW_EVENT_CONSUMED;
1142 }
1143 /*******************************************************************************
1144
1145 $Function: bookEnterLRN
1146
1147 $Description:
1148
1149 Enters de LRN List
1150
1151 $Returns: Refer Menu Handlers Definition Block Above
1152
1153 $Arguments: Refer Menu Handlers Definition Block Above
1154
1155 *******************************************************************************/
1156
1157 PROTECTED_MENU_HANDLER( bookEnterLRN )
1158 {
1159 T_MFW_HND win = mfwParent( mfw_header() );
1160
1161 bookPhonebookStart(win,PhbkReplyListNormal);
1162 return MFW_EVENT_CONSUMED;
1163 }
1164
1165 /*******************************************************************************
1166
1167 $Function: bookEnterLMN
1168
1169 $Description:
1170
1171 Enters de LMN List
1172
1173 $Returns: Refer Menu Handlers Definition Block Above
1174
1175 $Arguments: Refer Menu Handlers Definition Block Above
1176
1177 *******************************************************************************/
1178
1179 PROTECTED_MENU_HANDLER( bookEnterLMN )
1180 {
1181 T_MFW_HND win = mfwParent( mfw_header() );
1182
1183 /* Issue Number : MMI-FIX-1216 on 07/04/04 by Nishikant Kulkarni and Ajith K.P
1184 Bug : missed call message is displayed after deleting all missed calls from the list
1185 Solution: idle_data.missedcalls flag was not updated if the user ckecks/deletes the missed call list
1186 We rectified the same.*/
1187
1188 idle_data.missedCalls = 0;
1189
1190 bookPhonebookStart(win,PhbkMissedCallsListNormal);
1191 return MFW_EVENT_CONSUMED;
1192 }
1193
1194 /* SPR#1112 - Internal phonebook menu options*/
1195 #ifdef INT_PHONEBOOK
1196
1197 /*******************************************************************************
1198
1199 $Function: bookSelectBook
1200
1201 $Description: Open the select book menu, preselecting the appropriate option
1202
1203 $Returns: Refer Menu Handlers Definition Block Above
1204
1205 $Arguments: Refer Menu Handlers Definition Block Above
1206
1207 *******************************************************************************/
1208
1209 PROTECTED_MENU_HANDLER( bookSelectBook )
1210 {
1211 T_MFW_HND win = mfwParent( mfw_header() );
1212 T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
1213 tBookStandard *data = (tBookStandard *) win_data->user;
1214 T_phbk *Phbk = data->phbk;
1215 T_MFW_HND menu_win;
1216 UBYTE selectedBook;
1217
1218 TRACE_FUNCTION("bookSelectBook");
1219
1220 if (bookGetBookAvailable())
1221 {
1222 selectedBook = (UBYTE)bookGetBookSelected();
1223 menu_win = bookMenuStart(Phbk->win, SelectBookAttributes(), 0);
1224 SEND_EVENT(menu_win, DEFAULT_OPTION, NULL, (void *)&selectedBook); // Add our own callback
1225 }
1226 else
1227 {
1228 bookShowInformation( Phbk->win, TxtNotAvailable, NULL, NULL);
1229 }
1230
1231 return MFW_EVENT_CONSUMED;
1232 }
1233
1234
1235 /*******************************************************************************
1236
1237 $Function: bookSelectBookSIM
1238
1239 $Description: Select the SIM phone book
1240
1241 $Returns: Refer Menu Handlers Definition Block Above
1242
1243 $Arguments: Refer Menu Handlers Definition Block Above
1244
1245 *******************************************************************************/
1246
1247 PROTECTED_MENU_HANDLER( bookSelectBookSIM )
1248 {
1249 T_MFW_HND win = mfwParent( mfw_header() );
1250 T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
1251 tBookStandard *data = (tBookStandard *) win_data->user;
1252 T_phbk *Phbk = data->phbk;
1253
1254 if (bookGetBookAvailable())
1255 {
1256 bookSetBookSelected(FALSE);
1257 bookShowInfoScreen( Phbk->win, TxtPleaseWait, NULL, (T_VOID_FUNC)bookChangePB, (USHORT)bookGetBookSelected(), 100);
1258 }
1259 else
1260 bookShowInfoScreen( Phbk->win, TxtPhonebook, TxtChanged, NULL, NULL, 3000);
1261
1262 return MFW_EVENT_CONSUMED;
1263 }
1264
1265
1266 /*******************************************************************************
1267
1268 $Function: bookSelectBookSIM
1269
1270 $Description: Select the SIM phone book
1271
1272 $Returns: Refer Menu Handlers Definition Block Above
1273
1274 $Arguments: Refer Menu Handlers Definition Block Above
1275
1276 *******************************************************************************/
1277
1278 PROTECTED_MENU_HANDLER( bookSelectBookPhone )
1279 {
1280 T_MFW_HND win = mfwParent( mfw_header() );
1281 T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
1282 tBookStandard *data = (tBookStandard *) win_data->user;
1283 T_phbk *Phbk = data->phbk;
1284
1285 if (bookGetBookAvailable())
1286 {
1287 bookSetBookSelected(TRUE);
1288 bookShowInfoScreen( Phbk->win, TxtPleaseWait, NULL, (T_VOID_FUNC)bookChangePB, (USHORT)bookGetBookSelected(), 100);
1289 }
1290 else
1291 {
1292 bookShowInformation( Phbk->win, TxtNotAvailable,NULL, NULL );
1293 }
1294
1295 return MFW_EVENT_CONSUMED;
1296 }
1297
1298 /*******************************************************************************
1299
1300 $Function: bookCopyEntry
1301
1302 $Description: Copy a single entry from/to internal memory
1303
1304 $Returns: Refer Menu Handlers Definition Block Above
1305
1306 $Arguments: Refer Menu Handlers Definition Block Above
1307
1308 *******************************************************************************/
1309
1310 PROTECTED_MENU_HANDLER( bookCopyEntry )
1311 {
1312 T_MFW_HND win = mfwParent( mfw_header() );
1313 T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
1314 tBookStandard *data = (tBookStandard *) win_data->user;
1315 T_phbk *Phbk = data->phbk;
1316
1317 TRACE_FUNCTION( "bookCopyEntry()" );
1318
1319 if (bookGetBookAvailable())
1320 {
1321 /* Show Please Wait dialog briefly, then call copy function
1322 */
1323 bookShowInfoScreen( Phbk->win, TxtPleaseWait, NULL, (T_VOID_FUNC)bookCopySingle, (USHORT)FALSE, 100);
1324 }
1325 else
1326 {
1327 bookShowInformation( Phbk->win, TxtNotAvailable, NULL, NULL);
1328 }
1329
1330 return MFW_EVENT_CONSUMED;
1331 }
1332
1333 /*******************************************************************************
1334
1335 $Function: bookCopyAll
1336
1337 $Description: Copy all entries from/to internal memory
1338
1339 $Returns: Refer Menu Handlers Definition Block Above
1340
1341 $Arguments: Refer Menu Handlers Definition Block Above
1342
1343 *******************************************************************************/
1344
1345 PROTECTED_MENU_HANDLER( bookCopyAll )
1346 {
1347 T_MFW_HND win = mfwParent( mfw_header() );
1348 T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
1349 tBookStandard *data = (tBookStandard *) win_data->user;
1350 T_phbk *Phbk = data->phbk;
1351
1352 TRACE_FUNCTION( "bookCopyAll()" );
1353
1354 if (bookGetBookAvailable())
1355 {
1356 /* Copy
1357 */
1358 bookCopyMultiple(Phbk->win, FALSE, 0);
1359 }
1360 else
1361 {
1362 bookShowInformation( Phbk->win, TxtNotAvailable, NULL, NULL);
1363 }
1364
1365 return MFW_EVENT_CONSUMED;
1366 }
1367
1368 /*******************************************************************************
1369
1370 $Function: bookMoveEntry
1371
1372 $Description: Move a single entry from/to internal memory
1373
1374 $Returns: Refer Menu Handlers Definition Block Above
1375
1376 $Arguments: Refer Menu Handlers Definition Block Above
1377
1378 *******************************************************************************/
1379
1380 PROTECTED_MENU_HANDLER( bookMoveEntry )
1381 {
1382 T_MFW_HND win = mfwParent( mfw_header() );
1383 T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
1384 tBookStandard *data = (tBookStandard *) win_data->user;
1385 T_phbk *Phbk = data->phbk;
1386
1387 TRACE_FUNCTION( "bookMoveEntry()" );
1388
1389 if (bookGetBookAvailable())
1390 {
1391 /* Show Please Wait dialog briefly, then call move function
1392 */
1393 bookShowInfoScreen( Phbk->win, TxtPleaseWait, NULL, (T_VOID_FUNC)bookCopySingle, (USHORT)TRUE, 100);
1394 }
1395 else
1396 {
1397 bookShowInformation( Phbk->win, TxtNotAvailable, NULL, NULL);
1398 }
1399
1400 return MFW_EVENT_CONSUMED;
1401 }
1402
1403 /*******************************************************************************
1404
1405 $Function: bookMoveAll
1406
1407 $Description: Move all entries from/to internal memory
1408
1409 $Returns: Refer Menu Handlers Definition Block Above
1410
1411 $Arguments: Refer Menu Handlers Definition Block Above
1412
1413 *******************************************************************************/
1414
1415 PROTECTED_MENU_HANDLER( bookMoveAll )
1416 {
1417 T_MFW_HND win = mfwParent( mfw_header() );
1418 T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
1419 tBookStandard *data = (tBookStandard *) win_data->user;
1420 T_phbk *Phbk = data->phbk;
1421
1422 TRACE_FUNCTION( "bookMoveAll()" );
1423
1424 if (bookGetBookAvailable())
1425 {
1426 /* Show Please Wait dialog briefly, then call copy function
1427 */
1428 bookCopyMultiple(Phbk->win, TRUE, 0);
1429 }
1430 else
1431 {
1432 bookShowInformation( Phbk->win, TxtNotAvailable, NULL, NULL);
1433 }
1434
1435 return MFW_EVENT_CONSUMED;
1436 }
1437
1438 #endif
1439
1440 PIN2RQD_MENU_HANDLER( CphsAlsLock )
1441 {
1442 return cphs_lock_als( Menu, Item );
1443 }
1444
1445 PIN2RQD_MENU_HANDLER( CphsAlsUnlock )
1446 {
1447 return cphs_unlock_als( Menu, Item );
1448 }
1449 /*******************************************************************************
1450
1451 End of File
1452
1453 *******************************************************************************/
1454
1455
1456