diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-07-30 22:41:24 +0200 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-07-30 22:41:24 +0200 |
| commit | f96b611651f5bbaf2b0401d44f4250f699b15be2 (patch) | |
| tree | 5a55fd918a984e455ef2c9db553deef4764b1664 /src | |
| parent | 4211b37e22791793cb948e447e2ba4d798af3859 (diff) | |
support wlr-output-power-management
Diffstat (limited to 'src')
| -rw-r--r-- | src/Compositor.cpp | 3 | ||||
| -rw-r--r-- | src/Compositor.hpp | 1 | ||||
| -rw-r--r-- | src/events/Events.hpp | 3 | ||||
| -rw-r--r-- | src/events/Misc.cpp | 11 | ||||
| -rw-r--r-- | src/includes.hpp | 1 |
5 files changed, 19 insertions, 0 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp index 74c3a1e8..714a0351 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -96,6 +96,8 @@ CCompositor::CCompositor() { m_sWLROutputLayout = wlr_output_layout_create(); + m_sWLROutputPowerMgr = wlr_output_power_manager_v1_create(m_sWLDisplay); + m_sWLRScene = wlr_scene_create(); wlr_scene_attach_output_layout(m_sWLRScene, m_sWLROutputLayout); @@ -195,6 +197,7 @@ void CCompositor::initAllSignals() { addWLSignal(&m_sWLRVirtPtrMgr->events.new_virtual_pointer, &Events::listen_newVirtPtr, m_sWLRVirtPtrMgr, "VirtPtrMgr"); addWLSignal(&m_sWLRRenderer->events.destroy, &Events::listen_RendererDestroy, m_sWLRRenderer, "WLRRenderer"); addWLSignal(&m_sWLRIdleInhibitMgr->events.new_inhibitor, &Events::listen_newIdleInhibitor, m_sWLRIdleInhibitMgr, "WLRIdleInhibitMgr"); + addWLSignal(&m_sWLROutputPowerMgr->events.set_mode, &Events::listen_powerMgrSetMode, m_sWLROutputPowerMgr, "PowerMgr"); if (m_sWLRSession) addWLSignal(&m_sWLRSession->events.active, &Events::listen_sessionActive, m_sWLRSession, "Session"); } diff --git a/src/Compositor.hpp b/src/Compositor.hpp index 00b758e3..0357e08f 100644 --- a/src/Compositor.hpp +++ b/src/Compositor.hpp @@ -65,6 +65,7 @@ public: wlr_xdg_foreign_registry* m_sWLRForeignRegistry; wlr_idle_inhibit_manager_v1* m_sWLRIdleInhibitMgr; wlr_pointer_gestures_v1* m_sWLRPointerGestures; + wlr_output_power_manager_v1* m_sWLROutputPowerMgr; // ------------------------------------------------- // diff --git a/src/events/Events.hpp b/src/events/Events.hpp index ba8088a8..db15eceb 100644 --- a/src/events/Events.hpp +++ b/src/events/Events.hpp @@ -130,4 +130,7 @@ namespace Events { LISTENER(pinchBegin); LISTENER(pinchUpdate); LISTENER(pinchEnd); + + // Power + LISTENER(powerMgrSetMode); };
\ No newline at end of file diff --git a/src/events/Misc.cpp b/src/events/Misc.cpp index 503d2111..5caa8984 100644 --- a/src/events/Misc.cpp +++ b/src/events/Misc.cpp @@ -163,4 +163,15 @@ void Events::listener_sessionActive(wl_listener* listener, void* data) { Debug::log(LOG, "Session got activated!"); g_pCompositor->m_bSessionActive = true; +} + +void Events::listener_powerMgrSetMode(wl_listener* listener, void* data) { + Debug::log(LOG, "PowerMgr set mode!"); + + const auto EVENT = (wlr_output_power_v1_set_mode_event*)data; + + wlr_output_enable(EVENT->output, EVENT->mode == 1); + + if (!wlr_output_commit(EVENT->output)) + Debug::log(ERR, "Couldn't set power mode"); }
\ No newline at end of file diff --git a/src/includes.hpp b/src/includes.hpp index e8367f50..8b350611 100644 --- a/src/includes.hpp +++ b/src/includes.hpp @@ -93,6 +93,7 @@ extern "C" { #include <wlr/types/wlr_xdg_foreign_v1.h> #include <wlr/types/wlr_xdg_foreign_v2.h> #include <wlr/types/wlr_pointer_gestures_v1.h> +#include <wlr/types/wlr_output_power_management_v1.h> } #undef class |
