Use socket for IPC of focus APIs instead of the DBus
[platform/core/multimedia/libmm-sound.git] / include / mm_sound_focus.h
index 3c0552c..d725233 100644 (file)
        extern "C" {
 #endif
 
+#include <stdbool.h>
+
 typedef enum {
        FOCUS_IS_RELEASED,
        FOCUS_IS_ACQUIRED,
 } mm_sound_focus_state_e;
 
 typedef enum {
-       FOCUS_FOR_PLAYBACK = 1,
+       FOCUS_NONE,
+       FOCUS_FOR_PLAYBACK,
        FOCUS_FOR_CAPTURE,
        FOCUS_FOR_BOTH,
 } mm_sound_focus_type_e;
 
-int mm_sound_focus_get_id(int *id);
+int mm_sound_focus_is_cb_thread(bool *result);
 
-typedef void (*mm_sound_focus_changed_cb) (int id, mm_sound_focus_type_e focus_type, mm_sound_focus_state_e state, const char *reason_for_change, const char *additional_info, void *user_data);
-int mm_sound_register_focus(int id, const char *stream_type, mm_sound_focus_changed_cb callback, void *user_data);
+typedef void (*mm_sound_focus_changed_cb) (int id, mm_sound_focus_type_e focus_type, mm_sound_focus_state_e state, const char *reason_for_change, int option, const char *ext_info, void *user_data);
+int mm_sound_register_focus(const char *stream_type, mm_sound_focus_changed_cb callback, void *user_data, int *id);
 int mm_sound_unregister_focus(int id);
-int mm_sound_acquire_focus(int id, mm_sound_focus_type_e focus_type, const char *additional_info);
-int mm_sound_release_focus(int id, mm_sound_focus_type_e focus_type, const char *additional_info);
+int mm_sound_set_focus_reacquisition(int id, bool reacquisition);
+int mm_sound_get_focus_reacquisition(int id, bool *reacquisition);
+int mm_sound_get_stream_type_of_acquired_focus(int focus_type, char **stream_type, int *option, char **ext_info);
+int mm_sound_acquire_focus(int id, mm_sound_focus_type_e focus_type, const char *ext_info);
+int mm_sound_release_focus(int id, mm_sound_focus_type_e focus_type, const char *ext_info);
+int mm_sound_acquire_focus_with_option(int id, mm_sound_focus_type_e focus_type, int option, const char *ext_info);
+int mm_sound_release_focus_with_option(int id, mm_sound_focus_type_e focus_type, int option, const char *ext_info);
+int mm_sound_update_focus_status(int id, unsigned int status);
+int mm_sound_deliver_focus(int src_id, int dst_id, mm_sound_focus_type_e focus_type);
 
-typedef void (*mm_sound_focus_changed_watch_cb) (int id, mm_sound_focus_type_e focus_type, mm_sound_focus_state_e state, const char *reason_for_change, const char *additional_info, void *user_data);
+typedef void (*mm_sound_focus_changed_watch_cb) (int id, mm_sound_focus_type_e focus_type, mm_sound_focus_state_e state, const char *reason_for_change, const char *ext_info, void *user_data);
 int mm_sound_set_focus_watch_callback(mm_sound_focus_type_e focus_type, mm_sound_focus_changed_watch_cb callback, void *user_data, int *id);
 int mm_sound_unset_focus_watch_callback(int id);
 
-
 #ifdef __cplusplus
 }
 #endif