comparison src/ui/bmi/mmiCall.h @ 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: Call
15 $File: mmiCall.h
16 $Revision: 1.0
17
18 $Author: Condat(UK)
19 $Date: 25/10/00
20
21 ********************************************************************************
22
23 Description:
24
25 ********************************************************************************
26
27 $History: mmiCall.h
28
29
30 August 01, 2007 DR: OMAPS00137399 x0080701 (Bharat)
31 Description: COMBO PLUS: Voice can not be heard in a call when MP3 tone was set
32 Have an MP3 tone set as Ringer. Make a call to the target.
33 Accept the same, no voice can be heard from the calling
34 device or from the board that received
35 Issue: Timing Synchronization Issue between BMI-ACI-L1.
36 BMI calls sAT_A to accept the call. ACI then sends the RING_OFF signal
37 to BMI, wherein BMI does a Ringer Stop. After this, ACI calls Vocoder
38 Enable. However, the Ringer Stop goes to L1 much later after Vocoder
39 Enable reaches L1 due to which the Vocoder eventually gets disabled.
40 Solution: The Vocoder Enable Implementation is removed from ACI and
41 shall be called by BMI on receipt of AS_STOP_IND
42 (AS_STOP_IND is the message sent by AS to BMI when BMI invokes
43 as_stop for ringer_stop). This way, it is assured that the Vocoder
44 Enable Request reaches L1 only after Ringer Stop is completely done
45
46 Oct 8 2006 OMAPS00097714 x0039928(sumanth)
47 TTY HCO/VCO options in MMI
48
49 Mar 11, 2006 REF:DR:OMAPS00061467 x0035544
50 Description: 27.22.4.13.3 SET UP CALL (display of icons) fails.
51 Solution: created a variable of type T_SAT_IconData at the structure T_call to store the Icon data
52 inorder to display it on calling screen.
53
54 xpradipg - LOCOSTO-ENH-31895 : 23 June 2005
55 Description: Support for various audio profiles
56 Solution: The support for audio device's carkit/headset/loudspeaker/handheld.
57 The audio device is enabled as per the user actions.
58
59 25/10/00 Original Condat(UK) BMI version.
60
61
62 Mar 28, 2006 REF:ER OMAPS00071798 x0043642
63 Added new options in BMI to accept the value for tty audio mode,
64 and the accepted value is passed as parameter in function call sAT_PercentCTTY
65
66 $End
67
68 *******************************************************************************/
69
70 #ifndef _DEF_MMI_CALL_H_
71 #define _DEF_MMI_CALL_H_
72
73 #define ALLOC_MEMORY mfwAlloc
74 #define FREE_MEMORY mfwFree
75
76 // xpradipg - LOCOSTO-ENH-31895 : 23 June 2005
77 #ifdef FF_MMI_AUDIO_PROFILE
78 #include "mfw_mme.h"
79 #endif
80 #include "mfw_phb.h"
81 #include "mfw_cm.h"
82 #include "MmiMmi.h"
83 #include "MmiDialogs.h" //GW 29/11/01 - Added
84 #include "MmiIdle.h" // SPR#0630 - SH - EDITOR_SIZE now defined in MmiIdle.h
85
86 typedef enum
87 {
88 CallNone=CallDummy,
89 CallNormal,
90 CallDone,
91 CallNew,
92 CallSingle,
93 CallTwo,
94 CallConference,
95 CallPrivateCall,
96 CallSingleMultiparty,
97 CallMultipartySingle
98
99 } E_CALL_TYPE;/*a0393213 warnings removal-typedef name added*/
100
101 typedef enum
102 {
103 ViewConnect,
104 ViewEnd,
105 ViewMenu,
106 ViewCalling,
107 ViewIncoming,
108 ViewDTMF,
109 ViewDTMFMenu,
110 ViewCallError,
111 ViewSelectPrivateCall,
112 ViewScratchPad,
113 ViewWaitingAnswer,
114 ViewAutoRedial,
115 ViewSendingDTMF,
116 ViewShortWait, //GW Added
117 ViewMulticallControl,
118 ViewMulticallControlCallWaiting,
119 ViewMulticallControlIncomingCall
120
121 } E_CALL_MESSAGE; /*a0393213 warnings removal-typedef name added*/
122
123 typedef enum
124 {
125 CallActive,
126 CallInactive
127
128 } E_CALL_STATUS; /*a0393213 warnings removal-typedef name added*/
129
130 extern UBYTE callStatus;
131 extern int idwithheld;
132
133 #define true 1
134 #define false 0
135
136 #define MAX_CALLS 6
137
138 /*mc, SPR 1319*/
139 #ifdef LSCREEN
140 #define MAX_CHAR PHB_MAX_LEN /*MC SPR 1442*/
141 #else
142 #define MAX_CHAR 12
143 #endif
144 #define MAX_LINE 14
145
146
147 #define FIRST_TYPED 20000
148
149 typedef struct{
150 short id;
151 char number[MAX_CHAR];
152 char name[MAX_CHAR];
153 UBYTE state;
154 } tMmiCall;
155
156 typedef struct{
157 int mode;
158 UBYTE muted;
159 UBYTE view;
160 UBYTE numCalls;
161 SHORT selected;
162 long time[MAX_CALLS];
163 T_MFW_CM_STATUS status[MAX_CALLS];
164
165 } tMmiCallTable;
166
167 typedef enum
168 {
169 CALL_INIT,
170 CALL_SCRATCHPAD_INIT,
171 CALL_CALLSELECT_INIT, //GW Added ????
172 CALL_DESTROY_WAITING,
173 CALL_OUTGOING_SAT,
174 CALL_DESTROY_CALLING_WINDOW
175 } E_CALL_EVENTS; /*a0393213 warnings removal-typedef name added*/
176
177
178
179 /* SPR#1352 - SH - Possible status values for TTY */
180 #ifdef MMI_TTY_ENABLED
181 typedef enum
182 {
183 CALL_TTY_OFF = 0, /* TTY always off */
184 CALL_TTY_ALWAYSON, /* TTY always on */
185 CALL_TTY_ONNEXTCALL /* TTY on for next call only */
186 } E_CALL_TTY; /*a0393213 warnings removal-typedef name added*/
187 #endif
188 /* end SH */
189
190 /*
191 ** This is a tri-state flag, to ensure that the Vocoder is not disabled
192 ** when a waiting call is notified while already in call.
193 */
194 typedef enum
195 {
196 CALL_VOCODER_IDLE = 0, /* BMI in Idle State, Vocoder not under BMI control */
197 CALL_VOCODER_DISABLED, /* Vocoder is disabled prior to the call being connected */
198 CALL_VOCODER_INCALL /* Vocoder is enabled and In-Call */
199 } tMmiVcState;
200
201 struct QUEUETYPE
202 {
203 SHORT call_number;
204 struct QUEUETYPE* next;
205 };
206
207 typedef struct QUEUETYPE TYPEQUEUE;
208
209 typedef struct
210 {
211 T_MMI_CONTROL mmi_control;
212 T_MFW_HND win; // window handle
213 T_MFW_HND kbd;
214 T_MFW_HND kbd_long;
215 T_MFW_HND win_search;
216 T_MFW_HND cm;
217 T_MFW_HND win_incoming;
218 T_MFW_HND win_calling;
219 T_MFW_HND win_ending;
220 T_MFW_HND win_menu;
221 T_MFW_HND win_waiting;
222 T_MFW_HND win_sending_dtmf;
223 #ifdef NEW_EDITOR
224 T_ED_DATA *editorCall; /* SPR#1428 - SH - New Editor changes */
225 #else /* NEW_EDITOR */
226 T_MFW_HND editCall;
227 #endif /* NEW_EDITOR */
228 T_MFW_HND win_redial;
229 T_MFW_HND timer;
230
231 /*SPR 1392*/
232 T_MFW_HND win_deflectEdit; /*handle for call deflect editor.*/
233 T_MFW_HND win_deflecting; /*"Deflecting to..." window*/
234 T_MFW_HND win_deflectSearch; /*Call deflection phonebook search window*/
235 char editor_buffer[20]; /*call deflection number buffer*/
236 T_DISPLAY_DATA inc_call_data; /*incoming call dialogue display info*/
237 /*1392 end*/
238 T_MFW_PHB_ENTRY entry;
239 int current_command;
240 UBYTE callStatus;
241 tMmiCallTable calls;
242 int accessEnd; // controls when several calls are to be ended
243 int callWaitingEnd;
244 int emergencyCall;
245 int callsToEnd;
246 long timeEnded;
247 TYPEQUEUE *endQueue;
248 SHORT incCall;
249 SHORT outCall;
250 int refreshConnect;
251 int firstChar;
252 int currentModule;
253 int currentVolume;
254 SHORT singleCall;
255 unsigned char charSent;
256 char sendingDTMF;
257 T_MFW_CM_CW_INFO globalCWInfo; /* information about incoming call */
258 char phbNameNumber[EDITOR_SIZE];
259 char edtBufDTMF[EDITOR_SIZE]; /* edit buffer */
260 #ifdef NEW_EDITOR
261 T_ED_ATTR editorAttrCall; /* SPR#1428 - SH - New Editor changes */
262 T_ED_ATTR editorAttrDTMF;
263 #else /* NEW_EDITOR */
264 MfwEdtAttr edtAttrCall;
265 MfwEdtAttr edtAttrDTMF; /* edit attributes: */
266 #endif /* NEW_EDITOR */
267 T_MFW_CM_AOC_INFO aocInfo;
268 USHORT ignore_disconnect;
269 T_MFW_CM_CALL_DIR call_direction;
270 UBYTE colp_number[MFW_NUM_LEN]; /* colp number */
271 int animationScreen;
272 #ifdef MMI_TTY_ENABLED
273 UBYTE tty; /* SPR#1352 - SH - TTY status */
274 #endif
275 //x0035544 Mar 09, 2006 DR:OMAPS00061467
276 #ifdef FF_MMI_SAT_ICON
277 T_SAT_IconData IconData; //Sat icon information
278 #endif
279 tMmiVcState vocoderState;
280 } T_call;
281 /*x0039928 OMAPS00097714 HCO/VCO options - added to differenciate between normal/HCO/VCO tty option*/
282 #ifdef FF_TTY_HCO_VCO
283 typedef enum
284 {
285 TTY_ONLY_PF = 0, /* TTY only */
286 TTY_VCO_PF, /* TTY HCO */
287 TTY_HCO_PF /* TTY VCO */
288 }
289 T_MMI_TTY_PF_TYPE;
290 #endif
291
292 /*August 01, 2007 DR: OMAPS00137399 x0080701 (Bharat) -- Start */
293
294 typedef enum
295 {
296 BMI_INCOMING_CALL_NONE = 0,
297 BMI_INCOMING_CALL_RINGERSTOPPED
298 }
299 E_IN_CALL_RINGER_STATUS;
300
301 void bmi_incomingcall_set_ringer_status(E_IN_CALL_RINGER_STATUS eStatus);
302 void bmi_incomingcall_get_ringer_status(E_IN_CALL_RINGER_STATUS *peStatus);
303
304 /*August 01, 2007 DR: OMAPS00137399 x0080701 (Bharat) -- End */
305
306 /* PROTOTYPES */
307 void callInit (MfwHnd parent);
308 void callExit (void);
309
310 T_MFW_HND call_create (T_MFW_HND parent_window);
311 void call_destroy (T_MFW_HND own_window);
312
313
314 void callExec (int reason, MmiState next);
315
316 void callNumber(UBYTE* number);
317
318 UBYTE call_status(void);
319 MfwHnd call_get_window(void);
320
321 void StartsendDTMFString(char * String);
322 int menuInCallTimerOn(MfwMnu* m, MfwMnuItem* i);
323 int menuInCallTimerOff(MfwMnu* m, MfwMnuItem* i);
324
325 int call_ccbs(MfwMnu* menu, MfwMnuItem* item); /* Marcus: CCBS: 1/11/2002 */
326
327 /*MC, SPR 1392*/
328 int call_deflection_on(MfwMnu* m, MfwMnuItem* i);
329 int call_deflection_off(MfwMnu* m, MfwMnuItem* i);
330 /*end*/
331 /* SPR#1352 - SH - TTY */
332 #ifdef MMI_TTY_ENABLED
333 void call_tty_init(void);
334 UBYTE call_tty_get(void);
335 void call_tty_set(UBYTE tty);
336 int call_tty_menu(MfwMnu* menu, MfwMnuItem* item);
337 int call_tty_menuselect(MfwMnu* menu, MfwMnuItem* item);
338 void call_tty_statuswin(void);
339 void call_tty_revert(void);
340 #endif
341 /* end SH */
342 // xpradipg - LOCOSTO-ENH-31895 : 23 June 2005
343 #ifdef FF_MMI_AUDIO_PROFILE
344 USHORT item_headset_status( struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi );
345 USHORT item_handheld_status( struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi );
346 USHORT item_loudspeaker_status( struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi );
347 USHORT item_carkit_status( struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi );
348 int M_exeHandheld (MfwMnu* m, MfwMnuItem* i);
349 int M_exeLoudspeaker (MfwMnu* m, MfwMnuItem* i);
350 int M_exeHeadset (MfwMnu* m, MfwMnuItem* i);
351 int M_exeCarkit (MfwMnu* m, MfwMnuItem* i);
352 void mmi_hook_handle();
353 #endif
354
355 /* Mar 27, 2006 REF:ER OMAPS00071798 */
356 #ifdef NEPTUNE_BOARD
357 int ctty_audio_mode_text(MfwMnu* m, MfwMnuItem* i);
358 int ctty_audio_mode_vco(MfwMnu* m, MfwMnuItem* i);
359 int ctty_audio_mode_unknown(MfwMnu* m, MfwMnuItem* i);
360 #endif
361 /*x0039928 OMAPS00097714 HCO/VCO option - fn prototypes of menu handlers*/
362 #ifdef FF_TTY_HCO_VCO
363 int call_tty_co_menuselect_always(MfwMnu* menu, MfwMnuItem* item);
364 int call_tty_co_menuselect_nextcall(MfwMnu* menu, MfwMnuItem* item);
365 #endif
366
367 #endif