typedef struct {
int pid;
int handle_id;
- bool is_for_session;
char stream_type[MAX_STREAM_TYPE_LEN];
char option[MM_SOUND_NAME_NUM];
focus_type_e request_type;
void *callback;
void *cbdata;
+
+ bool is_for_session; /* will be removed when the session concept is completely left out*/
} _mm_sound_mgr_focus_param_t;
typedef struct _taken_by_id
int handle_id;
int priority;
bool is_for_watch;
- bool is_for_session;
char stream_type[MAX_STREAM_TYPE_LEN];
focus_status_e status;
_focus_taken_by_id_t taken_by_id[NUM_OF_STREAM_IO_TYPE];
void *callback;
void *cbdata;
+ bool is_for_session; /* will be removed when the session concept is completely left out*/
+
#ifdef SUPPORT_CONTAINER
container_info_t container;
#endif
}
if (need_to_trigger_cb) {
- _mm_sound_mgr_focus_param_t *param_s = param;
+ _mm_sound_mgr_focus_param_t *param_s = (_mm_sound_mgr_focus_param_t *)param;
param_s->is_for_session = my_node->is_for_session;
for (list = g_focus_node_list; list != NULL; list = list->next) {
node = (focus_node_t *)list->data;
}
if (need_to_trigger_cb) {
- _mm_sound_mgr_focus_param_t *param_s = param;
+ _mm_sound_mgr_focus_param_t *param_s = (_mm_sound_mgr_focus_param_t *)param;
param_s->is_for_session = my_node->is_for_session;
for (list = g_focus_node_list; list != NULL; list = list->next) {
node = (focus_node_t *)list->data;
g_free(node);
} else if (node->status == FOCUS_STATUS_DEACTIVATED) {
debug_log("clearing deactivated focus node of pid(%d) hande(%d)", node->pid, node->handle_id);
- __clear_focus_pipe(node);
- g_focus_node_list = g_list_remove(g_focus_node_list, node);
- list = g_focus_node_list;
- g_free(node);
+ my_node = node;
/* update info of nodes that are lost their focus by the process exited */
for (list_s = g_focus_node_list; list_s != NULL; list_s = list_s->next) {
node = (focus_node_t *)list_s->data;
for (i = 0; i < NUM_OF_STREAM_IO_TYPE; i++) {
if (node && (node->taken_by_id[i].pid == param->pid)) {
- UPDATE_FOCUS_TAKEN_INFO(node, 0, 0, false);
+ if (my_node->taken_by_id[i].pid) {
+ UPDATE_FOCUS_TAKEN_INFO(node, my_node->taken_by_id[i].pid, my_node->taken_by_id[i].handle_id, my_node->taken_by_id[i].by_session);
+ } else {
+ UPDATE_FOCUS_TAKEN_INFO(node, 0, 0, false);
+ }
}
}
}
+ __clear_focus_pipe(my_node);
+ g_focus_node_list = g_list_remove(g_focus_node_list, my_node);
+ list = g_focus_node_list;
+ g_free(my_node);
} else { /* node that acquired focus */
bool need_to_trigger_watch_cb = true;
_mm_sound_mgr_focus_param_t param_s;
GPollFD* g_poll_fd;
GSource* focus_src;
bool is_used;
- bool is_for_session;
GMutex focus_lock;
mm_sound_focus_changed_cb focus_callback;
mm_sound_focus_changed_watch_cb watch_callback;
void* user_data;
+
+ bool is_for_session; /* will be removed when the session concept is completely left out*/
} focus_sound_info_t;
typedef struct {
if (is_focus_registered)
enable_session = false;
- if (enable_session)
- {
- if (MM_ERROR_NONE != _mm_session_util_read_information(-1, &session_type, &session_options))
- {
+ if (enable_session) {
+ if (MM_ERROR_NONE != _mm_session_util_read_information(-1, &session_type, &session_options)) {
debug_warning("[Client] Read Session Information failed. use default \"media\" type\n");
session_type = MM_SESSION_TYPE_MEDIA;
- if(MM_ERROR_NONE != mm_session_init(session_type))
- {
+ if(MM_ERROR_NONE != mm_session_init(session_type)) {
debug_critical("[Client] MMSessionInit() failed\n");
return MM_ERROR_POLICY_INTERNAL;
}
param->skip_session = true;
if (param->skip_session == false) {
- if(MM_ERROR_NONE != _mm_session_util_read_information(-1, &session_type, &session_options))
- {
+ if(MM_ERROR_NONE != _mm_session_util_read_information(-1, &session_type, &session_options)) {
debug_warning("[Client] Read MMSession Type failed. use default \"media\" type\n");
session_type = MM_SESSION_TYPE_MEDIA;
- if(MM_ERROR_NONE != mm_session_init(session_type))
- {
+ if(MM_ERROR_NONE != mm_session_init(session_type)) {
debug_critical("[Client] MMSessionInit() failed\n");
return MM_ERROR_POLICY_INTERNAL;
}
}
}
-// instance = getpid();
-// debug_msg("[Client] pid for client ::: [%d]\n", instance);
-
/* Send msg */
- if ((param->mem_ptr && param->mem_size))
- {
+ if ((param->mem_ptr && param->mem_size)) {
// Play memory, deprecated
return MM_ERROR_INVALID_ARGUMENT;
}
Name: libmm-sound
Summary: MMSound Package contains client lib and sound_server binary
-Version: 0.9.263
+Version: 0.9.264
Release: 0
Group: System/Libraries
License: Apache-2.0
unsigned int subs_id = 0;
- err = mm_sound_add_device_connected_callback(MM_SOUND_DEVICE_ALL_FLAG, (mm_sound_device_connected_cb)sound_codec_device_connected_callback, *slotid, &subs_id);
+ err = mm_sound_add_device_connected_callback(MM_SOUND_DEVICE_STATE_ACTIVATED_FLAG, (mm_sound_device_connected_cb)sound_codec_device_connected_callback, *slotid, &subs_id);
if (err) {
debug_error("mm_sound_add_device_connected_callback failed [0x%x]", err);
pthread_mutex_unlock(&g_slot_mutex);
unsigned int subs_id = 0;
- err = mm_sound_add_device_connected_callback(MM_SOUND_DEVICE_ALL_FLAG, (mm_sound_device_connected_cb)sound_codec_device_connected_callback, *slotid, &subs_id);
+ err = mm_sound_add_device_connected_callback(MM_SOUND_DEVICE_STATE_ACTIVATED_FLAG, (mm_sound_device_connected_cb)sound_codec_device_connected_callback, *slotid, &subs_id);
if (err) {
debug_error("mm_sound_add_device_connected_callback failed [0x%x]", err);
pthread_mutex_unlock(&g_slot_mutex);