19 #ifndef MIR_SCENE_MEDIATING_DISPLAY_CHANGER_H_
20 #define MIR_SCENE_MEDIATING_DISPLAY_CHANGER_H_
30 class ServerActionQueue;
35 class DisplayConfigurationPolicy;
37 namespace compositor {
class Compositor; }
40 class SessionEventHandlerRegister;
41 class SessionContainer;
49 std::shared_ptr<graphics::Display>
const& display,
50 std::shared_ptr<compositor::Compositor>
const& compositor,
51 std::shared_ptr<graphics::DisplayConfigurationPolicy>
const& display_configuration_policy,
52 std::shared_ptr<SessionContainer>
const& session_container,
53 std::shared_ptr<SessionEventHandlerRegister>
const& session_event_handler_register,
54 std::shared_ptr<ServerActionQueue>
const& server_action_queue);
58 void configure(std::shared_ptr<frontend::Session>
const& session,
59 std::shared_ptr<graphics::DisplayConfiguration>
const& conf)
override;
63 std::shared_ptr<graphics::DisplayConfiguration>
const& conf,
70 void focus_change_handler(std::shared_ptr<Session>
const& session);
71 void no_focus_handler();
72 void session_stopping_handler(std::shared_ptr<Session>
const& session);
74 void apply_config(std::shared_ptr<graphics::DisplayConfiguration>
const& conf,
77 void send_config_to_all_sessions(
78 std::shared_ptr<graphics::DisplayConfiguration>
const& conf);
80 std::shared_ptr<graphics::Display>
const display;
81 std::shared_ptr<compositor::Compositor>
const compositor;
82 std::shared_ptr<graphics::DisplayConfigurationPolicy>
const display_configuration_policy;
83 std::shared_ptr<SessionContainer>
const session_container;
84 std::shared_ptr<SessionEventHandlerRegister>
const session_event_handler_register;
85 std::shared_ptr<ServerActionQueue>
const server_action_queue;
86 std::mutex configuration_mutex;
87 std::map<std::weak_ptr<frontend::Session>,
88 std::shared_ptr<graphics::DisplayConfiguration>,
89 std::owner_less<std::weak_ptr<frontend::Session>>> config_map;
90 std::weak_ptr<frontend::Session> focused_session;
91 std::shared_ptr<graphics::DisplayConfiguration> base_configuration;
92 bool base_configuration_applied;
All things Mir.
Definition: buffer_stream.h:37
Definition: display_changer.h:31
Definition: display_changer.h:34
SystemStateHandling
Definition: display_changer.h:36