-
Notifications
You must be signed in to change notification settings - Fork 10
/
DeviceProber.h
53 lines (39 loc) · 1.31 KB
/
DeviceProber.h
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
#ifndef __DeviceProber__
#define __DeviceProber__
#include <string>
#include <memory>
#include "DeckLinkAPI.h"
#include "CaptureDelegate.h"
#include "util.h"
#include "RefReleaser.hpp"
class DeviceProber
{
public:
DeviceProber(IDeckLink* deckLink);
virtual ~DeviceProber();
virtual std::string GetDeviceName();
virtual bool CanAutodetect() { return m_canAutodetect; }
virtual bool CanInput() { return m_canInput; }
virtual bool IsSubDevice() { return m_isSubDevice; }
// proxy to CaptureDelegate
virtual bool GetSignalDetected();
virtual std::string GetDetectedMode();
virtual BMDPixelFormat GetPixelFormat();
virtual BMDVideoConnection GetActiveConnection();
virtual void SelectNextConnection();
virtual IDeckLinkVideoInputFrame* GetLastFrame();
private:
bool queryCanAutodetect();
bool queryCanInput();
private:
IDeckLink* m_deckLink;
RefReleaser<IDeckLink> m_deckLinkReleaser;
IDeckLinkInput* m_deckLinkInput;
RefReleaser<IDeckLinkInput> m_deckLinkInputReleaser;
CaptureDelegate* m_captureDelegate;
RefReleaser<CaptureDelegate> m_captureDelegateReleaser;
bool m_canAutodetect;
bool m_canInput;
bool m_isSubDevice;
};
#endif