2 * Copyright 2012 Samsung Electronics Co., Ltd
\r
4 * Licensed under the Flora License, Version 1.0 (the "License");
\r
5 * you may not use this file except in compliance with the License.
\r
6 * You may obtain a copy of the License at
\r
8 * http://www.tizenopensource.org/license
\r
10 * Unless required by applicable law or agreed to in writing, software
\r
11 * distributed under the License is distributed on an "AS IS" BASIS,
\r
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
13 * See the License for the specific language governing permissions and
\r
14 * limitations under the License.
\r
18 #include "vcui-application.h"
\r
19 #include "vcui-document.h"
\r
21 static call_data_t *recent_mo;
\r
22 static call_data_t *recent_mt;
\r
23 static call_data_t *recent_mt_mo;
\r
24 static Eina_List *caller_list;
\r
26 void _vcui_doc_recent_init()
\r
30 recent_mt_mo = NULL;
\r
33 call_data_t *_vcui_doc_get_recent_mo()
\r
38 call_data_t *_vcui_doc_get_recent_mt()
\r
43 call_data_t *_vcui_doc_get_all_recent()
\r
45 CALL_UI_DEBUG("..");
\r
46 if (recent_mt_mo == NULL) {
\r
47 CALL_UI_DEBUG("recent is NULL");
\r
48 if (recent_mo != NULL) {
\r
49 recent_mt_mo = recent_mo;
\r
50 CALL_UI_DEBUG("recent is mo");
\r
51 } else if (recent_mt != NULL) {
\r
52 recent_mt_mo = recent_mt;
\r
53 CALL_UI_DEBUG("recent is mt");
\r
56 return recent_mt_mo;
\r
59 void _vcui_doc_set_all_recent(call_data_t *in)
\r
61 CALL_UI_DEBUG("..");
\r
63 CALL_UI_DEBUG("set recent_mt_mo to null");
\r
68 void _vcui_doc_set_mo_recent(call_data_t *in)
\r
70 CALL_UI_DEBUG("..");
\r
72 CALL_UI_DEBUG("set recent_mo to null");
\r
74 if (recent_mo != NULL && recent_mo->call_handle == NO_HANDLE) {
\r
75 CALL_UI_DEBUG("Set_recent 1");
\r
79 _vcui_doc_set_all_recent(in);
\r
83 void _vcui_doc_set_mt_recent(call_data_t *in)
\r
85 CALL_UI_DEBUG("..");
\r
87 CALL_UI_DEBUG("set recent_mt to null");
\r
89 _vcui_doc_set_all_recent(in);
\r
93 void _vcui_doc_caller_list_init()
\r
98 int _vcui_doc_is_call_data(call_data_t *in)
\r
104 EINA_LIST_FOREACH(caller_list, l, cd) {
\r
113 void _vcui_doc_add_call_data(call_data_t *in)
\r
119 EINA_LIST_FOREACH(caller_list, l, cd) {
\r
125 caller_list = eina_list_append(caller_list, (void *)in);
\r
128 void _vcui_doc_update_call_data(call_data_t *in)
\r
134 EINA_LIST_FOREACH(caller_list, l, cd) {
\r
142 void _vcui_doc_remove_all_data()
\r
146 EINA_LIST_FOREACH(caller_list, l, cd) {
\r
152 eina_list_free(caller_list);
\r
153 caller_list = NULL;
\r
156 call_data_t *_vcui_doc_remove_call_data_only_list(call_data_t *in)
\r
159 CALL_UI_DEBUG("Call data is Null");
\r
164 EINA_LIST_FOREACH(caller_list, l, cd) {
\r
166 caller_list = eina_list_remove(caller_list, in);
\r
173 void _vcui_doc_remove_call_data(call_data_t *in)
\r
176 CALL_UI_DEBUG("Call data is Null");
\r
181 EINA_LIST_FOREACH(caller_list, l, cd) {
\r
183 if (in == _vcui_doc_get_recent_mo())
\r
184 _vcui_doc_set_mo_recent(NULL);
\r
185 if (in == _vcui_doc_get_recent_mt())
\r
186 _vcui_doc_set_mt_recent(NULL);
\r
188 caller_list = eina_list_remove(caller_list, in);
\r
191 CALL_UI_DEBUG("Call data removed");
\r
197 if (_vcui_doc_get_count() == 0) {
\r
198 eina_list_free(caller_list);
\r
199 caller_list = NULL;
\r
204 call_data_t *_vcui_doc_get_call_handle(int handle)
\r
208 EINA_LIST_FOREACH(caller_list, l, cd) {
\r
210 if (cd->call_handle == handle) {
\r
218 call_data_t *_vcui_doc_get_first_unhold()
\r
222 EINA_LIST_FOREACH(caller_list, l, cd) {
\r
224 if (cd->caller_status == CALL_UNHOLD) {
\r
232 call_data_t *_vcui_doc_get_first_hold()
\r
236 EINA_LIST_FOREACH(caller_list, l, cd) {
\r
238 if (cd->caller_status == CALL_HOLD) {
\r
246 call_data_t *_vcui_doc_get_last_status(int call_status)
\r
250 call_data_t *fast_cd = NULL;
\r
253 EINA_LIST_FOREACH(caller_list, l, cd) {
\r
255 if (cd->caller_status == call_status) {
\r
261 if (fast_cd->start_time > cd->start_time) {
\r
272 call_data_t *_vcui_doc_get_last_type_mo()
\r
276 call_data_t *last_cd = NULL;
\r
279 EINA_LIST_FOREACH(caller_list, l, cd) {
\r
281 if (cd->mo_mt_status == CALL_OUTGOING) {
\r
287 if (last_cd->start_time < cd->start_time) {
\r
298 call_data_t *_vcui_doc_get_first()
\r
302 EINA_LIST_FOREACH(caller_list, l, cd)
\r
309 void _vcui_doc_set_unhold_all()
\r
313 EINA_LIST_FOREACH(caller_list, l, cd) {
\r
315 if (cd->caller_status == CALL_HOLD) {
\r
316 cd->caller_status = CALL_UNHOLD;
\r
322 void _vcui_doc_set_hold_all()
\r
326 EINA_LIST_FOREACH(caller_list, l, cd) {
\r
328 if (cd->caller_status == CALL_UNHOLD) {
\r
329 cd->caller_status = CALL_HOLD;
\r
335 void _vcui_doc_set_swap_all()
\r
339 EINA_LIST_FOREACH(caller_list, l, cd) {
\r
341 if (cd->caller_status == CALL_HOLD) {
\r
342 cd->caller_status = CALL_UNHOLD;
\r
343 } else if (cd->caller_status == CALL_UNHOLD) {
\r
344 cd->caller_status = CALL_HOLD;
\r
350 int _vcui_doc_get_show_callstatus()
\r
352 if (_vcui_doc_get_count() > 1) {
\r
353 if (_vcui_doc_get_count_hold() > 1)
\r
356 return CALL_UNHOLD;
\r
358 return CALL_UNHOLD;
\r
361 int _vcui_doc_get_count()
\r
363 int i = eina_list_count(caller_list);
\r
367 int _vcui_doc_get_count_hold()
\r
372 EINA_LIST_FOREACH(caller_list, l, cd) {
\r
374 if (cd->caller_status == CALL_HOLD) {
\r
379 CALL_UI_DEBUG("(%d)",i);
\r
383 int _vcui_doc_get_count_unhold()
\r
388 EINA_LIST_FOREACH(caller_list, l, cd) {
\r
390 if (cd->caller_status == CALL_UNHOLD) {
\r
395 CALL_UI_DEBUG("(%d)",i);
\r
399 int _vcui_doc_get_count_nostatus()
\r
404 EINA_LIST_FOREACH(caller_list, l, cd) {
\r
406 if (cd->caller_status == NO_STATUS) {
\r
414 Eina_List *_vcui_doc_get_hold_caller()
\r
416 if (_vcui_doc_get_count() == 0)
\r
418 Eina_List *hold_list = NULL;
\r
422 EINA_LIST_FOREACH(caller_list, l, cd) {
\r
424 if (cd->caller_status == CALL_HOLD) {
\r
425 hold_list = eina_list_append(hold_list, cd);
\r
432 Eina_List *_vcui_doc_get_unhold_caller()
\r
434 if (_vcui_doc_get_count() == 0)
\r
436 Eina_List *unhold_list = NULL;
\r
440 EINA_LIST_FOREACH(caller_list, l, cd) {
\r
442 CALL_UI_DEBUG("_vcui_doc_get_unhold_caller");
\r
443 if (cd->caller_status == CALL_UNHOLD) {
\r
444 CALL_UI_DEBUG("find it");
\r
445 unhold_list = eina_list_append(unhold_list, cd);
\r
449 return unhold_list;
\r
452 Eina_List *_vcui_doc_get_caller()
\r
454 if (_vcui_doc_get_count() == 0)
\r
457 Eina_List *list = NULL;
\r
461 EINA_LIST_FOREACH(caller_list, l, cd) {
\r
462 list = eina_list_append(list, cd);
\r
467 void _vcui_doc_all_print_address()
\r
469 vcui_app_call_data_t *ad = _vcui_get_app_data();
\r
470 CALL_UI_DEBUG("----------address----------");
\r
471 CALL_UI_DEBUG("View Data : DIALING VIEW %p", ad->view_st[VIEW_DIALLING_VIEW]);
\r
472 CALL_UI_DEBUG("View Data : INCOMING VIEW %p", ad->view_st[VIEW_INCOMING_VIEW]);
\r
473 CALL_UI_DEBUG("View Data : INCOMING LOCK VIEW %p", ad->view_st[VIEW_INCOMING_LOCK_VIEW]);
\r
474 CALL_UI_DEBUG("View Data : INCALL ONEVIEW %p", ad->view_st[VIEW_INCALL_ONECALL_VIEW]);
\r
475 CALL_UI_DEBUG("View Data : INCALL MULTIVIEW SPLIT %p", ad->view_st[VIEW_INCALL_MULTICALL_SPLIT_VIEW]);
\r
476 CALL_UI_DEBUG("View Data : INCALL MULTIVIEW CONF %p", ad->view_st[VIEW_INCALL_MULTICALL_CONF_VIEW]);
\r
477 CALL_UI_DEBUG("View Data : INCALL MULTIVIEW LIST %p", ad->view_st[VIEW_INCALL_MULTICALL_LIST_VIEW]);
\r
478 CALL_UI_DEBUG("View Data : INCALL KEYPAD %p", ad->view_st[VIEW_INCALL_KEYPAD_VIEW]);
\r
479 CALL_UI_DEBUG(" --------------------------");
\r
483 void _vcui_doc_all_print(char *msg_pos)
\r
485 CALL_UI_DEBUG(" --------%s------------", msg_pos);
\r
488 EINA_LIST_FOREACH(caller_list, l, cd) {
\r
490 CALL_UI_DEBUG(" call_handle %d", cd->call_handle);
\r
491 CALL_UI_DEBUG(" call_num %s", cd->call_num);
\r
492 CALL_UI_DEBUG(" call_display %s", cd->call_display);
\r
493 CALL_UI_DEBUG(" call_file_path %s", cd->call_file_path);
\r
494 CALL_UI_DEBUG(" call_full_file_path %s", cd->call_full_file_path);
\r
495 CALL_UI_DEBUG(" caller_status %d", cd->caller_status);
\r
496 CALL_UI_DEBUG(" call_time %d", (int)(cd->start_time));
\r
499 CALL_UI_DEBUG(" --------------------------");
\r