Add support for mute API set
[platform/core/multimedia/libmm-sound.git] / include / mm_sound_client.h
index 4a31114..ce62bb9 100644 (file)
 
 #include "mm_sound_private.h"
 #include "mm_sound_device.h"
-#ifdef USE_FOCUS
+
 #include "mm_sound_focus.h"
-#endif
+typedef enum {
+       IDLE_EVENT_TYPE_UNSET_FOCUS_WATCH_CB,
+       IDLE_EVENT_TYPE_UNREGISTER_FOCUS,
+       IDLE_EVENT_TYPE_MAX
+} focus_idle_event_type_e;
 
 //#define MEMTYPE_TRANS_PER_MAX (1024 * 1024) /* 1MB */
 
 int mm_sound_client_initialize(void);
 int mm_sound_client_finalize(void);
-int mm_sound_client_play_tone(int number, int volume_config, double volume, int time, int *handle, bool enable_session);
 int mm_sound_client_play_tone_with_stream_info(int tone, char *stream_type, int stream_id, double volume, int duration, int *handle);
-int mm_sound_client_play_sound(MMSoundPlayParam *param, int tone, int *handle);
 int mm_sound_client_play_sound_with_stream_info(MMSoundPlayParam *param, int *handle, char* stream_type, int stream_id);
 int mm_sound_client_stop_sound(int handle);
-int mm_sound_client_is_route_available(mm_sound_route route, bool *is_available);
-int mm_sound_client_foreach_available_route_cb(mm_sound_available_route_cb, void *user_data);
-int mm_sound_client_set_active_route(mm_sound_route route, bool need_broadcast);
-int mm_sound_client_get_active_device(mm_sound_device_in *device_in, mm_sound_device_out *device_out);
-int mm_sound_client_add_active_device_changed_callback(const char *name, mm_sound_active_device_changed_cb func, void* user_data);
-int mm_sound_client_remove_active_device_changed_callback(const char *name);
-int mm_sound_client_add_available_route_changed_callback(mm_sound_available_route_changed_cb func, void* user_data);
-int mm_sound_client_remove_available_route_changed_callback(void);
-int mm_sound_client_set_volume_by_type(const int volume_type, const unsigned int volume_level);
+int mm_sound_client_set_volume_by_type(volume_type_t type, const unsigned int level);
+int mm_sound_client_get_volume_by_type(volume_type_t type, unsigned int *level);
 int mm_sound_client_add_volume_changed_callback(mm_sound_volume_changed_cb func, void* user_data, unsigned int *subs_id);
 int mm_sound_client_remove_volume_changed_callback(unsigned int subs_id);
-int mm_sound_client_set_sound_path_for_active_device(mm_sound_device_out device_out, mm_sound_device_in device_in);
-int mm_sound_client_get_current_connected_device_list(int device_flgas, mm_sound_device_list_t **device_list);
+int mm_sound_client_set_mute_by_type(volume_type_t type, bool mute);
+int mm_sound_client_get_mute_by_type(volume_type_t type, bool *muted);
+int mm_sound_client_set_filter_by_type(const char *stream_type, const char *filter_name, const char *filter_parameters, const char *filter_group);
+int mm_sound_client_unset_filter_by_type(const char *stream_type);
+int mm_sound_client_control_filter_by_type(const char *stream_type, const char *filter_name, const char *filter_controls);
+int mm_sound_client_get_current_connected_device_list(int device_flgas, mm_sound_device_list_t *device_list);
+int mm_sound_client_get_device_by_id(int device_id, mm_sound_device_t **device);
 int mm_sound_client_add_device_connected_callback(int device_flags, mm_sound_device_connected_cb func, void* user_data, unsigned int *subs_id);
 int mm_sound_client_remove_device_connected_callback(unsigned int subs_id);
 int mm_sound_client_add_device_info_changed_callback(int device_flags, mm_sound_device_info_changed_cb func, void* user_data, unsigned int *subs_id);
 int mm_sound_client_remove_device_info_changed_callback(unsigned int subs_id);
-#ifdef USE_FOCUS
-int mm_sound_client_set_session_interrupt_callback(mm_sound_focus_session_interrupt_cb callback, void* user_data);
-int mm_sound_client_unset_session_interrupt_callback(void);
-int mm_sound_client_get_uniq_id(int *id);
+int mm_sound_client_add_device_state_changed_callback(int device_flags, mm_sound_device_state_changed_cb func, void *userdata, unsigned int *id);
+int mm_sound_client_remove_device_state_changed_callback(unsigned int id);
+int mm_sound_client_add_device_running_changed_callback(int device_flags, mm_sound_device_running_changed_cb func, void *userdata, unsigned int *id);
+int mm_sound_client_remove_device_running_changed_callback(unsigned int id);
+int mm_sound_client_is_stream_on_device(int stream_id, int device_id, bool *is_on);
 int mm_sound_client_is_focus_cb_thread(GThread *mine, bool *result);
-int mm_sound_client_register_focus(int id, int pid, const char *stream_type, mm_sound_focus_changed_cb callback, bool is_for_session, void* user_data);
+int mm_sound_client_register_focus(int pid, const char *stream_type, mm_sound_focus_changed_cb callback, void* user_data, int *id);
 int mm_sound_client_unregister_focus(int id);
 int mm_sound_client_set_focus_reacquisition(int id, bool reacquisition);
 int mm_sound_client_get_focus_reacquisition(int id, bool *reacquisition);
-int mm_sound_client_acquire_focus(int id, mm_sound_focus_type_e type, const char *option);
-int mm_sound_client_release_focus(int id, mm_sound_focus_type_e type, const char *option);
-int mm_sound_client_set_focus_watch_callback(int pid, mm_sound_focus_type_e type, mm_sound_focus_changed_watch_cb callback, bool is_for_session, void* user_data, int *id);
+int mm_sound_client_get_acquired_focus_stream_type(int focus_type, char **stream_type, int *option, char **ext_info);
+int mm_sound_client_acquire_focus(int id, mm_sound_focus_type_e type, int option, const char *ext_info);
+int mm_sound_client_release_focus(int id, mm_sound_focus_type_e type, int option, const char *ext_info);
+int mm_sound_client_update_stream_focus_status(int id, unsigned int status);
+int mm_sound_client_deliver_focus(int src_id, int dst_id, mm_sound_focus_type_e focus_type);
+int mm_sound_client_set_focus_watch_callback(int pid, mm_sound_focus_type_e type, mm_sound_focus_changed_watch_cb callback, void* user_data, int *id);
 int mm_sound_client_unset_focus_watch_callback(int id);
-#endif
-
-int mm_sound_client_is_bt_a2dp_on (bool *connected, char** bt_name);
-int mm_sound_client_set_active_route_auto(void);
-int mm_sound_client_get_audio_path(mm_sound_device_in *device_in, mm_sound_device_out *device_out);
+int mm_sound_client_request_unset_focus_watch_callback(int id);
+int mm_sound_client_execute_focus_func_in_main_context(focus_idle_event_type_e type, int data);
 
 int mm_sound_client_add_test_callback(mm_sound_test_cb func, void* user_data, unsigned int *subs_id);
 int mm_sound_client_remove_test_callback(unsigned int subs_id);
 int mm_sound_client_test(int a, int b, int* get);
 
 typedef void (*mm_sound_volume_changed_wrapper_cb)(const char *direction, const char *volume_type_str, int volume_level, void *userdata);
-typedef void (*mm_sound_device_connected_wrapper_cb)(int device_id, const char *device_type, int io_direction, int state, const char *name, gboolean is_connected, void *userdata);
-typedef void (*mm_sound_device_info_changed_wrapper_cb)(int device_id, const char *device_type, int io_direction, int state, const char *name, int changed_device_info_type, void *userdata);
+typedef void (*mm_sound_device_connected_wrapper_cb)(int device_id, const char *device_type, int io_direction, int state,
+               const char *name, int vendor_id, int product_id, bool is_running, int *stream_id, int stream_num, bool is_connected, void *userdata);
+typedef void (*mm_sound_device_info_changed_wrapper_cb)(int device_id, const char *device_type, int io_direction, int state,
+               const char *name, int vendor_id, int product_id, bool is_running, int *stream_id, int stream_num, int changed_device_info_type, void *userdata);
+typedef void (*mm_sound_device_state_changed_wrapper_cb)(int device_id, const char *device_type, int io_direction, int state,
+               const char *name, int vendor_id, int product_id, bool is_running, int *stream_id, int stream_num, void *userdata);
+typedef void (*mm_sound_device_running_changed_wrapper_cb)(int device_id, const char *device_type, int io_direction, int state,
+               const char *name, int vendor_id, int product_id, bool is_running, int *stream_id, int stream_num, void *userdata);
 typedef void (*mm_sound_stop_callback_wrapper_func)(int id, void *userdata);
 
 #endif /* __MM_SOUND_CLIENT_H__ */