summaryrefslogtreecommitdiff
path: root/avstream/avscamera/sys/AvsCameraDevice.h
blob: ec98e8928df9d39001bfb889796031027afd14ff (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
/**************************************************************************

    A/V Stream Camera Sample

    Copyright (c) 2015, Microsoft Corporation.

    File:

        AvsCameraDevice.h

    Abstract:

        Device class implementation.  Derived from CCaptureDevice.
        This class overloads our base device class implementation.

    History:

        created 02/24/2015

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

#pragma once

class CAvsCameraDevice : public CCaptureDevice
{
public:
    //
    // DispatchCreate():
    //
    // This is the Add Device dispatch for the capture device.  It creates
    // the CCaptureDevice and associates it with the device via the bag.
    //
    static
    NTSTATUS
    DispatchCreate (
        _In_ PKSDEVICE Device
    );

public:
    //
    // CCaptureDevice():
    //
    // The capture device class constructor.  Since everything should have
    // been zero'ed by the new operator, don't bother setting anything to
    // zero or NULL.  Only initialize non-NULL, non-0 fields.
    //
    CAvsCameraDevice(
        _In_ PKSDEVICE Device
    )
        : CCaptureDevice( Device )
    {}

    virtual
    NTSTATUS
    Initialize();

protected:
    virtual
    CSensor *
    CreateSensor(
        _In_    const KSFILTER_DESCRIPTOR  *Descriptors
    );

};

// {B27E3887-AD10-4A4E-BFB8-D6765ADD0E38}
#define STATIC_FrontCamera_Filter \
    0xb27e3887, 0xad10, 0x4a4e, 0xbf, 0xb8, 0xd6, 0x76, 0x5a, 0xdd, 0xe, 0x38

// {4EE16166-F358-4F10-8889-93107806B7A7}
#define STATIC_RearCamera_Filter \
    0x4ee16166, 0xf358, 0x4f10, 0x88, 0x89, 0x93, 0x10, 0x78, 0x6, 0xb7, 0xa7