19 #ifndef MIR_SCENE_MEDIATING_DISPLAY_CHANGER_H_
20 #define MIR_SCENE_MEDIATING_DISPLAY_CHANGER_H_
31 class ServerActionQueue;
36 class DisplayConfigurationPolicy;
37 class DisplayConfigurationReport;
39 namespace compositor {
class Compositor; }
42 class SessionEventHandlerRegister;
43 class SessionContainer;
52 std::shared_ptr<graphics::Display>
const& display,
53 std::shared_ptr<compositor::Compositor>
const& compositor,
54 std::shared_ptr<graphics::DisplayConfigurationPolicy>
const& display_configuration_policy,
55 std::shared_ptr<SessionContainer>
const& session_container,
56 std::shared_ptr<SessionEventHandlerRegister>
const& session_event_handler_register,
57 std::shared_ptr<ServerActionQueue>
const& server_action_queue,
58 std::shared_ptr<graphics::DisplayConfigurationReport>
const& report);
62 void configure(std::shared_ptr<frontend::Session>
const& session,
63 std::shared_ptr<graphics::DisplayConfiguration>
const& conf)
override;
67 std::shared_ptr<graphics::DisplayConfiguration>
const& conf,
75 std::shared_ptr<graphics::DisplayConfiguration>
const &conf)
override;
78 void focus_change_handler(std::shared_ptr<Session>
const& session);
79 void no_focus_handler();
80 void session_stopping_handler(std::shared_ptr<Session>
const& session);
82 void apply_config(std::shared_ptr<graphics::DisplayConfiguration>
const& conf,
85 void send_config_to_all_sessions(
86 std::shared_ptr<graphics::DisplayConfiguration>
const& conf);
88 std::shared_ptr<graphics::Display>
const display;
89 std::shared_ptr<compositor::Compositor>
const compositor;
90 std::shared_ptr<graphics::DisplayConfigurationPolicy>
const display_configuration_policy;
91 std::shared_ptr<SessionContainer>
const session_container;
92 std::shared_ptr<SessionEventHandlerRegister>
const session_event_handler_register;
93 std::shared_ptr<ServerActionQueue>
const server_action_queue;
94 std::shared_ptr<graphics::DisplayConfigurationReport>
const report;
95 std::mutex configuration_mutex;
96 std::map<std::weak_ptr<frontend::Session>,
97 std::shared_ptr<graphics::DisplayConfiguration>,
98 std::owner_less<std::weak_ptr<frontend::Session>>> config_map;
99 std::weak_ptr<frontend::Session> focused_session;
100 std::shared_ptr<graphics::DisplayConfiguration> base_configuration;
101 bool base_configuration_applied;
All things Mir.
Definition: atomic_callback.h:25
Definition: display_changer.h:31
Definition: display_changer.h:34
SystemStateHandling
Definition: display_changer.h:36
Definition: display_configuration_controller.h:34