Merge pull request #2459 from FernetMenta/hasav
[vuplus_xbmc] / xbmc / settings / VideoSettings.h
1 /*
2  *      Copyright (C) 2005-2013 Team XBMC
3  *      http://www.xbmc.org
4  *
5  *  This Program is free software; you can redistribute it and/or modify
6  *  it under the terms of the GNU General Public License as published by
7  *  the Free Software Foundation; either version 2, or (at your option)
8  *  any later version.
9  *
10  *  This Program is distributed in the hope that it will be useful,
11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  *  GNU General Public License for more details.
14  *
15  *  You should have received a copy of the GNU General Public License
16  *  along with XBMC; see the file COPYING.  If not, see
17  *  <http://www.gnu.org/licenses/>.
18  *
19  */
20 // VideoSettings.h: interface for the CVideoSettings class.
21 //
22 //////////////////////////////////////////////////////////////////////
23
24 #if !defined(AFX_VIDEOSETTINGS_H__562A722A_CD2A_4B4A_8A67_32DE8088A7D3__INCLUDED_)
25 #define AFX_VIDEOSETTINGS_H__562A722A_CD2A_4B4A_8A67_32DE8088A7D3__INCLUDED_
26
27 #if _MSC_VER > 1000
28 #pragma once
29 #endif // _MSC_VER > 1000
30
31 enum EDEINTERLACEMODE
32 {
33   VS_DEINTERLACEMODE_OFF=0,
34   VS_DEINTERLACEMODE_AUTO=1,
35   VS_DEINTERLACEMODE_FORCE=2
36 };
37
38 enum EINTERLACEMETHOD
39 {
40   VS_INTERLACEMETHOD_NONE=0, // Legacy
41   VS_INTERLACEMETHOD_AUTO=1,
42   VS_INTERLACEMETHOD_RENDER_BLEND=2,
43
44   VS_INTERLACEMETHOD_RENDER_WEAVE_INVERTED=3,
45   VS_INTERLACEMETHOD_RENDER_WEAVE=4,
46   
47   VS_INTERLACEMETHOD_RENDER_BOB_INVERTED=5,
48   VS_INTERLACEMETHOD_RENDER_BOB=6,
49
50   VS_INTERLACEMETHOD_DEINTERLACE=7,
51
52   VS_INTERLACEMETHOD_VDPAU_BOB=8,
53   VS_INTERLACEMETHOD_INVERSE_TELECINE=9,
54
55   VS_INTERLACEMETHOD_VDPAU_INVERSE_TELECINE=11,
56   VS_INTERLACEMETHOD_VDPAU_TEMPORAL=12,
57   VS_INTERLACEMETHOD_VDPAU_TEMPORAL_HALF=13,
58   VS_INTERLACEMETHOD_VDPAU_TEMPORAL_SPATIAL=14,
59   VS_INTERLACEMETHOD_VDPAU_TEMPORAL_SPATIAL_HALF=15,
60   VS_INTERLACEMETHOD_DEINTERLACE_HALF=16,
61   VS_INTERLACEMETHOD_DXVA_BOB = 17,
62   VS_INTERLACEMETHOD_DXVA_BEST = 18,
63   // VS_INTERLACEMETHOD_DXVA_ANY = 19, Legacy
64
65   VS_INTERLACEMETHOD_SW_BLEND = 20,
66   VS_INTERLACEMETHOD_AUTO_ION = 21,
67
68   VS_INTERLACEMETHOD_MAX // do not use and keep as last enum value.
69 };
70
71 enum ESCALINGMETHOD
72 {
73   VS_SCALINGMETHOD_NEAREST=0,
74   VS_SCALINGMETHOD_LINEAR,
75
76   VS_SCALINGMETHOD_CUBIC,
77   VS_SCALINGMETHOD_LANCZOS2,
78   VS_SCALINGMETHOD_LANCZOS3_FAST,
79   VS_SCALINGMETHOD_LANCZOS3,
80   VS_SCALINGMETHOD_SINC8,
81   VS_SCALINGMETHOD_NEDI,
82   
83   VS_SCALINGMETHOD_BICUBIC_SOFTWARE,
84   VS_SCALINGMETHOD_LANCZOS_SOFTWARE,
85   VS_SCALINGMETHOD_SINC_SOFTWARE,
86   VS_SCALINGMETHOD_VDPAU_HARDWARE,
87   VS_SCALINGMETHOD_DXVA_HARDWARE,
88
89   VS_SCALINGMETHOD_AUTO,
90
91   VS_SCALINGMETHOD_SPLINE36_FAST,
92   VS_SCALINGMETHOD_SPLINE36,
93
94   VS_SCALINGMETHOD_MAX // do not use and keep as last enum value.
95 };
96
97 typedef enum {
98   ViewModeNormal      = 0,
99   ViewModeZoom,
100   ViewModeStretch4x3,
101   ViewModeWideZoom,
102   ViewModeStretch16x9,
103   ViewModeOriginal,
104   ViewModeCustom
105 } ViewMode;
106
107 class CVideoSettings
108 {
109 public:
110   CVideoSettings();
111   ~CVideoSettings() {};
112
113   bool operator!=(const CVideoSettings &right) const;
114
115   EDEINTERLACEMODE m_DeinterlaceMode;
116   EINTERLACEMETHOD m_InterlaceMethod;
117   ESCALINGMETHOD   m_ScalingMethod;
118   int m_ViewMode;   // current view mode
119   float m_CustomZoomAmount; // custom setting zoom amount
120   float m_CustomPixelRatio; // custom setting pixel ratio
121   float m_CustomVerticalShift; // custom setting vertical shift
122   bool  m_CustomNonLinStretch;
123   int m_AudioStream;
124   float m_VolumeAmplification;
125   bool m_OutputToAllSpeakers;
126   int m_SubtitleStream;
127   float m_SubtitleDelay;
128   bool m_SubtitleOn;
129   bool m_SubtitleCached;
130   float m_Brightness;
131   float m_Contrast;
132   float m_Gamma;
133   float m_NoiseReduction;
134   bool m_PostProcess;
135   float m_Sharpness;
136   float m_AudioDelay;
137   int m_ResumeTime;
138   bool m_Crop;
139   int m_CropTop;
140   int m_CropBottom;
141   int m_CropLeft;
142   int m_CropRight;
143
144 private:
145 };
146
147 #endif // !defined(AFX_VIDEOSETTINGS_H__562A722A_CD2A_4B4A_8A67_32DE8088A7D3__INCLUDED_)