summaryrefslogtreecommitdiff
path: root/avstream/avscamera/sys/ExtendedMaxVideoFpsForPhotoRes.h
blob: 29013c82b893482858a1c63241f27d4cae245baa (plain)
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/**************************************************************************

    A/V Stream Camera Sample

    Copyright (c) 2014, Microsoft Corporation.

    File:

        ExtendedMaxVideoFpsForPhotoRes.h

    Abstract:

        This file contains the helper class CExtendedMaxVideoFpsForPhotoRes.
        The class is provides initialization and accessor functions for
        KSCAMERA_MAXVIDEOFPS_FORPHOTORES. 

    History:

        created 11/26/2014

**************************************************************************/

//
//  Helper class for Extended Max Video Fps for Photo Resolution.
//
class CExtendedMaxVideoFpsForPhotoRes
    : public CExtendedHeader
{
public:
    KSCAMERA_MAXVIDEOFPS_FORPHOTORES m_Params;

public:
    //  Standardized ctors to help ensure a consistant definition.
    CExtendedMaxVideoFpsForPhotoRes( ULONGLONG flags=0, ULONG result=STATUS_SUCCESS )
        : CExtendedHeader( flags, result )
    {
        Size = sizeof(*this);
        RtlZeroMemory( &m_Params, sizeof(m_Params) );
    }

    CExtendedMaxVideoFpsForPhotoRes( KSCAMERA_EXTENDEDPROP_HEADER &hdr )
        : CExtendedHeader(hdr)
    {
        Size = sizeof(*this);
        RtlZeroMemory( &m_Params, sizeof(m_Params) );
    }

    //  Access functions let you more easily fetch the embedded field.
    ULONG &
    PhotoResWidth()
    {
        return m_Params.PhotoResWidth;
    }

    ULONG &
    PhotoResHeight()
    {
        return m_Params.PhotoResHeight;
    }

    ULONG &
    PreviewFPSNum()
    {
        return m_Params.PreviewFPSNum;
    }

    ULONG &
    PreviewFPSDenom()
    {
        return m_Params.PreviewFPSDenom;
    }

    ULONG &
    CaptureFPSNum()
    {
        return m_Params.CaptureFPSNum;
    }

    ULONG &
    CaptureFPSDenom()
    {
        return m_Params.CaptureFPSDenom;
    }

    bool isValid()
    {
        return CExtendedHeader::isValid() &&
               (Size    >= sizeof(*this)) ;
    }
};