19 #ifndef MIR_SCENE_MEDIATING_DISPLAY_CHANGER_H_ 20 #define MIR_SCENE_MEDIATING_DISPLAY_CHANGER_H_ 32 class ServerActionQueue;
37 class DisplayConfigurationPolicy;
38 class DisplayConfigurationReport;
40 namespace compositor {
class Compositor; }
47 class SessionEventHandlerRegister;
48 class SessionContainer;
57 std::shared_ptr<graphics::Display>
const& display,
58 std::shared_ptr<compositor::Compositor>
const& compositor,
59 std::shared_ptr<graphics::DisplayConfigurationPolicy>
const& display_configuration_policy,
60 std::shared_ptr<SessionContainer>
const& session_container,
61 std::shared_ptr<SessionEventHandlerRegister>
const& session_event_handler_register,
62 std::shared_ptr<ServerActionQueue>
const& server_action_queue,
63 std::shared_ptr<graphics::DisplayConfigurationReport>
const& report,
64 std::shared_ptr<input::InputRegion>
const& region);
67 std::shared_ptr<graphics::DisplayConfiguration> base_configuration()
override;
68 void configure(std::shared_ptr<frontend::Session>
const& session,
69 std::shared_ptr<graphics::DisplayConfiguration>
const& conf)
override;
72 void configure_for_hardware_change(
73 std::shared_ptr<graphics::DisplayConfiguration>
const& conf,
76 void pause_display_config_processing()
override;
77 void resume_display_config_processing()
override;
80 void set_base_configuration(std::shared_ptr<graphics::DisplayConfiguration>
const &conf)
override;
83 void focus_change_handler(std::shared_ptr<Session>
const& session);
84 void no_focus_handler();
85 void session_stopping_handler(std::shared_ptr<Session>
const& session);
87 void apply_config(std::shared_ptr<graphics::DisplayConfiguration>
const& conf,
90 void send_config_to_all_sessions(
91 std::shared_ptr<graphics::DisplayConfiguration>
const& conf);
94 std::shared_ptr<graphics::Display>
const display;
95 std::shared_ptr<compositor::Compositor>
const compositor;
96 std::shared_ptr<graphics::DisplayConfigurationPolicy>
const display_configuration_policy;
97 std::shared_ptr<SessionContainer>
const session_container;
98 std::shared_ptr<SessionEventHandlerRegister>
const session_event_handler_register;
99 std::shared_ptr<ServerActionQueue>
const server_action_queue;
100 std::shared_ptr<graphics::DisplayConfigurationReport>
const report;
101 std::mutex configuration_mutex;
102 std::map<std::weak_ptr<frontend::Session>,
103 std::shared_ptr<graphics::DisplayConfiguration>,
104 std::owner_less<std::weak_ptr<frontend::Session>>> config_map;
105 std::weak_ptr<frontend::Session> focused_session;
106 std::shared_ptr<graphics::DisplayConfiguration> base_configuration_;
107 bool base_configuration_applied;
108 std::shared_ptr<input::InputRegion>
const region;
All things Mir.
Definition: atomic_callback.h:25
Definition: display_changer.h:31
Definition: display_changer.h:35
SystemStateHandling
Definition: display_changer.h:36
Definition: display_configuration_controller.h:33
Interface to a configuration of display cards and outputs.
Definition: display_configuration.h:167