19 #ifndef MIR_SCENE_MEDIATING_DISPLAY_CHANGER_H_
20 #define MIR_SCENE_MEDIATING_DISPLAY_CHANGER_H_
34 class DisplayConfigurationPolicy;
36 namespace compositor {
class Compositor; }
39 class SessionEventHandlerRegister;
40 class SessionContainer;
47 std::shared_ptr<graphics::Display>
const& display,
48 std::shared_ptr<compositor::Compositor>
const& compositor,
49 std::shared_ptr<graphics::DisplayConfigurationPolicy>
const& display_configuration_policy,
50 std::shared_ptr<SessionContainer>
const& session_container,
51 std::shared_ptr<SessionEventHandlerRegister>
const& session_event_handler_register);
55 void configure(std::shared_ptr<frontend::Session>
const& session,
56 std::shared_ptr<graphics::DisplayConfiguration>
const& conf);
60 std::shared_ptr<graphics::DisplayConfiguration>
const& conf,
64 void apply_config(std::shared_ptr<graphics::DisplayConfiguration>
const& conf,
67 void send_config_to_all_sessions(
68 std::shared_ptr<graphics::DisplayConfiguration>
const& conf);
70 std::shared_ptr<graphics::Display>
const display;
71 std::shared_ptr<compositor::Compositor>
const compositor;
72 std::shared_ptr<graphics::DisplayConfigurationPolicy>
const display_configuration_policy;
73 std::shared_ptr<SessionContainer>
const session_container;
74 std::shared_ptr<SessionEventHandlerRegister>
const session_event_handler_register;
75 std::mutex configuration_mutex;
76 std::map<std::weak_ptr<frontend::Session>,
77 std::shared_ptr<graphics::DisplayConfiguration>,
78 std::owner_less<std::weak_ptr<frontend::Session>>> config_map;
79 std::weak_ptr<frontend::Session> focused_session;
80 std::shared_ptr<graphics::DisplayConfiguration> base_configuration;
81 bool base_configuration_applied;
Definition: display_changer.h:31
Definition: display_changer.h:34
SystemStateHandling
Definition: display_changer.h:36