Browse Source

Request Multimedia Class Schedule Service on Windows

(Somewhat cargo-cult, since I haven't been able to observe it doing
anything myself.)
Vincent Lang 9 years ago
parent
commit
227236204a
2 changed files with 8 additions and 1 deletions
  1. 2 1
      CMakeModules/Win32Configuration.cmake
  2. 6 0
      src/player/PlayerQuickItem.cpp

+ 2 - 1
CMakeModules/Win32Configuration.cmake

@@ -8,7 +8,8 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Oy-")
 find_library(WINMM winmm)
 find_library(IMMLIB imm32)
 find_library(VERLIB version)
-set(OS_LIBS ${WINMM} ${IMMLIB} ${VERLIB})
+find_library(DWMLIB dwmapi)
+set(OS_LIBS ${WINMM} ${IMMLIB} ${VERLIB} ${DWMLIB})
 
 # Add install rules for required system runtimes such as MSVCRxx.dll
 SET (CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP ON)

+ 6 - 0
src/player/PlayerQuickItem.cpp

@@ -16,6 +16,7 @@
 
 #include <windows.h>
 #include <d3d9.h>
+#include <dwmapi.h>
 
 typedef IDirect3D9* WINAPI pDirect3DCreate9(UINT);
 
@@ -132,6 +133,11 @@ PlayerRenderer::PlayerRenderer(mpv::qt::Handle mpv, QQuickWindow* window)
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 bool PlayerRenderer::init()
 {
+#ifdef Q_OS_WIN32
+  // Request Multimedia Class Schedule Service.
+  DwmEnableMMCSS(TRUE);
+#endif
+
   // Signals presence of MPGetNativeDisplay().
   const char *extensions = "GL_MP_MPGetNativeDisplay";
   return mpv_opengl_cb_init_gl(m_mpvGL, extensions, get_proc_address, NULL) >= 0;