diff options
Diffstat (limited to 'src/common/mf-ug-list-play.c')
-rw-r--r-- | src/common/mf-ug-list-play.c | 2285 |
1 files changed, 1060 insertions, 1225 deletions
diff --git a/src/common/mf-ug-list-play.c b/src/common/mf-ug-list-play.c index 74f46c6..5e181a6 100644 --- a/src/common/mf-ug-list-play.c +++ b/src/common/mf-ug-list-play.c @@ -1,28 +1,28 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ #include <stdio.h> -#include <Elementary.h> -#include <Ecore_X.h> -#include <vconf.h> #include <stdbool.h> +#include <Elementary.h> +#include <Ecore_X.h> +#include <runtime_info.h> #include "mf-ug-main.h" -#include "../../data/ug_edc_common.h" #include "mf-ug-conf.h" #include "mf-ug-cb.h" #include "mf-ug-fm-svc-wrapper.h" @@ -32,226 +32,39 @@ #include "mf-ug-fs-util.h" #include "mf-ug-resource.h" #include "mf-ug-list-play.h" +#include "mf-ug-widget.h" +#include "mf-ug-file-util.h" + static mf_player_cbs *g_player_cbs = NULL; static Ecore_Pipe *g_player_pipe = NULL; +sound_type_e g_init_current_type; +int g_init_volume = -1; static void __mf_ug_list_play_control_cb(void *data); static bool __mf_ug_list_play_play_current_file(void *data); - -/****************************** -** Prototype : __mf_ug_list_play_init_data -** Description : Samsung -** Input : void *data -** Output : None -** Return Value : -** Calls : -** Called By : -** -** History : -** 1.Date : 2010/12/10 -** Author : Samsung -** Modification : Created function -** -******************************/ -static void __mf_ug_list_play_init_data(void *data) -{ - UG_TRACE_BEGIN; - ugData *ugd = (ugData *)data; - - ug_mf_retm_if(ugd == NULL, "ugd is NULL"); - - if (ugd->ug_ListPlay.ug_Player != 0) { - mf_ug_list_play_destory_playing_file(ugd); - ugd->ug_ListPlay.ug_Player = 0; - } - ugd->ug_ListPlay.ug_iPlayState = PLAY_STATE_INIT; - UG_SAFE_FREE_CHAR(ugd->ug_ListPlay.ug_pPlayFilePath); - UG_TRACE_END; -} - -/****************************** -** Prototype : __mf_ug_list_play_drm_has_valid_ro -** Description : Samsung -** Input : char *path -** Output : None -** Return Value : -** Calls : -** Called By : -** -** History : -** 1.Date : 2010/12/10 -** Author : Samsung -** Modification : Created function -** -******************************/ -static bool __mf_ug_list_play_drm_has_valid_ro(char *path) +static sound_type_e __mf_ug_list_play_sound_type(const char *path) { - UG_TRACE_BEGIN; - drm_result_e res = DRM_RETURN_INVALID_ARG; - drm_license_status_e licence_status; - - if (path) { - res = drm_get_license_status(path, DRM_PERMISSION_TYPE_PLAY, &licence_status); - } - - if (res == DRM_RETURN_SUCCESS && licence_status == DRM_LICENSE_STATUS_VALID) { - return true; - } else { - return false; - } + UG_TRACE_BEGIN; + ug_mf_retvm_if(path == NULL, SOUND_TYPE_RINGTONE, "path is NULL"); + if (mf_ug_main_is_background()) { + return SOUND_TYPE_RINGTONE; + } + + sound_type_e type = SOUND_TYPE_RINGTONE; + if (g_strcmp0(path, UG_SETTING_MSG_ALERTS_PATH) == 0) + type = SOUND_TYPE_NOTIFICATION; + if (g_strcmp0(path, UG_SETTING_ALERTS_PATH) == 0 || g_strcmp0(path, UG_SETTING_SMART_ALRAMS) == 0) + type = SOUND_TYPE_ALARM; + + return type; } /****************************** -** Prototype : __mf_ug_list_play_check_drm_left_ro -** Description : Samsung -** Input : void *data -** char *path -** Output : None -** Return Value : -** Calls : -** Called By : -** -** History : -** 1.Date : 2010/12/10 -** Author : Samsung -** Modification : Created function -** -******************************/ -static bool __mf_ug_list_play_check_drm_left_ro(void *data, char *path) -{ - UG_TRACE_BEGIN; - ugData *ugd = (ugData *)data; - ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); - - - char left_ro_message[MAX_MESSAGE_LEN] = "\0"; - - bool ro_valid = false; - bool expired = false; - - - const char *title = ecore_file_file_get(path); - ugd->ug_ListPlay.ug_bDrmContentCanPlay = false; - - if (__mf_ug_list_play_drm_has_valid_ro(path)) - { - drm_constraint_info_s constraint; - memset(&constraint, 0x0, sizeof(drm_constraint_info_s)); - - int res = drm_get_constraint_info(path, DRM_PERMISSION_TYPE_PLAY, &constraint); - if (res == DRM_RETURN_SUCCESS) { - if (constraint.const_type.is_unlimited) { - ug_debug("UNLIMITED"); - ugd->ug_ListPlay.ug_bDrmContentCanPlay = TRUE; - return TRUE; - } - - if (constraint.const_type.is_count) { - int remain_count = constraint.remaining_count; - - if (remain_count == 1) { - snprintf(left_ro_message, sizeof(left_ro_message), "You can play \"%s\" just one more time", title); - ro_valid = true; - ugd->ug_ListPlay.ug_bDrmContentCanPlay = true; - } else if (remain_count == 0) { - snprintf(left_ro_message, sizeof(left_ro_message), "You can't play \"%s\" anymore", title); - ro_valid = false; - } else { - ro_valid = true; - ugd->ug_ListPlay.ug_bDrmContentCanPlay = true; - } - } - - if (constraint.const_type.is_datetime) { - ug_debug("DRM_DATETIME\n"); - snprintf(ugd->ug_ListPlay.ug_DrmInfo.validity, sizeof(ugd->ug_ListPlay.ug_DrmInfo.validity), - "%d.%d.%d %d:%d~%d.%d.%d %d:%d", - constraint.start_time.tm_mday, - constraint.start_time.tm_mon + 1, - constraint.start_time.tm_year + 109, - constraint.start_time.tm_hour, - constraint.start_time.tm_min, - constraint.end_time.tm_mday, - constraint.end_time.tm_mon + 1, - constraint.end_time.tm_year + 109, - constraint.end_time.tm_hour, - constraint.end_time.tm_min); - } - - if (constraint.const_type.is_interval) { - ug_debug("DRM_INTERVAL\n"); - snprintf(ugd->ug_ListPlay.ug_DrmInfo.validity, sizeof(ugd->ug_ListPlay.ug_DrmInfo.validity), - "until %d.%d.%d %d:%d", - constraint.interval_time.tm_mon, - constraint.interval_time.tm_mday, - constraint.interval_time.tm_year, - constraint.interval_time.tm_hour, - constraint.interval_time.tm_min); - } - - if (constraint.const_type.is_timedcount) { - int count = constraint.timed_remaining_count; - int time = constraint.timed_count_timer; - snprintf(ugd->ug_ListPlay.ug_DrmInfo.validity, sizeof(ugd->ug_ListPlay.ug_DrmInfo.validity), - "%d left (%d sec)", count, time); - ug_debug("DRM_TIMED_COUNT [%d]\n", count); - if (count == 1) - { - snprintf(left_ro_message, sizeof(left_ro_message), - "You can play \"%s\" just one more time", title); - ugd->ug_ListPlay.ug_bDrmContentCanPlay = TRUE; - } - else if (count == 0) - { - snprintf(left_ro_message, sizeof(left_ro_message), - "You can't play \"%s\" anymore", title); - } - } - - if (constraint.const_type.is_accumulated) { - int sec = constraint.accumulated_remaining_seconds; - int ndays = sec / ACCUMULATED_DATE; - ug_debug("DRM_ACCUMULATED [%d]\n", ndays); - snprintf(ugd->ug_ListPlay.ug_DrmInfo.validity, sizeof(ugd->ug_ListPlay.ug_DrmInfo.validity), - "%" UG_TIME_FORMAT " left", UG_TIME_ARGS(ndays)); - - if (ndays < ACCUMULATED_DATE) - { - snprintf(left_ro_message, sizeof(left_ro_message), - "You can play %s just one day", title); - - ugd->ug_ListPlay.ug_bDrmContentCanPlay = TRUE; - } - } - - if (constraint.const_type.is_individual) { - ug_debug("DRM_INDIVISUAL_ID [%s]", constraint.individual_id); - } - - if (constraint.const_type.is_system) { - ug_debug("DRM_SYSTEM [ID:%s, type:%d]", constraint.system_id, constraint.system_identity_type); - } - } - } else { - ug_debug("have no valid ro\n"); - snprintf(left_ro_message, sizeof(left_ro_message), "No valid RO for <br>\"%s\"", title); - ro_valid = false; - expired = true; - } - - - UG_TRACE_END; - - return true; -} - -/****************************** -** Prototype : __mf_ug_list_play_check_drm_forward +** Prototype : __mf_ug_list_play_init_data ** Description : Samsung ** Input : void *data -** char *path ** Output : None ** Return Value : ** Calls : @@ -263,47 +76,21 @@ static bool __mf_ug_list_play_check_drm_left_ro(void *data, char *path) ** Modification : Created function ** ******************************/ -static drm_file_type_e __drm_get_file_type(void *path) -{ - drm_file_type_e type = DRM_TYPE_UNDEFINED; - drm_result_e res = -1; - - res = drm_get_file_type(path, &type); - if (res == DRM_RETURN_SUCCESS) { - return type; - } else { - return DRM_TYPE_UNDEFINED; - } -} -static bool __mf_ug_list_play_check_drm_forward(void *data, char *path) +static void __mf_ug_list_play_init_data(void *data) { - UG_TRACE_BEGIN; - ugData *ugd = (ugData *)data; - drm_file_type_e type = __drm_get_file_type(path); - - if (type == DRM_TYPE_OMA_V1 || type == DRM_TYPE_OMA_V2) { - - drm_file_info_s info; - memset(&info, 0x0, sizeof(drm_file_info_s)); - int ret = drm_get_file_info(path, &info); - if (ret == DRM_RETURN_SUCCESS) { - if (info.oma_info.method == DRM_METHOD_TYPE_FORWARD_LOCK) { - ugd->ug_ListPlay.ug_DrmInfo.forward = true; - return TRUE; - } - } - ugd->ug_ListPlay.ug_DrmInfo.forward = false; - return false; - } else if (type == DRM_TYPE_PLAYREADY) { - ug_debug("playready drm file"); - ugd->ug_ListPlay.ug_DrmInfo.forward = true; - } else { - ug_debug("Not supported drm type"); - UG_TRACE_END; - return false; - } - UG_TRACE_END; - return true; + UG_TRACE_BEGIN; + ugData *ugd = (ugData *)data; + + ug_mf_retm_if(ugd == NULL, "ugd is NULL"); + + if (ugd->ug_ListPlay.ug_Player != 0) { + mf_ug_list_play_destory_playing_file(ugd); + ugd->ug_ListPlay.ug_Player = 0; + } + ugd->ug_ListPlay.ug_iPlayState = PLAY_STATE_INIT; + ugd->ug_ListPlay.play_data = NULL; + UG_SAFE_FREE_CHAR(ugd->ug_ListPlay.ug_pPlayFilePath); + UG_TRACE_END; } /****************************** @@ -322,159 +109,123 @@ static bool __mf_ug_list_play_check_drm_forward(void *data, char *path) ** Modification : Created function ** ******************************/ -static void __mf_ug_list_play_icon_hide(ugListItemData *itemData) +void mf_ug_list_item_play_btn_update(void *data) { - ug_mf_retm_if(itemData == NULL, "itemData is NULL"); - ug_mf_retm_if(itemData->ug_pItem == NULL, "itemData->ug_pItem is NULL"); - - Evas_Object *btn = elm_object_item_part_content_unset(itemData->ug_pItem, "elm.icon.3"); - evas_object_hide(btn); - UG_SAFE_FREE_OBJ(btn); - itemData->ug_pPlaybtn = NULL; + ugListItemData *itemData = (ugListItemData *)data; + ugData *ugd = (ugData *)itemData->ug_pData; + Evas_Object *music_icon = NULL; + Evas_Object *music_button = NULL; + + const char *play_icon = NULL; + char *pause_icon = NULL; + music_button = elm_object_item_part_content_get(itemData->ug_pItem, "elm.icon.3"); + + if (music_button) { + music_icon = elm_object_part_content_get(music_button, "icon"); + if (music_icon) { + if (ugd->ug_ListPlay.ug_pPlayFilePath) { + if (g_strcmp0(ugd->ug_ListPlay.ug_pPlayFilePath, itemData->ug_pItemName->str) == 0) { + if (ugd->ug_ListPlay.ug_iPlayState == PLAY_STATE_PLAYING) { + pause_icon = UG_ICON_MUSIC_PAUSE_WHITE; + elm_image_file_set(music_icon, UG_EDJ_IMAGE, pause_icon); + } else if (ugd->ug_ListPlay.ug_iPlayState == PLAY_STATE_PAUSED) { + play_icon = UG_ICON_MUSIC_PLAY_WHITE; + elm_image_file_set(music_icon, UG_EDJ_IMAGE, play_icon); + } else { + play_icon = UG_ICON_MUSIC_PLAY_WHITE; + elm_image_file_set(music_icon, UG_EDJ_IMAGE, play_icon); + } + } else { + play_icon = UG_ICON_MUSIC_PLAY_WHITE; + elm_image_file_set(music_icon, UG_EDJ_IMAGE, play_icon); + } + } else { + play_icon = UG_ICON_MUSIC_PLAY_WHITE; + elm_image_file_set(music_icon, UG_EDJ_IMAGE, play_icon); + } + evas_object_size_hint_min_set(music_icon, ELM_SCALE_SIZE(45), ELM_SCALE_SIZE(45)); + } + } } void mf_ug_list_disable_play_itc(void *data, bool disable) { - UG_TRACE_BEGIN; - - ugData *ugd = (ugData *)data; - ug_mf_retm_if(ugd == NULL, "ugd is NULL"); - - Elm_Object_Item *gl_item = NULL; - ugListItemData *itemData = NULL; - Evas_Object *pGenlist = NULL; - - if (ugd->ug_ListPlay.ug_pPlayFilePath == NULL || strlen(ugd->ug_ListPlay.ug_pPlayFilePath) == 0) { - - UG_TRACE_END; - return; - } - pGenlist = ugd->ug_MainWindow.ug_pNaviGenlist; - - gl_item = elm_genlist_first_item_get(pGenlist); - while (gl_item) { - itemData = elm_object_item_data_get(gl_item); - if (itemData && itemData->ug_pItemName) { - if (g_strcmp0(ugd->ug_ListPlay.ug_pPlayFilePath, itemData->ug_pItemName->str) == 0) { - if (disable) { - UG_SAFE_FREE_CHAR(ugd->ug_ListPlay.ug_pPlayFilePath); - elm_genlist_item_fields_update(itemData->ug_pItem, "elm.icon.3", ELM_GENLIST_ITEM_FIELD_CONTENT); - //elm_genlist_item_item_class_update(itemData->ug_pItem, &ugd->ug_Status.ug_noplayitc); - } else { - elm_genlist_item_fields_update(itemData->ug_pItem, "elm.icon.3", ELM_GENLIST_ITEM_FIELD_CONTENT); - } - UG_TRACE_END; - return; - } - } - gl_item = elm_genlist_item_next_get(gl_item); - } - - ug_debug("mf_ug_list_play_update_item_icon failed"); - UG_TRACE_END; -} - - -void mf_ug_list_paly_hide_play_icon(void *data) -{ - UG_TRACE_BEGIN; - - ugData *ugd = (ugData *)data; - ug_mf_retm_if(ugd == NULL, "ugd is NULL"); - - Elm_Object_Item *gl_item = NULL; - ugListItemData *itemData = NULL; - Evas_Object *pGenlist = NULL; - - if (ugd->ug_ListPlay.ug_pPlayFilePath == NULL || strlen(ugd->ug_ListPlay.ug_pPlayFilePath) == 0) { - - UG_TRACE_END; - return; - } - pGenlist = ugd->ug_MainWindow.ug_pNaviGenlist; - - gl_item = elm_genlist_first_item_get(pGenlist); - while (gl_item) { - itemData = elm_object_item_data_get(gl_item); - if (itemData && itemData->ug_pItemName) { - if (g_strcmp0(ugd->ug_ListPlay.ug_pPlayFilePath, itemData->ug_pItemName->str) == 0) { - __mf_ug_list_play_icon_hide(itemData); - UG_TRACE_END; - return; - } - } - gl_item = elm_genlist_item_next_get(gl_item); - } - - ug_debug("mf_ug_list_play_update_item_icon failed"); - UG_TRACE_END; -} -void mf_ug_list_play_update_play_icon(ugListItemData *itemData) -{ - ug_mf_retm_if(itemData == NULL, "itemData is NULL"); - ugData *ugd = (ugData *)itemData->ug_pData; - ug_mf_retm_if(ugd == NULL, "ugd is NULL"); - Evas_Object *btn = itemData->ug_pPlaybtn; - Evas_Object *music_icon = elm_object_part_content_get(btn, "icon"); - const char *play_icon = NULL; - const char *pause_icon = NULL; - if (ugd->ug_ListPlay.ug_pPlayFilePath) { - if (g_strcmp0(ugd->ug_ListPlay.ug_pPlayFilePath, itemData->ug_pItemName->str) == 0) { - if (ugd->ug_ListPlay.ug_iPlayState == PLAY_STATE_PLAYING) { - pause_icon = strdup(UG_ICON_MUSIC_PAUSE_WHITE); - elm_image_file_set(music_icon, pause_icon, NULL); - } else if (ugd->ug_ListPlay.ug_iPlayState == PLAY_STATE_PAUSED) { - play_icon = strdup(UG_ICON_MUSIC_PLAY_WHITE); - elm_image_file_set(music_icon, play_icon, NULL); - } else { - play_icon = strdup(UG_ICON_MUSIC_PLAY_WHITE); - elm_image_file_set(music_icon, play_icon, NULL); - } - } else { - play_icon = strdup(UG_ICON_MUSIC_PLAY_WHITE); - elm_image_file_set(music_icon, play_icon, NULL); - } - } else { - play_icon = strdup(UG_ICON_MUSIC_PLAY_WHITE); - elm_image_file_set(music_icon, play_icon, NULL); - } - + UG_TRACE_BEGIN; + + ugData *ugd = (ugData *)data; + ug_mf_retm_if(ugd == NULL, "ugd is NULL"); + + Elm_Object_Item *gl_item = NULL; + ugListItemData *itemData = NULL; + Evas_Object *pGenlist = NULL; + + if (ugd->ug_ListPlay.ug_pPlayFilePath == NULL || strlen(ugd->ug_ListPlay.ug_pPlayFilePath) == 0) { + + UG_TRACE_END; + return; + } + pGenlist = ugd->ug_MainWindow.ug_pNaviGenlist; + + gl_item = elm_genlist_first_item_get(pGenlist); + while (gl_item) { + itemData = elm_object_item_data_get(gl_item); + if (itemData && itemData->ug_pItemName) { + if (g_strcmp0(ugd->ug_ListPlay.ug_pPlayFilePath, itemData->ug_pItemName->str) == 0) { + if (disable) { + UG_SAFE_FREE_CHAR(ugd->ug_ListPlay.ug_pPlayFilePath); + ugd->ug_ListPlay.play_data = NULL; + } + if (ugd->ug_UiGadget.ug_iSoundMode != mf_ug_sound_mode_none) { + elm_genlist_item_fields_update(itemData->ug_pItem, "elm.icon.2", ELM_GENLIST_ITEM_FIELD_CONTENT); + } else { + mf_ug_list_item_play_btn_update(itemData); + } + UG_TRACE_END; + return; + } + } + gl_item = elm_genlist_item_next_get(gl_item); + } + + UG_TRACE_END; } void mf_ug_list_play_update_item_icon(void *data) { - UG_TRACE_BEGIN; - - ugData *ugd = (ugData *)data; - ug_mf_retm_if(ugd == NULL, "ugd is NULL"); - - Elm_Object_Item *gl_item = NULL; - ugListItemData *itemData = NULL; - Evas_Object *pGenlist = NULL; - - if (ugd->ug_ListPlay.ug_pPlayFilePath == NULL || strlen(ugd->ug_ListPlay.ug_pPlayFilePath) == 0) { - - UG_TRACE_END; - return; - } - pGenlist = ugd->ug_MainWindow.ug_pNaviGenlist; - - gl_item = elm_genlist_first_item_get(pGenlist); - while (gl_item) { - itemData = elm_object_item_data_get(gl_item); - if (itemData && itemData->ug_pItemName) { - if (g_strcmp0(ugd->ug_ListPlay.ug_pPlayFilePath, itemData->ug_pItemName->str) == 0) { - elm_genlist_item_fields_update(itemData->ug_pItem, "elm.icon.3", ELM_GENLIST_ITEM_FIELD_CONTENT); - //mf_ug_list_play_update_play_icon(itemData); - UG_TRACE_END; - return; - } - } - gl_item = elm_genlist_item_next_get(gl_item); - } - - ug_debug("mf_ug_list_play_update_item_icon failed"); - UG_TRACE_END; + UG_TRACE_BEGIN; + + ugData *ugd = (ugData *)data; + ug_mf_retm_if(ugd == NULL, "ugd is NULL"); + + Elm_Object_Item *gl_item = NULL; + ugListItemData *itemData = NULL; + Evas_Object *pGenlist = NULL; + + if (ugd->ug_ListPlay.ug_pPlayFilePath == NULL || strlen(ugd->ug_ListPlay.ug_pPlayFilePath) == 0) { + + UG_TRACE_END; + return; + } + pGenlist = ugd->ug_MainWindow.ug_pNaviGenlist; + + gl_item = elm_genlist_first_item_get(pGenlist); + while (gl_item) { + itemData = elm_object_item_data_get(gl_item); + if (itemData && itemData->ug_pItemName) { + if (g_strcmp0(ugd->ug_ListPlay.ug_pPlayFilePath, itemData->ug_pItemName->str) == 0) { + if (ugd->ug_UiGadget.ug_iSoundMode != mf_ug_sound_mode_none) { + elm_genlist_item_fields_update(itemData->ug_pItem, "elm.icon.2", ELM_GENLIST_ITEM_FIELD_CONTENT); + } else { + elm_genlist_item_fields_update(itemData->ug_pItem, "elm.icon.3", ELM_GENLIST_ITEM_FIELD_CONTENT); + } + UG_TRACE_END; + return; + } + } + gl_item = elm_genlist_item_next_get(gl_item); + } + + UG_TRACE_END; } @@ -495,12 +246,13 @@ void mf_ug_list_play_update_item_icon(void *data) ******************************/ static void __mf_ug_list_play_set_play_start_status(void *data, char *path) { - UG_TRACE_BEGIN; - ugData *ugd = (ugData *)data; - ug_mf_retm_if(ugd == NULL, "ugd is NULL"); + UG_TRACE_BEGIN; + ugData *ugd = (ugData *)data; + ug_mf_retm_if(ugd == NULL, "ugd is NULL"); - ugd->ug_ListPlay.ug_iPlayState = PLAY_STATE_PLAYING; - UG_TRACE_END; + ugd->ug_ListPlay.ug_iPlayState = PLAY_STATE_PLAYING; + + UG_TRACE_END; } /****************************** @@ -520,12 +272,13 @@ static void __mf_ug_list_play_set_play_start_status(void *data, char *path) ******************************/ static void __mf_ug_list_play_set_play_resume_status(void *data) { - UG_TRACE_BEGIN; - ugData *ugd = (ugData *)data; - ug_mf_retm_if(ugd == NULL, "ugd is NULL"); + UG_TRACE_BEGIN; + ugData *ugd = (ugData *)data; + ug_mf_retm_if(ugd == NULL, "ugd is NULL"); + + ugd->ug_ListPlay.ug_iPlayState = PLAY_STATE_PLAYING; - ugd->ug_ListPlay.ug_iPlayState = PLAY_STATE_PLAYING; - UG_TRACE_END; + UG_TRACE_END; } /****************************** @@ -545,12 +298,13 @@ static void __mf_ug_list_play_set_play_resume_status(void *data) ******************************/ static void __mf_ug_list_play_set_play_pause_status(ugData *data) { - UG_TRACE_BEGIN; - ugData *ugd = (ugData *)data; - ug_mf_retm_if(ugd == NULL, "ugd is NULL"); + UG_TRACE_BEGIN; + ugData *ugd = (ugData *)data; + ug_mf_retm_if(ugd == NULL, "ugd is NULL"); - ugd->ug_ListPlay.ug_iPlayState = PLAY_STATE_PAUSED; - UG_TRACE_END; + ugd->ug_ListPlay.ug_iPlayState = PLAY_STATE_PAUSED; + + UG_TRACE_END; } /****************************** @@ -571,215 +325,225 @@ static void __mf_ug_list_play_set_play_pause_status(ugData *data) ******************************/ static void __mf_player_mgr_callback_pipe_handler(void *data, void *buffer, unsigned int nbyte) { - UG_TRACE_BEGIN; - mf_player_cb_extra_data *extra_data = buffer; - ug_mf_retm_if(extra_data == NULL, "NULL"); - ug_mf_retm_if(g_player_cbs == NULL, "NULL"); - - switch (extra_data->cb_type) { - /*note: start callback and paused callback for player have been removed*/ - /*case MF_PLAYER_CB_TYPE_STARTED: - if (g_player_cbs->started_cb) - g_player_cbs->started_cb(g_player_cbs->user_data[MF_PLAYER_CB_TYPE_STARTED]); - break; - - case MF_PLAYER_CB_TYPE_PAUSED: - if (g_player_cbs->paused_cb) - g_player_cbs->paused_cb(g_player_cbs->user_data[MF_PLAYER_CB_TYPE_PAUSED]); - break;*/ - - case MF_PLAYER_CB_TYPE_COMPLETED: - if (g_player_cbs->completed_cb) - g_player_cbs->completed_cb(g_player_cbs->user_data[MF_PLAYER_CB_TYPE_COMPLETED]); - break; - - case MF_PLAYER_CB_TYPE_INTURRUPTED: - if (g_player_cbs->interrupted_cb) - g_player_cbs->interrupted_cb(extra_data->param.interrupted_code, g_player_cbs->user_data[MF_PLAYER_CB_TYPE_INTURRUPTED]); - break; - - case MF_PLAYER_CB_TYPE_ERROR: - if (g_player_cbs->error_cb) - g_player_cbs->error_cb(extra_data->param.error_code, g_player_cbs->user_data[MF_PLAYER_CB_TYPE_ERROR]); - break; - - case MF_PLAYER_CB_TYPE_BUFFERING: - if (g_player_cbs->buffering_cb) - g_player_cbs->buffering_cb(extra_data->param.percent ,g_player_cbs->user_data[MF_PLAYER_CB_TYPE_BUFFERING]); - break; - case MF_PLAYER_CB_TYPE_PREPARE: - if (g_player_cbs->prepare_cb) - g_player_cbs->prepare_cb(g_player_cbs->user_data[MF_PLAYER_CB_TYPE_PREPARE]); - break; - - default: - ug_debug("Not suppoted callback type [%d]", extra_data->cb_type); - } + UG_TRACE_BEGIN; + mf_player_cb_extra_data *extra_data = buffer; + ug_mf_retm_if(extra_data == NULL, "NULL"); + ug_mf_retm_if(g_player_cbs == NULL, "NULL"); + + switch (extra_data->cb_type) { + /*note: start callback and paused callback for player have been removed*/ + /*case MF_PLAYER_CB_TYPE_STARTED: + if (g_player_cbs->started_cb) + g_player_cbs->started_cb(g_player_cbs->user_data[MF_PLAYER_CB_TYPE_STARTED]); + break; + + case MF_PLAYER_CB_TYPE_PAUSED: + if (g_player_cbs->paused_cb) + g_player_cbs->paused_cb(g_player_cbs->user_data[MF_PLAYER_CB_TYPE_PAUSED]); + break;*/ + + case MF_PLAYER_CB_TYPE_COMPLETED: + if (g_player_cbs->completed_cb) + g_player_cbs->completed_cb(g_player_cbs->user_data[MF_PLAYER_CB_TYPE_COMPLETED]); + break; + + case MF_PLAYER_CB_TYPE_INTURRUPTED: + if (g_player_cbs->interrupted_cb) + g_player_cbs->interrupted_cb(extra_data->param.interrupted_code, g_player_cbs->user_data[MF_PLAYER_CB_TYPE_INTURRUPTED]); + break; + + case MF_PLAYER_CB_TYPE_ERROR: + if (g_player_cbs->error_cb) + g_player_cbs->error_cb(extra_data->param.error_code, g_player_cbs->user_data[MF_PLAYER_CB_TYPE_ERROR]); + break; + + case MF_PLAYER_CB_TYPE_BUFFERING: + if (g_player_cbs->buffering_cb) + g_player_cbs->buffering_cb(extra_data->param.percent, g_player_cbs->user_data[MF_PLAYER_CB_TYPE_BUFFERING]); + break; + case MF_PLAYER_CB_TYPE_PREPARE: + if (g_player_cbs->prepare_cb) + g_player_cbs->prepare_cb(g_player_cbs->user_data[MF_PLAYER_CB_TYPE_PREPARE]); + break; + + default: + ug_debug("Not suppoted callback type [%d]", extra_data->cb_type); + } } static void __mf_ug_list_play_mgr_completed_cb(void *userdata) { - UG_TRACE_BEGIN; - MF_CHECK(g_player_pipe); + UG_TRACE_BEGIN; + MF_CHECK(g_player_pipe); - mf_player_cb_extra_data extra_data; - extra_data.cb_type = MF_PLAYER_CB_TYPE_COMPLETED; + mf_player_cb_extra_data extra_data; + extra_data.cb_type = MF_PLAYER_CB_TYPE_COMPLETED; - ecore_pipe_write(g_player_pipe, &extra_data, sizeof(mf_player_cb_extra_data)); + ecore_pipe_write(g_player_pipe, &extra_data, sizeof(mf_player_cb_extra_data)); } static void __mf_ug_list_play_mgr_interrupted_cb(player_interrupted_code_e code, void *userdata) { - UG_TRACE_BEGIN; - MF_CHECK(g_player_pipe); + UG_TRACE_BEGIN; + MF_CHECK(g_player_pipe); - mf_player_cb_extra_data extra_data; - extra_data.cb_type = MF_PLAYER_CB_TYPE_INTURRUPTED; - extra_data.param.interrupted_code = code; + mf_player_cb_extra_data extra_data; + extra_data.cb_type = MF_PLAYER_CB_TYPE_INTURRUPTED; + extra_data.param.interrupted_code = code; - ecore_pipe_write(g_player_pipe, &extra_data, sizeof(mf_player_cb_extra_data)); + ecore_pipe_write(g_player_pipe, &extra_data, sizeof(mf_player_cb_extra_data)); } static void __mf_ug_list_play_mgr_error_cb(int error_code, void *userdata) { - UG_TRACE_BEGIN; - MF_CHECK(g_player_pipe); + UG_TRACE_BEGIN; + MF_CHECK(g_player_pipe); - mf_player_cb_extra_data extra_data; - extra_data.cb_type = MF_PLAYER_CB_TYPE_ERROR; - extra_data.param.error_code = error_code; + mf_player_cb_extra_data extra_data; + extra_data.cb_type = MF_PLAYER_CB_TYPE_ERROR; + extra_data.param.error_code = error_code; - ecore_pipe_write(g_player_pipe, &extra_data, sizeof(mf_player_cb_extra_data)); + ecore_pipe_write(g_player_pipe, &extra_data, sizeof(mf_player_cb_extra_data)); } static bool __mf_ug_list_play_set_uri(player_h player, const char *uri) { - UG_TRACE_BEGIN; - ug_mf_retvm_if(player == NULL, false, "player is NULL"); - ug_mf_retvm_if(uri == NULL, false, "uri is NULL"); - - int ret = 0; - ret = player_set_uri(player, uri); - //player_set_sound_type(ugd->ug_ListPlay.ug_Player, SOUND_TYPE_MEDIA); - if (ret != PLAYER_ERROR_NONE) { - ug_error(">>>>>>>>>>>>>g_err_name : %d\n", ret); - UG_TRACE_END; - return false; - } else { - UG_TRACE_END; - return true; - } + UG_TRACE_BEGIN; + ug_mf_retvm_if(player == NULL, false, "player is NULL"); + ug_mf_retvm_if(uri == NULL, false, "uri is NULL"); + if (mf_ug_main_is_background()) { + return false; + } + + int ret = 0; + ret = player_set_uri(player, uri); + /*player_set_prelistening_mode(player, PLAYER_PRELISTENING_MODE_MEDIA); + player_set_sound_type(ugd->ug_ListPlay.ug_Player, SOUND_TYPE_MEDIA);*/ + if (ret != PLAYER_ERROR_NONE) { + ug_error(">>>>>>>>>>>>>g_err_name : %d\n", ret); + UG_TRACE_END; + return false; + } else { + UG_TRACE_END; + return true; + } } static bool __mf_ug_list_play_set_sound_type(player_h player, sound_type_e type) { - UG_TRACE_BEGIN; - ug_mf_retvm_if(player == NULL, false, "player is NULL"); - - int ret = 0; - ret = player_set_sound_type(player, type); - //player_set_sound_type(ugd->ug_ListPlay.ug_Player, SOUND_TYPE_MEDIA); - if (ret != PLAYER_ERROR_NONE) { - ug_error(">>>>>>>>>>>>>g_err_name : %d\n", ret); - UG_TRACE_END; - return false; - } else { - UG_TRACE_END; - return true; - } + UG_TRACE_BEGIN; + ug_mf_retvm_if(player == NULL, false, "player is NULL"); + + int ret = 0; + ret = player_set_sound_type(player, type); + /*player_set_sound_type(ugd->ug_ListPlay.ug_Player, SOUND_TYPE_MEDIA);*/ + if (ret != PLAYER_ERROR_NONE) { + ug_error(">>>>>>>>>>>>>g_err_name : %d\n", ret); + UG_TRACE_END; + return false; + } else { + UG_TRACE_END; + return true; + } } static bool __mf_ug_list_play_create_player(player_h *player) { - UG_TRACE_BEGIN; - - int ret = 0; - ret = player_create(player); - //player_set_sound_type(ugd->ug_ListPlay.ug_Player, SOUND_TYPE_MEDIA); - if (ret != PLAYER_ERROR_NONE) { - ug_error(">>>>>>>>>>>>>g_err_name : %d\n", ret); - UG_TRACE_END; - return false; - } else { - UG_TRACE_END; - return true; - } + UG_TRACE_BEGIN; + if (mf_ug_main_is_background()) { + return false; + } + + int ret = 0; + ret = player_create(player); + /*player_set_sound_type(ugd->ug_ListPlay.ug_Player, SOUND_TYPE_MEDIA);*/ + if (ret != PLAYER_ERROR_NONE) { + ug_error(">>>>>>>>>>>>>g_err_name : %d\n", ret); + UG_TRACE_END; + return false; + } else { + UG_TRACE_END; + return true; + } } static bool __mf_ug_list_play_create_player_mgr(void *data, const char *path) { - UG_TRACE_BEGIN; - ugData *ugd = (ugData *)data; - ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); - - int path_len = strlen(path); - char *g_err_name = NULL; - int ret = 0; - - if (path_len > 0 && path_len < MYFILE_DIR_PATH_LEN_MAX) { - if (ugd->ug_ListPlay.ug_Player == 0) { - ret = __mf_ug_list_play_create_player(&ugd->ug_ListPlay.ug_Player); - if (ret == false) { - UG_TRACE_END; - return false; - } - ug_debug("player is [%s]", ugd->ug_ListPlay.ug_Player); - /*avsysaudiosink volume table setting */ - - //ret = mm_player_set_attribute(ugd->ug_ListPlay.ug_Player, &g_err_name, "sound_volume_type", MM_SOUND_VOLUME_TYPE_MEDIA, - // "profile_uri", path, strlen(path), NULL); - ret = __mf_ug_list_play_set_uri(ugd->ug_ListPlay.ug_Player, path); - if (ret == false) { - UG_TRACE_END; - return false; - } - - ret = __mf_ug_list_play_set_sound_type(ugd->ug_ListPlay.ug_Player, SOUND_TYPE_MEDIA); - if (ret == false) { - ug_error("set sound type failed"); - } else { - ug_error("set sound type success"); - } - UG_SAFE_FREE_CHAR(g_player_cbs); - if (g_player_pipe) { - ecore_pipe_del(g_player_pipe); - g_player_pipe = NULL; - } - g_player_cbs = calloc(1, sizeof(mf_player_cbs)); - g_player_pipe = ecore_pipe_add(__mf_player_mgr_callback_pipe_handler, ugd); - - - player_set_completed_cb(ugd->ug_ListPlay.ug_Player, __mf_ug_list_play_mgr_completed_cb, NULL); - player_set_interrupted_cb(ugd->ug_ListPlay.ug_Player, __mf_ug_list_play_mgr_interrupted_cb, NULL); - player_set_error_cb(ugd->ug_ListPlay.ug_Player, __mf_ug_list_play_mgr_error_cb, NULL); - - } else { - ug_debug("player handle is exist"); - - ret = __mf_ug_list_play_set_uri(ugd->ug_ListPlay.ug_Player, path); - if (ret == false) { - UG_TRACE_END; - return false; - } - UG_TRACE_END; - return true; - } - } else { - ug_debug("the path_len is too long"); - UG_TRACE_END; - return false; - } - - //player_set_buffering_cb(ugd->ug_ListPlay.ug_Player, _mp_player_mgr_buffering_cb, NULL); - return true; + UG_TRACE_BEGIN; + ugData *ugd = (ugData *)data; + ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); + + if (mf_ug_main_is_background()) { + return false; + } + + int path_len = strlen(path); + int ret = 0; + + if (path_len > 0 && path_len < MYFILE_DIR_PATH_LEN_MAX) { + if (ugd->ug_ListPlay.ug_Player == 0) { + ret = __mf_ug_list_play_create_player(&ugd->ug_ListPlay.ug_Player); + if (ret == false) { + UG_TRACE_END; + return false; + } + /*avsysaudiosink volume table setting */ + + ret = __mf_ug_list_play_set_uri(ugd->ug_ListPlay.ug_Player, path); + if (ret == false) { + UG_TRACE_END; + return false; + } + + sound_type_e sound_type = __mf_ug_list_play_sound_type(ugd->ug_Status.ug_pEntryPath); + ret = __mf_ug_list_play_set_sound_type(ugd->ug_ListPlay.ug_Player, sound_type); + if (ret == false) { + ug_error("set sound type failed"); + } else { + ug_error("set sound type success"); + } + + /*player_set_session_prelistening(ugd->ug_ListPlay.ug_Player);*/ + + UG_SAFE_FREE_CHAR(g_player_cbs); + if (g_player_pipe) { + ecore_pipe_del(g_player_pipe); + g_player_pipe = NULL; + } + g_player_cbs = calloc(1, sizeof(mf_player_cbs)); + g_player_pipe = ecore_pipe_add(__mf_player_mgr_callback_pipe_handler, ugd); + + + player_set_completed_cb(ugd->ug_ListPlay.ug_Player, __mf_ug_list_play_mgr_completed_cb, NULL); + player_set_interrupted_cb(ugd->ug_ListPlay.ug_Player, __mf_ug_list_play_mgr_interrupted_cb, NULL); + player_set_error_cb(ugd->ug_ListPlay.ug_Player, __mf_ug_list_play_mgr_error_cb, NULL); + } else { + ug_debug("player handle is exist"); + + ret = __mf_ug_list_play_set_uri(ugd->ug_ListPlay.ug_Player, path); + if (ret == false) { + UG_TRACE_END; + return false; + } + UG_TRACE_END; + return true; + } + } else { + ug_debug("the path_len is too long"); + UG_TRACE_END; + return false; + } + + /*player_set_buffering_cb(ugd->ug_ListPlay.ug_Player, _mp_player_mgr_buffering_cb, NULL);*/ + return true; } @@ -801,104 +565,106 @@ static bool __mf_ug_list_play_create_player_mgr(void *data, const char *path) ******************************/ static void __mf_ug_list_play_start(void *data) { - UG_TRACE_BEGIN; - ugListItemData *itemData = (ugListItemData *)data; - ug_mf_retm_if(itemData == NULL, "itemData is NULL"); - ugData *ugd = itemData->ug_pData; - ug_mf_retm_if(ugd == NULL, "ugd is NULL"); - int error_code = -1; - player_state_e state = PLAYER_STATE_NONE; - - error_code = player_get_state(ugd->ug_ListPlay.ug_Player, &state); - ug_debug("state is [%d]", state); - if (error_code == 0 && state == PLAYER_STATE_PLAYING) { - if (ugd->ug_ListPlay.ug_pPlayFilePath == NULL) { - ugd->ug_ListPlay.ug_pPlayFilePath = g_strdup(itemData->ug_pItemName->str); - } - __mf_ug_list_play_set_play_start_status(ugd, itemData->ug_pItemName->str); - } else if (ugd->ug_ListPlay.ug_iPlayState == PLAY_STATE_PAUSED) { - if (ugd->ug_ListPlay.ug_pPlayFilePath == NULL) { - ugd->ug_ListPlay.ug_pPlayFilePath = g_strdup(itemData->ug_pItemName->str); - } - __mf_ug_list_play_set_play_resume_status(ugd); - } - - UG_TRACE_END; + UG_TRACE_BEGIN; + if (mf_ug_main_is_background()) { + return; + } + ugListItemData *itemData = (ugListItemData *)data; + ug_mf_retm_if(itemData == NULL, "itemData is NULL"); + ugData *ugd = itemData->ug_pData; + ug_mf_retm_if(ugd == NULL, "ugd is NULL"); + int error_code = -1; + player_state_e state = PLAYER_STATE_NONE; + + error_code = player_get_state(ugd->ug_ListPlay.ug_Player, &state); + ug_debug("state is [%d]", state); + if (error_code == 0 && state == PLAYER_STATE_PLAYING) { + if (ugd->ug_ListPlay.ug_pPlayFilePath == NULL) { + ugd->ug_ListPlay.ug_pPlayFilePath = g_strdup(itemData->ug_pItemName->str); + } + __mf_ug_list_play_set_play_start_status(ugd, itemData->ug_pItemName->str); + } else if (ugd->ug_ListPlay.ug_iPlayState == PLAY_STATE_PAUSED) { + if (ugd->ug_ListPlay.ug_pPlayFilePath == NULL) { + ugd->ug_ListPlay.ug_pPlayFilePath = g_strdup(itemData->ug_pItemName->str); + } + __mf_ug_list_play_set_play_resume_status(ugd); + } + + UG_TRACE_END; } static void __mf_ug_list_play_pauset(void *data) { - UG_TRACE_BEGIN; + UG_TRACE_BEGIN; - ugData *ugd = (ugData *)data; - ug_mf_retm_if(ugd == NULL, "ugd is NULL"); + ugData *ugd = (ugData *)data; + ug_mf_retm_if(ugd == NULL, "ugd is NULL"); - __mf_ug_list_play_set_play_pause_status(ugd); - UG_TRACE_END; + __mf_ug_list_play_set_play_pause_status(ugd); + UG_TRACE_END; } static void __mf_ug_list_play_complete_cb(void *data) { - UG_TRACE_BEGIN; + UG_TRACE_BEGIN; - ugData *ugd = (ugData *)data; - ug_mf_retm_if(ugd == NULL, "ugd is NULL"); + ugData *ugd = (ugData *)data; + ug_mf_retm_if(ugd == NULL, "ugd is NULL"); - mf_ug_list_play_destory_playing_file(ugd); - mf_ug_list_disable_play_itc(ugd, true); - //mf_ug_list_play_update_item_icon(ugd); - UG_SAFE_FREE_CHAR(ugd->ug_ListPlay.ug_pPlayFilePath); - UG_TRACE_END; + mf_ug_list_play_destory_playing_file(ugd); + mf_ug_list_disable_play_itc(ugd, true); + ugd->ug_ListPlay.play_data = NULL; + UG_SAFE_FREE_CHAR(ugd->ug_ListPlay.ug_pPlayFilePath); + UG_TRACE_END; } static void __mf_ug_list_play_interrupt_cb(player_interrupted_code_e code, void *data) { - UG_TRACE_BEGIN; - ugListItemData *itemData = data; - ug_mf_retm_if(itemData == NULL, "itemData is NULL"); - - ugData *ugd = (ugData *)itemData->ug_pData; - ug_mf_retm_if(ugd == NULL, "ugd is NULL"); - switch (code) { - case PLAYER_INTERRUPTED_BY_MEDIA: - ug_debug("Interrupt :: PLAYER_INTERRUPTED_BY_MEDIA"); - break; - case PLAYER_INTERRUPTED_BY_CALL: - ug_debug("Interrupt :: PLAYER_INTERRUPTED_BY_CALL_START"); - break; - case PLAYER_INTERRUPTED_BY_RESOURCE_CONFLICT: - ug_debug("Interrupt :: PLAYER_INTERRUPTED_BY_RESOURCE_CONFLICT"); - break; - case PLAYER_INTERRUPTED_BY_ALARM: - ug_debug("Interrupt :: PLAYER_INTERRUPTED_BY_ALARM_START"); - break; - case PLAYER_INTERRUPTED_BY_EARJACK_UNPLUG: - ug_debug("Interrupt :: PLAYER_INTERRUPTED_BY_EARJACK_UNPLUG"); - break; - case PLAYER_INTERRUPTED_COMPLETED: - ug_debug("PLAYER_INTERRUPTED_COMPLETED"); - /* ready to resume */ - ug_debug("ugd->ug_ListPlay.ug_iPlayState is [%d]", ugd->ug_ListPlay.ug_iPlayState); - if (ugd->ug_ListPlay.ug_iPlayState == PLAY_STATE_PAUSED) { - ug_debug(); - __mf_ug_list_play_control_cb(itemData); - } - return; - default: - break; - } - __mf_ug_list_play_set_play_pause_status(ugd); - mf_ug_list_play_update_item_icon(ugd); - UG_TRACE_END; + UG_TRACE_BEGIN; + ugListItemData *itemData = data; + ug_mf_retm_if(itemData == NULL, "itemData is NULL"); + + ugData *ugd = (ugData *)itemData->ug_pData; + ug_mf_retm_if(ugd == NULL, "ugd is NULL"); + switch (code) { + case PLAYER_INTERRUPTED_BY_MEDIA: + ug_debug("Interrupt :: PLAYER_INTERRUPTED_BY_MEDIA"); + break; + case PLAYER_INTERRUPTED_BY_CALL: + ug_debug("Interrupt :: PLAYER_INTERRUPTED_BY_CALL_START"); + break; + case PLAYER_INTERRUPTED_BY_RESOURCE_CONFLICT: + ug_debug("Interrupt :: PLAYER_INTERRUPTED_BY_RESOURCE_CONFLICT"); + break; + case PLAYER_INTERRUPTED_BY_ALARM: + ug_debug("Interrupt :: PLAYER_INTERRUPTED_BY_ALARM_START"); + break; + case PLAYER_INTERRUPTED_BY_EARJACK_UNPLUG: + ug_debug("Interrupt :: PLAYER_INTERRUPTED_BY_EARJACK_UNPLUG"); + break; + case PLAYER_INTERRUPTED_COMPLETED: + ug_debug("PLAYER_INTERRUPTED_COMPLETED"); + /* ready to resume */ + ug_debug("ugd->ug_ListPlay.ug_iPlayState is [%d]", ugd->ug_ListPlay.ug_iPlayState); + if (ugd->ug_ListPlay.ug_iPlayState == PLAY_STATE_PAUSED) { + __mf_ug_list_play_control_cb(itemData); + } + return; + default: + break; + } + __mf_ug_list_play_set_play_pause_status(ugd); + mf_ug_list_play_update_item_icon(ugd); + UG_TRACE_END; } static void __mf_list_play_control_prepare_cb(void *userdata) { - UG_TRACE_BEGIN; + UG_TRACE_BEGIN; - __mf_ug_list_play_play_current_file(userdata); + __mf_ug_list_play_play_current_file(userdata); } @@ -920,50 +686,49 @@ __mf_list_play_control_prepare_cb(void *userdata) static void __mf_ug_list_play_prepare_cb(void *userdata) { - UG_TRACE_BEGIN; - MF_CHECK(g_player_pipe); + UG_TRACE_BEGIN; + MF_CHECK(g_player_pipe); - mf_player_cb_extra_data extra_data; - memset(&extra_data, 0, sizeof(mf_player_cb_extra_data)); - extra_data.cb_type = MF_PLAYER_CB_TYPE_PREPARE; + mf_player_cb_extra_data extra_data; + memset(&extra_data, 0, sizeof(mf_player_cb_extra_data)); + extra_data.cb_type = MF_PLAYER_CB_TYPE_PREPARE; - ecore_pipe_write(g_player_pipe, &extra_data, sizeof(mf_player_cb_extra_data)); + ecore_pipe_write(g_player_pipe, &extra_data, sizeof(mf_player_cb_extra_data)); } static bool __mf_ug_list_play_realize_player_mgr(void *data) { - UG_TRACE_BEGIN; - ugData *ugd = (ugData *)data; - - ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); - - int error_code = 0; - player_state_e state = PLAYER_STATE_NONE; - - if (ugd->ug_ListPlay.ug_Player != 0) { - error_code = player_get_state(ugd->ug_ListPlay.ug_Player, &state); - ug_debug("state is [%d]", state); - - if (0 == error_code && PLAYER_STATE_IDLE == state) { - ug_debug("player_prepare_async"); - if (player_prepare_async(ugd->ug_ListPlay.ug_Player, __mf_ug_list_play_prepare_cb, ugd) != PLAYER_ERROR_NONE) - { - ug_debug("Error when mp_player_mgr_realize\n"); - UG_TRACE_END; - return FALSE; - } else { - return true; - } - //ugd->ug_ListPlay.ug_iPlayState = PLAY_STATE_READY; - - } else { - UG_TRACE_END; - return false; - } - } - UG_TRACE_END; - - return false; + UG_TRACE_BEGIN; + ugData *ugd = (ugData *)data; + + ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); + + int error_code = 0; + player_state_e state = PLAYER_STATE_NONE; + + if (ugd->ug_ListPlay.ug_Player != 0) { + error_code = player_get_state(ugd->ug_ListPlay.ug_Player, &state); + ug_debug("state is [%d]", state); + + if (0 == error_code && PLAYER_STATE_IDLE == state) { + ug_debug("player_prepare_async"); + if (player_prepare_async(ugd->ug_ListPlay.ug_Player, __mf_ug_list_play_prepare_cb, ugd) != PLAYER_ERROR_NONE) { + ug_debug("Error when mp_player_mgr_realize\n"); + UG_TRACE_END; + return FALSE; + } else { + return true; + } + /*ugd->ug_ListPlay.ug_iPlayState = PLAY_STATE_READY;*/ + + } else { + UG_TRACE_END; + return false; + } + } + UG_TRACE_END; + + return false; } @@ -971,7 +736,6 @@ static bool __mf_ug_list_play_realize_player_mgr(void *data) ** Prototype : __mf_ug_list_play_ready_new_file_play ** Description : Samsung ** Input : void *data -** bool drm_check_flag ** Output : None ** Return Value : ** Calls : @@ -985,189 +749,184 @@ static bool __mf_ug_list_play_realize_player_mgr(void *data) ******************************/ /*void mf_player_mgr_set_started_cb(player_started_cb callback, void *user_data) { - MF_CHECK(g_player_cbs); + MF_CHECK(g_player_cbs); - g_player_cbs->started_cb = callback; - g_player_cbs->user_data[MF_PLAYER_CB_TYPE_STARTED] = user_data; + g_player_cbs->started_cb = callback; + g_player_cbs->user_data[MF_PLAYER_CB_TYPE_STARTED] = user_data; } void mf_player_mgr_set_paused_cb(player_paused_cb callback, void *user_data) { - MF_CHECK(g_player_cbs); + MF_CHECK(g_player_cbs); - g_player_cbs->paused_cb = callback; - g_player_cbs->user_data[MF_PLAYER_CB_TYPE_PAUSED] = user_data; + g_player_cbs->paused_cb = callback; + g_player_cbs->user_data[MF_PLAYER_CB_TYPE_PAUSED] = user_data; }*/ void mf_player_mgr_set_completed_cb(player_completed_cb callback, void *user_data) { - MF_CHECK(g_player_cbs); + MF_CHECK(g_player_cbs); - g_player_cbs->completed_cb = callback; - g_player_cbs->user_data[MF_PLAYER_CB_TYPE_COMPLETED] = user_data; + g_player_cbs->completed_cb = callback; + g_player_cbs->user_data[MF_PLAYER_CB_TYPE_COMPLETED] = user_data; } void mf_player_mgr_set_interrupted_cb(player_interrupted_cb callback, void *user_data) { - MF_CHECK(g_player_cbs); + MF_CHECK(g_player_cbs); - g_player_cbs->interrupted_cb = callback; - g_player_cbs->user_data[MF_PLAYER_CB_TYPE_INTURRUPTED] = user_data; + g_player_cbs->interrupted_cb = callback; + g_player_cbs->user_data[MF_PLAYER_CB_TYPE_INTURRUPTED] = user_data; } void mf_player_mgr_set_error_cb(player_error_cb callback, void *user_data) { - MF_CHECK(g_player_cbs); + MF_CHECK(g_player_cbs); - g_player_cbs->error_cb = callback; - g_player_cbs->user_data[MF_PLAYER_CB_TYPE_ERROR] = user_data; + g_player_cbs->error_cb = callback; + g_player_cbs->user_data[MF_PLAYER_CB_TYPE_ERROR] = user_data; } void mf_player_mgr_set_buffering_cb(player_buffering_cb callback, void *user_data) { - MF_CHECK(g_player_cbs); + MF_CHECK(g_player_cbs); - g_player_cbs->buffering_cb = callback; - g_player_cbs->user_data[MF_PLAYER_CB_TYPE_BUFFERING] = user_data; + g_player_cbs->buffering_cb = callback; + g_player_cbs->user_data[MF_PLAYER_CB_TYPE_BUFFERING] = user_data; } void mf_player_mgr_set_prepare_cb(player_prepared_cb callback, void *user_data) { - MF_CHECK(g_player_cbs); + MF_CHECK(g_player_cbs); - g_player_cbs->prepare_cb = callback; - g_player_cbs->user_data[MF_PLAYER_CB_TYPE_PREPARE] = user_data; + g_player_cbs->prepare_cb = callback; + g_player_cbs->user_data[MF_PLAYER_CB_TYPE_PREPARE] = user_data; } static Eina_Bool __mf_play_control_error(void *data) { - UG_TRACE_BEGIN; - ugData *ugd = (ugData *)data; - ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); - - mf_ug_list_play_destory_playing_file(ugd); - mf_ug_list_disable_play_itc(ugd, true); - UG_SAFE_FREE_CHAR(ugd->ug_ListPlay.ug_pPlayFilePath); - ugd->ug_ListPlay.playing_err_idler = NULL; - return EINA_FALSE; + UG_TRACE_BEGIN; + ugData *ugd = (ugData *)data; + ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); + + mf_ug_list_play_destory_playing_file(ugd); + mf_ug_list_disable_play_itc(ugd, true); + ugd->ug_ListPlay.play_data = NULL; + UG_SAFE_FREE_CHAR(ugd->ug_ListPlay.ug_pPlayFilePath); + ugd->ug_ListPlay.playing_err_idler = NULL; + return EINA_FALSE; } static void __mf_play_control_error_cb(int error_code, void *userdata) { - UG_TRACE_BEGIN; - ugData *ugd = (ugData *)userdata; - ug_mf_retm_if(ugd == NULL, "ugd is NULL"); - - switch (error_code) - { - case PLAYER_ERROR_OUT_OF_MEMORY: - ug_error("PLAYER_ERROR_OUT_OF_MEMORY"); - break; - case PLAYER_ERROR_INVALID_PARAMETER: - ug_error("PLAYER_ERROR_INVALID_PARAMETER"); - //mp_widget_text_popup(ad, GET_STR("IDS_MUSIC_POP_UNABLE_TO_PLAY_ERROR_OCCURRED")); - break; - case PLAYER_ERROR_NOT_SUPPORTED_FILE: //can receive error msg while playing. - ug_error("receive MM_ERROR_PLAYER_CODEC_NOT_FOUND\n"); - ugd->ug_MainWindow.ug_pNormalPopup = mf_ug_popup_create(ugd, UG_POPMODE_TEXT, NULL, MF_UG_LABEL_UNSUPPORT_FILE_TYPE, NULL, NULL, NULL, NULL, NULL); - break; - case PLAYER_ERROR_CONNECTION_FAILED: - ug_error("MM_ERROR_PLAYER_STREAMING_CONNECTION_FAIL"); - - ugd->ug_MainWindow.ug_pNormalPopup = mf_ug_popup_create(ugd, UG_POPMODE_TEXT, NULL, MF_UG_LABEL_CONNECT_FAILED, NULL, NULL, NULL, NULL, NULL); - break; - default: - ugd->ug_MainWindow.ug_pNormalPopup = mf_ug_popup_create(ugd, UG_POPMODE_TEXT, NULL, MF_UG_LABEL_UNSUPPORT_FILE_TYPE, NULL, NULL, NULL, NULL, NULL); - ug_error("error_code: %d", error_code); - } - - if(!ugd->ug_ListPlay.playing_err_idler) { - ugd->ug_ListPlay.playing_err_idler = ecore_idler_add(__mf_play_control_error, ugd); - } + UG_TRACE_BEGIN; + ugListItemData *itemData = userdata; + ug_mf_retm_if(itemData == NULL, "itemData is NULL"); + ugData *ugd = itemData->ug_pData; + ug_mf_retm_if(ugd == NULL, "ugd is NULL"); + + switch (error_code) { + case PLAYER_ERROR_OUT_OF_MEMORY: + ug_error("PLAYER_ERROR_OUT_OF_MEMORY"); + break; + case PLAYER_ERROR_INVALID_PARAMETER: + ug_error("PLAYER_ERROR_INVALID_PARAMETER"); + break; + case PLAYER_ERROR_NOT_SUPPORTED_FILE: /*can receive error msg while playing.*/ + ug_error("receive MM_ERROR_PLAYER_CODEC_NOT_FOUND\n"); + ugd->ug_MainWindow.ug_pNormalPopup = mf_ug_popup_create(ugd, UG_POPMODE_TEXT, NULL, MF_UG_LABEL_UNSUPPORT_FILE_TYPE, NULL, NULL, NULL, NULL, NULL); + break; + case PLAYER_ERROR_CONNECTION_FAILED: + ug_error("MM_ERROR_PLAYER_STREAMING_CONNECTION_FAIL"); + + ugd->ug_MainWindow.ug_pNormalPopup = mf_ug_popup_create(ugd, UG_POPMODE_TEXT, NULL, MF_UG_LABEL_CONNECT_FAILED, NULL, NULL, NULL, NULL, NULL); + break; + default: + ugd->ug_MainWindow.ug_pNormalPopup = mf_ug_popup_create(ugd, UG_POPMODE_TEXT, NULL, MF_UG_LABEL_UNSUPPORT_FILE_TYPE, NULL, NULL, NULL, NULL, NULL); + ug_error("error_code: %d", error_code); + } + + /*if (ugd->ug_MainWindow.ug_pRadioGroup && elm_radio_value_get(ugd->ug_MainWindow.ug_pRadioGroup) == itemData->ug_iGroupValue) { + //ugd->ug_Status.ug_iRadioOn = 0; + //itemData->ug_bChecked = false; + //elm_radio_value_set(ugd->ug_MainWindow.ug_pRadioGroup, 0); + //mf_ug_navi_bar_set_ctrl_item_disable(ugd); + }*/ + + if (!ugd->ug_ListPlay.playing_err_idler) { + ugd->ug_ListPlay.playing_err_idler = ecore_idler_add((Ecore_Task_Cb)__mf_play_control_error, ugd); + } } -static bool __mf_ug_list_play_ready_new_file_play(void *data, bool drm_check_flag) +static bool __mf_ug_list_play_ready_new_file_play(void *data) { - UG_TRACE_BEGIN; - ugListItemData *itemData = data; - ug_mf_retvm_if(itemData == NULL, false, "itemData is NULL"); - - ugData *ugd = (ugData *)itemData->ug_pData; - ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); - - char *path = strdup(itemData->ug_pItemName->str); - - /*check if file is exist */ - if (path != NULL) { - if (!ecore_file_exists(path)) { - ug_debug("Error file %s is not exist\n", path); - free(path); - path = NULL; - UG_TRACE_END; - return false; - } - /*/check if file is drm file */ - if (mf_ug_file_attr_is_drm_file(path) == 0) { - if (!__mf_ug_list_play_check_drm_left_ro(ugd, path)) { - free(path); - path = NULL; - UG_TRACE_END; - return false; - } - - if (!__mf_ug_list_play_check_drm_forward(ugd, path)) { - free(path); - path = NULL; - UG_TRACE_END; - return false; - } - - ugd->ug_ListPlay.ug_bDrmconsumption = true; - } else { - ugd->ug_ListPlay.ug_bDrmconsumption = true; - } - - if (!__mf_ug_list_play_create_player_mgr(ugd, path)) { - free(path); - path = NULL; - ug_error("ERROR HERE !!!!!!!"); - ugd->ug_MainWindow.ug_pNormalPopup = mf_ug_popup_create(ugd, UG_POPMODE_TEXT, NULL, MF_UG_LABEL_UNABLE_TO_PLAY_ERROR_OCCURRED, NULL, NULL, NULL, NULL, NULL); - UG_TRACE_END; - return false; - } - - //mf_player_mgr_set_started_cb(__mf_ug_list_play_start_cb, itemData); - //mf_player_mgr_set_paused_cb(__mf_ug_list_play_pauset_cb, ugd); - mf_player_mgr_set_completed_cb(__mf_ug_list_play_complete_cb, ugd); - mf_player_mgr_set_interrupted_cb(__mf_ug_list_play_interrupt_cb, ugd); - mf_player_mgr_set_prepare_cb(__mf_list_play_control_prepare_cb, itemData); - mf_player_mgr_set_error_cb(__mf_play_control_error_cb, ugd); - //mf_player_mgr_set_buffering_cb(_mp_play_control_buffering_cb, ad); - - if (!__mf_ug_list_play_realize_player_mgr(ugd)) { - free(path); - path = NULL; - ug_error("ERROR HERE !!!!!!!"); - ugd->ug_MainWindow.ug_pNormalPopup = mf_ug_popup_create(ugd, UG_POPMODE_TEXT, NULL, MF_UG_LABEL_UNABLE_TO_PLAY_ERROR_OCCURRED, NULL, NULL, NULL, NULL, NULL); - UG_TRACE_END; - return false; - } - free(path); - path = NULL; - UG_TRACE_END; - return true; - } else { - return false; - } + UG_TRACE_BEGIN; + + if (mf_ug_main_is_background()) { + return false; + } + + ugListItemData *itemData = data; + ug_mf_retvm_if(itemData == NULL, false, "itemData is NULL"); + + ugData *ugd = (ugData *)itemData->ug_pData; + ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); + + char *path = strdup(itemData->ug_pItemName->str); + if (mf_ug_is_default_ringtone(ugd, path)) { + UG_SAFE_FREE_CHAR(path); + path = g_strdup(ugd->ug_UiGadget.default_ringtone); + } + + /*check if file is exist */ + if (path != NULL) { + if (!mf_file_exists(path)) { + ug_debug("Error file %s is not exist\n", path); + free(path); + path = NULL; + UG_TRACE_END; + return false; + } + if (!__mf_ug_list_play_create_player_mgr(ugd, path)) { + free(path); + path = NULL; + ug_error("ERROR HERE !!!!!!!"); + ugd->ug_MainWindow.ug_pNormalPopup = mf_ug_popup_create(ugd, UG_POPMODE_TEXT, NULL, MF_UG_LABEL_UNABLE_TO_PLAY_ERROR_OCCURRED, NULL, NULL, NULL, NULL, NULL); + UG_TRACE_END; + return false; + } + + /*mf_player_mgr_set_started_cb(__mf_ug_list_play_start_cb, itemData); + mf_player_mgr_set_paused_cb(__mf_ug_list_play_pauset_cb, ugd);*/ + mf_player_mgr_set_completed_cb(__mf_ug_list_play_complete_cb, ugd); + mf_player_mgr_set_interrupted_cb(__mf_ug_list_play_interrupt_cb, itemData); + mf_player_mgr_set_prepare_cb(__mf_list_play_control_prepare_cb, itemData); + mf_player_mgr_set_error_cb(__mf_play_control_error_cb, itemData); + /*mf_player_mgr_set_buffering_cb(_mp_play_control_buffering_cb, ad);*/ + + if (!__mf_ug_list_play_realize_player_mgr(ugd)) { + free(path); + path = NULL; + ug_error("ERROR HERE !!!!!!!"); + ugd->ug_MainWindow.ug_pNormalPopup = mf_ug_popup_create(ugd, UG_POPMODE_TEXT, NULL, MF_UG_LABEL_UNABLE_TO_PLAY_ERROR_OCCURRED, NULL, NULL, NULL, NULL, NULL); + UG_TRACE_END; + return false; + } + free(path); + path = NULL; + UG_TRACE_END; + return true; + } else { + return false; + } } - /****************************** ** Prototype : _mp_player_mgr_play ** Description : @@ -1186,53 +945,53 @@ static bool __mf_ug_list_play_ready_new_file_play(void *data, bool drm_check_fla static bool __mf_ug_list_play_play(void *data) { - UG_TRACE_BEGIN; - ugListItemData *itemData = data; - ug_mf_retvm_if(itemData == NULL, false, "itemData is NULL"); - ugData *ugd = itemData->ug_pData; - ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); - - int err = 0; - int error_code = 0; - player_state_e state = PLAYER_STATE_NONE; - - if (ugd->ug_ListPlay.ug_Player != 0) { - error_code = player_get_state(ugd->ug_ListPlay.ug_Player, &state); - ug_debug("state is [%d]", state); - - if (0 == error_code && PLAYER_STATE_READY == state) { - err = player_start(ugd->ug_ListPlay.ug_Player); - if (err != PLAYER_ERROR_NONE) { - - if (err == PLAYER_ERROR_SOUND_POLICY) - { - ug_error("PLAYER_ERROR_SOUND_POLICY error"); - ugd->ug_MainWindow.ug_pNormalPopup = mf_ug_popup_create(ugd, UG_POPMODE_TEXT, NULL, MF_UG_LABEL_UNABLE_TO_PLAY_DURING_CALL, NULL, - NULL, NULL, NULL, NULL); - } - else - { - ug_error("error is [%d]", err); - ugd->ug_MainWindow.ug_pNormalPopup = mf_ug_popup_create(ugd, UG_POPMODE_TEXT, NULL, MF_UG_LABEL_UNABLE_TO_PLAY_ERROR_OCCURRED, NULL, - NULL, NULL, NULL, NULL); - } - ug_error("Error when _mp_player_mgr_play. err[%x]\n", err); - UG_TRACE_END; - return false; - } else { - __mf_ug_list_play_start(itemData); - mf_ug_list_disable_play_itc(ugd, false); - UG_TRACE_END; - return true; - } - } else { - UG_TRACE_END; - return false; - } - } else { - UG_TRACE_END; - return false; - } + UG_TRACE_BEGIN; + ugListItemData *itemData = data; + ug_mf_retvm_if(itemData == NULL, false, "itemData is NULL"); + ugData *ugd = itemData->ug_pData; + ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); + if (mf_ug_main_is_background()) { + return false; + } + + int err = 0; + int error_code = 0; + player_state_e state = PLAYER_STATE_NONE; + + if (ugd->ug_ListPlay.ug_Player != 0) { + error_code = player_get_state(ugd->ug_ListPlay.ug_Player, &state); + ug_debug("state is [%d]", state); + + if (0 == error_code && PLAYER_STATE_READY == state) { + err = player_start(ugd->ug_ListPlay.ug_Player); + if (err != PLAYER_ERROR_NONE) { + + if (err == PLAYER_ERROR_SOUND_POLICY) { + ug_error("PLAYER_ERROR_SOUND_POLICY error"); + ugd->ug_MainWindow.ug_pNormalPopup = mf_ug_popup_create(ugd, UG_POPMODE_TEXT, NULL, MF_UG_LABEL_UNABLE_TO_PLAY_DURING_CALL, NULL, + NULL, NULL, NULL, NULL); + } else { + ug_error("error is [%d]", err); + ugd->ug_MainWindow.ug_pNormalPopup = mf_ug_popup_create(ugd, UG_POPMODE_TEXT, NULL, MF_UG_LABEL_UNABLE_TO_PLAY_ERROR_OCCURRED, NULL, + NULL, NULL, NULL, NULL); + } + ug_error("Error when _mp_player_mgr_play. err[%x]\n", err); + UG_TRACE_END; + return false; + } else { + __mf_ug_list_play_start(itemData); + mf_ug_list_disable_play_itc(ugd, false); + UG_TRACE_END; + return true; + } + } else { + UG_TRACE_END; + return false; + } + } else { + UG_TRACE_END; + return false; + } } /****************************** @@ -1252,37 +1011,37 @@ static bool __mf_ug_list_play_play(void *data) ******************************/ static bool __mf_ug_list_play_stop(ugData *data) { - UG_TRACE_BEGIN; - ugData *ugd = (ugData *)data; - ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); - - player_state_e state = PLAYER_STATE_NONE; - int error_code = 0; - - if (ugd->ug_ListPlay.ug_Player != 0) { - error_code = player_get_state(ugd->ug_ListPlay.ug_Player, &state); - ug_debug("state is [%d]", state); - - if (0 == error_code && (PLAYER_STATE_PLAYING == state || PLAYER_STATE_PAUSED == state)) { - if (player_stop(ugd->ug_ListPlay.ug_Player) != 0) { - ug_debug("Error when __mf_ug_list_play_stop\n"); - UG_TRACE_END; - return false; - } else { - - ugd->ug_ListPlay.ug_iPlayState = PLAY_STATE_STOP; - ugd->ug_ListPlay.ug_bDrmContentCanPlay = false; - UG_TRACE_END; - return true; - } - - } else { - UG_TRACE_END; - return false; - } - } - UG_TRACE_END; - return false; + UG_TRACE_BEGIN; + ugData *ugd = (ugData *)data; + ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); + + player_state_e state = PLAYER_STATE_NONE; + int error_code = 0; + + if (ugd->ug_ListPlay.ug_Player != 0) { + error_code = player_get_state(ugd->ug_ListPlay.ug_Player, &state); + ug_debug("state is [%d]", state); + + if (0 == error_code && (PLAYER_STATE_PLAYING == state || PLAYER_STATE_PAUSED == state)) { + if (player_stop(ugd->ug_ListPlay.ug_Player) != 0) { + ug_debug("Error when __mf_ug_list_play_stop\n"); + UG_TRACE_END; + return false; + } else { + + ugd->ug_ListPlay.ug_iPlayState = PLAY_STATE_STOP; + + UG_TRACE_END; + return true; + } + + } else { + UG_TRACE_END; + return false; + } + } + UG_TRACE_END; + return false; } /****************************** @@ -1303,24 +1062,24 @@ static bool __mf_ug_list_play_stop(ugData *data) static bool __mf_ug_list_play_unrealize(ugData *data) { - UG_TRACE_BEGIN; - ugData *ugd = (ugData *)data; - ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); - - if (ugd->ug_ListPlay.ug_Player != 0) { - /*/unrealize can be invoked at any state */ - int ret = player_unprepare(ugd->ug_ListPlay.ug_Player); - if (ret != 0) { - ug_error("Error when __mf_ug_list_play_unrealize %d", ret); - UG_TRACE_END; - return false; - } else { - UG_TRACE_END; - return true; - } - } - UG_TRACE_END; - return false; + UG_TRACE_BEGIN; + ugData *ugd = (ugData *)data; + ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); + + if (ugd->ug_ListPlay.ug_Player != 0) { + /*/unrealize can be invoked at any state */ + int ret = player_unprepare(ugd->ug_ListPlay.ug_Player); + if (ret != 0) { + ug_error("Error when __mf_ug_list_play_unrealize %d", ret); + UG_TRACE_END; + return false; + } else { + UG_TRACE_END; + return true; + } + } + UG_TRACE_END; + return false; } /****************************** @@ -1340,33 +1099,37 @@ static bool __mf_ug_list_play_unrealize(ugData *data) ******************************/ static bool __mf_ug_list_play_destory(ugData *data) { - UG_TRACE_BEGIN; - ugData *ugd = (ugData *)data; - ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); - - if (ugd->ug_ListPlay.ug_Player != 0) { - /*/destroy can be invoked at any state */ - if (player_destroy(ugd->ug_ListPlay.ug_Player) != 0) { - ug_debug("Error when __mf_ug_list_play_destory\n"); - UG_TRACE_END; - return false; - } else { - ugd->ug_ListPlay.ug_Player = 0; - ugd->ug_ListPlay.ug_iPlayState = PLAY_STATE_INIT; - UG_TRACE_END; - return true; - } - } - - UG_SAFE_FREE_CHAR(g_player_cbs); - if (g_player_pipe) { - ecore_pipe_del(g_player_pipe); - g_player_pipe = NULL; - } - UG_TRACE_END; - return false; + UG_TRACE_BEGIN; + ugData *ugd = (ugData *)data; + ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); + + if (ugd->ug_ListPlay.ug_Player != 0) { + /*/destroy can be invoked at any state */ + if (player_destroy(ugd->ug_ListPlay.ug_Player) != 0) { + ug_debug("Error when __mf_ug_list_play_destory\n"); + UG_TRACE_END; + return false; + } else { + ugd->ug_ListPlay.ug_Player = 0; + ugd->ug_ListPlay.ug_iPlayState = PLAY_STATE_INIT; + UG_TRACE_END; + return true; + } + } + + UG_TRACE_END; + return false; } +static void __mf_ug_list_play_pipe_destory() +{ + UG_SAFE_FREE_CHAR(g_player_cbs); + if (g_player_pipe) { + ecore_pipe_del(g_player_pipe); + g_player_pipe = NULL; + } + +} /****************************** ** Prototype : __mf_ug_list_play_play_current_file ** Description : Samsung @@ -1384,31 +1147,31 @@ static bool __mf_ug_list_play_destory(ugData *data) ******************************/ static bool __mf_ug_list_play_play_current_file(void *data) { - - UG_TRACE_BEGIN; - ugListItemData *itemData = data; - ug_mf_retvm_if(itemData == NULL, false, "itemData is NULL"); - ugData *ugd = itemData->ug_pData; - ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); - - int error_code = 0; - - player_state_e state = PLAYER_STATE_NONE; - error_code = player_get_state(ugd->ug_ListPlay.ug_Player, &state); - ug_debug("state is [%d]", state); - if (state != PLAYER_STATE_READY) { - UG_TRACE_END; - return false; - } - if (!__mf_ug_list_play_play(itemData)) { - mf_ug_list_play_destory_playing_file(ugd); - mf_ug_list_disable_play_itc(ugd, true); - UG_SAFE_FREE_CHAR(ugd->ug_ListPlay.ug_pPlayFilePath); - UG_TRACE_END; - return false; - } - - return true; + UG_TRACE_BEGIN; + ugListItemData *itemData = data; + ug_mf_retvm_if(itemData == NULL, false, "itemData is NULL"); + ugData *ugd = itemData->ug_pData; + ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); + int err_code = 0; + player_state_e state = PLAYER_STATE_NONE; + + err_code = player_get_state(ugd->ug_ListPlay.ug_Player, &state); + ug_debug("state : [%d] , error code : [%d]", state, err_code); + + if (state != PLAYER_STATE_READY) { + UG_TRACE_END; + return false; + } + if (!__mf_ug_list_play_play(itemData)) { + mf_ug_list_play_destory_playing_file(ugd); + mf_ug_list_disable_play_itc(ugd, true); + ugd->ug_ListPlay.play_data = NULL; + UG_SAFE_FREE_CHAR(ugd->ug_ListPlay.ug_pPlayFilePath); + UG_TRACE_END; + return false; + } + + return true; } @@ -1429,51 +1192,48 @@ static bool __mf_ug_list_play_play_current_file(void *data) ******************************/ static bool __mf_ug_list_play_resume(void *data) { - UG_TRACE_BEGIN; - ugData *ugd = (ugData *)data; - ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); - - player_state_e state = PLAYER_STATE_NONE; - int error_code = 0; - int err = -1; - - if (ugd->ug_ListPlay.ug_Player != 0) { - error_code = player_get_state(ugd->ug_ListPlay.ug_Player, &state); - ug_debug("state is [%d]", state); - - if (0 == error_code && PLAYER_STATE_PAUSED == state) { - err = player_start(ugd->ug_ListPlay.ug_Player); - - if (err != PLAYER_ERROR_NONE) { - - if (err == PLAYER_ERROR_SOUND_POLICY) - { - ug_error("ERROR HERE !!!!!!!"); - ugd->ug_MainWindow.ug_pNormalPopup = mf_ug_popup_create(ugd, UG_POPMODE_TEXT, NULL, MF_UG_LABEL_UNABLE_TO_PLAY_DURING_CALL, NULL, - NULL, NULL, NULL, NULL); - } - else - { - ug_error("ERROR HERE !!!!!!!"); - ugd->ug_MainWindow.ug_pNormalPopup = mf_ug_popup_create(ugd, UG_POPMODE_TEXT, NULL, MF_UG_LABEL_UNABLE_TO_PLAY_ERROR_OCCURRED, NULL, - NULL, NULL, NULL, NULL); - } - ug_error("Error when _mp_player_mgr_play. err[%x]\n", err); - UG_TRACE_END; - return false; - } else { - __mf_ug_list_play_set_play_start_status(ugd, ugd->ug_ListPlay.ug_pPlayFilePath); - mf_ug_list_disable_play_itc(ugd, false); - UG_TRACE_END; - return true; - } - } else { - UG_TRACE_END; - return false; - } - } - UG_TRACE_END; - return false; + UG_TRACE_BEGIN; + ugData *ugd = (ugData *)data; + ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); + + player_state_e state = PLAYER_STATE_NONE; + int error_code = 0; + int err = -1; + + if (ugd->ug_ListPlay.ug_Player != 0) { + error_code = player_get_state(ugd->ug_ListPlay.ug_Player, &state); + ug_debug("state is [%d]", state); + + if (0 == error_code && PLAYER_STATE_PAUSED == state) { + err = player_start(ugd->ug_ListPlay.ug_Player); + + if (err != PLAYER_ERROR_NONE) { + + if (err == PLAYER_ERROR_SOUND_POLICY) { + ug_error("ERROR HERE !!!!!!!"); + ugd->ug_MainWindow.ug_pNormalPopup = mf_ug_popup_create(ugd, UG_POPMODE_TEXT, NULL, MF_UG_LABEL_UNABLE_TO_PLAY_DURING_CALL, NULL, + NULL, NULL, NULL, NULL); + } else { + ug_error("ERROR HERE !!!!!!!"); + ugd->ug_MainWindow.ug_pNormalPopup = mf_ug_popup_create(ugd, UG_POPMODE_TEXT, NULL, MF_UG_LABEL_UNABLE_TO_PLAY_ERROR_OCCURRED, NULL, + NULL, NULL, NULL, NULL); + } + ug_error("Error when _mp_player_mgr_play. err[%x]\n", err); + UG_TRACE_END; + return false; + } else { + __mf_ug_list_play_set_play_start_status(ugd, ugd->ug_ListPlay.ug_pPlayFilePath); + mf_ug_list_disable_play_itc(ugd, false); + UG_TRACE_END; + return true; + } + } else { + UG_TRACE_END; + return false; + } + } + UG_TRACE_END; + return false; } @@ -1495,35 +1255,35 @@ static bool __mf_ug_list_play_resume(void *data) ******************************/ static bool __mf_ug_list_play_pause(void *data) { - UG_TRACE_BEGIN; - ugData *ugd = (ugData *)data; - ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); - - int err = 0; - player_state_e state = PLAYER_STATE_NONE; - int error_code = 0; - - if (ugd->ug_ListPlay.ug_Player) { - error_code = player_get_state(ugd->ug_ListPlay.ug_Player, &state); - ug_debug("state is [%d]", state); - - if (0 == error_code && PLAYER_STATE_PLAYING == state) { - err = player_pause(ugd->ug_ListPlay.ug_Player); - if (err != 0) { - ug_debug("Error when _ug_player_mgr_pause. err[%x]\n", err); - UG_TRACE_END; - return false; - } else { - UG_TRACE_END; - return true; - } - } else { - UG_TRACE_END; - return false; - } - } - UG_TRACE_END; - return false; + UG_TRACE_BEGIN; + ugData *ugd = (ugData *)data; + ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); + + int err = 0; + player_state_e state = PLAYER_STATE_NONE; + int error_code = 0; + + if (ugd->ug_ListPlay.ug_Player) { + error_code = player_get_state(ugd->ug_ListPlay.ug_Player, &state); + ug_debug("state is [%d]", state); + + if (0 == error_code && PLAYER_STATE_PLAYING == state) { + err = player_pause(ugd->ug_ListPlay.ug_Player); + if (err != 0) { + ug_debug("Error when _ug_player_mgr_pause. err[%x]\n", err); + UG_TRACE_END; + return false; + } else { + UG_TRACE_END; + return true; + } + } else { + UG_TRACE_END; + return false; + } + } + UG_TRACE_END; + return false; } @@ -1543,68 +1303,70 @@ static bool __mf_ug_list_play_pause(void *data) ** Modification : Created function ** ******************************/ -void mf_ug_list_play_pause(void *data) +bool mf_ug_list_play_pause(void *data) { - UG_TRACE_BEGIN; - ugData *ugd = (ugData *)data; - ug_mf_retm_if(ugd == NULL, "ugd is NULL"); - int state = ugd->ug_ListPlay.ug_iPlayState; - - if (state == PLAY_STATE_PLAYING) { - if(__mf_ug_list_play_pause(ugd)) { - __mf_ug_list_play_pauset(ugd); - mf_ug_list_disable_play_itc(ugd, false); - } - } + UG_TRACE_BEGIN; + ugData *ugd = (ugData *)data; + ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); + int state = ugd->ug_ListPlay.ug_iPlayState; + + if (state == PLAY_STATE_PLAYING) { + if (__mf_ug_list_play_pause(ugd)) { + __mf_ug_list_play_pauset(ugd); + mf_ug_list_disable_play_itc(ugd, false); + return true; + } + return false; + } + return false; } static void __mf_ug_list_play_control_cb(void *data) { - UG_TRACE_BEGIN; - ugListItemData *itemData = data; - ug_mf_retm_if(itemData == NULL, "itemData is NULL"); - - ugData *ugd = (ugData *)itemData->ug_pData; - ug_mf_retm_if(ugd == NULL, "ugd is NULL"); - - int state = ugd->ug_ListPlay.ug_iPlayState; - - if (state == PLAY_STATE_PLAYING) { - if(__mf_ug_list_play_pause(ugd)) { - __mf_ug_list_play_pauset(ugd); - mf_ug_list_disable_play_itc(ugd, false); - } - } else { - if(__mf_ug_list_play_resume(ugd)) { - __mf_ug_list_play_start(itemData); - } - - } - UG_TRACE_END; + UG_TRACE_BEGIN; + ugListItemData *itemData = data; + ug_mf_retm_if(itemData == NULL, "itemData is NULL"); + + ugData *ugd = (ugData *)itemData->ug_pData; + ug_mf_retm_if(ugd == NULL, "ugd is NULL"); + + int state = ugd->ug_ListPlay.ug_iPlayState; + + if (state == PLAY_STATE_PLAYING) { + if (__mf_ug_list_play_pause(ugd)) { + __mf_ug_list_play_pauset(ugd); + mf_ug_list_disable_play_itc(ugd, false); + } + } else { + if (__mf_ug_list_play_resume(ugd)) { + __mf_ug_list_play_start(itemData); + } + + } + UG_TRACE_END; } -static bool __mf_ug_list_play_play_new_file(ugListItemData *data, bool drm_check_flag) +static bool __mf_ug_list_play_play_new_file(ugListItemData *data) { - UG_TRACE_BEGIN; - ugListItemData *itemData = data; - ug_mf_retvm_if(itemData == NULL, false, "itemData is NULL"); + UG_TRACE_BEGIN; + ugListItemData *itemData = data; + ug_mf_retvm_if(itemData == NULL, false, "itemData is NULL"); - ugData *ugd = (ugData *)itemData->ug_pData; - ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); + ugData *ugd = (ugData *)itemData->ug_pData; + ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); - __mf_ug_list_play_init_data(ugd); + __mf_ug_list_play_init_data(ugd); - if (!__mf_ug_list_play_ready_new_file_play(itemData, true)) { - UG_TRACE_END; - return false; - } + if (mf_ug_main_is_background()) { + return false; + } + if (!__mf_ug_list_play_ready_new_file_play(itemData)) { + UG_TRACE_END; + return false; + } - if (!__mf_ug_list_play_play_current_file(itemData)) { - UG_TRACE_END; - return false; - } - UG_TRACE_END; + UG_TRACE_END; - return true; + return true; } @@ -1623,47 +1385,47 @@ static bool __mf_ug_list_play_play_new_file(ugListItemData *data, bool drm_check ** Modification : Created function ** ******************************/ -void mf_ug_list_play_play_music_item(ugListItemData *data) +void mf_ug_list_play_reset_playing_file(void *data) { - UG_TRACE_BEGIN; - ugListItemData *itemData = data; - ug_mf_retm_if(itemData == NULL, "itemData is NULL"); - ugData *ugd = itemData->ug_pData; - ug_mf_retm_if(ugd == NULL, "ugd is NULL"); - - int key = 0; - int error_code = 0; - error_code = vconf_get_int(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, &key); - - ug_debug("key is [%d]", key); - ug_debug("ugd->ug_ListPlay.ug_iPlayState is [%d]", ugd->ug_ListPlay.ug_iPlayState); - - if (error_code == 0 && key <= VCONFKEY_SYSMAN_BAT_POWER_OFF) { - ugd->ug_MainWindow.ug_pNormalPopup = mf_ug_popup_create(ugd, UG_POPMODE_TEXT, NULL, ("Battery low, play failed!"), NULL, NULL, NULL, NULL, NULL); - } else if (error_code != 0) { - ugd->ug_MainWindow.ug_pNormalPopup = mf_ug_popup_create(ugd, UG_POPMODE_TEXT, NULL, ("Unkown error, play failed!"), NULL, NULL, NULL, NULL, NULL); - } else { - if (ugd->ug_ListPlay.ug_pPlayFilePath != NULL) { - ug_debug(); - if (g_strcmp0(ugd->ug_ListPlay.ug_pPlayFilePath, itemData->ug_pItemName->str) != 0) { - //mf_ug_list_play_destory_playing_file(ugd); - mf_ug_list_play_reset_playing_file(ugd); - mf_ug_list_disable_play_itc(ugd, true); - //mf_ug_list_play_update_item_icon(ugd); - __mf_ug_list_play_play_new_file(itemData, true); - } else { - ug_debug(); - /*/ playing the same file */ - __mf_ug_list_play_control_cb(itemData); - } - } else { - ug_debug(); - mf_ug_list_disable_play_itc(ugd, false); - __mf_ug_list_play_play_new_file(itemData, true); - } - } - UG_TRACE_END; + UG_TRACE_BEGIN; + ugData *ugd = (ugData *)data; + ug_mf_retm_if(ugd == NULL, "ugd is NULL"); + __mf_ug_list_play_unrealize(ugd); +} +void mf_ug_list_play_play_music_item(ugListItemData *data) +{ + UG_TRACE_BEGIN; + ugListItemData *itemData = data; + ug_mf_retm_if(itemData == NULL, "itemData is NULL"); + ugData *ugd = itemData->ug_pData; + ug_mf_retm_if(ugd == NULL, "ugd is NULL"); + + ug_debug("ugd->ug_ListPlay.ug_iPlayState is [%d]", ugd->ug_ListPlay.ug_iPlayState); + + if (ugd->ug_ListPlay.ug_pPlayFilePath != NULL) { + ug_debug(); + if (g_strcmp0(ugd->ug_ListPlay.ug_pPlayFilePath, itemData->ug_pItemName->str) != 0) { + /*mf_ug_list_play_destory_playing_file(ugd);*/ + mf_ug_list_play_reset_playing_file(ugd); + mf_ug_list_disable_play_itc(ugd, true); + if (!__mf_ug_list_play_play_new_file(itemData)) { + mf_ug_popup_create(ugd, UG_POPMODE_TEXT, NULL, MF_UG_LABEL_UNABLE_TO_PLAY_ERROR_OCCURRED, + NULL, NULL, NULL, NULL, NULL); + } + } else { + /*/ playing the same file */ + __mf_ug_list_play_control_cb(itemData); + } + } else { + mf_ug_list_disable_play_itc(ugd, false); + if (!__mf_ug_list_play_play_new_file(itemData)) { + mf_ug_popup_create(ugd, UG_POPMODE_TEXT, NULL, MF_UG_LABEL_UNABLE_TO_PLAY_ERROR_OCCURRED, + NULL, NULL, NULL, NULL, NULL); + } + } + + UG_TRACE_END; } /****************************** @@ -1681,105 +1443,178 @@ void mf_ug_list_play_play_music_item(ugListItemData *data) ** Modification : Created function ** ******************************/ -void mf_ug_list_play_reset_playing_file(void *data) +void mf_ug_list_play_destory_playing_file(void *data) { - UG_TRACE_BEGIN; - ugData *ugd = (ugData *)data; - ug_mf_retm_if(ugd == NULL, "ugd is NULL"); - __mf_ug_list_play_unrealize(ugd); + UG_TRACE_BEGIN; + ugData *ugd = (ugData *)data; + ug_mf_retm_if(ugd == NULL, "ugd is NULL"); + __mf_ug_list_play_pipe_destory(); + __mf_ug_list_play_stop(ugd); + __mf_ug_list_play_unrealize(ugd); + __mf_ug_list_play_destory(ugd); + UG_TRACE_END; +} +static sound_type_e mf_ug_player_get_sound_type() +{ + UG_TRACE_BEGIN; + sound_type_e type = SOUND_TYPE_SYSTEM; + int ret = 0; + ret = sound_manager_get_current_sound_type(&type); + ug_debug("ret is [%d]", ret); + UG_TRACE_END; + return type; } -void mf_ug_list_play_destory_playing_file(void *data) + +static int mf_ug_player_get_volume(sound_type_e type) +{ + UG_TRACE_BEGIN; + int volume = 0; + int ret = 0; + ret = sound_manager_get_volume(SOUND_TYPE_MEDIA, &volume); + /*ret = sound_manager_get_volume(type, &volume);*/ + ug_debug("ret is [%d]", ret); + UG_TRACE_END; + return volume; + +} + +static void mf_ug_player_vol_type_set(mf_player_volume_type type) { - UG_TRACE_BEGIN; - ugData *ugd = (ugData *)data; - ug_mf_retm_if(ugd == NULL, "ugd is NULL"); - - __mf_ug_list_play_stop(ugd); - __mf_ug_list_play_unrealize(ugd); - __mf_ug_list_play_destory(ugd); - UG_TRACE_END; + UG_TRACE_BEGIN; + sound_type_e current_type; + int volume = 0; + current_type = mf_ug_player_get_sound_type(); + volume = mf_ug_player_get_volume(current_type); + + /*Fix the P130902-01617, refer to the android galaxy S4.*/ + if (g_init_volume == -1) { + g_init_current_type = current_type; + g_init_volume = volume; + } + + ug_debug("current type is [%d] volume is [%d] type is [%d]", current_type, volume, type); + + switch (type) { + case MF_VOLUME_ALERT: + /*sound_manager_set_volume_key_type(VOLUME_KEY_TYPE_ALARM);*/ + break; + case MF_VOLUME_NOTIFICATION: + /*sound_manager_set_volume_key_type(VOLUME_KEY_TYPE_NOTIFICATION);*/ + break; + case MF_VOLUME_RINGTONE: + /*sound_manager_set_volume_key_type(VOLUME_KEY_TYPE_RINGTONE);*/ + break; + default: + /*sound_manager_set_volume_key_type(type);*/ + break; + } + UG_TRACE_END; } +void mf_ug_player_vol_reset_default_value(void *data) +{ + UG_TRACE_BEGIN; + ug_mf_retm_if(data == NULL, "data is NULL"); + ugData *ugd = (ugData *)data; + + if (ugd->ug_UiGadget.ug_iSoundMode == mf_ug_sound_mode_none) + return; + + sound_type_e current_type; + current_type = mf_ug_player_get_sound_type(); + if (g_init_current_type != current_type) { + mf_ug_player_vol_type_set(g_init_current_type); + } +} -static sound_type_e mf_ug_player_get_sound_type() +void mf_ug_player_vol_set(void *data, const char *path) { - UG_TRACE_BEGIN; - sound_type_e type = SOUND_TYPE_SYSTEM; - int ret = 0; - ret = sound_manager_get_current_sound_type(&type); - ug_error("ret is [%d]", ret); - UG_TRACE_END; - return type; + ug_mf_retm_if(path == NULL, "path is NULL"); + ug_mf_retm_if(data == NULL, "data is NULL"); + ugData *ugd = (ugData *)data; + + if (ugd->ug_UiGadget.ug_iSoundMode == mf_ug_sound_mode_none) + return; + + if (g_strcmp0(path, UG_SETTING_MSG_ALERTS_PATH) == 0) { + mf_ug_player_vol_type_set(MF_VOLUME_NOTIFICATION); + } else if (g_strcmp0(path, UG_SETTING_RINGTONE_PATH) == 0) { + mf_ug_player_vol_type_set(MF_VOLUME_RINGTONE); + } else if (g_strcmp0(path, UG_SETTING_ALERTS_PATH) == 0 || g_strcmp0(path, UG_SETTING_SMART_ALRAMS) == 0) { + mf_ug_player_vol_type_set(MF_VOLUME_ALERT); + } else { + mf_ug_player_vol_type_set(MF_VOLUME_NONE); + } } -static int mf_ug_player_get_volume(sound_type_e type) +bool mf_ug_is_default_ringtone(void *data, const char *path) { - UG_TRACE_BEGIN; - int volume = 0; - int ret = 0; - ret = sound_manager_get_volume(SOUND_TYPE_MEDIA, &volume); - //ret = sound_manager_get_volume(type, &volume); - ug_error("ret is [%d]", ret); - UG_TRACE_END; - return volume; + UG_TRACE_BEGIN; + ugData *ugd = (ugData *)data; + ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); + if (ugd->ug_UiGadget.default_ringtone) { + if (g_strcmp0(MF_UG_LABEL_DEFAULT_RINGTONE, path) == 0) + return true; + } + + return false; } -static void mf_ug_player_set_volume(sound_type_e type, int volume) +bool mf_ug_is_silent(void *data, const char *path) { - UG_TRACE_BEGIN; - int ret = 0; - ret = sound_manager_set_volume(type, volume); - ug_error("ret is [%d]", ret); - UG_TRACE_END; + + UG_TRACE_BEGIN; + ugData *ugd = (ugData *)data; + ug_mf_retvm_if(ugd == NULL, false, "ugd is NULL"); + if (ugd->ug_UiGadget.default_ringtone) { + if (g_strcmp0(MF_UG_LABEL_SILENT, path) == 0) + return true; + } + + return false; } +void mf_ug_cb_earjack_changed_cb(runtime_info_key_e key, void *data) +{ + ugData *ugd = (ugData *)data; + ug_mf_retm_if(ugd == NULL, "ugd is NULL"); + + int earjack = 0; + int retcode = -1; + + retcode = runtime_info_get_value_int(RUNTIME_INFO_KEY_AUDIO_JACK_STATUS, &earjack); + if (RUNTIME_INFO_ERROR_NONE != retcode) { + ug_error("runtime_info_get_init failed."); + earjack = RUNTIME_INFO_AUDIO_JACK_STATUS_UNCONNECTED; + } + if (earjack > RUNTIME_INFO_AUDIO_JACK_STATUS_UNCONNECTED) { + if (ugd->ug_ListPlay.ug_pPlayFilePath && ugd->ug_ListPlay.ug_iPlayState == PLAY_STATE_PLAYING) { + __mf_ug_list_play_pauset(ugd); + mf_ug_list_disable_play_itc(ugd, false); + + } + } +} -static void mf_ug_player_vol_type_set(mf_player_volume_type type) +int mf_ug_list_play_earjack_monitor(void *data) { - UG_TRACE_BEGIN; - sound_type_e current_type; - int volume = 0; - current_type = mf_ug_player_get_sound_type(); - volume = mf_ug_player_get_volume(current_type); - ug_error("current type is [%d] volume is [%d] type is [%d]", current_type, volume, type); - sound_manager_set_volume_key_type(VOLUME_KEY_TYPE_MEDIA); - mf_ug_player_set_volume(SOUND_TYPE_MEDIA, volume); - UG_TRACE_END; - return; - switch (type) { - case MF_VOLUME_ALERT: - sound_manager_set_volume_key_type(VOLUME_KEY_TYPE_ALARM); - mf_ug_player_set_volume(SOUND_TYPE_ALARM, volume); - break; - case MF_VOLUME_NOTIFICATION: - sound_manager_set_volume_key_type(VOLUME_KEY_TYPE_NOTIFICATION); - mf_ug_player_set_volume(SOUND_TYPE_NOTIFICATION, volume); - break; - case MF_VOLUME_RINGTONE: - sound_manager_set_volume_key_type(VOLUME_KEY_TYPE_RINGTONE); - mf_ug_player_set_volume(SOUND_TYPE_RINGTONE, volume); - break; - default: - sound_manager_set_volume_key_type(VOLUME_KEY_TYPE_MEDIA); - mf_ug_player_set_volume(SOUND_TYPE_MEDIA, volume); - break; - } - UG_TRACE_END; + ugData *ugd = (ugData *)data; + ug_mf_retvm_if(ugd == NULL, UG_ERROR_RETURN, "ugd is NULL"); + + return runtime_info_set_changed_cb(RUNTIME_INFO_KEY_AUDIO_JACK_STATUS, mf_ug_cb_earjack_changed_cb, ugd); } -void mf_ug_player_vol_set(const char *path) +void mf_ug_destory_earjack_monitor(void) { - ug_mf_retm_if(path == NULL, "path is NULL"); - if (g_strcmp0(path, UG_SETTING_MSG_ALERTS_PATH) == 0) { - mf_ug_player_vol_type_set(MF_VOLUME_NOTIFICATION); - } else if (g_strcmp0(path, UG_SETTING_RINGTONE_PATH) == 0) { - mf_ug_player_vol_type_set(MF_VOLUME_RINGTONE); - } else if (g_strcmp0(path, UG_SETTING_ALERTS_PATH) == 0) { - mf_ug_player_vol_type_set(MF_VOLUME_ALERT); - } else { - mf_ug_player_vol_type_set(MF_VOLUME_NONE); - } + UG_TRACE_BEGIN; + int retcode = -1; + + retcode = runtime_info_unset_changed_cb(RUNTIME_INFO_KEY_AUDIO_JACK_STATUS); + if (retcode != RUNTIME_INFO_ERROR_NONE) { + ug_error("runtime_info_unset failed."); + } + UG_TRACE_END; } |