From 181618ea53e04e1313e9abccedbdc376a1ba1dcf Mon Sep 17 00:00:00 2001 From: Derek Dai Date: Thu, 20 Apr 2017 20:52:16 +0800 Subject: [PATCH] miracle-dispd: cleanup and reorganize header Change-Id: I0067d59d89f79af53ae7291894191edb33789ab2 --- src/disp/disp.h | 65 +++++++++++++++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 26 deletions(-) diff --git a/src/disp/disp.h b/src/disp/disp.h index 509807a..3e1c513 100644 --- a/src/disp/disp.h +++ b/src/disp/disp.h @@ -17,9 +17,10 @@ * along with MiracleCast; If not, see . */ -#include "wfd.h" -#include "shl_htable.h" #include +#include "shl_htable.h" +#include "ctl.h" +#include "wfd.h" #ifndef DISP_DISP_H #define DISP_DISP_H @@ -52,7 +53,7 @@ enum wfd_session_state WFD_SESSION_STATE_CONNECTING, WFD_SESSION_STATE_CAPS_EXCHANGING, WFD_SESSION_STATE_ESTABLISHED, - WFD_SESSION_STATE_SETING_UP, + WFD_SESSION_STATE_SETTING_UP, WFD_SESSION_STATE_PAUSED, WFD_SESSION_STATE_PLAYING, WFD_SESSION_STATE_TEARING_DOWN, @@ -81,19 +82,26 @@ enum wfd_audio_server_type int wfd_out_session_new(struct wfd_session **out, unsigned int id, struct wfd_sink *sink); +struct wfd_session * wfd_session_ref(struct wfd_session *s); +void wfd_session_unref(struct wfd_session *s); + +void wfd_session_unrefp(struct wfd_session **s); +unsigned int * wfd_session_to_htable(struct wfd_session *s); +struct wfd_session * wfd_session_from_htable(unsigned int *e); + int wfd_session_start(struct wfd_session *s); -enum wfd_session_dir wfd_session_get_dir(struct wfd_session *s); -uint64_t wfd_session_get_id(struct wfd_session *s); -const char * wfd_session_get_stream_url(struct wfd_session *s); -enum wfd_session_state wfd_session_get_state(struct wfd_session *s); -int wfd_session_is_established(struct wfd_session *s); int wfd_session_resume(struct wfd_session *s); int wfd_session_pause(struct wfd_session *s); int wfd_session_teardown(struct wfd_session *s); -struct wfd_session * wfd_session_ref(struct wfd_session *s); -void wfd_session_unref(struct wfd_session *s); + +int wfd_session_is_established(struct wfd_session *s); +uint64_t wfd_session_get_id(struct wfd_session *s); +const char * wfd_session_get_stream_url(struct wfd_session *s); +enum wfd_session_state wfd_session_get_state(struct wfd_session *s); +enum wfd_session_dir wfd_session_get_dir(struct wfd_session *s); uint64_t wfd_session_get_id(struct wfd_session *s); struct wfd_sink * wfd_out_session_get_sink(struct wfd_session *s); + enum wfd_display_server_type wfd_session_get_disp_type(struct wfd_session *s); int wfd_session_set_disp_type(struct wfd_session *s, enum wfd_display_server_type); const char * wfd_session_get_disp_name(struct wfd_session *s); @@ -108,9 +116,12 @@ enum wfd_audio_server_type wfd_session_get_audio_type(struct wfd_session *s); int wfd_session_set_audio_type(struct wfd_session *s, enum wfd_audio_server_type audio_type); const char * wfd_session_get_audio_dev_name(struct wfd_session *s); int wfd_session_set_audio_dev_name(struct wfd_session *s, char *audio_dev_name); -void wfd_session_unrefp(struct wfd_session **s); -unsigned int * wfd_session_to_htable(struct wfd_session *s); -struct wfd_session * wfd_session_from_htable(unsigned int *e); +uid_t wfd_session_get_client_uid(struct wfd_session *s); +int wfd_session_set_client_uid(struct wfd_session *s, uid_t uid); +uid_t wfd_session_get_client_gid(struct wfd_session *s); +int wfd_session_set_client_gid(struct wfd_session *s, uid_t gid); +pid_t wfd_session_get_client_pid(struct wfd_session *s); +int wfd_session_set_client_pid(struct wfd_session *s, pid_t pid); /* wfd sink */ #define _wfd_sink_free_ _shl_cleanup_(wfd_sink_freep) @@ -130,20 +141,21 @@ struct wfd_sink int wfd_sink_new(struct wfd_sink **out, struct ctl_peer *peer, union wfd_sube *sube); - void wfd_sink_free(struct wfd_sink *sink); - -const char * wfd_sink_get_label(struct wfd_sink *sink); -const union wfd_sube * wfd_sink_get_dev_info(struct wfd_sink *sink); -int wfd_sink_create_session(struct wfd_sink *sink, struct wfd_session **out); -void wfd_sink_handle_session_ended(struct wfd_sink *sink); -bool wfd_sink_is_session_started(struct wfd_sink *sink); static inline void wfd_sink_freep(struct wfd_sink **s) { wfd_sink_free(*s); *s = NULL; } +int wfd_sink_create_session(struct wfd_sink *sink, struct wfd_session **out); + +const char * wfd_sink_get_label(struct wfd_sink *sink); +const union wfd_sube * wfd_sink_get_dev_info(struct wfd_sink *sink); +bool wfd_sink_is_session_started(struct wfd_sink *sink); + +void wfd_sink_handle_session_ended(struct wfd_sink *sink); + /* wfd handling */ #define ctl_wfd_foreach_sink(_i, _w) \ SHL_HTABLE_FOREACH_MACRO(_i, \ @@ -166,6 +178,13 @@ struct ctl_wfd }; struct ctl_wfd * ctl_wfd_get(); +void ctl_wfd_shutdown(struct ctl_wfd *wfd); + +static inline struct sd_event * ctl_wfd_get_loop() +{ + return ctl_wfd_get()->loop; +} + int ctl_wfd_find_sink_by_label(struct ctl_wfd *wfd, const char *label, struct wfd_sink **out); @@ -176,13 +195,7 @@ int ctl_wfd_find_session_by_id(struct ctl_wfd *wfd, int ctl_wfd_remove_session_by_id(struct ctl_wfd *wfd, unsigned int id, struct wfd_session **out); -void ctl_wfd_shutdown(struct ctl_wfd *wfd); unsigned int ctl_wfd_alloc_session_id(struct ctl_wfd *wfd); -void ctl_wfd_shutdown(struct ctl_wfd *wfd); -static inline struct sd_event * ctl_wfd_get_loop() -{ - return ctl_wfd_get()->loop; -} int wfd_fn_session_new(struct wfd_session *s); int wfd_fn_session_free(struct wfd_session *s);