media-session: make the services more modular

This commit is contained in:
Wim Taymans 2019-11-20 16:18:46 +01:00
parent b7aa8f5c85
commit 80ac755670
13 changed files with 567 additions and 354 deletions

View file

@ -104,11 +104,25 @@ struct sm_port {
struct pw_port_info *info;
};
struct sm_session {
struct sm_object obj;
#define SM_SESSION_CHANGE_MASK_INFO (1<<0)
uint32_t mask; /**< monitored info */
uint32_t avail; /**< available info */
uint32_t changed; /**< changed since last update */
struct pw_session_info *info;
struct spa_list endpoint_list;
};
struct sm_endpoint {
struct sm_object obj;
int32_t priority;
struct sm_session *session;
struct spa_list link; /**< link in session endpoint_list */
#define SM_ENDPOINT_CHANGE_MASK_INFO (1<<0)
#define SM_ENDPOINT_CHANGE_MASK_STREAMS (1<<1)
uint32_t mask; /**< monitored info */
@ -163,10 +177,12 @@ struct sm_media_session_events {
};
struct sm_media_session {
struct pw_main_loop *loop;
struct sm_session *session; /** session object managed by this session */
struct pw_loop *loop; /** the main loop */
struct pw_core *core;
struct pw_session_info info;
struct spa_dbus_connection *dbus_connection;
};
int sm_media_session_add_listener(struct sm_media_session *sess, struct spa_hook *listener,