aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Horizon/Sdk/Settings/System/TvSettings.cs
blob: 5ee0b85d9fa1e48a9c6a10708919e663223741ba (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
using System;
using System.Runtime.InteropServices;

namespace Ryujinx.Horizon.Sdk.Settings.System
{
    [Flags]
    enum TvFlag : uint
    {
        Allows4k = 1 << 0,
        Allows3d = 1 << 1,
        AllowsCec = 1 << 2,
        PreventsScreenBurnIn = 1 << 3,
    }

    enum TvResolution : uint
    {
        Auto,
        At1080p,
        At720p,
        At480p,
    }

    enum HdmiContentType : uint
    {
        None,
        Graphics,
        Cinema,
        Photo,
        Game,
    }

    enum RgbRange : uint
    {
        Auto,
        Full,
        Limited,
    }

    enum CmuMode : uint
    {
        None,
        ColorInvert,
        HighContrast,
        GrayScale,
    }

    [StructLayout(LayoutKind.Sequential, Size = 0x20, Pack = 0x4)]
    struct TvSettings
    {
        public TvFlag Flags;
        public TvResolution TvResolution;
        public HdmiContentType HdmiContentType;
        public RgbRange RgbRange;
        public CmuMode CmuMode;
        public float TvUnderscan;
        public float TvGamma;
        public float ContrastRatio;
    }
}