|
MythTV master
|
A subclass of MythDisplay using the org.gnome.Mutter.DisplayConfig DBUS interface. More...
#include <libmythui/platforms/mythdisplaymutter.h>
Public Slots | |
| void | MonitorsChanged () |
Public Slots inherited from MythDisplay | |
| virtual void | ScreenChanged (QScreen *qScreen) |
| The actual screen in use has changed. We must use it. More... | |
| static void | PrimaryScreenChanged (QScreen *qScreen) |
| void | ScreenAdded (QScreen *qScreen) |
| void | ScreenRemoved (QScreen *qScreen) |
| void | PhysicalDPIChanged (qreal DPI) |
| static void | GeometryChanged (QRect Geometry) |
Public Member Functions | |
| ~MythDisplayMutter () override | |
| void | UpdateCurrentMode () override |
| Retrieve screen details. More... | |
| bool | VideoModesAvailable () override |
| bool | UsingVideoModes () override |
| const MythDisplayModes & | GetVideoModes (void) override |
| bool | SwitchToVideoMode (QSize Size, double DesiredRate) override |
Public Member Functions inherited from MythDisplay | |
| virtual bool | VideoModesAvailable () |
| virtual bool | UsingVideoModes () |
| virtual bool | IsPlanar () |
| virtual const MythDisplayModes & | GetVideoModes () |
| QStringList | GetDescription () |
| QRect | GetScreenBounds () |
| QScreen * | GetCurrentScreen () |
| Return a pointer to the screen to use. More... | |
| double | GetPixelAspectRatio () |
| QSize | GetGUIResolution () |
| bool | NextModeIsLarger (QSize Size) |
| Check whether the next mode is larger in size than the current mode. More... | |
| void | SwitchToDesktop () |
| Return the screen to the original desktop video mode. More... | |
| bool | SwitchToGUI (bool Wait=false) |
| Switches to the GUI resolution. More... | |
| bool | SwitchToVideo (QSize Size, double Rate=0.0) |
| Switches to the resolution and refresh rate defined in the database for the specified video resolution and frame rate. More... | |
| QSize | GetResolution () |
| QSize | GetPhysicalSize () |
| double | GetRefreshRate () const |
| std::chrono::microseconds | GetRefreshInterval (std::chrono::microseconds Fallback) const |
| double | GetAspectRatio (QString &Source, bool IgnoreModeOverride=false) |
| Returns current screen aspect ratio. More... | |
| double | EstimateVirtualAspectRatio () |
| Estimate the overall display aspect ratio for multi screen setups. More... | |
| MythEDID & | GetEDID () |
| MythDisplayRates | GetRefreshRates (QSize Size) |
| MythHDRPtr | GetHDRState () |
Static Public Member Functions | |
| static MythDisplayMutter * | Create () |
| Create a valid instance. More... | |
Static Public Member Functions inherited from MythDisplay | |
| static void | ConfigureQtGUI (int SwapInterval, const MythCommandLineParser &CmdLine) |
| Shared static initialisation code for all MythTV GUI applications. More... | |
| static bool | SpanAllScreens () |
| Return true if the MythTV windows should span all screens. More... | |
| static QString | GetExtraScreenInfo (QScreen *qScreen) |
| static int | GetScreenCount () |
Private Member Functions | |
| MythDisplayMutter () | |
| bool | IsValid () |
| void | InitialiseInterface () |
| void | UpdateResources () |
Private Attributes | |
| QDBusInterface * | m_interface { nullptr } |
| uint32_t | m_serialVal { 0 } |
| MythMutterCRTCList | m_crtcs |
| MythMutterOutputList | m_outputs |
| MythMutterModeList | m_modes |
| int | m_outputIdx { -1 } |
| QMap< uint64_t, uint32_t > | m_modeMap |
Additional Inherited Members | |
Signals inherited from MythDisplay | |
| void | CurrentScreenChanged (QScreen *qScreen) |
| void | ScreenCountChanged (int Screens) |
| void | CurrentDPIChanged (qreal DPI) |
Protected Member Functions inherited from MythDisplay | |
| MythDisplay () | |
| ~MythDisplay () override | |
| virtual void | UpdateCurrentMode () |
| Retrieve screen details. More... | |
| virtual bool | SwitchToVideoMode (QSize Size, double Framerate) |
| void | DebugModes () const |
| void | SetWidget (QWidget *MainWindow) |
| Set the QWidget and QWindow in use. More... | |
| void | Initialise () |
| void | InitScreenBounds () |
| Get screen size from Qt while respecting the user's multiscreen settings. More... | |
| void | WaitForScreenChange () |
| void | WaitForNewScreen () |
| void | InitHDR () |
Static Protected Member Functions inherited from MythDisplay | |
| static MythDisplay * | Create (MythMainWindow *MainWindow) |
| Create a MythDisplay object appropriate for the current platform. More... | |
| static QScreen * | GetDesiredScreen () |
| static void | DebugScreen (QScreen *qScreen, const QString &Message) |
Protected Attributes inherited from MythDisplay | |
| bool | m_waitForModeChanges { true } |
| bool | m_modeComplete { false } |
| double | m_refreshRate { 0.0 } |
| double | m_aspectRatioOverride { 0.0 } |
| QSize | m_resolution { 0, 0 } |
| QSize | m_physicalSize { 0, 0 } |
| MythEDID | m_edid |
| QWidget * | m_widget { nullptr } |
| QWindow * | m_window { nullptr } |
| QScreen * | m_screen { nullptr } |
| MythDisplayModes | m_videoModes |
| MythHDRPtr | m_hdrState { nullptr } |
| MythVRRPtr | m_vrrState { nullptr } |
A subclass of MythDisplay using the org.gnome.Mutter.DisplayConfig DBUS interface.
This class is intended to be used on Linux installations that are running 'pure' Wayland desktops (i.e. not Wayland on top of X). When X11 is available, MythDisplayX11 is more suitable.
If the interface is available but the 'ApplyConfiguration' method is not implemented, then MythDisplay should fallback to an alternative subclass - typically MythDisplayDRM (Wayland will be using DRM under the hood but MythTV will not have the necessary permissions to switch resolutions/refresh rates).
Definition at line 78 of file mythdisplaymutter.h.
|
override |
Definition at line 289 of file mythdisplaymutter.cpp.
|
private |
Definition at line 283 of file mythdisplaymutter.cpp.
Referenced by Create().
|
static |
Create a valid instance.
If org.gnome.Mutter.DisplayConfig is not available or the ApplyConfiguration method is not implemented, a null pointer is returned.
Definition at line 204 of file mythdisplaymutter.cpp.
|
overridevirtual |
Reimplemented from MythDisplay.
Definition at line 312 of file mythdisplaymutter.cpp.
|
private |
Definition at line 369 of file mythdisplaymutter.cpp.
Referenced by MythDisplayMutter().
|
private |
Definition at line 294 of file mythdisplaymutter.cpp.
|
slot |
Definition at line 299 of file mythdisplaymutter.cpp.
Referenced by InitialiseInterface().
|
overridevirtual |
Reimplemented from MythDisplay.
Definition at line 404 of file mythdisplaymutter.cpp.
|
overridevirtual |
Retrieve screen details.
This is the final fallback when no other platform specifics are available It is usually accurate apart from the refresh rate - which is often rounded down.
Reimplemented from MythDisplay.
Definition at line 357 of file mythdisplaymutter.cpp.
|
private |
Definition at line 477 of file mythdisplaymutter.cpp.
Referenced by MonitorsChanged(), and UpdateCurrentMode().
|
overridevirtual |
Reimplemented from MythDisplay.
Definition at line 305 of file mythdisplaymutter.cpp.
|
inlineoverridevirtual |
Reimplemented from MythDisplay.
Definition at line 87 of file mythdisplaymutter.h.
|
private |
Definition at line 103 of file mythdisplaymutter.h.
Referenced by SwitchToVideoMode(), and UpdateResources().
|
private |
Definition at line 101 of file mythdisplaymutter.h.
Referenced by GetVideoModes(), InitialiseInterface(), IsValid(), SwitchToVideoMode(), UpdateCurrentMode(), UpdateResources(), and ~MythDisplayMutter().
|
private |
Definition at line 107 of file mythdisplaymutter.h.
Referenced by GetVideoModes(), and SwitchToVideoMode().
|
private |
Definition at line 105 of file mythdisplaymutter.h.
Referenced by GetVideoModes(), and UpdateResources().
|
private |
Definition at line 106 of file mythdisplaymutter.h.
Referenced by GetVideoModes(), and UpdateResources().
|
private |
Definition at line 104 of file mythdisplaymutter.h.
Referenced by GetVideoModes(), and UpdateResources().
|
private |
Definition at line 102 of file mythdisplaymutter.h.
Referenced by SwitchToVideoMode(), and UpdateResources().