1 /*
2  *  Copyright (C) 2017-2018 Team Kodi
3  *  This file is part of Kodi - https://kodi.tv
4  *
5  *  SPDX-License-Identifier: GPL-2.0-or-later
6  *  See LICENSES/README.md for more information.
7  */
8 
9 #include "GUIRenderSettings.h"
10 
11 #include "GUIGameControl.h"
12 #include "threads/SingleLock.h"
13 
14 using namespace KODI;
15 using namespace RETRO;
16 
CGUIRenderSettings(CGUIGameControl & guiControl)17 CGUIRenderSettings::CGUIRenderSettings(CGUIGameControl& guiControl) : m_guiControl(guiControl)
18 {
19 }
20 
HasVideoFilter() const21 bool CGUIRenderSettings::HasVideoFilter() const
22 {
23   return m_guiControl.HasVideoFilter();
24 }
25 
HasStretchMode() const26 bool CGUIRenderSettings::HasStretchMode() const
27 {
28   return m_guiControl.HasStretchMode();
29 }
30 
HasRotation() const31 bool CGUIRenderSettings::HasRotation() const
32 {
33   return m_guiControl.HasRotation();
34 }
35 
GetSettings() const36 CRenderSettings CGUIRenderSettings::GetSettings() const
37 {
38   CSingleLock lock(m_mutex);
39 
40   return m_renderSettings;
41 }
42 
GetDimensions() const43 CRect CGUIRenderSettings::GetDimensions() const
44 {
45   CSingleLock lock(m_mutex);
46 
47   return m_renderDimensions;
48 }
49 
Reset()50 void CGUIRenderSettings::Reset()
51 {
52   CSingleLock lock(m_mutex);
53 
54   return m_renderSettings.Reset();
55 }
56 
SetSettings(CRenderSettings settings)57 void CGUIRenderSettings::SetSettings(CRenderSettings settings)
58 {
59   CSingleLock lock(m_mutex);
60 
61   m_renderSettings = settings;
62 }
63 
SetDimensions(const CRect & dimensions)64 void CGUIRenderSettings::SetDimensions(const CRect& dimensions)
65 {
66   CSingleLock lock(m_mutex);
67 
68   m_renderDimensions = dimensions;
69 }
70 
SetVideoFilter(const std::string & videoFilter)71 void CGUIRenderSettings::SetVideoFilter(const std::string& videoFilter)
72 {
73   CSingleLock lock(m_mutex);
74 
75   m_renderSettings.VideoSettings().SetVideoFilter(videoFilter);
76 }
77 
SetStretchMode(STRETCHMODE stretchMode)78 void CGUIRenderSettings::SetStretchMode(STRETCHMODE stretchMode)
79 {
80   CSingleLock lock(m_mutex);
81 
82   m_renderSettings.VideoSettings().SetRenderStretchMode(stretchMode);
83 }
84 
SetRotationDegCCW(unsigned int rotationDegCCW)85 void CGUIRenderSettings::SetRotationDegCCW(unsigned int rotationDegCCW)
86 {
87   CSingleLock lock(m_mutex);
88 
89   m_renderSettings.VideoSettings().SetRenderRotation(rotationDegCCW);
90 }
91