11 #include "threads/CriticalSection.h" 12 #include "utils/Geometry.h" 20 #include <wayland-client-protocol.hpp> 36 COutput(std::uint32_t globalName, wayland::output_t
const & output, std::function<
void()> doneHandler);
39 wayland::output_t
const& GetWaylandOutput()
const 43 std::uint32_t GetGlobalName()
const 53 std::unique_lock<CCriticalSection> lock(m_geometryCriticalSection);
62 std::unique_lock<CCriticalSection> lock(m_geometryCriticalSection);
63 return m_physicalSize;
65 std::string
const& GetMake()
const 67 std::unique_lock<CCriticalSection> lock(m_geometryCriticalSection);
70 std::string
const& GetModel()
const 72 std::unique_lock<CCriticalSection> lock(m_geometryCriticalSection);
75 std::int32_t GetScale()
const 83 std::int32_t refreshMilliHz;
85 : size{size}, refreshMilliHz(refreshMilliHz)
88 float GetRefreshInHz()
const 90 return refreshMilliHz / 1000.0f;
93 std::tuple<std::int32_t, std::int32_t, std::int32_t> AsTuple()
const 95 return std::make_tuple(size.Width(), size.Height(), refreshMilliHz);
99 bool operator<(
const Mode& right)
const 101 return AsTuple() < right.AsTuple();
104 bool operator==(
const Mode& right)
const 106 return AsTuple() == right.AsTuple();
109 bool operator!=(
const Mode& right)
const 111 return !(*
this == right);
115 std::set<Mode>
const& GetModes()
const 119 Mode const& GetCurrentMode()
const;
120 Mode const& GetPreferredMode()
const;
122 float GetPixelRatioForMode(
Mode const& mode)
const;
123 float GetDpiForMode(
Mode const& mode)
const;
124 float GetCurrentDpi()
const;
130 std::uint32_t m_globalName;
131 wayland::output_t m_output;
132 std::function<void()> m_doneHandler;
134 mutable CCriticalSection m_geometryCriticalSection;
135 mutable CCriticalSection m_iteratorCriticalSection;
139 std::string m_make, m_model;
140 std::atomic<std::int32_t> m_scale{1};
142 std::set<Mode> m_modes;
145 std::set<Mode>::iterator m_currentMode{m_modes.end()};
146 std::set<Mode>::iterator m_preferredMode{m_modes.end()};
CSizeInt GetPhysicalSize() const
Get output physical size in millimeters.
Definition: Output.h:60
wl_output handler that collects information from the compositor and then passes it on when everything...
Definition: Output.h:33
CPointInt GetPosition() const
Get output position in compositor coordinate space.
Definition: Output.h:51
Definition: AudioDecoder.h:18