diff --git a/packages/mediacenter/xbmc-theme-Confluence/meta b/packages/mediacenter/xbmc-theme-Confluence/meta index 16cfab6b09..d9780e28cb 100644 --- a/packages/mediacenter/xbmc-theme-Confluence/meta +++ b/packages/mediacenter/xbmc-theme-Confluence/meta @@ -21,7 +21,7 @@ PKG_NAME="xbmc-theme-Confluence" PKG_VERSION="12.2-9714e7e" if [ "$XBMC" = "master" ]; then - PKG_VERSION="13.alpha-3723806" + PKG_VERSION="13.alpha-923f1c8" elif [ "$XBMC" = "xbmc-aml" ]; then PKG_VERSION="aml-frodo-d9119f2" fi diff --git a/packages/mediacenter/xbmc/package.mk b/packages/mediacenter/xbmc/package.mk index 423e3552a0..668588152a 100644 --- a/packages/mediacenter/xbmc/package.mk +++ b/packages/mediacenter/xbmc/package.mk @@ -21,7 +21,7 @@ PKG_NAME="xbmc" PKG_VERSION="12.2-9714e7e" if [ "$XBMC" = "master" ]; then - PKG_VERSION="13.alpha-3723806" + PKG_VERSION="13.alpha-923f1c8" elif [ "$XBMC" = "xbmc-aml" ]; then PKG_VERSION="aml-frodo-d9119f2" fi diff --git a/packages/mediacenter/xbmc/patches/13.alpha-3723806/xbmc-408-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch b/packages/mediacenter/xbmc/patches/13.alpha-923f1c8/xbmc-408-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/13.alpha-3723806/xbmc-408-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch rename to packages/mediacenter/xbmc/patches/13.alpha-923f1c8/xbmc-408-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/13.alpha-3723806/xbmc-453-add_openelec.tv_RSS_news-0.1.patch b/packages/mediacenter/xbmc/patches/13.alpha-923f1c8/xbmc-453-add_openelec.tv_RSS_news-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/13.alpha-3723806/xbmc-453-add_openelec.tv_RSS_news-0.1.patch rename to packages/mediacenter/xbmc/patches/13.alpha-923f1c8/xbmc-453-add_openelec.tv_RSS_news-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/13.alpha-3723806/xbmc-602-add_as.xml_busy_dialog_delay_control.patch b/packages/mediacenter/xbmc/patches/13.alpha-923f1c8/xbmc-602-add_as.xml_busy_dialog_delay_control.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/13.alpha-3723806/xbmc-602-add_as.xml_busy_dialog_delay_control.patch rename to packages/mediacenter/xbmc/patches/13.alpha-923f1c8/xbmc-602-add_as.xml_busy_dialog_delay_control.patch diff --git a/packages/mediacenter/xbmc/patches/13.alpha-3723806/xbmc-990.15-depends-mark_our_wrapped_functions_as_used.patch b/packages/mediacenter/xbmc/patches/13.alpha-923f1c8/xbmc-990.15-depends-mark_our_wrapped_functions_as_used.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/13.alpha-3723806/xbmc-990.15-depends-mark_our_wrapped_functions_as_used.patch rename to packages/mediacenter/xbmc/patches/13.alpha-923f1c8/xbmc-990.15-depends-mark_our_wrapped_functions_as_used.patch diff --git a/packages/mediacenter/xbmc/patches/13.alpha-3723806/xbmc-995.01-vdpau-fixes-e7eb33d.patch b/packages/mediacenter/xbmc/patches/13.alpha-923f1c8/xbmc-995.01-vdpau-fixes-e7eb33d.patch similarity index 92% rename from packages/mediacenter/xbmc/patches/13.alpha-3723806/xbmc-995.01-vdpau-fixes-e7eb33d.patch rename to packages/mediacenter/xbmc/patches/13.alpha-923f1c8/xbmc-995.01-vdpau-fixes-e7eb33d.patch index d0f86c9ce8..6027dba085 100644 --- a/packages/mediacenter/xbmc/patches/13.alpha-3723806/xbmc-995.01-vdpau-fixes-e7eb33d.patch +++ b/packages/mediacenter/xbmc/patches/13.alpha-923f1c8/xbmc-995.01-vdpau-fixes-e7eb33d.patch @@ -1,4 +1,4 @@ -From f76a2f615a68416dd0c3106703100388aaeb3565 Mon Sep 17 00:00:00 2001 +From 6a303d01d00c4ec793b2fde8597ac0fcf3293358 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 10:34:39 +0200 Subject: [PATCH 01/74] videoplayer: adapt lateness detection and dropping to @@ -157,10 +157,10 @@ index baee6e0..8a88c0d 100644 + virtual void SetCodecControl(int flags) {} }; diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -index 143675a..b53c17a 100644 +index 59dc781..60f572c 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -@@ -167,6 +167,7 @@ enum PixelFormat CDVDVideoCodecFFmpeg::GetFormat( struct AVCodecContext * avctx +@@ -175,6 +175,7 @@ enum PixelFormat CDVDVideoCodecFFmpeg::GetFormat( struct AVCodecContext * avctx m_iLastKeyframe = 0; m_dts = DVD_NOPTS_VALUE; m_started = false; @@ -168,7 +168,7 @@ index 143675a..b53c17a 100644 } CDVDVideoCodecFFmpeg::~CDVDVideoCodecFFmpeg() -@@ -353,6 +354,14 @@ void CDVDVideoCodecFFmpeg::SetDropState(bool bDrop) +@@ -361,6 +362,14 @@ void CDVDVideoCodecFFmpeg::SetDropState(bool bDrop) { if( m_pCodecContext ) { @@ -183,7 +183,7 @@ index 143675a..b53c17a 100644 // i don't know exactly how high this should be set // couldn't find any good docs on it. think it varies // from codec to codec on what it does -@@ -554,6 +563,7 @@ int CDVDVideoCodecFFmpeg::Decode(uint8_t* pData, int iSize, double dts, double p +@@ -562,6 +571,7 @@ int CDVDVideoCodecFFmpeg::Decode(uint8_t* pData, int iSize, double dts, double p void CDVDVideoCodecFFmpeg::Reset() { m_started = false; @@ -191,7 +191,7 @@ index 143675a..b53c17a 100644 m_iLastKeyframe = m_pCodecContext->has_b_frames; m_dllAvCodec.avcodec_flush_buffers(m_pCodecContext); -@@ -663,6 +673,22 @@ bool CDVDVideoCodecFFmpeg::GetPictureCommon(DVDVideoPicture* pDvdVideoPicture) +@@ -671,6 +681,22 @@ bool CDVDVideoCodecFFmpeg::GetPictureCommon(DVDVideoPicture* pDvdVideoPicture) else pDvdVideoPicture->pts = DVD_NOPTS_VALUE; @@ -214,7 +214,7 @@ index 143675a..b53c17a 100644 if(!m_started) pDvdVideoPicture->iFlags |= DVP_FLAG_DROPPED; -@@ -924,3 +950,8 @@ unsigned CDVDVideoCodecFFmpeg::GetAllowedReferences() +@@ -932,3 +958,8 @@ unsigned CDVDVideoCodecFFmpeg::GetAllowedReferences() else return 0; } @@ -582,7 +582,7 @@ index f8ad541..186e271 100644 1.8.4 -From a200d68b174fcf18c44ad62fa14b903876e65879 Mon Sep 17 00:00:00 2001 +From 816e8b541866007c3c5aa9f4ae83652a29410f90 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 2 Sep 2012 16:05:21 +0200 Subject: [PATCH 02/74] video player: present correct pts to user for a/v sync @@ -653,7 +653,7 @@ index 186e271..59c7f09 100644 1.8.4 -From 9db10c5c1415af1bb5f5c7c8c17c791fc50b7bad Mon Sep 17 00:00:00 2001 +From 58a147d179b2d20010555853e34361ed599d5211 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sat, 16 Feb 2013 18:25:53 +0100 Subject: [PATCH 03/74] videoplayer: some rework and documentation @@ -716,10 +716,10 @@ index 8a88c0d..b898491 100644 virtual void SetCodecControl(int flags) {} }; diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -index b53c17a..9f1fc03 100644 +index 60f572c..b585461 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -@@ -951,6 +951,17 @@ unsigned CDVDVideoCodecFFmpeg::GetAllowedReferences() +@@ -959,6 +959,17 @@ unsigned CDVDVideoCodecFFmpeg::GetAllowedReferences() return 0; } @@ -767,7 +767,7 @@ index 752a291..0aef5ee 100644 1.8.4 -From 6b8c72c1595a582c3098e32dd6044c3614c6cac3 Mon Sep 17 00:00:00 2001 +From 9fad71c6b3696d8006e3044ece43b7119fa8b0c1 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sat, 1 Jun 2013 11:21:19 +0200 Subject: [PATCH 04/74] renderer: bump buffers to 5 @@ -793,7 +793,7 @@ index a61d3cf..df5fe0e 100644 1.8.4 -From 57f380ab796064405db81c3e564664c497221f04 Mon Sep 17 00:00:00 2001 +From 058702655b73aa2e34ba960a572203c339859336 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 10:41:31 +0200 Subject: [PATCH 05/74] videoplayer: update frametime, it might change due to @@ -820,7 +820,7 @@ index 0aef5ee..e7e5097 100644 1.8.4 -From 1038a6f6cf3996588a839b120511a59d5b571d86 Mon Sep 17 00:00:00 2001 +From 25b1e5baa7a774cdc3473d1dac0a2fbe86b04dbc Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 10:43:06 +0200 Subject: [PATCH 06/74] videoplayer: give streams with invalid fps a chance for @@ -847,7 +847,7 @@ index e7e5097..c40d193 100644 1.8.4 -From eaf33bcb7db24055150197a288daf57112019e11 Mon Sep 17 00:00:00 2001 +From d752196c352cc7e0c95ffcf2faf9939269cb76e5 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 10:49:05 +0200 Subject: [PATCH 07/74] dvdplayer: allow rewinding at end of stream, do a seek @@ -858,10 +858,10 @@ Subject: [PATCH 07/74] dvdplayer: allow rewinding at end of stream, do a seek 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index 5e75372..1f4b1c6 100644 +index 7881f98..d8847f2 100644 --- a/xbmc/cores/dvdplayer/DVDPlayer.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp -@@ -1552,7 +1552,7 @@ void CDVDPlayer::HandlePlaySpeed() +@@ -1549,7 +1549,7 @@ void CDVDPlayer::HandlePlaySpeed() } else if (m_CurrentVideo.id >= 0 @@ -870,7 +870,7 @@ index 5e75372..1f4b1c6 100644 && m_SpeedState.lastpts != m_dvdPlayerVideo.GetCurrentPts() && m_SpeedState.lasttime != GetTime()) { -@@ -2218,6 +2218,12 @@ void CDVDPlayer::HandleMessages() +@@ -2215,6 +2215,12 @@ void CDVDPlayer::HandleMessages() pvrinputstream->Pause( speed == 0 ); } @@ -887,7 +887,7 @@ index 5e75372..1f4b1c6 100644 1.8.4 -From 95da7903000b0f5c9c534371903dbf453a988aaa Mon Sep 17 00:00:00 2001 +From 0033a33b55a090e56e344c2804e479f78ddb2616 Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 15:22:05 +0200 Subject: [PATCH 08/74] X11: ditch SDL for video and window events @@ -895,22 +895,23 @@ Subject: [PATCH 08/74] X11: ditch SDL for video and window events --- xbmc/Application.cpp | 2 +- xbmc/system.h | 5 + - xbmc/windowing/Makefile | 3 +- + xbmc/windowing/Makefile | 10 + + xbmc/windowing/Makefile.in | 1 + xbmc/windowing/WinEvents.cpp | 4 + - xbmc/windowing/WinEvents.h | 1 - xbmc/windowing/WinEventsX11.cpp | 784 ++++++++++++++++++++++++++++++++++++ xbmc/windowing/WinEventsX11.h | 65 +++ - xbmc/windowing/X11/WinSystemX11.cpp | 370 ++++++++++++----- - xbmc/windowing/X11/WinSystemX11.h | 9 +- - 9 files changed, 1140 insertions(+), 103 deletions(-) + xbmc/windowing/X11/WinSystemX11.cpp | 387 ++++++++++++------ + xbmc/windowing/X11/WinSystemX11.h | 10 +- + 9 files changed, 1140 insertions(+), 128 deletions(-) + create mode 100644 xbmc/windowing/Makefile create mode 100644 xbmc/windowing/WinEventsX11.cpp create mode 100644 xbmc/windowing/WinEventsX11.h diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp -index e033d1b..3dbc541 100644 +index 7b5b2bf..990125b 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp -@@ -853,7 +853,7 @@ bool CApplication::CreateGUI() +@@ -858,7 +858,7 @@ bool CApplication::CreateGUI() uint32_t sdlFlags = 0; @@ -946,21 +947,35 @@ index 1f4e15f..075e44a 100644 #define HAS_LIRC #ifdef HAVE_LIBPULSE diff --git a/xbmc/windowing/Makefile b/xbmc/windowing/Makefile -index b52d16c..07100d8 100644 ---- a/xbmc/windowing/Makefile +new file mode 100644 +index 0000000..07100d8 +--- /dev/null +++ b/xbmc/windowing/Makefile -@@ -1,7 +1,8 @@ - SRCS=WinEventsSDL.cpp \ - WinEventsLinux.cpp \ - WinSystem.cpp \ -- WinEvents.cpp +@@ -0,0 +1,10 @@ ++SRCS=WinEventsSDL.cpp \ ++ WinEventsLinux.cpp \ ++ WinSystem.cpp \ + WinEvents.cpp \ + WinEventsX11.cpp - - LIB=windowing.a ++ ++LIB=windowing.a ++ ++include ../../Makefile.include ++-include $(patsubst %.cpp,%.P,$(patsubst %.c,%.P,$(SRCS))) +diff --git a/xbmc/windowing/Makefile.in b/xbmc/windowing/Makefile.in +index 6704967..4b41723 100644 +--- a/xbmc/windowing/Makefile.in ++++ b/xbmc/windowing/Makefile.in +@@ -1,6 +1,7 @@ + SRCS=WinEventsSDL.cpp \ + WinEventsLinux.cpp \ + WinEventsWayland.cpp \ ++ WinEventsX11.cpp \ + WinSystem.cpp \ + WinEvents.cpp diff --git a/xbmc/windowing/WinEvents.cpp b/xbmc/windowing/WinEvents.cpp -index d47784c..bf554ec 100644 +index 1022ad2..8e64497 100644 --- a/xbmc/windowing/WinEvents.cpp +++ b/xbmc/windowing/WinEvents.cpp @@ -42,6 +42,10 @@ @@ -971,19 +986,9 @@ index d47784c..bf554ec 100644 +#include "WinEventsX11.h" +#define WinEventsType CWinEventsX11 + - #elif defined(TARGET_LINUX) && defined(HAS_LINUX_EVENTS) - #include "WinEventsLinux.h" - #define WinEventsType CWinEventsLinux -diff --git a/xbmc/windowing/WinEvents.h b/xbmc/windowing/WinEvents.h -index 8ae126a..e04631f 100644 ---- a/xbmc/windowing/WinEvents.h -+++ b/xbmc/windowing/WinEvents.h -@@ -45,5 +45,4 @@ class CWinEvents - static size_t GetQueueSize(); - }; - -- - #endif // WINDOW_EVENTS_H + #elif defined(HAVE_WAYLAND) + #include "WinEventsWayland.h" + #define WinEventsType CWinEventsWayland diff --git a/xbmc/windowing/WinEventsX11.cpp b/xbmc/windowing/WinEventsX11.cpp new file mode 100644 index 0000000..ad58aad @@ -1846,7 +1851,7 @@ index 0000000..ce57c23 + bool m_structureChanged; +}; diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index 31f5304..7011980 100644 +index 7caae9d..a32f487 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp @@ -22,7 +22,6 @@ @@ -1857,7 +1862,7 @@ index 31f5304..7011980 100644 #include "WinSystemX11.h" #include "settings/DisplaySettings.h" #include "settings/Settings.h" -@@ -33,27 +32,30 @@ +@@ -34,27 +33,30 @@ #include "XRandR.h" #include #include "threads/SingleLock.h" @@ -1891,7 +1896,7 @@ index 31f5304..7011980 100644 XSetErrorHandler(XErrorHandler); } -@@ -66,18 +68,6 @@ bool CWinSystemX11::InitWindowSystem() +@@ -67,18 +69,6 @@ bool CWinSystemX11::InitWindowSystem() { if ((m_dpy = XOpenDisplay(NULL))) { @@ -1910,7 +1915,7 @@ index 31f5304..7011980 100644 return CWinSystemBase::InitWindowSystem(); } else -@@ -115,45 +105,37 @@ bool CWinSystemX11::DestroyWindowSystem() +@@ -116,45 +106,37 @@ bool CWinSystemX11::DestroyWindowSystem() bool CWinSystemX11::CreateNewWindow(const CStdString& name, bool fullScreen, RESOLUTION_INFO& res, PHANDLE_EVENT_FUNC userFunction) { @@ -1978,7 +1983,7 @@ index 31f5304..7011980 100644 return true; } -@@ -163,65 +145,105 @@ bool CWinSystemX11::ResizeWindow(int newWidth, int newHeight, int newLeft, int n +@@ -164,67 +146,105 @@ bool CWinSystemX11::ResizeWindow(int newWidth, int newHeight, int newLeft, int n && m_nHeight == newHeight) return true; @@ -1999,17 +2004,18 @@ index 31f5304..7011980 100644 - options |= SDL_RESIZABLE; + return false; +} -+ + +- if ((m_SDLSurface = SDL_SetVideoMode(m_nWidth, m_nHeight, 0, options))) +void CWinSystemX11::RefreshWindow() +{ + g_xrandr.Query(true); + XOutput out = g_xrandr.GetCurrentOutput(); + XMode mode = g_xrandr.GetCurrentMode(out.name); - -- if ((m_SDLSurface = SDL_SetVideoMode(m_nWidth, m_nHeight, 0, options))) ++ + // only overwrite desktop resolution, if we are not in fullscreen mode + if (!g_graphicsContext.IsFullScreenVideo()) { +- SetGrabMode(); - RefreshGlxContext(); - return true; + CLog::Log(LOGDEBUG, "CWinSystemX11::RefreshWindow - store desktop resolution, width: %d, height: %d, hz: %2.2f", mode.w, mode.h, mode.hz); @@ -2104,6 +2110,7 @@ index 31f5304..7011980 100644 + if (!SetWindow(res.iWidth, res.iHeight, fullScreen)) + return false; +- SetGrabMode(); - RefreshGlxContext(); + RefreshGlxContext(); @@ -2118,7 +2125,7 @@ index 31f5304..7011980 100644 } void CWinSystemX11::UpdateResolutions() -@@ -323,17 +345,10 @@ bool CWinSystemX11::IsSuitableVisual(XVisualInfo *vInfo) +@@ -326,17 +346,10 @@ bool CWinSystemX11::IsSuitableVisual(XVisualInfo *vInfo) bool CWinSystemX11::RefreshGlxContext() { bool retVal = false; @@ -2138,7 +2145,7 @@ index 31f5304..7011980 100644 glXMakeCurrent(m_dpy, None, NULL); glXMakeCurrent(m_dpy, m_glWindow, m_glContext); return true; -@@ -345,8 +360,6 @@ bool CWinSystemX11::RefreshGlxContext() +@@ -348,8 +361,6 @@ bool CWinSystemX11::RefreshGlxContext() int availableVisuals = 0; vMask.screen = DefaultScreen(m_dpy); XWindowAttributes winAttr; @@ -2147,7 +2154,7 @@ index 31f5304..7011980 100644 /* Assume a depth of 24 in case the below calls to XGetWindowAttributes() or XGetVisualInfo() fail. That shouldn't happen unless something is -@@ -417,7 +430,10 @@ bool CWinSystemX11::RefreshGlxContext() +@@ -420,7 +431,10 @@ bool CWinSystemX11::RefreshGlxContext() void CWinSystemX11::ShowOSMouse(bool show) { @@ -2159,7 +2166,7 @@ index 31f5304..7011980 100644 } void CWinSystemX11::ResetOSScreensaver() -@@ -431,8 +447,6 @@ void CWinSystemX11::ResetOSScreensaver() +@@ -434,8 +448,6 @@ void CWinSystemX11::ResetOSScreensaver() { m_screensaverReset.StartZero(); XResetScreenSaver(m_dpy); @@ -2168,7 +2175,7 @@ index 31f5304..7011980 100644 } } else -@@ -448,13 +462,27 @@ void CWinSystemX11::NotifyAppActiveChange(bool bActivated) +@@ -451,13 +463,27 @@ void CWinSystemX11::NotifyAppActiveChange(bool bActivated) m_minimized = !bActivated; } @@ -2197,7 +2204,7 @@ index 31f5304..7011980 100644 m_minimized = true; return true; } -@@ -464,13 +492,13 @@ bool CWinSystemX11::Restore() +@@ -467,13 +493,13 @@ bool CWinSystemX11::Restore() } bool CWinSystemX11::Hide() { @@ -2213,7 +2220,7 @@ index 31f5304..7011980 100644 XSync(m_dpy, False); m_minimized = false; return true; -@@ -502,6 +530,7 @@ void CWinSystemX11::CheckDisplayEvents() +@@ -505,6 +531,7 @@ void CWinSystemX11::CheckDisplayEvents() if (bGotEvent || bTimeout) { CLog::Log(LOGDEBUG, "%s - notify display reset event", __FUNCTION__); @@ -2221,22 +2228,37 @@ index 31f5304..7011980 100644 CSingleLock lock(m_resourceSection); -@@ -560,4 +589,151 @@ bool CWinSystemX11::EnableFrameLimiter() +@@ -563,37 +590,151 @@ bool CWinSystemX11::EnableFrameLimiter() return m_minimized; } +-void CWinSystemX11::SetGrabMode(const CSetting *setting /*= NULL*/) +bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen) -+{ + { +- bool enabled; +- if (setting) +- enabled = ((CSettingBool*)setting)->GetValue(); +- else +- enabled = CSettings::Get().GetBool("input.enablesystemkeys"); +- +- if (m_SDLSurface && m_SDLSurface->flags & SDL_FULLSCREEN) + bool changeWindow = false; + bool changeSize = false; + bool mouseActive = false; + float mouseX, mouseY; + + if (m_glWindow && (m_bFullScreen != fullscreen)) -+ { + { +- if (enabled) + mouseActive = g_Mouse.IsActive(); + if (mouseActive) -+ { + { +- //SDL will always call XGrabPointer and XGrabKeyboard when in fullscreen +- //so temporarily zero the SDL_FULLSCREEN flag, then turn off SDL grab mode +- //this will make SDL call XUnGrabPointer and XUnGrabKeyboard +- m_SDLSurface->flags &= ~SDL_FULLSCREEN; +- SDL_WM_GrabInput(SDL_GRAB_OFF); +- m_SDLSurface->flags |= SDL_FULLSCREEN; + Window root_return, child_return; + int root_x_return, root_y_return; + int win_x_return, win_y_return; @@ -2253,7 +2275,8 @@ index 31f5304..7011980 100644 + } + else + mouseActive = false; -+ } + } +- else + DestroyWindow(); + } + @@ -2261,7 +2284,10 @@ index 31f5304..7011980 100644 + if (!m_glWindow) + { + GLint att[] = -+ { + { +- //turn off key grabbing, which will actually make SDL turn it on when in fullscreen +- SDL_WM_GrabInput(SDL_GRAB_OFF); +- } + GLX_RGBA, + GLX_RED_SIZE, 8, + GLX_GREEN_SIZE, 8, @@ -2312,8 +2338,13 @@ index 31f5304..7011980 100644 + + changeWindow = true; + changeSize = true; -+ } -+ + } +-} + +-void CWinSystemX11::OnSettingChanged(const CSetting *setting) +-{ +- if (setting->GetId() == "input.enablesystemkeys") +- SetGrabMode(setting); + if (!CWinEventsX11Imp::HasStructureChanged() && ((width != m_nWidth) || (height != m_nHeight))) + { + changeSize = true; @@ -2370,14 +2401,14 @@ index 31f5304..7011980 100644 + } + } + return true; -+} -+ + } + #endif diff --git a/xbmc/windowing/X11/WinSystemX11.h b/xbmc/windowing/X11/WinSystemX11.h -index 3d438c8..3f204d7 100644 +index 2454fb1..f5e5731 100644 --- a/xbmc/windowing/X11/WinSystemX11.h +++ b/xbmc/windowing/X11/WinSystemX11.h -@@ -53,6 +53,7 @@ class CWinSystemX11 : public CWinSystemBase +@@ -54,6 +54,7 @@ class CWinSystemX11 : public CWinSystemBase, public ISettingCallback virtual bool EnableFrameLimiter(); virtual void NotifyAppActiveChange(bool bActivated); @@ -2385,10 +2416,11 @@ index 3d438c8..3f204d7 100644 virtual bool Minimize(); virtual bool Restore() ; -@@ -65,19 +66,21 @@ class CWinSystemX11 : public CWinSystemBase +@@ -66,20 +67,21 @@ class CWinSystemX11 : public CWinSystemBase, public ISettingCallback Display* GetDisplay() { return m_dpy; } GLXWindow GetWindow() { return m_glWindow; } GLXContext GetGlxContext() { return m_glContext; } +- virtual void OnSettingChanged(const CSetting *setting); + void RefreshWindow(); protected: @@ -2414,21 +2446,21 @@ index 3d438c8..3f204d7 100644 1.8.4 -From 4e1df95f7b2aff61c08fdd1add79fc33d08e728a Mon Sep 17 00:00:00 2001 +From 20430a4636eb8c086796eb467c227e393f94fe4a Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 15:24:22 +0200 Subject: [PATCH 09/74] X11: Add xbmc icon --- xbmc/windowing/X11/WinSystemX11.cpp | 126 +++++++++++++++++++++++++++++++++++- - xbmc/windowing/X11/WinSystemX11.h | 2 + - 2 files changed, 127 insertions(+), 1 deletion(-) + xbmc/windowing/X11/WinSystemX11.h | 3 +- + 2 files changed, 127 insertions(+), 2 deletions(-) diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index 7011980..058a189 100644 +index a32f487..11ed79b 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -136,6 +136,9 @@ bool CWinSystemX11::DestroyWindow() +@@ -137,6 +137,9 @@ bool CWinSystemX11::DestroyWindow() XDestroyWindow(m_dpy, m_glWindow); m_glWindow = 0; @@ -2438,7 +2470,7 @@ index 7011980..058a189 100644 return true; } -@@ -690,8 +693,10 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen) +@@ -691,8 +694,10 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen) if (changeWindow) { @@ -2449,7 +2481,7 @@ index 7011980..058a189 100644 XWMHints wm_hints; XClassHint class_hints; XTextProperty windowName, iconName; -@@ -702,7 +707,7 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen) +@@ -703,7 +708,7 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen) XStringListToTextProperty(&title, 1, &iconName); wm_hints.initial_state = NormalState; wm_hints.input = True; @@ -2458,7 +2490,7 @@ index 7011980..058a189 100644 wm_hints.flags = StateHint | IconPixmapHint | InputHint; XSetWMProperties(m_dpy, m_glWindow, &windowName, &iconName, -@@ -736,4 +741,123 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen) +@@ -737,4 +742,123 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen) return true; } @@ -2583,10 +2615,10 @@ index 7011980..058a189 100644 + #endif diff --git a/xbmc/windowing/X11/WinSystemX11.h b/xbmc/windowing/X11/WinSystemX11.h -index 3f204d7..3e99c3c 100644 +index f5e5731..6953b68 100644 --- a/xbmc/windowing/X11/WinSystemX11.h +++ b/xbmc/windowing/X11/WinSystemX11.h -@@ -78,6 +78,7 @@ class CWinSystemX11 : public CWinSystemBase +@@ -79,6 +79,7 @@ class CWinSystemX11 : public CWinSystemBase, public ISettingCallback GLXContext m_glContext; Display* m_dpy; Cursor m_invisibleCursor; @@ -2594,10 +2626,11 @@ index 3f204d7..3e99c3c 100644 bool m_bWasFullScreenBeforeMinimize; bool m_minimized; bool m_bIgnoreNextFocusMessage; -@@ -89,6 +90,7 @@ class CWinSystemX11 : public CWinSystemBase +@@ -90,7 +91,7 @@ class CWinSystemX11 : public CWinSystemBase, public ISettingCallback private: bool IsSuitableVisual(XVisualInfo *vInfo); static int XErrorHandler(Display* dpy, XErrorEvent* error); +- void SetGrabMode(const CSetting *setting = NULL); + bool CreateIconPixmap(); CStopWatch m_screensaverReset; @@ -2606,7 +2639,7 @@ index 3f204d7..3e99c3c 100644 1.8.4 -From dc22f21403f84d5577fee5683ed7264f83a048dc Mon Sep 17 00:00:00 2001 +From a90cff74237782f11b7e3122502bbc79cc82cc1c Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 20 May 2012 14:11:26 +0200 Subject: [PATCH 10/74] X11: add SDL joystick until we have a better solution @@ -2663,7 +2696,7 @@ index ad58aad..6f57a87 100644 1.8.4 -From 81657001f5104a13513fc42f070477cc7bc5d5f7 Mon Sep 17 00:00:00 2001 +From 5d8e99ccf73080cce8038a82dd449cf4e0c2ed74 Mon Sep 17 00:00:00 2001 From: Joakim Plate Date: Thu, 5 Jul 2012 12:35:55 +0200 Subject: [PATCH 11/74] X11: factor out code handling device reset notification @@ -2674,10 +2707,10 @@ Subject: [PATCH 11/74] X11: factor out code handling device reset notification 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index 058a189..df0dc67 100644 +index 11ed79b..b3be9fc 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -532,14 +532,7 @@ void CWinSystemX11::CheckDisplayEvents() +@@ -533,14 +533,7 @@ void CWinSystemX11::CheckDisplayEvents() if (bGotEvent || bTimeout) { @@ -2693,7 +2726,7 @@ index 058a189..df0dc67 100644 // reset fail safe timer m_dpyLostTime = 0; -@@ -547,6 +540,19 @@ void CWinSystemX11::CheckDisplayEvents() +@@ -548,6 +541,19 @@ void CWinSystemX11::CheckDisplayEvents() #endif } @@ -2714,10 +2747,10 @@ index 058a189..df0dc67 100644 { CLog::Log(LOGDEBUG, "%s - notify display change event", __FUNCTION__); diff --git a/xbmc/windowing/X11/WinSystemX11.h b/xbmc/windowing/X11/WinSystemX11.h -index 3e99c3c..a07ab97 100644 +index 6953b68..d60d04a 100644 --- a/xbmc/windowing/X11/WinSystemX11.h +++ b/xbmc/windowing/X11/WinSystemX11.h -@@ -67,6 +67,7 @@ class CWinSystemX11 : public CWinSystemBase +@@ -68,6 +68,7 @@ class CWinSystemX11 : public CWinSystemBase, public ISettingCallback GLXWindow GetWindow() { return m_glWindow; } GLXContext GetGlxContext() { return m_glContext; } void RefreshWindow(); @@ -2729,7 +2762,7 @@ index 3e99c3c..a07ab97 100644 1.8.4 -From 1f09af24bce98c8e38f5f94e8b9be429f423fb2f Mon Sep 17 00:00:00 2001 +From c221bbb2cedeb9cd9075f1239abb39e774035d1d Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 15:02:00 +0200 Subject: [PATCH 12/74] X11: move xrandr events to WinEventsX11 @@ -2847,10 +2880,10 @@ index ce57c23..a412f32 100644 + bool m_xrrEventPending; }; diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index df0dc67..5d88b9a 100644 +index b3be9fc..7259674 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -509,7 +509,7 @@ bool CWinSystemX11::Show(bool raise) +@@ -510,7 +510,7 @@ bool CWinSystemX11::Show(bool raise) void CWinSystemX11::CheckDisplayEvents() { @@ -2859,7 +2892,7 @@ index df0dc67..5d88b9a 100644 bool bGotEvent(false); bool bTimeout(false); XEvent Event; -@@ -565,8 +565,12 @@ void CWinSystemX11::OnLostDevice() +@@ -566,8 +566,12 @@ void CWinSystemX11::OnLostDevice() (*i)->OnLostDevice(); } @@ -2876,7 +2909,7 @@ index df0dc67..5d88b9a 100644 1.8.4 -From 9af0ca98d7f9d6797934f51f44d573bf90a63dab Mon Sep 17 00:00:00 2001 +From 08f9e5637e4211bc83e3b155e5f6bbed9c7cddbf Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 12 Apr 2012 15:43:56 +0200 Subject: [PATCH 13/74] xrandr: remove method RestoreState @@ -2888,10 +2921,10 @@ Subject: [PATCH 13/74] xrandr: remove method RestoreState 3 files changed, 11 insertions(+), 22 deletions(-) diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index 5d88b9a..0f37763 100644 +index 7259674..dccc44f 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -79,9 +79,18 @@ bool CWinSystemX11::InitWindowSystem() +@@ -80,9 +80,18 @@ bool CWinSystemX11::InitWindowSystem() bool CWinSystemX11::DestroyWindowSystem() { #if defined(HAS_XRANDR) @@ -2958,7 +2991,7 @@ index 0aec487..00b49dc 100644 1.8.4 -From 5e375115b685250361cc96a85a04ac62f3d43d4f Mon Sep 17 00:00:00 2001 +From eaec158e24c2d4756aeed4b4667c8eea59ea3ce4 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 20 May 2012 13:17:10 +0200 Subject: [PATCH 14/74] xrandr: observe orientation @@ -2971,10 +3004,10 @@ Subject: [PATCH 14/74] xrandr: observe orientation 4 files changed, 82 insertions(+), 17 deletions(-) diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index 0f37763..4bec03d 100644 +index dccc44f..a046401 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -84,11 +84,11 @@ bool CWinSystemX11::DestroyWindowSystem() +@@ -85,11 +85,11 @@ bool CWinSystemX11::DestroyWindowSystem() { XOutput out; XMode mode; @@ -2991,7 +3024,7 @@ index 0f37763..4bec03d 100644 g_xrandr.SetMode(out, mode); } #endif -@@ -172,25 +172,34 @@ bool CWinSystemX11::ResizeWindow(int newWidth, int newHeight, int newLeft, int n +@@ -173,25 +173,34 @@ bool CWinSystemX11::ResizeWindow(int newWidth, int newHeight, int newLeft, int n void CWinSystemX11::RefreshWindow() { @@ -3032,7 +3065,7 @@ index 0f37763..4bec03d 100644 { found = true; break; -@@ -226,16 +235,24 @@ bool CWinSystemX11::SetFullScreen(bool fullScreen, RESOLUTION_INFO& res, bool bl +@@ -227,16 +236,24 @@ bool CWinSystemX11::SetFullScreen(bool fullScreen, RESOLUTION_INFO& res, bool bl } else { @@ -3062,7 +3095,7 @@ index 0f37763..4bec03d 100644 // only call xrandr if mode changes if (currout.name != out.name || currmode.w != mode.w || currmode.h != mode.h || currmode.hz != mode.hz || currmode.id != mode.id) -@@ -268,7 +285,11 @@ void CWinSystemX11::UpdateResolutions() +@@ -269,7 +286,11 @@ void CWinSystemX11::UpdateResolutions() { XOutput out = g_xrandr.GetCurrentOutput(); XMode mode = g_xrandr.GetCurrentMode(out.name); @@ -3075,7 +3108,7 @@ index 0f37763..4bec03d 100644 CDisplaySettings::Get().GetResolutionInfo(RES_DESKTOP).strId = mode.id; CDisplaySettings::Get().GetResolutionInfo(RES_DESKTOP).strOutput = out.name; } -@@ -307,6 +328,16 @@ void CWinSystemX11::UpdateResolutions() +@@ -308,6 +329,16 @@ void CWinSystemX11::UpdateResolutions() res.iHeight = mode.h; res.iScreenWidth = mode.w; res.iScreenHeight = mode.h; @@ -3092,7 +3125,7 @@ index 0f37763..4bec03d 100644 if (mode.h>0 && mode.w>0 && out.hmm>0 && out.wmm>0) res.fPixelRatio = ((float)out.wmm/(float)mode.w) / (((float)out.hmm/(float)mode.h)); else -@@ -334,6 +365,30 @@ void CWinSystemX11::UpdateResolutions() +@@ -335,6 +366,30 @@ void CWinSystemX11::UpdateResolutions() } @@ -3124,10 +3157,10 @@ index 0f37763..4bec03d 100644 { int value; diff --git a/xbmc/windowing/X11/WinSystemX11.h b/xbmc/windowing/X11/WinSystemX11.h -index a07ab97..d5ce9a2e 100644 +index d60d04a..eb8005e 100644 --- a/xbmc/windowing/X11/WinSystemX11.h +++ b/xbmc/windowing/X11/WinSystemX11.h -@@ -74,12 +74,14 @@ class CWinSystemX11 : public CWinSystemBase +@@ -75,12 +75,14 @@ class CWinSystemX11 : public CWinSystemBase, public ISettingCallback void CheckDisplayEvents(); void OnLostDevice(); bool SetWindow(int width, int height, bool fullscreen); @@ -3176,7 +3209,7 @@ index 00b49dc..508604d 100644 1.8.4 -From 3ad94827d8de16465a96948de1761cd610c665cd Mon Sep 17 00:00:00 2001 +From 52e261146d8f6decb25bd9fe1192a258a009c0b1 Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 11:54:15 +0200 Subject: [PATCH 15/74] xrandr: allow getting info for multiple screen's @@ -3354,7 +3387,7 @@ index 508604d..d37838a 100644 1.8.4 -From 080c7041adbf7874381895b6b60a9f543bd1b99b Mon Sep 17 00:00:00 2001 +From 37becdc99eb2ed1a0ec54f078c1bac24e8837e93 Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 11:44:00 +0200 Subject: [PATCH 16/74] X11: fix multi-head setups @@ -3372,7 +3405,7 @@ Subject: [PATCH 16/74] X11: fix multi-head setups 9 files changed, 229 insertions(+), 116 deletions(-) diff --git a/language/English/strings.po b/language/English/strings.po -index 24c4085..c8734c1 100755 +index faee37d..c6b2b44 100755 --- a/language/English/strings.po +++ b/language/English/strings.po @@ -1003,7 +1003,9 @@ msgctxt "#245" @@ -3387,10 +3420,10 @@ index 24c4085..c8734c1 100755 msgctxt "#247" msgid "Scripts" diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index 64d6e63..9312642 100644 +index c035774..5490bcb 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml -@@ -1844,6 +1844,15 @@ +@@ -1862,6 +1862,15 @@
@@ -3406,7 +3439,7 @@ index 64d6e63..9312642 100644 0 0 -@@ -1865,6 +1874,7 @@ +@@ -1883,6 +1892,7 @@ -1 @@ -3414,7 +3447,7 @@ index 64d6e63..9312642 100644 -@@ -1882,6 +1892,7 @@ +@@ -1900,6 +1910,7 @@ -1 @@ -3541,7 +3574,7 @@ index cc4002b..d80f1dc 100644 protected: CDisplaySettings(); diff --git a/xbmc/settings/Settings.cpp b/xbmc/settings/Settings.cpp -index da10a5d..98c0acc 100644 +index fb0a98f..8cb7c5c 100644 --- a/xbmc/settings/Settings.cpp +++ b/xbmc/settings/Settings.cpp @@ -387,6 +387,7 @@ void CSettings::Uninitialize() @@ -3560,7 +3593,7 @@ index da10a5d..98c0acc 100644 m_settingsManager->RegisterSettingOptionsFiller("shutdownstates", CPowerManager::SettingOptionsShutdownStatesFiller); m_settingsManager->RegisterSettingOptionsFiller("startupwindows", ADDON::CSkinInfo::SettingOptionsStartupWindowsFiller); m_settingsManager->RegisterSettingOptionsFiller("streamlanguages", CLangInfo::SettingOptionsStreamLanguagesFiller); -@@ -724,6 +726,9 @@ void CSettings::InitializeConditions() +@@ -727,6 +729,9 @@ void CSettings::InitializeConditions() #ifdef HAS_GL m_settingsManager->AddCondition("has_gl"); #endif @@ -3570,7 +3603,7 @@ index da10a5d..98c0acc 100644 #ifdef HAS_GLES m_settingsManager->AddCondition("has_gles"); #endif -@@ -873,6 +878,7 @@ void CSettings::InitializeISettingCallbacks() +@@ -876,6 +881,7 @@ void CSettings::InitializeISettingCallbacks() settingSet.insert("videoscreen.screen"); settingSet.insert("videoscreen.resolution"); settingSet.insert("videoscreen.screenmode"); @@ -3600,10 +3633,10 @@ index d77cb2a..d98f12f 100644 break; } diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index 4bec03d..1abbab0 100644 +index a046401..3966ad2 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -34,7 +34,8 @@ +@@ -35,7 +35,8 @@ #include "threads/SingleLock.h" #include "cores/VideoRenderers/RenderManager.h" #include "utils/TimeUtils.h" @@ -3613,7 +3646,7 @@ index 4bec03d..1abbab0 100644 #if defined(HAS_XRANDR) #include -@@ -56,6 +57,7 @@ +@@ -57,6 +58,7 @@ m_bIgnoreNextFocusMessage = false; m_dpyLostTime = 0; m_invisibleCursor = 0; @@ -3621,7 +3654,7 @@ index 4bec03d..1abbab0 100644 XSetErrorHandler(XErrorHandler); } -@@ -68,7 +70,8 @@ bool CWinSystemX11::InitWindowSystem() +@@ -69,7 +71,8 @@ bool CWinSystemX11::InitWindowSystem() { if ((m_dpy = XOpenDisplay(NULL))) { @@ -3631,7 +3664,7 @@ index 4bec03d..1abbab0 100644 } else CLog::Log(LOGERROR, "GLX Error: No Display found"); -@@ -105,6 +108,8 @@ bool CWinSystemX11::DestroyWindowSystem() +@@ -106,6 +109,8 @@ bool CWinSystemX11::DestroyWindowSystem() //we don't call XCloseDisplay() here, since ati keeps a pointer to our m_dpy //so instead we just let m_dpy die on exit @@ -3640,7 +3673,7 @@ index 4bec03d..1abbab0 100644 } // m_SDLSurface is free()'d by SDL_Quit(). -@@ -127,7 +132,10 @@ bool CWinSystemX11::DestroyWindow() +@@ -128,7 +133,10 @@ bool CWinSystemX11::DestroyWindow() return true; if (m_glContext) @@ -3651,7 +3684,7 @@ index 4bec03d..1abbab0 100644 if (m_invisibleCursor) { -@@ -157,7 +165,7 @@ bool CWinSystemX11::ResizeWindow(int newWidth, int newHeight, int newLeft, int n +@@ -158,7 +166,7 @@ bool CWinSystemX11::ResizeWindow(int newWidth, int newHeight, int newLeft, int n && m_nHeight == newHeight) return true; @@ -3660,7 +3693,7 @@ index 4bec03d..1abbab0 100644 { return false; } -@@ -166,58 +174,11 @@ bool CWinSystemX11::ResizeWindow(int newWidth, int newHeight, int newLeft, int n +@@ -167,58 +175,11 @@ bool CWinSystemX11::ResizeWindow(int newWidth, int newHeight, int newLeft, int n m_nWidth = newWidth; m_nHeight = newHeight; m_bFullScreen = false; @@ -3720,7 +3753,7 @@ index 4bec03d..1abbab0 100644 bool CWinSystemX11::SetFullScreen(bool fullScreen, RESOLUTION_INFO& res, bool blankOtherDisplays) { -@@ -242,8 +203,7 @@ bool CWinSystemX11::SetFullScreen(bool fullScreen, RESOLUTION_INFO& res, bool bl +@@ -243,8 +204,7 @@ bool CWinSystemX11::SetFullScreen(bool fullScreen, RESOLUTION_INFO& res, bool bl mode.id = CDisplaySettings::Get().GetResolutionInfo(RES_DESKTOP).strId; } @@ -3730,7 +3763,7 @@ index 4bec03d..1abbab0 100644 // flip h/w when rotated if (m_bIsRotated) -@@ -254,16 +214,17 @@ bool CWinSystemX11::SetFullScreen(bool fullScreen, RESOLUTION_INFO& res, bool bl +@@ -255,16 +215,17 @@ bool CWinSystemX11::SetFullScreen(bool fullScreen, RESOLUTION_INFO& res, bool bl } // only call xrandr if mode changes @@ -3750,7 +3783,7 @@ index 4bec03d..1abbab0 100644 return false; RefreshGlxContext(); -@@ -271,6 +232,7 @@ bool CWinSystemX11::SetFullScreen(bool fullScreen, RESOLUTION_INFO& res, bool bl +@@ -272,6 +233,7 @@ bool CWinSystemX11::SetFullScreen(bool fullScreen, RESOLUTION_INFO& res, bool bl m_nWidth = res.iWidth; m_nHeight = res.iHeight; m_bFullScreen = fullScreen; @@ -3758,7 +3791,7 @@ index 4bec03d..1abbab0 100644 return true; } -@@ -279,19 +241,30 @@ void CWinSystemX11::UpdateResolutions() +@@ -280,19 +242,30 @@ void CWinSystemX11::UpdateResolutions() { CWinSystemBase::UpdateResolutions(); @@ -3798,7 +3831,7 @@ index 4bec03d..1abbab0 100644 } else #endif -@@ -302,23 +275,22 @@ void CWinSystemX11::UpdateResolutions() +@@ -303,23 +276,22 @@ void CWinSystemX11::UpdateResolutions() UpdateDesktopResolution(CDisplaySettings::Get().GetResolutionInfo(RES_DESKTOP), 0, w, h, 0.0); } @@ -3830,7 +3863,7 @@ index 4bec03d..1abbab0 100644 { XMode mode = *modeiter; CLog::Log(LOGINFO, "ID:%s Name:%s Refresh:%f Width:%d Height:%d", -@@ -338,15 +310,15 @@ void CWinSystemX11::UpdateResolutions() +@@ -339,15 +311,15 @@ void CWinSystemX11::UpdateResolutions() res.iWidth = mode.h; res.iHeight = mode.w; } @@ -3850,7 +3883,7 @@ index 4bec03d..1abbab0 100644 res.strId = mode.id; res.iSubtitles = (int)(0.95*mode.h); res.fRefreshRate = mode.hz; -@@ -365,28 +337,19 @@ void CWinSystemX11::UpdateResolutions() +@@ -366,28 +338,19 @@ void CWinSystemX11::UpdateResolutions() } @@ -3888,7 +3921,7 @@ index 4bec03d..1abbab0 100644 } bool CWinSystemX11::IsSuitableVisual(XVisualInfo *vInfo) -@@ -416,8 +379,11 @@ bool CWinSystemX11::RefreshGlxContext() +@@ -417,8 +380,11 @@ bool CWinSystemX11::RefreshGlxContext() if (m_glContext) { CLog::Log(LOGDEBUG, "CWinSystemX11::RefreshGlxContext: refreshing context"); @@ -3900,7 +3933,7 @@ index 4bec03d..1abbab0 100644 return true; } -@@ -483,6 +449,8 @@ bool CWinSystemX11::RefreshGlxContext() +@@ -484,6 +450,8 @@ bool CWinSystemX11::RefreshGlxContext() { // make this context current glXMakeCurrent(m_dpy, m_glWindow, m_glContext); @@ -3909,7 +3942,7 @@ index 4bec03d..1abbab0 100644 retVal = true; } else -@@ -524,24 +492,53 @@ void CWinSystemX11::ResetOSScreensaver() +@@ -525,24 +493,53 @@ void CWinSystemX11::ResetOSScreensaver() void CWinSystemX11::NotifyAppActiveChange(bool bActivated) { @@ -3966,7 +3999,7 @@ index 4bec03d..1abbab0 100644 if (m_bWasFullScreenBeforeMinimize) { m_bIgnoreNextFocusMessage = true; -@@ -607,13 +604,46 @@ void CWinSystemX11::CheckDisplayEvents() +@@ -608,13 +605,46 @@ void CWinSystemX11::CheckDisplayEvents() void CWinSystemX11::NotifyXRREvent() { CLog::Log(LOGDEBUG, "%s - notify display reset event", __FUNCTION__); @@ -4018,7 +4051,7 @@ index 4bec03d..1abbab0 100644 } -@@ -666,14 +696,14 @@ bool CWinSystemX11::EnableFrameLimiter() +@@ -667,14 +697,14 @@ bool CWinSystemX11::EnableFrameLimiter() return m_minimized; } @@ -4035,7 +4068,7 @@ index 4bec03d..1abbab0 100644 { mouseActive = g_Mouse.IsActive(); if (mouseActive) -@@ -695,6 +725,7 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen) +@@ -696,6 +726,7 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen) else mouseActive = false; } @@ -4043,7 +4076,7 @@ index 4bec03d..1abbab0 100644 DestroyWindow(); } -@@ -716,7 +747,11 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen) +@@ -717,7 +748,11 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen) XSetWindowAttributes swa; XVisualInfo *vi; @@ -4056,7 +4089,7 @@ index 4bec03d..1abbab0 100644 cmap = XCreateColormap(m_dpy, RootWindow(m_dpy, vi->screen), vi->visual, AllocNone); int def_vis = (vi->visual == DefaultVisual(m_dpy, vi->screen)); -@@ -732,7 +767,7 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen) +@@ -733,7 +768,7 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen) unsigned long mask = CWBackPixel | CWBorderPixel | CWColormap | CWOverrideRedirect | CWEventMask; m_glWindow = XCreateWindow(m_dpy, RootWindow(m_dpy, vi->screen), @@ -4065,7 +4098,7 @@ index 4bec03d..1abbab0 100644 InputOutput, vi->visual, mask, &swa); -@@ -803,14 +838,19 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen) +@@ -804,14 +839,19 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen) if (fullscreen) { int result = -1; @@ -4089,10 +4122,10 @@ index 4bec03d..1abbab0 100644 return true; } diff --git a/xbmc/windowing/X11/WinSystemX11.h b/xbmc/windowing/X11/WinSystemX11.h -index d5ce9a2e..8310546 100644 +index eb8005e..7d53d36 100644 --- a/xbmc/windowing/X11/WinSystemX11.h +++ b/xbmc/windowing/X11/WinSystemX11.h -@@ -66,15 +66,16 @@ class CWinSystemX11 : public CWinSystemBase +@@ -67,15 +67,16 @@ class CWinSystemX11 : public CWinSystemBase, public ISettingCallback Display* GetDisplay() { return m_dpy; } GLXWindow GetWindow() { return m_glWindow; } GLXContext GetGlxContext() { return m_glContext; } @@ -4112,7 +4145,7 @@ index d5ce9a2e..8310546 100644 Window m_glWindow; GLXContext m_glContext; -@@ -89,6 +90,9 @@ class CWinSystemX11 : public CWinSystemBase +@@ -90,6 +91,9 @@ class CWinSystemX11 : public CWinSystemBase, public ISettingCallback CCriticalSection m_resourceSection; std::vector m_resources; uint64_t m_dpyLostTime; @@ -4126,7 +4159,7 @@ index d5ce9a2e..8310546 100644 1.8.4 -From 03efa8779a236edf420d18341d09be7fe4cfbf17 Mon Sep 17 00:00:00 2001 +From 6e50205cb3487a072f40bc5f0d36737a2f0c07e2 Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 11:36:32 +0200 Subject: [PATCH 17/74] X11: remove all DefaultScreen and RootWindow macros @@ -4138,10 +4171,10 @@ Subject: [PATCH 17/74] X11: remove all DefaultScreen and RootWindow macros 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index 1abbab0..00af550 100644 +index 3966ad2..462a805 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -269,7 +269,7 @@ void CWinSystemX11::UpdateResolutions() +@@ -270,7 +270,7 @@ void CWinSystemX11::UpdateResolutions() else #endif { @@ -4150,7 +4183,7 @@ index 1abbab0..00af550 100644 int w = DisplayWidth(m_dpy, x11screen); int h = DisplayHeight(m_dpy, x11screen); UpdateDesktopResolution(CDisplaySettings::Get().GetResolutionInfo(RES_DESKTOP), 0, w, h, 0.0); -@@ -391,7 +391,7 @@ bool CWinSystemX11::RefreshGlxContext() +@@ -392,7 +392,7 @@ bool CWinSystemX11::RefreshGlxContext() XVisualInfo *visuals; XVisualInfo *vInfo = NULL; int availableVisuals = 0; @@ -4159,7 +4192,7 @@ index 1abbab0..00af550 100644 XWindowAttributes winAttr; /* Assume a depth of 24 in case the below calls to XGetWindowAttributes() -@@ -545,7 +545,7 @@ bool CWinSystemX11::Minimize() +@@ -546,7 +546,7 @@ bool CWinSystemX11::Minimize() g_graphicsContext.ToggleFullScreenRoot(); } @@ -4169,10 +4202,10 @@ index 1abbab0..00af550 100644 m_minimized = true; return true; diff --git a/xbmc/windowing/X11/WinSystemX11.h b/xbmc/windowing/X11/WinSystemX11.h -index 8310546..474466e 100644 +index 7d53d36..51e33c2 100644 --- a/xbmc/windowing/X11/WinSystemX11.h +++ b/xbmc/windowing/X11/WinSystemX11.h -@@ -48,6 +48,7 @@ class CWinSystemX11 : public CWinSystemBase +@@ -49,6 +49,7 @@ class CWinSystemX11 : public CWinSystemBase, public ISettingCallback virtual bool SetFullScreen(bool fullScreen, RESOLUTION_INFO& res, bool blankOtherDisplays); virtual void UpdateResolutions(); virtual int GetNumScreens() { return 1; } @@ -4197,7 +4230,7 @@ index 81c6800..8a8ff83 100644 1.8.4 -From 3386d242934367375118ec15b74e892ee78e1c21 Mon Sep 17 00:00:00 2001 +From 06e112d3a253c94a88c122e566e7722a1d12695d Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 11:45:22 +0200 Subject: [PATCH 18/74] X11: remove all DefaultScreen and RootWindow macros @@ -4272,7 +4305,7 @@ index 3ba991a..7eecd40 100644 1.8.4 -From 40b9040210431c7bb76fa4f3c4dd4e640c12e9bc Mon Sep 17 00:00:00 2001 +From 6a2f737f027f121322a60067da511567f355541d Mon Sep 17 00:00:00 2001 From: xbmc Date: Wed, 20 Jun 2012 17:37:11 +0200 Subject: [PATCH 19/74] X11: recreate gl context after output has changed @@ -4284,10 +4317,10 @@ Subject: [PATCH 19/74] X11: recreate gl context after output has changed 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index 00af550..6b64c1c 100644 +index 462a805..4588b28 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -170,7 +170,6 @@ bool CWinSystemX11::ResizeWindow(int newWidth, int newHeight, int newLeft, int n +@@ -171,7 +171,6 @@ bool CWinSystemX11::ResizeWindow(int newWidth, int newHeight, int newLeft, int n return false; } @@ -4295,7 +4328,7 @@ index 00af550..6b64c1c 100644 m_nWidth = newWidth; m_nHeight = newHeight; m_bFullScreen = false; -@@ -221,14 +220,13 @@ bool CWinSystemX11::SetFullScreen(bool fullScreen, RESOLUTION_INFO& res, bool bl +@@ -222,14 +221,13 @@ bool CWinSystemX11::SetFullScreen(bool fullScreen, RESOLUTION_INFO& res, bool bl OnLostDevice(); m_bIsInternalXrr = true; g_xrandr.SetMode(out, mode); @@ -4311,7 +4344,7 @@ index 00af550..6b64c1c 100644 m_nWidth = res.iWidth; m_nHeight = res.iHeight; m_bFullScreen = fullScreen; -@@ -379,11 +377,8 @@ bool CWinSystemX11::RefreshGlxContext() +@@ -380,11 +378,8 @@ bool CWinSystemX11::RefreshGlxContext() if (m_glContext) { CLog::Log(LOGDEBUG, "CWinSystemX11::RefreshGlxContext: refreshing context"); @@ -4323,7 +4356,7 @@ index 00af550..6b64c1c 100644 return true; } -@@ -443,14 +438,14 @@ bool CWinSystemX11::RefreshGlxContext() +@@ -444,14 +439,14 @@ bool CWinSystemX11::RefreshGlxContext() { glXMakeCurrent(m_dpy, None, NULL); glXDestroyContext(m_dpy, m_glContext); @@ -4340,7 +4373,7 @@ index 00af550..6b64c1c 100644 retVal = true; } else -@@ -727,6 +722,7 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd +@@ -728,6 +723,7 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd } OnLostDevice(); DestroyWindow(); @@ -4348,7 +4381,7 @@ index 00af550..6b64c1c 100644 } // create main window -@@ -845,13 +841,21 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd +@@ -846,13 +842,21 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd } XGrabKeyboard(m_dpy, m_glWindow, True, GrabModeAsync, GrabModeAsync, CurrentTime); } @@ -4373,10 +4406,10 @@ index 00af550..6b64c1c 100644 } diff --git a/xbmc/windowing/X11/WinSystemX11.h b/xbmc/windowing/X11/WinSystemX11.h -index 474466e..1ff3724 100644 +index 51e33c2..2868707 100644 --- a/xbmc/windowing/X11/WinSystemX11.h +++ b/xbmc/windowing/X11/WinSystemX11.h -@@ -94,6 +94,7 @@ class CWinSystemX11 : public CWinSystemBase +@@ -95,6 +95,7 @@ class CWinSystemX11 : public CWinSystemBase, public ISettingCallback CStdString m_currentOutput; bool m_windowDirty; bool m_bIsInternalXrr; @@ -4426,7 +4459,7 @@ index 8a8ff83..8707467 100644 1.8.4 -From e570c4e765eedd157edce79adaf51bae6d106d6d Mon Sep 17 00:00:00 2001 +From e2e1788c61cdc86af2034b249477cfff3d148ac9 Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 12:06:25 +0200 Subject: [PATCH 20/74] X11: hook video reference clock in windowing @@ -4634,7 +4667,7 @@ index dd65a1b..afd71fc 100644 1.8.4 -From 62370ea8dc17453660d8f29a5539538fb2ab70e4 Mon Sep 17 00:00:00 2001 +From 978e87c7cdc03808ebe0113410bee07dc8ccb83b Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 21 Jun 2012 17:26:51 +0200 Subject: [PATCH 21/74] X11: fix video calibrations @@ -4658,10 +4691,10 @@ index 00a2d24..c0db210 100644 // text input interface virtual void EnableTextInput(bool bEnable) {} diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index 6b64c1c..255a5d4 100644 +index 4588b28..72aae78 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -318,7 +318,7 @@ void CWinSystemX11::UpdateResolutions() +@@ -319,7 +319,7 @@ void CWinSystemX11::UpdateResolutions() res.strMode.Format("%s: %s @ %.2fHz", out->name.c_str(), mode.name.c_str(), mode.hz); res.strOutput = out->name; res.strId = mode.id; @@ -4670,7 +4703,7 @@ index 6b64c1c..255a5d4 100644 res.fRefreshRate = mode.hz; res.bFullScreen = true; -@@ -331,8 +331,42 @@ void CWinSystemX11::UpdateResolutions() +@@ -332,8 +332,42 @@ void CWinSystemX11::UpdateResolutions() CDisplaySettings::Get().AddResolutionInfo(res); } } @@ -4714,10 +4747,10 @@ index 6b64c1c..255a5d4 100644 void CWinSystemX11::GetConnectedOutputs(std::vector *outputs) diff --git a/xbmc/windowing/X11/WinSystemX11.h b/xbmc/windowing/X11/WinSystemX11.h -index 1ff3724..2fc3f57 100644 +index 2868707..282bb9a 100644 --- a/xbmc/windowing/X11/WinSystemX11.h +++ b/xbmc/windowing/X11/WinSystemX11.h -@@ -62,6 +62,7 @@ class CWinSystemX11 : public CWinSystemBase +@@ -63,6 +63,7 @@ class CWinSystemX11 : public CWinSystemBase, public ISettingCallback virtual bool Show(bool raise = true); virtual void Register(IDispResource *resource); virtual void Unregister(IDispResource *resource); @@ -4729,7 +4762,7 @@ index 1ff3724..2fc3f57 100644 1.8.4 -From a1649e0f15dea09337319ff1683fcca1dbc2858c Mon Sep 17 00:00:00 2001 +From 08e2db84ae436833dfc5c5ae5ca9b7283c54c00f Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 12:00:26 +0200 Subject: [PATCH 22/74] X11: deactivate screen saver on startup @@ -4740,10 +4773,10 @@ Subject: [PATCH 22/74] X11: deactivate screen saver on startup 2 files changed, 30 insertions(+) diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index 255a5d4..3084980 100644 +index 72aae78..e1fd4e5 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -519,6 +519,33 @@ void CWinSystemX11::ResetOSScreensaver() +@@ -520,6 +520,33 @@ void CWinSystemX11::ResetOSScreensaver() } } @@ -4777,7 +4810,7 @@ index 255a5d4..3084980 100644 void CWinSystemX11::NotifyAppActiveChange(bool bActivated) { if (bActivated && m_bWasFullScreenBeforeMinimize && !m_bFullScreen) -@@ -762,6 +789,8 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd +@@ -763,6 +790,8 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd // create main window if (!m_glWindow) { @@ -4787,10 +4820,10 @@ index 255a5d4..3084980 100644 { GLX_RGBA, diff --git a/xbmc/windowing/X11/WinSystemX11.h b/xbmc/windowing/X11/WinSystemX11.h -index 2fc3f57..e7e1781 100644 +index 282bb9a..32f90da 100644 --- a/xbmc/windowing/X11/WinSystemX11.h +++ b/xbmc/windowing/X11/WinSystemX11.h -@@ -52,6 +52,7 @@ class CWinSystemX11 : public CWinSystemBase +@@ -53,6 +53,7 @@ class CWinSystemX11 : public CWinSystemBase, public ISettingCallback virtual void ShowOSMouse(bool show); virtual void ResetOSScreensaver(); virtual bool EnableFrameLimiter(); @@ -4802,7 +4835,7 @@ index 2fc3f57..e7e1781 100644 1.8.4 -From 540c104b577c488cd03bd98680145b0bf158bcae Mon Sep 17 00:00:00 2001 +From f1d032bec51eea6dbff79b0c865d4d2e75a22e2c Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 12:10:09 +0200 Subject: [PATCH 23/74] X11: change method of going full-screen @@ -4812,10 +4845,10 @@ Subject: [PATCH 23/74] X11: change method of going full-screen 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index 3084980..daabde3 100644 +index e1fd4e5..acd6497 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -36,6 +36,7 @@ +@@ -37,6 +37,7 @@ #include "utils/TimeUtils.h" #include "settings/Settings.h" #include "windowing/WindowingFactory.h" @@ -4823,7 +4856,7 @@ index 3084980..daabde3 100644 #if defined(HAS_XRANDR) #include -@@ -814,7 +815,7 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd +@@ -815,7 +816,7 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd cmap = XCreateColormap(m_dpy, RootWindow(m_dpy, vi->screen), vi->visual, AllocNone); int def_vis = (vi->visual == DefaultVisual(m_dpy, vi->screen)); @@ -4832,7 +4865,7 @@ index 3084980..daabde3 100644 swa.border_pixel = fullscreen ? 0 : 5; swa.background_pixel = def_vis ? BlackPixel(m_dpy, vi->screen) : 0; swa.colormap = cmap; -@@ -830,6 +831,12 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd +@@ -831,6 +832,12 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd InputOutput, vi->visual, mask, &swa); @@ -4849,7 +4882,7 @@ index 3084980..daabde3 100644 1.8.4 -From 4acf215f9e6346aabf79b6b362125382742db27a Mon Sep 17 00:00:00 2001 +From 341d504c3bd71c24e4c57ad023d828bab1e62bef Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 28 Jun 2012 19:12:39 +0200 Subject: [PATCH 24/74] X11: reset key repeat and key modifier on focus lost @@ -4884,7 +4917,7 @@ index d98f12f..743aca9 100644 1.8.4 -From 95e7717052f1810bb43abc79c892e82c2224cf9f Mon Sep 17 00:00:00 2001 +From 2fa2f7c29ddaab354f8675a5a383514f4796536b Mon Sep 17 00:00:00 2001 From: Joakim Plate Date: Thu, 5 Jul 2012 14:18:46 +0200 Subject: [PATCH 25/74] X11: replace custom utf8 to unicode with charset @@ -5104,7 +5137,7 @@ index a412f32..9a8a912 100644 1.8.4 -From 28d34c6cdd579dd93fe15a9e62c18bba61276272 Mon Sep 17 00:00:00 2001 +From cabacc21613bb86163ad5e426f6b7cb4edbd562f Mon Sep 17 00:00:00 2001 From: Joakim Plate Date: Thu, 5 Jul 2012 14:23:54 +0200 Subject: [PATCH 26/74] X11: fixed invalid usage of sizeof() (squash into x11 @@ -5171,7 +5204,7 @@ index 9a8a912..c69169c 100644 1.8.4 -From 1994cc2d7165406f5be7c54c667c79db4b00ac1c Mon Sep 17 00:00:00 2001 +From 69059ac2ff5e5afbcce81c6fee381564b9aaa254 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sat, 9 Jun 2012 18:23:53 +0200 Subject: [PATCH 27/74] add missing keys to xbmc keytable @@ -5197,7 +5230,7 @@ index b430f55..246164b 100644 1.8.4 -From 85fffc41db60164b1270ba409366eb1b959eb33d Mon Sep 17 00:00:00 2001 +From 2f47f767a7bd899d04ecc525f7bc4e30aeefd98d Mon Sep 17 00:00:00 2001 From: xbmc Date: Fri, 16 Mar 2012 15:57:51 +0100 Subject: [PATCH 28/74] videorefclock: temp deactivate of nv settings @@ -5223,7 +5256,7 @@ index 4071ff0..b9afc09 100644 1.8.4 -From dcc90371ec1689bd500fb6e22a10c123c3f16d26 Mon Sep 17 00:00:00 2001 +From 3e0d9bf31215ac96f34c784f1b89ce2a1f1c45c4 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 20 Aug 2012 09:09:09 +0200 Subject: [PATCH 29/74] videorefclock: ask graphics context for refresh rate @@ -5257,7 +5290,7 @@ index b9afc09..2f6c7de 100644 1.8.4 -From 3a4d87cfe7389e01aa2a57c93c7a659388901beb Mon Sep 17 00:00:00 2001 +From 32734f03bbb8b1265babf6fa90aae1c6dfdc6cf9 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 9 Jul 2012 14:00:18 +0200 Subject: [PATCH 30/74] X11: fix icon texture after @@ -5268,10 +5301,10 @@ Subject: [PATCH 30/74] X11: fix icon texture after 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index daabde3..516dc69 100644 +index acd6497..805eed7 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -872,22 +872,24 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd +@@ -873,22 +873,24 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd if (!fullscreen) { CreateIconPixmap(); @@ -5303,7 +5336,7 @@ index daabde3..516dc69 100644 // register interest in the delete window message Atom wmDeleteMessage = XInternAtom(m_dpy, "WM_DELETE_WINDOW", False); -@@ -972,16 +974,21 @@ bool CWinSystemX11::CreateIconPixmap() +@@ -973,16 +975,21 @@ bool CWinSystemX11::CreateIconPixmap() gRatio = vis->green_mask / 255.0; bRatio = vis->blue_mask / 255.0; @@ -5331,7 +5364,7 @@ index daabde3..516dc69 100644 newBuf = (uint32_t*)malloc(numNewBufBytes); if (!newBuf) -@@ -990,11 +997,11 @@ bool CWinSystemX11::CreateIconPixmap() +@@ -991,11 +998,11 @@ bool CWinSystemX11::CreateIconPixmap() return false; } @@ -5346,7 +5379,7 @@ index daabde3..516dc69 100644 unsigned int r, g, b; r = (buf[pos+2] * rRatio); g = (buf[pos+1] * gRatio); -@@ -1007,7 +1014,7 @@ bool CWinSystemX11::CreateIconPixmap() +@@ -1008,7 +1015,7 @@ bool CWinSystemX11::CreateIconPixmap() } } img = XCreateImage(m_dpy, vis, depth,ZPixmap, 0, (char *)newBuf, @@ -5355,7 +5388,7 @@ index daabde3..516dc69 100644 (depth>=24)?32:16, 0); if (!img) { -@@ -1045,6 +1052,8 @@ bool CWinSystemX11::CreateIconPixmap() +@@ -1046,6 +1053,8 @@ bool CWinSystemX11::CreateIconPixmap() XFreeGC(m_dpy, gc); XDestroyImage(img); // this also frees newBuf @@ -5368,7 +5401,7 @@ index daabde3..516dc69 100644 1.8.4 -From a909c60bead4209665e6a82dce7c014f313fd30b Mon Sep 17 00:00:00 2001 +From 73c80decd59591eb5439c228bdca5a59fa8b3fc1 Mon Sep 17 00:00:00 2001 From: xbmc Date: Tue, 10 Jul 2012 11:14:12 +0200 Subject: [PATCH 31/74] X11: check for window manager @@ -5379,10 +5412,10 @@ Subject: [PATCH 31/74] X11: check for window manager 2 files changed, 73 insertions(+), 2 deletions(-) diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index 516dc69..e8b73b5 100644 +index 805eed7..b103248 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -814,8 +814,10 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd +@@ -815,8 +815,10 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd vi = glXChooseVisual(m_dpy, m_nScreen, att); cmap = XCreateColormap(m_dpy, RootWindow(m_dpy, vi->screen), vi->visual, AllocNone); @@ -5394,7 +5427,7 @@ index 516dc69..e8b73b5 100644 swa.border_pixel = fullscreen ? 0 : 5; swa.background_pixel = def_vis ? BlackPixel(m_dpy, vi->screen) : 0; swa.colormap = cmap; -@@ -831,7 +833,7 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd +@@ -832,7 +834,7 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd InputOutput, vi->visual, mask, &swa); @@ -5403,7 +5436,7 @@ index 516dc69..e8b73b5 100644 { Atom fs = XInternAtom(m_dpy, "_NET_WM_STATE_FULLSCREEN", True); XChangeProperty(m_dpy, m_glWindow, XInternAtom(m_dpy, "_NET_WM_STATE", True), XA_ATOM, 32, PropModeReplace, (unsigned char *) &fs, 1); -@@ -1057,4 +1059,72 @@ bool CWinSystemX11::CreateIconPixmap() +@@ -1058,4 +1060,72 @@ bool CWinSystemX11::CreateIconPixmap() return true; } @@ -5477,10 +5510,10 @@ index 516dc69..e8b73b5 100644 + #endif diff --git a/xbmc/windowing/X11/WinSystemX11.h b/xbmc/windowing/X11/WinSystemX11.h -index e7e1781..4175556 100644 +index 32f90da..28d9d03 100644 --- a/xbmc/windowing/X11/WinSystemX11.h +++ b/xbmc/windowing/X11/WinSystemX11.h -@@ -102,6 +102,7 @@ class CWinSystemX11 : public CWinSystemBase +@@ -103,6 +103,7 @@ class CWinSystemX11 : public CWinSystemBase, public ISettingCallback bool IsSuitableVisual(XVisualInfo *vInfo); static int XErrorHandler(Display* dpy, XErrorEvent* error); bool CreateIconPixmap(); @@ -5492,7 +5525,7 @@ index e7e1781..4175556 100644 1.8.4 -From c538cc4ac325dfbcc7447032d3b20242b0dcbdb5 Mon Sep 17 00:00:00 2001 +From 7767f901811a5ccf1f453e2ec8e42854f91b4e6a Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 12 Jul 2012 11:11:47 +0200 Subject: [PATCH 32/74] X11: dont set window on xrandr if no mode available @@ -5502,10 +5535,10 @@ Subject: [PATCH 32/74] X11: dont set window on xrandr if no mode available 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index e8b73b5..dee08e0 100644 +index b103248..45741d7 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -663,16 +663,17 @@ void CWinSystemX11::NotifyXRREvent() +@@ -664,16 +664,17 @@ void CWinSystemX11::NotifyXRREvent() CLog::Log(LOGDEBUG, "%s - notify display reset event", __FUNCTION__); m_windowDirty = true; @@ -5532,7 +5565,7 @@ index e8b73b5..dee08e0 100644 1.8.4 -From fa93c147b943b732f3d6bbe71a98baecca7ccde1 Mon Sep 17 00:00:00 2001 +From 51689e75d057be6b9f5885bfe9adca60ab1908ee Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 26 Jul 2012 09:34:28 +0200 Subject: [PATCH 33/74] X11: fix crash after a resolution change on startup @@ -5542,10 +5575,10 @@ Subject: [PATCH 33/74] X11: fix crash after a resolution change on startup 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index dee08e0..edfd370 100644 +index 45741d7..a6cb67f 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -221,7 +221,8 @@ bool CWinSystemX11::SetFullScreen(bool fullScreen, RESOLUTION_INFO& res, bool bl +@@ -222,7 +222,8 @@ bool CWinSystemX11::SetFullScreen(bool fullScreen, RESOLUTION_INFO& res, bool bl OnLostDevice(); m_bIsInternalXrr = true; g_xrandr.SetMode(out, mode); @@ -5559,7 +5592,7 @@ index dee08e0..edfd370 100644 1.8.4 -From 9984308d1ce396da62875b9e7339db49279f6f82 Mon Sep 17 00:00:00 2001 +From 0943750796c6e88487220c9ace5011032f04424e Mon Sep 17 00:00:00 2001 From: xbmc Date: Sat, 15 Sep 2012 18:27:29 +0200 Subject: [PATCH 34/74] X11: lock graphics context in NotifyXRREvent @@ -5569,10 +5602,10 @@ Subject: [PATCH 34/74] X11: lock graphics context in NotifyXRREvent 1 file changed, 2 insertions(+) diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index edfd370..974ce96 100644 +index a6cb67f..70b5f10 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -664,6 +664,8 @@ void CWinSystemX11::NotifyXRREvent() +@@ -665,6 +665,8 @@ void CWinSystemX11::NotifyXRREvent() CLog::Log(LOGDEBUG, "%s - notify display reset event", __FUNCTION__); m_windowDirty = true; @@ -5585,7 +5618,7 @@ index edfd370..974ce96 100644 1.8.4 -From 3e02d584c40c1ced3d163589cf50120c2cbb3f93 Mon Sep 17 00:00:00 2001 +From e22bc0f6afe2910c8f7160f07774bce62c3fad06 Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 23 Aug 2012 19:39:49 +0200 Subject: [PATCH 35/74] ffmpeg: add av_find_default_stream_index to interface @@ -5634,7 +5667,7 @@ index 0016c0b..3514856 100644 1.8.4 -From 1957f4f6d5cc550906fcf49f123f50ebd68edec9 Mon Sep 17 00:00:00 2001 +From 7a6466dc251f9815c9cb998909bc2023d97541be Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 20 Aug 2012 16:06:39 +0200 Subject: [PATCH 36/74] dvdplayer: observe pts counter overflow @@ -5924,7 +5957,7 @@ index aef5ab1..35abbdf 100644 1.8.4 -From c6e0462ca3ad1fbde0efa953c75363297155d1c5 Mon Sep 17 00:00:00 2001 +From f26c3f1d2698faca69557919be0406efebcacb9b Mon Sep 17 00:00:00 2001 From: xbmc Date: Tue, 2 Oct 2012 13:02:10 +0200 Subject: [PATCH 37/74] dvdplayer: avoid short screen flicker caused by @@ -5960,7 +5993,7 @@ index c40d193..6419951 100644 1.8.4 -From df93f2127ef98af9583e957a603ad39fc7843f2d Mon Sep 17 00:00:00 2001 +From 7328564d0cb47499549fb83bf18b45dc83d20193 Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 11 Oct 2012 12:05:50 +0200 Subject: [PATCH 38/74] vdpau: advanced settings for auto deinterlacing @@ -5991,7 +6024,7 @@ index f57935e..7ee2ed9 100644 if (deint != -1) { diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp -index 4e1a28c..2a25330 100644 +index ac18c02..ecf2313 100644 --- a/xbmc/settings/AdvancedSettings.cpp +++ b/xbmc/settings/AdvancedSettings.cpp @@ -168,6 +168,8 @@ void CAdvancedSettings::Initialize() @@ -6013,10 +6046,10 @@ index 4e1a28c..2a25330 100644 XMLUtils::GetBoolean(pElement,"vdpauHDdeintSkipChroma",m_videoVDPAUdeintSkipChromaHD); diff --git a/xbmc/settings/AdvancedSettings.h b/xbmc/settings/AdvancedSettings.h -index 05e670b..a67ac36 100644 +index e6e02ad..70a8e9a 100644 --- a/xbmc/settings/AdvancedSettings.h +++ b/xbmc/settings/AdvancedSettings.h -@@ -157,6 +157,8 @@ class CAdvancedSettings : public ISettingCallback, public ISettingsHandler +@@ -167,6 +167,8 @@ class CAdvancedSettings : public ISettingCallback, public ISettingsHandler int m_videoPercentSeekBackwardBig; CStdString m_videoPPFFmpegDeint; CStdString m_videoPPFFmpegPostProc; @@ -6029,7 +6062,7 @@ index 05e670b..a67ac36 100644 1.8.4 -From 7293b27ee7c2cf24f15a72b8b2ef6a1af5d0ff86 Mon Sep 17 00:00:00 2001 +From 16941939de022e6f1e2fd89039be2a8b304b8c38 Mon Sep 17 00:00:00 2001 From: xbmc Date: Fri, 2 Nov 2012 13:20:03 +0100 Subject: [PATCH 39/74] player: fix rewind @@ -6080,10 +6113,10 @@ index 2ea8b8f..e8274f9 100644 class CDVDMsgPlayerSeekChapter : public CDVDMsg diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index 1f4b1c6..5852037 100644 +index d8847f2..c17a5b2 100644 --- a/xbmc/cores/dvdplayer/DVDPlayer.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp -@@ -1553,11 +1553,13 @@ void CDVDPlayer::HandlePlaySpeed() +@@ -1550,11 +1550,13 @@ void CDVDPlayer::HandlePlaySpeed() } else if (m_CurrentVideo.id >= 0 && (m_CurrentVideo.inited == true || GetPlaySpeed() < 0) // allow rewind at end of file @@ -6098,7 +6131,7 @@ index 1f4b1c6..5852037 100644 // check how much off clock video is when ff/rw:ing // a problem here is that seeking isn't very accurate // and since the clock will be resynced after seek -@@ -1576,7 +1578,7 @@ void CDVDPlayer::HandlePlaySpeed() +@@ -1573,7 +1575,7 @@ void CDVDPlayer::HandlePlaySpeed() { CLog::Log(LOGDEBUG, "CDVDPlayer::Process - Seeking to catch up"); int64_t iTime = (int64_t)DVD_TIME_TO_MSEC(m_clock.GetClock() + m_State.time_offset + 500000.0 * m_playSpeed / DVD_PLAYSPEED_NORMAL); @@ -6107,7 +6140,7 @@ index 1f4b1c6..5852037 100644 } } } -@@ -2064,7 +2066,7 @@ void CDVDPlayer::HandleMessages() +@@ -2061,7 +2063,7 @@ void CDVDPlayer::HandleMessages() else m_StateInput.dts = start; @@ -6116,7 +6149,7 @@ index 1f4b1c6..5852037 100644 } else CLog::Log(LOGWARNING, "error while seeking"); -@@ -2203,9 +2205,10 @@ void CDVDPlayer::HandleMessages() +@@ -2200,9 +2202,10 @@ void CDVDPlayer::HandleMessages() double offset; offset = CDVDClock::GetAbsoluteClock() - m_State.timestamp; offset *= m_playSpeed / DVD_PLAYSPEED_NORMAL; @@ -6128,7 +6161,7 @@ index 1f4b1c6..5852037 100644 m_State.timestamp = CDVDClock::GetAbsoluteClock(); } -@@ -2221,7 +2224,8 @@ void CDVDPlayer::HandleMessages() +@@ -2218,7 +2221,8 @@ void CDVDPlayer::HandleMessages() // do a seek after rewind, clock is not in sync with current pts if (m_playSpeed < 0 && speed >= 0) { @@ -6138,7 +6171,7 @@ index 1f4b1c6..5852037 100644 } // if playspeed is different then DVD_PLAYSPEED_NORMAL or DVD_PLAYSPEED_PAUSE -@@ -3178,7 +3182,7 @@ bool CDVDPlayer::CloseTeletextStream(bool bWaitForBuffers) +@@ -3175,7 +3179,7 @@ bool CDVDPlayer::CloseTeletextStream(bool bWaitForBuffers) return true; } @@ -6147,7 +6180,7 @@ index 1f4b1c6..5852037 100644 { double startpts; if(accurate) -@@ -3190,19 +3194,23 @@ void CDVDPlayer::FlushBuffers(bool queued, double pts, bool accurate) +@@ -3187,19 +3191,23 @@ void CDVDPlayer::FlushBuffers(bool queued, double pts, bool accurate) if(startpts != DVD_NOPTS_VALUE) startpts -= m_offset_pts; @@ -6175,7 +6208,7 @@ index 1f4b1c6..5852037 100644 m_CurrentTeletext.dts = DVD_NOPTS_VALUE; m_CurrentTeletext.startpts = startpts; -@@ -3246,7 +3254,7 @@ void CDVDPlayer::FlushBuffers(bool queued, double pts, bool accurate) +@@ -3243,7 +3251,7 @@ void CDVDPlayer::FlushBuffers(bool queued, double pts, bool accurate) m_CurrentTeletext.started = false; } @@ -6247,7 +6280,7 @@ index 59c7f09..65dea76 100644 1.8.4 -From 5b238db5e5b4af8fd7b2f3353e964b099b61b035 Mon Sep 17 00:00:00 2001 +From 3df6ab7f242355aa7a498dc0587828ea3f52180e Mon Sep 17 00:00:00 2001 From: xbmc Date: Fri, 23 Nov 2012 17:41:12 +0100 Subject: [PATCH 40/74] xrandr: fix query for multiple screens @@ -6291,7 +6324,7 @@ index 9e181f2..ce0a02b 100644 1.8.4 -From d45549c36bbff8bf10b7ae18349001d89fbb0d79 Mon Sep 17 00:00:00 2001 +From 204459604f094869d34265dc341d4dcd0818e1ad Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 2 Dec 2012 15:46:55 +0100 Subject: [PATCH 41/74] X11: add debug log to print out refresh after xrr event @@ -6301,10 +6334,10 @@ Subject: [PATCH 41/74] X11: add debug log to print out refresh after xrr event 1 file changed, 6 insertions(+) diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index 974ce96..52f3eb2 100644 +index 70b5f10..64d5730 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -683,6 +683,12 @@ void CWinSystemX11::NotifyXRREvent() +@@ -684,6 +684,12 @@ void CWinSystemX11::NotifyXRREvent() XOutput *out = g_xrandr.GetOutput(currentOutput); XMode mode = g_xrandr.GetCurrentMode(currentOutput); @@ -6321,7 +6354,7 @@ index 974ce96..52f3eb2 100644 1.8.4 -From f2a24f8f15adcb16e31057079f92be184c8aebc3 Mon Sep 17 00:00:00 2001 +From edd899abfb5a94ed27610d9d10e7f5e3c13eb84f Mon Sep 17 00:00:00 2001 From: xbmc Date: Tue, 11 Dec 2012 11:08:13 +0100 Subject: [PATCH 42/74] X11: dont call XCloseDisplay on shutdown, it crashes @@ -6332,10 +6365,10 @@ Subject: [PATCH 42/74] X11: dont call XCloseDisplay on shutdown, it crashes 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index 52f3eb2..54b04b7 100644 +index 64d5730..edc81c8 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -110,7 +110,8 @@ bool CWinSystemX11::DestroyWindowSystem() +@@ -111,7 +111,8 @@ bool CWinSystemX11::DestroyWindowSystem() //we don't call XCloseDisplay() here, since ati keeps a pointer to our m_dpy //so instead we just let m_dpy die on exit // i have seen core dumps on ATI if the display is not closed here @@ -6349,7 +6382,7 @@ index 52f3eb2..54b04b7 100644 1.8.4 -From 122d6f28a086f518db4aa6ff0d5a911ae913640f Mon Sep 17 00:00:00 2001 +From 16f2924bb6694a0e6d437140a6308610a9d8e43f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20Coutant?= Date: Wed, 12 Dec 2012 19:49:47 +0100 Subject: [PATCH 43/74] x11: support for multiple x screens @@ -6375,7 +6408,7 @@ index ce0a02b..aa27d2b 100644 1.8.4 -From 229ad2fba2f019003f132535fb071424d28db90d Mon Sep 17 00:00:00 2001 +From beeda2ba6039ca33958d811a17538c28d431509a Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 24 Dec 2012 16:02:42 +0100 Subject: [PATCH 44/74] pvr: increase changes counter of stream on stream @@ -6412,7 +6445,7 @@ index b96d520..df89f6f 100644 1.8.4 -From 0b981d562921a318e673076effd618db0e0bb183 Mon Sep 17 00:00:00 2001 +From bdd946fd4f545a3260015be2a94b70eb7535c1d8 Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 17 Jan 2013 16:03:22 +0100 Subject: [PATCH 45/74] X11: add keymapping for XF86XK_Sleep @@ -6437,7 +6470,7 @@ index a62521f..263cb5a 100644 1.8.4 -From 7b987841f0fd37439e5de2e19b5fb09ec08fef3d Mon Sep 17 00:00:00 2001 +From 2dc2364a7a67ae5cd3f1cad9f487a88f4f9ad4c2 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 21 Jan 2013 09:00:19 +0100 Subject: [PATCH 46/74] X11: remove toggle full screen after resume @@ -6466,7 +6499,7 @@ index 2033574..c79bbc1 100644 1.8.4 -From c24a1a423767ec7ce949ac040428962e3a24e613 Mon Sep 17 00:00:00 2001 +From da7c976c50332e9a7cf99a84db51ef70abaa23fb Mon Sep 17 00:00:00 2001 From: xbmc Date: Wed, 23 Jan 2013 17:03:02 +0100 Subject: [PATCH 47/74] xrandr: set screen on mode change command @@ -6492,7 +6525,7 @@ index aa27d2b..67bf6ca 100644 1.8.4 -From 8dd1ea862955f4c89b497bbffa2d82bede2bce4d Mon Sep 17 00:00:00 2001 +From 87ec6a2d86dcc92722f51a116afb4f0e451b543e Mon Sep 17 00:00:00 2001 From: xbmc Date: Wed, 23 Jan 2013 17:03:39 +0100 Subject: [PATCH 48/74] X11: recreate glx context when output changes @@ -6503,10 +6536,10 @@ Subject: [PATCH 48/74] X11: recreate glx context when output changes 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index 54b04b7..6a5a4c2 100644 +index edc81c8..c6aa51a 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -407,11 +407,11 @@ bool CWinSystemX11::IsSuitableVisual(XVisualInfo *vInfo) +@@ -408,11 +408,11 @@ bool CWinSystemX11::IsSuitableVisual(XVisualInfo *vInfo) return true; } @@ -6520,7 +6553,7 @@ index 54b04b7..6a5a4c2 100644 { CLog::Log(LOGDEBUG, "CWinSystemX11::RefreshGlxContext: refreshing context"); glXMakeCurrent(m_dpy, None, NULL); -@@ -928,7 +928,7 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd +@@ -929,7 +929,7 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd } CDirtyRegionList dr; @@ -6530,10 +6563,10 @@ index 54b04b7..6a5a4c2 100644 g_graphicsContext.Clear(0); g_graphicsContext.Flip(dr); diff --git a/xbmc/windowing/X11/WinSystemX11.h b/xbmc/windowing/X11/WinSystemX11.h -index 4175556..11c40f7 100644 +index 28d9d03..5a21b00 100644 --- a/xbmc/windowing/X11/WinSystemX11.h +++ b/xbmc/windowing/X11/WinSystemX11.h -@@ -75,7 +75,7 @@ class CWinSystemX11 : public CWinSystemBase +@@ -76,7 +76,7 @@ class CWinSystemX11 : public CWinSystemBase, public ISettingCallback void NotifyMouseCoverage(bool covered); protected: @@ -6546,7 +6579,7 @@ index 4175556..11c40f7 100644 1.8.4 -From 6787768157c5cc5f3411da684dd29cf1dc6faa2d Mon Sep 17 00:00:00 2001 +From 39759e81a4b49af0d2339d48f87922b73e2aea60 Mon Sep 17 00:00:00 2001 From: xbmc Date: Fri, 14 Dec 2012 14:19:15 +0100 Subject: [PATCH 49/74] pvr: do not show selection dialog for a single menu @@ -6587,7 +6620,7 @@ index aab6345..a880778 100644 1.8.4 -From 034a12ecdb8a520386ed592e2df00a694aa17550 Mon Sep 17 00:00:00 2001 +From 2a4e15a0559cbaaa13ce108555614d76cd058964 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 3 Feb 2013 08:17:16 +0100 Subject: [PATCH 50/74] X11: use default screen parameters if no output @@ -6598,10 +6631,10 @@ Subject: [PATCH 50/74] X11: use default screen parameters if no output 1 file changed, 33 insertions(+), 22 deletions(-) diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index 6a5a4c2..369d17d 100644 +index c6aa51a..f481ea4 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -205,25 +205,27 @@ bool CWinSystemX11::SetFullScreen(bool fullScreen, RESOLUTION_INFO& res, bool bl +@@ -206,25 +206,27 @@ bool CWinSystemX11::SetFullScreen(bool fullScreen, RESOLUTION_INFO& res, bool bl } XMode currmode = g_xrandr.GetCurrentMode(out.name); @@ -6646,7 +6679,7 @@ index 6a5a4c2..369d17d 100644 } #endif -@@ -270,9 +272,10 @@ void CWinSystemX11::UpdateResolutions() +@@ -271,9 +273,10 @@ void CWinSystemX11::UpdateResolutions() else #endif { @@ -6660,7 +6693,7 @@ index 6a5a4c2..369d17d 100644 UpdateDesktopResolution(CDisplaySettings::Get().GetResolutionInfo(RES_DESKTOP), 0, w, h, 0.0); } -@@ -817,11 +820,19 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd +@@ -818,11 +821,19 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd Colormap cmap; XSetWindowAttributes swa; XVisualInfo *vi; @@ -6681,7 +6714,7 @@ index 6a5a4c2..369d17d 100644 vi = glXChooseVisual(m_dpy, m_nScreen, att); cmap = XCreateColormap(m_dpy, RootWindow(m_dpy, vi->screen), vi->visual, AllocNone); -@@ -840,7 +851,7 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd +@@ -841,7 +852,7 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd unsigned long mask = CWBackPixel | CWBorderPixel | CWColormap | CWOverrideRedirect | CWEventMask; m_glWindow = XCreateWindow(m_dpy, RootWindow(m_dpy, vi->screen), @@ -6694,7 +6727,7 @@ index 6a5a4c2..369d17d 100644 1.8.4 -From 8e81e624d8081d598ab9336856ba8515c76b6564 Mon Sep 17 00:00:00 2001 +From c9efbceaef7302b16d1683ef328d917966106299 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sat, 23 Mar 2013 15:13:32 +0100 Subject: [PATCH 51/74] X11: create parent window @@ -6705,10 +6738,10 @@ Subject: [PATCH 51/74] X11: create parent window 2 files changed, 44 insertions(+), 27 deletions(-) diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index 369d17d..3f52bef 100644 +index f481ea4..901b440 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -53,6 +53,7 @@ +@@ -54,6 +54,7 @@ m_glContext = NULL; m_dpy = NULL; m_glWindow = 0; @@ -6716,7 +6749,7 @@ index 369d17d..3f52bef 100644 m_bWasFullScreenBeforeMinimize = false; m_minimized = false; m_bIgnoreNextFocusMessage = false; -@@ -130,7 +131,7 @@ bool CWinSystemX11::CreateNewWindow(const CStdString& name, bool fullScreen, RES +@@ -131,7 +132,7 @@ bool CWinSystemX11::CreateNewWindow(const CStdString& name, bool fullScreen, RES bool CWinSystemX11::DestroyWindow() { @@ -6725,7 +6758,7 @@ index 369d17d..3f52bef 100644 return true; if (m_glContext) -@@ -141,19 +142,21 @@ bool CWinSystemX11::DestroyWindow() +@@ -142,19 +143,21 @@ bool CWinSystemX11::DestroyWindow() if (m_invisibleCursor) { @@ -6749,7 +6782,7 @@ index 369d17d..3f52bef 100644 if (m_icon) XFreePixmap(m_dpy, m_icon); -@@ -223,7 +226,7 @@ bool CWinSystemX11::SetFullScreen(bool fullScreen, RESOLUTION_INFO& res, bool bl +@@ -224,7 +227,7 @@ bool CWinSystemX11::SetFullScreen(bool fullScreen, RESOLUTION_INFO& res, bool bl OnLostDevice(); m_bIsInternalXrr = true; g_xrandr.SetMode(out, mode); @@ -6758,7 +6791,7 @@ index 369d17d..3f52bef 100644 return true; } } -@@ -501,9 +504,9 @@ bool CWinSystemX11::RefreshGlxContext(bool force) +@@ -502,9 +505,9 @@ bool CWinSystemX11::RefreshGlxContext(bool force) void CWinSystemX11::ShowOSMouse(bool show) { if (show) @@ -6770,7 +6803,7 @@ index 369d17d..3f52bef 100644 } void CWinSystemX11::ResetOSScreensaver() -@@ -586,10 +589,10 @@ void CWinSystemX11::NotifyMouseCoverage(bool covered) +@@ -587,10 +590,10 @@ void CWinSystemX11::NotifyMouseCoverage(bool covered) int result = -1; while (result != GrabSuccess && result != AlreadyGrabbed) { @@ -6783,7 +6816,7 @@ index 369d17d..3f52bef 100644 } else { -@@ -607,7 +610,7 @@ bool CWinSystemX11::Minimize() +@@ -608,7 +611,7 @@ bool CWinSystemX11::Minimize() g_graphicsContext.ToggleFullScreenRoot(); } @@ -6792,7 +6825,7 @@ index 369d17d..3f52bef 100644 m_minimized = true; return true; -@@ -618,13 +621,13 @@ bool CWinSystemX11::Restore() +@@ -619,13 +622,13 @@ bool CWinSystemX11::Restore() } bool CWinSystemX11::Hide() { @@ -6808,7 +6841,7 @@ index 369d17d..3f52bef 100644 XSync(m_dpy, False); m_minimized = false; return true; -@@ -774,7 +777,7 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd +@@ -775,7 +778,7 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd bool mouseActive = false; float mouseX, mouseY; @@ -6817,7 +6850,7 @@ index 369d17d..3f52bef 100644 { mouseActive = g_Mouse.IsActive(); if (mouseActive) -@@ -783,7 +786,7 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd +@@ -784,7 +787,7 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd int root_x_return, root_y_return; int win_x_return, win_y_return; unsigned int mask_return; @@ -6826,7 +6859,7 @@ index 369d17d..3f52bef 100644 &root_x_return, &root_y_return, &win_x_return, &win_y_return, &mask_return); -@@ -802,7 +805,7 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd +@@ -803,7 +806,7 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd } // create main window @@ -6835,7 +6868,7 @@ index 369d17d..3f52bef 100644 { EnableSystemScreenSaver(false); -@@ -843,22 +846,31 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd +@@ -844,22 +847,31 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd swa.border_pixel = fullscreen ? 0 : 5; swa.background_pixel = def_vis ? BlackPixel(m_dpy, vi->screen) : 0; swa.colormap = cmap; @@ -6870,7 +6903,7 @@ index 369d17d..3f52bef 100644 } // define invisible cursor -@@ -867,14 +879,14 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd +@@ -868,14 +880,14 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd static char noData[] = { 0,0,0,0,0,0,0,0 }; black.red = black.green = black.blue = 0; @@ -6888,7 +6921,7 @@ index 369d17d..3f52bef 100644 changeWindow = true; changeSize = true; -@@ -887,13 +899,17 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd +@@ -888,13 +900,17 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd if (changeSize || changeWindow) { @@ -6907,7 +6940,7 @@ index 369d17d..3f52bef 100644 { CreateIconPixmap(); XWMHints *wm_hints; -@@ -910,21 +926,22 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd +@@ -911,21 +927,22 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd wm_hints->flags = StateHint | IconPixmapHint; XSync(m_dpy,False); @@ -6933,7 +6966,7 @@ index 369d17d..3f52bef 100644 } if (fullscreen) -@@ -932,10 +949,10 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd +@@ -933,10 +950,10 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd int result = -1; while (result != GrabSuccess && result != AlreadyGrabbed) { @@ -6947,10 +6980,10 @@ index 369d17d..3f52bef 100644 CDirtyRegionList dr; diff --git a/xbmc/windowing/X11/WinSystemX11.h b/xbmc/windowing/X11/WinSystemX11.h -index 11c40f7..7a4421b 100644 +index 5a21b00..b866d52 100644 --- a/xbmc/windowing/X11/WinSystemX11.h +++ b/xbmc/windowing/X11/WinSystemX11.h -@@ -80,7 +80,7 @@ class CWinSystemX11 : public CWinSystemBase +@@ -81,7 +81,7 @@ class CWinSystemX11 : public CWinSystemBase, public ISettingCallback void OnLostDevice(); bool SetWindow(int width, int height, bool fullscreen, const CStdString &output); @@ -6963,7 +6996,7 @@ index 11c40f7..7a4421b 100644 1.8.4 -From d67f3d0f16881982828fbc7fb06305240a32669b Mon Sep 17 00:00:00 2001 +From a3732aa59ef87c1be8d9ca899918c5fd719f3fb0 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 24 Mar 2013 12:30:12 +0100 Subject: [PATCH 52/74] X11: use system key repeat rate instead of hardcoded @@ -7168,7 +7201,7 @@ index c69169c..6429291 100644 1.8.4 -From 996443e38858415347df22b22ad050e4509eb551 Mon Sep 17 00:00:00 2001 +From 0394ae3595920d73aecba45f5263c8c466634039 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 24 Mar 2013 16:04:48 +0100 Subject: [PATCH 53/74] linux: use CLOCK_MONOTONIC_RAW as this is not subject @@ -7209,7 +7242,7 @@ index c06b8c5..4390d2e 100644 1.8.4 -From 7b90348f9fe8aaa904eab7afc0d630806a56b3ec Mon Sep 17 00:00:00 2001 +From 23f70b51e16653d3beedbef416868354d1b6d025 Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 28 Mar 2013 15:18:53 +0100 Subject: [PATCH 54/74] OMXPlayer: some caching fixes for pvr @@ -7236,7 +7269,7 @@ index e9e8821..1ce961f 100644 1.8.4 -From d4f3aa4c945be549810e52eaeb1cf98cabc50f26 Mon Sep 17 00:00:00 2001 +From c6f724693f94fcfc4f4b4f628862ff7c0b450980 Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 28 Mar 2013 20:50:59 +0100 Subject: [PATCH 55/74] fix incorrect display of fps when dr kicks in @@ -7246,10 +7279,10 @@ Subject: [PATCH 55/74] fix incorrect display of fps when dr kicks in 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp -index 3dbc541..b5d40c0 100644 +index 990125b..ba14bd0 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp -@@ -2190,10 +2190,11 @@ void CApplication::Render() +@@ -2229,10 +2229,11 @@ void CApplication::Render() if (frameTime < singleFrameTime) Sleep(singleFrameTime - frameTime); } @@ -7266,7 +7299,7 @@ index 3dbc541..b5d40c0 100644 1.8.4 -From 997190a2ba3fcc5073cdbc3ffc1be290006ba9db Mon Sep 17 00:00:00 2001 +From 5160c71bd8d323ef7321850f714b2fcf9d908246 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sat, 13 Apr 2013 08:32:06 +0200 Subject: [PATCH 56/74] X11: fix mouse coverage @@ -7277,10 +7310,10 @@ Subject: [PATCH 56/74] X11: fix mouse coverage 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index 3f52bef..9467e00 100644 +index 901b440..7987cc2 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -581,10 +581,10 @@ void CWinSystemX11::NotifyAppFocusChange(bool bGaining) +@@ -582,10 +582,10 @@ void CWinSystemX11::NotifyAppFocusChange(bool bGaining) void CWinSystemX11::NotifyMouseCoverage(bool covered) { @@ -7293,7 +7326,7 @@ index 3f52bef..9467e00 100644 { int result = -1; while (result != GrabSuccess && result != AlreadyGrabbed) -@@ -593,11 +593,13 @@ void CWinSystemX11::NotifyMouseCoverage(bool covered) +@@ -594,11 +594,13 @@ void CWinSystemX11::NotifyMouseCoverage(bool covered) XbmcThreads::ThreadSleep(100); } XGrabKeyboard(m_dpy, m_mainWindow, True, GrabModeAsync, GrabModeAsync, CurrentTime); @@ -7308,7 +7341,7 @@ index 3f52bef..9467e00 100644 } } -@@ -953,7 +955,10 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd +@@ -954,7 +956,10 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd XbmcThreads::ThreadSleep(100); } XGrabKeyboard(m_dpy, m_mainWindow, True, GrabModeAsync, GrabModeAsync, CurrentTime); @@ -7320,10 +7353,10 @@ index 3f52bef..9467e00 100644 CDirtyRegionList dr; RefreshGlxContext(!m_currentOutput.Equals(output)); diff --git a/xbmc/windowing/X11/WinSystemX11.h b/xbmc/windowing/X11/WinSystemX11.h -index 7a4421b..4259394 100644 +index b866d52..3f1b5f8 100644 --- a/xbmc/windowing/X11/WinSystemX11.h +++ b/xbmc/windowing/X11/WinSystemX11.h -@@ -89,6 +89,7 @@ class CWinSystemX11 : public CWinSystemBase +@@ -90,6 +90,7 @@ class CWinSystemX11 : public CWinSystemBase, public ISettingCallback bool m_bWasFullScreenBeforeMinimize; bool m_minimized; bool m_bIgnoreNextFocusMessage; @@ -7335,7 +7368,7 @@ index 7a4421b..4259394 100644 1.8.4 -From 8be0f6b2a3608936f156eb97f32d6d7087d05322 Mon Sep 17 00:00:00 2001 +From 939687a27c745c71d7b0bb97459384f1e35ce1d3 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Wed, 8 May 2013 13:14:58 +0200 Subject: [PATCH 57/74] X11: fix incorrectly used screen num in desktop @@ -7346,10 +7379,10 @@ Subject: [PATCH 57/74] X11: fix incorrectly used screen num in desktop 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index 9467e00..18c2d8b 100644 +index 7987cc2..b13f1a5 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -266,9 +266,9 @@ void CWinSystemX11::UpdateResolutions() +@@ -267,9 +267,9 @@ void CWinSystemX11::UpdateResolutions() XMode mode = g_xrandr.GetCurrentMode(currentMonitor); m_bIsRotated = out->isRotated; if (!m_bIsRotated) @@ -7361,7 +7394,7 @@ index 9467e00..18c2d8b 100644 CDisplaySettings::Get().GetResolutionInfo(RES_DESKTOP).strId = mode.id; CDisplaySettings::Get().GetResolutionInfo(RES_DESKTOP).strOutput = currentMonitor; } -@@ -303,6 +303,7 @@ void CWinSystemX11::UpdateResolutions() +@@ -304,6 +304,7 @@ void CWinSystemX11::UpdateResolutions() CLog::Log(LOGINFO, "ID:%s Name:%s Refresh:%f Width:%d Height:%d", mode.id.c_str(), mode.name.c_str(), mode.hz, mode.w, mode.h); RESOLUTION_INFO res; @@ -7373,7 +7406,7 @@ index 9467e00..18c2d8b 100644 1.8.4 -From 99a2dabf291dbba2b3a79c9b3f2ce6e1c4612ab9 Mon Sep 17 00:00:00 2001 +From 33bb15af7f154379aa1e9c3e49d2829f73858700 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Thu, 9 May 2013 12:07:09 +0200 Subject: [PATCH 58/74] X11: do not overwrite user selected monitor with @@ -7385,10 +7418,10 @@ Subject: [PATCH 58/74] X11: do not overwrite user selected monitor with 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index 18c2d8b..26c7363 100644 +index b13f1a5..0915f20 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -170,7 +170,7 @@ bool CWinSystemX11::ResizeWindow(int newWidth, int newHeight, int newLeft, int n +@@ -171,7 +171,7 @@ bool CWinSystemX11::ResizeWindow(int newWidth, int newHeight, int newLeft, int n && m_nHeight == newHeight) return true; @@ -7397,7 +7430,7 @@ index 18c2d8b..26c7363 100644 { return false; } -@@ -178,7 +178,7 @@ bool CWinSystemX11::ResizeWindow(int newWidth, int newHeight, int newLeft, int n +@@ -179,7 +179,7 @@ bool CWinSystemX11::ResizeWindow(int newWidth, int newHeight, int newLeft, int n m_nWidth = newWidth; m_nHeight = newHeight; m_bFullScreen = false; @@ -7406,7 +7439,7 @@ index 18c2d8b..26c7363 100644 return false; } -@@ -232,13 +232,13 @@ bool CWinSystemX11::SetFullScreen(bool fullScreen, RESOLUTION_INFO& res, bool bl +@@ -233,13 +233,13 @@ bool CWinSystemX11::SetFullScreen(bool fullScreen, RESOLUTION_INFO& res, bool bl } #endif @@ -7422,7 +7455,7 @@ index 18c2d8b..26c7363 100644 return true; } -@@ -248,34 +248,32 @@ void CWinSystemX11::UpdateResolutions() +@@ -249,34 +249,32 @@ void CWinSystemX11::UpdateResolutions() CWinSystemBase::UpdateResolutions(); #if defined(HAS_XRANDR) @@ -7464,7 +7497,7 @@ index 18c2d8b..26c7363 100644 m_nScreen = DefaultScreen(m_dpy); int w = DisplayWidth(m_dpy, m_nScreen); int h = DisplayHeight(m_dpy, m_nScreen); -@@ -289,7 +287,7 @@ void CWinSystemX11::UpdateResolutions() +@@ -290,7 +288,7 @@ void CWinSystemX11::UpdateResolutions() CLog::Log(LOGINFO, "Available videomodes (xrandr):"); @@ -7473,7 +7506,7 @@ index 18c2d8b..26c7363 100644 string modename = ""; if (out != NULL) -@@ -689,9 +687,8 @@ void CWinSystemX11::NotifyXRREvent() +@@ -690,9 +688,8 @@ void CWinSystemX11::NotifyXRREvent() } m_bIsInternalXrr = false; @@ -7486,10 +7519,10 @@ index 18c2d8b..26c7363 100644 if (out) CLog::Log(LOGDEBUG, "%s - current output: %s, mode: %s, refresh: %.3f", __FUNCTION__ diff --git a/xbmc/windowing/X11/WinSystemX11.h b/xbmc/windowing/X11/WinSystemX11.h -index 4259394..c670129 100644 +index 3f1b5f8..ed70d9c 100644 --- a/xbmc/windowing/X11/WinSystemX11.h +++ b/xbmc/windowing/X11/WinSystemX11.h -@@ -95,6 +95,7 @@ class CWinSystemX11 : public CWinSystemBase +@@ -96,6 +96,7 @@ class CWinSystemX11 : public CWinSystemBase, public ISettingCallback std::vector m_resources; uint64_t m_dpyLostTime; CStdString m_currentOutput; @@ -7501,7 +7534,7 @@ index 4259394..c670129 100644 1.8.4 -From 1fef84b48e9963254f8aba4e156a321e79063a2a Mon Sep 17 00:00:00 2001 +From 9acda16b53ce55b319ef5d784117b723f6c5f1ca Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sun, 12 May 2013 10:50:30 +0200 Subject: [PATCH 59/74] xrandr: add turn on/off to wrapper @@ -7670,7 +7703,7 @@ index d37838a..059062f 100644 1.8.4 -From 99b278314c98bba54261063c5bf5b4d1b0d79660 Mon Sep 17 00:00:00 2001 +From cc23a2f530a88680f54b12d967ba5ad46785b462 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sun, 19 May 2013 12:55:35 +0200 Subject: [PATCH 60/74] xrandr: add GetPreferredMode to wrapper @@ -7730,7 +7763,7 @@ index 059062f..ab7cc63 100644 1.8.4 -From 32fbf590327692789c4c7a979038e824b5fe0fa1 Mon Sep 17 00:00:00 2001 +From 10952c266591f8f1cd87b973ede6e4dab89074bd Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sat, 11 May 2013 17:12:12 +0200 Subject: [PATCH 61/74] X11: multi-head improvement - poll for desired output @@ -7748,7 +7781,7 @@ Subject: [PATCH 61/74] X11: multi-head improvement - poll for desired output 8 files changed, 105 insertions(+), 12 deletions(-) diff --git a/language/English/strings.po b/language/English/strings.po -index c8734c1..b5dc856 100755 +index c6b2b44..0392955 100755 --- a/language/English/strings.po +++ b/language/English/strings.po @@ -6262,7 +6262,7 @@ msgctxt "#14071" @@ -7775,10 +7808,10 @@ index c8734c1..b5dc856 100755 #: xbmc/dialogs/GUIDialogFavourites.cpp msgctxt "#15015" diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index 9312642..f39ca48 100644 +index 5490bcb..56c537c 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml -@@ -1853,6 +1853,11 @@ +@@ -1871,6 +1871,11 @@ @@ -7790,7 +7823,7 @@ index 9312642..f39ca48 100644 0 0 -@@ -1904,6 +1909,7 @@ +@@ -1922,6 +1927,7 @@ @@ -7849,10 +7882,10 @@ index 6429291..91a604f 100644 bool m_xrrEventPending; }; diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index 26c7363..cc3ac9f 100644 +index 0915f20..cbb56bf 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -250,18 +250,62 @@ void CWinSystemX11::UpdateResolutions() +@@ -251,18 +251,62 @@ void CWinSystemX11::UpdateResolutions() #if defined(HAS_XRANDR) int numScreens = XScreenCount(m_dpy); g_xrandr.SetNumScreens(numScreens); @@ -7919,7 +7952,7 @@ index 26c7363..cc3ac9f 100644 m_bIsRotated = out->isRotated; if (!m_bIsRotated) UpdateDesktopResolution(CDisplaySettings::Get().GetResolutionInfo(RES_DESKTOP), 0, mode.w, mode.h, mode.hz); -@@ -380,7 +424,9 @@ bool CWinSystemX11::HasCalibration(const RESOLUTION_INFO &resInfo) +@@ -381,7 +425,9 @@ bool CWinSystemX11::HasCalibration(const RESOLUTION_INFO &resInfo) void CWinSystemX11::GetConnectedOutputs(std::vector *outputs) { vector outs; @@ -7929,7 +7962,7 @@ index 26c7363..cc3ac9f 100644 for(unsigned int i=0; ipush_back(outs[i].name); -@@ -667,14 +713,34 @@ void CWinSystemX11::CheckDisplayEvents() +@@ -668,14 +714,34 @@ void CWinSystemX11::CheckDisplayEvents() #endif } @@ -7967,7 +8000,7 @@ index 26c7363..cc3ac9f 100644 { CLog::Log(LOGERROR, "WinSystemX11::RefreshWindow - failed to query xrandr"); return; -@@ -701,7 +767,8 @@ void CWinSystemX11::NotifyXRREvent() +@@ -702,7 +768,8 @@ void CWinSystemX11::NotifyXRREvent() bool found(false); for (i = RES_DESKTOP; i < CDisplaySettings::Get().ResolutionInfoSize(); ++i) { @@ -7978,10 +8011,10 @@ index 26c7363..cc3ac9f 100644 found = true; break; diff --git a/xbmc/windowing/X11/WinSystemX11.h b/xbmc/windowing/X11/WinSystemX11.h -index c670129..776dd59 100644 +index ed70d9c..f0d22bb 100644 --- a/xbmc/windowing/X11/WinSystemX11.h +++ b/xbmc/windowing/X11/WinSystemX11.h -@@ -69,7 +69,7 @@ class CWinSystemX11 : public CWinSystemBase +@@ -70,7 +70,7 @@ class CWinSystemX11 : public CWinSystemBase, public ISettingCallback Display* GetDisplay() { return m_dpy; } GLXWindow GetWindow() { return m_glWindow; } GLXContext GetGlxContext() { return m_glContext; } @@ -8014,7 +8047,7 @@ index 4809821..1ad26b2 100644 1.8.4 -From 480dada6d9c2ac28a7692e5f831ac5bbb2eb0aee Mon Sep 17 00:00:00 2001 +From 720cdc2542185e040a5d21b40da0a5554d6c4a08 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Wed, 15 May 2013 09:14:34 +0200 Subject: [PATCH 62/74] X11: ignore mouse move event form other windows @@ -8049,7 +8082,7 @@ index 908c8b6..938ad26 100644 1.8.4 -From 7f5c686ab86574fcb3d51f268f411166a396b951 Mon Sep 17 00:00:00 2001 +From 9ca9482f4017bbb8a8538b520f67471171411708 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Tue, 11 Jun 2013 16:20:29 +0200 Subject: [PATCH 63/74] renderer: allow some lateness within vblank interval @@ -8112,7 +8145,7 @@ index befd851..27283ec 100644 1.8.4 -From 738538bbf0c89f513410365ca8c6fa2cd3aa1bfd Mon Sep 17 00:00:00 2001 +From a5bac0013a56095dd1b02ac74a2925fd4958d836 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 16 Jun 2013 13:22:58 +0200 Subject: [PATCH 64/74] X11: another fix for mouse coverage @@ -8148,7 +8181,7 @@ index 938ad26..e4ca56d 100644 1.8.4 -From a64bd9e7901dd24b04303777636076a9c5ba1837 Mon Sep 17 00:00:00 2001 +From 4b7d6e1772a46700b2f47124bf91711041194c45 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Fri, 5 Jul 2013 12:14:00 +0200 Subject: [PATCH 65/74] X11: set windows class name @@ -8158,10 +8191,10 @@ Subject: [PATCH 65/74] X11: set windows class name 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index cc3ac9f..46cbd34 100644 +index cbb56bf..e74f2b0 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -980,8 +980,10 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd +@@ -981,8 +981,10 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd { CreateIconPixmap(); XWMHints *wm_hints; @@ -8172,7 +8205,7 @@ index cc3ac9f..46cbd34 100644 char *title = (char*)titleString.c_str(); XStringListToTextProperty(&title, 1, &windowName); -@@ -992,10 +994,15 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd +@@ -993,10 +995,15 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd wm_hints->icon_pixmap = m_icon; wm_hints->flags = StateHint | IconPixmapHint; @@ -8193,7 +8226,7 @@ index cc3ac9f..46cbd34 100644 1.8.4 -From 576b2053f1ddcd664f6b825eeeb1df7800256c0c Mon Sep 17 00:00:00 2001 +From 12adccd810416e60845ce6870d40eb156084b8ec Mon Sep 17 00:00:00 2001 From: spiff Date: Tue, 16 Jul 2013 14:34:04 +0200 Subject: [PATCH 66/74] fixed: typo @@ -8203,7 +8236,7 @@ Subject: [PATCH 66/74] fixed: typo 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/language/English/strings.po b/language/English/strings.po -index b5dc856..4c8ceac 100755 +index 0392955..f31ccc6 100755 --- a/language/English/strings.po +++ b/language/English/strings.po @@ -6396,7 +6396,7 @@ msgstr "" @@ -8219,7 +8252,7 @@ index b5dc856..4c8ceac 100755 1.8.4 -From 582ef196a465e87fe1e144d62c02cc11d0632770 Mon Sep 17 00:00:00 2001 +From e410933ff678171b8e8f6117cc93619ba9192652 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Thu, 25 Jul 2013 17:18:13 +0200 Subject: [PATCH 67/74] ActiveAE: slightly reduce buffer size @@ -8247,7 +8280,7 @@ index 6fbed5c..4cae9e8 100644 1.8.4 -From 9d20c5eaabaf99ad0aa1c19e702ee6dab6b0d26e Mon Sep 17 00:00:00 2001 +From 5d3352fe52ef17b313ba37118df7796c2e679fe4 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sun, 4 Aug 2013 10:11:16 +0200 Subject: [PATCH 68/74] Revert "vdpau: comment some features that will be added @@ -8306,7 +8339,7 @@ index 7ee2ed9..7201c21 100644 1.8.4 -From c1e0f8ba582d72f67a97b1f40353f3d297652177 Mon Sep 17 00:00:00 2001 +From 8983a0f6452dffba0be4c24deb84ddb73aa27d11 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Fri, 9 Aug 2013 18:01:40 +0200 Subject: [PATCH 69/74] X11: fix keysyms @@ -8332,7 +8365,7 @@ index e4ca56d..b20130c 100644 1.8.4 -From efb43ba3ecfb56df1b8f8bf7f50be00c237bcbfd Mon Sep 17 00:00:00 2001 +From 880aa5df1f3e0865785b5ed81076d8553dd58fc6 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Fri, 9 Aug 2013 18:42:36 +0200 Subject: [PATCH 70/74] X11: fix keysym for non-IM @@ -8358,7 +8391,7 @@ index b20130c..a38890c 100644 1.8.4 -From 9d6744614857210aabfc09e54861ace36f398377 Mon Sep 17 00:00:00 2001 +From 973f2a0de0ad85bd67e7f0b3af3992775b795a5d Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sat, 10 Aug 2013 11:18:16 +0200 Subject: [PATCH 71/74] add some missing multi media keys @@ -8416,58 +8449,20 @@ index ee6bb69..364b45a 100644 1.8.4 -From 87e1ce994357837606a33794d40980c8e72167bf Mon Sep 17 00:00:00 2001 -From: Rainer Hochecker -Date: Sat, 10 Aug 2013 15:32:06 +0200 -Subject: [PATCH 72/74] CWinSystemBase: keep RES_DESKTOP untouched at pos 0, - fixes toggle fullscreen - ---- - xbmc/windowing/WinSystem.cpp | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/xbmc/windowing/WinSystem.cpp b/xbmc/windowing/WinSystem.cpp -index bad5c95..b789134 100644 ---- a/xbmc/windowing/WinSystem.cpp -+++ b/xbmc/windowing/WinSystem.cpp -@@ -136,7 +136,8 @@ static void AddResolution(vector &resolutions, unsigned int addi - // check if the refresh rate of this resolution is better suited than - // the refresh rate of the resolution with the same width/height/interlaced - // property and if so replace it -- if (bestRefreshrate > 0.0 && refreshrate == bestRefreshrate) -+ // don't touch RES_DESKTOP -+ if (idx != 0 && bestRefreshrate > 0.0 && refreshrate == bestRefreshrate) - resolutions[idx].ResInfo_Index = addindex; - - // no need to add the resolution again -@@ -168,7 +169,8 @@ static bool resSortPredicate(RESOLUTION_WHR i, RESOLUTION_WHR j) - } - - // Can't assume a sort order -- sort(resolutions.begin(), resolutions.end(), resSortPredicate); -+ // don't touch RES_DESKTOP which is index 0 -+ sort(resolutions.begin()+1, resolutions.end(), resSortPredicate); - - return resolutions; - } --- -1.8.4 - - -From 53a94eb3b8011d2c01ef935882d8c5221861683a Mon Sep 17 00:00:00 2001 +From 7c5f2880006d6ea40d37052f065a9a2e8f121bbc Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sat, 10 Aug 2013 15:53:45 +0200 -Subject: [PATCH 73/74] X11: squash multi +Subject: [PATCH 72/74] X11: squash multi --- xbmc/windowing/X11/WinSystemX11.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index 46cbd34..a557978 100644 +index e74f2b0..480efb3 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -435,7 +435,7 @@ void CWinSystemX11::GetConnectedOutputs(std::vector *outputs) +@@ -436,7 +436,7 @@ void CWinSystemX11::GetConnectedOutputs(std::vector *outputs) bool CWinSystemX11::IsCurrentOutput(CStdString output) { @@ -8480,20 +8475,20 @@ index 46cbd34..a557978 100644 1.8.4 -From 9e6cd5d31180c4fefdec0427ee2044900a3f845b Mon Sep 17 00:00:00 2001 +From eb5f2e6532e6a96a754669e74d765af335e1581b Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Tue, 3 Sep 2013 20:46:17 +0200 -Subject: [PATCH 74/74] X11: do not poll default monitor +Subject: [PATCH 73/74] X11: do not poll default monitor --- xbmc/windowing/X11/WinSystemX11.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp -index a557978..87e820e 100644 +index 480efb3..dd04357 100644 --- a/xbmc/windowing/X11/WinSystemX11.cpp +++ b/xbmc/windowing/X11/WinSystemX11.cpp -@@ -720,7 +720,7 @@ void CWinSystemX11::NotifyXRREvent(bool poll) +@@ -721,7 +721,7 @@ void CWinSystemX11::NotifyXRREvent(bool poll) if (poll) { CStdString output = CSettings::Get().GetString("videoscreen.monitor"); @@ -8505,3 +8500,64 @@ index a557978..87e820e 100644 -- 1.8.4 + +From cad2b2126ed88fdd1b64c9c36c1074067a5ace9e Mon Sep 17 00:00:00 2001 +From: Rainer Hochecker +Date: Fri, 11 Oct 2013 09:01:57 +0200 +Subject: [PATCH 74/74] vdpau: check for GL_NV_vdpau_interop in open + +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 23 ++++++++++------------- + 1 file changed, 10 insertions(+), 13 deletions(-) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +index 7201c21..1ac0978 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +@@ -485,6 +485,16 @@ int CVideoSurfaces::Size() + + bool CDecoder::Open(AVCodecContext* avctx, const enum PixelFormat, unsigned int surfaces) + { ++#ifndef GL_NV_vdpau_interop ++ CLog::Log(LOGNOTICE, "VDPAU: compilation without required extension GL_NV_vdpau_interop"); ++ return false; ++#endif ++ if (!g_Windowing.IsExtSupported("GL_NV_vdpau_interop")) ++ { ++ CLog::Log(LOGNOTICE, "VDPAU: required extension GL_NV_vdpau_interop not found"); ++ return false; ++ } ++ + if(avctx->coded_width == 0 + || avctx->coded_height == 0) + { +@@ -3351,8 +3361,6 @@ bool COutput::GLInit() + #endif + + #ifdef GL_NV_vdpau_interop +- if (glewIsSupported("GL_NV_vdpau_interop")) +- { + if (!glVDPAUInitNV) + glVDPAUInitNV = (PFNGLVDPAUINITNVPROC)glXGetProcAddress((GLubyte *) "glVDPAUInitNV"); + if (!glVDPAUFiniNV) +@@ -3374,17 +3382,6 @@ bool COutput::GLInit() + if (!glVDPAUGetSurfaceivNV) + glVDPAUGetSurfaceivNV = (PFNGLVDPAUGETSURFACEIVNVPROC)glXGetProcAddress((GLubyte *) "glVDPAUGetSurfaceivNV"); + +- CLog::Log(LOGNOTICE, "VDPAU::COutput GL interop supported"); +- } +- else +-#endif +- { +- // TODO should be detected before vdpau is opened, though very unlikely +- // that this code is hit +- CLog::Log(LOGERROR, "VDPAU::COutput driver does not support GL_NV_vdpau_interop"); +- } +- +-#ifdef GL_NV_vdpau_interop + while (glGetError() != GL_NO_ERROR); + glVDPAUInitNV(reinterpret_cast(m_config.context->GetDevice()), reinterpret_cast(m_config.context->GetProcs().vdp_get_proc_address)); + if (glGetError() != GL_NO_ERROR) +-- +1.8.4 + diff --git a/packages/mediacenter/xbmc/patches/13.alpha-3723806/xbmc-995.10-disable-minimize.patch b/packages/mediacenter/xbmc/patches/13.alpha-923f1c8/xbmc-995.10-disable-minimize.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/13.alpha-3723806/xbmc-995.10-disable-minimize.patch rename to packages/mediacenter/xbmc/patches/13.alpha-923f1c8/xbmc-995.10-disable-minimize.patch diff --git a/packages/mediacenter/xbmc/patches/13.alpha-3723806/xbmc-AML-XB9295c3f-04-fixed-context-menu-remove-safely-selection.patch b/packages/mediacenter/xbmc/patches/13.alpha-923f1c8/xbmc-AML-XB9295c3f-04-fixed-context-menu-remove-safely-selection.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/13.alpha-3723806/xbmc-AML-XB9295c3f-04-fixed-context-menu-remove-safely-selection.patch rename to packages/mediacenter/xbmc/patches/13.alpha-923f1c8/xbmc-AML-XB9295c3f-04-fixed-context-menu-remove-safely-selection.patch diff --git a/packages/mediacenter/xbmc/patches/13.alpha-3723806/xbmc-AML-XB9295c3f-05-use-udevil-to-umount.-escape-mountpath.patch b/packages/mediacenter/xbmc/patches/13.alpha-923f1c8/xbmc-AML-XB9295c3f-05-use-udevil-to-umount.-escape-mountpath.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/13.alpha-3723806/xbmc-AML-XB9295c3f-05-use-udevil-to-umount.-escape-mountpath.patch rename to packages/mediacenter/xbmc/patches/13.alpha-923f1c8/xbmc-AML-XB9295c3f-05-use-udevil-to-umount.-escape-mountpath.patch