41 lines
999 B
C++
41 lines
999 B
C++
|
#pragma once
|
||
|
|
||
|
#include "decklink.hpp"
|
||
|
#include "decklink-device-mode.hpp"
|
||
|
|
||
|
#include <map>
|
||
|
#include <string>
|
||
|
#include <vector>
|
||
|
|
||
|
class DeckLinkDevice {
|
||
|
ComPtr<IDeckLink> device;
|
||
|
std::map<long long, DeckLinkDeviceMode *> modeIdMap;
|
||
|
std::vector<DeckLinkDeviceMode *> modes;
|
||
|
std::string name;
|
||
|
std::string displayName;
|
||
|
std::string hash;
|
||
|
volatile long refCount = 1;
|
||
|
|
||
|
public:
|
||
|
DeckLinkDevice(IDeckLink *device);
|
||
|
~DeckLinkDevice(void);
|
||
|
|
||
|
ULONG AddRef(void);
|
||
|
ULONG Release(void);
|
||
|
|
||
|
bool Init();
|
||
|
|
||
|
DeckLinkDeviceMode *FindMode(long long id);
|
||
|
const std::string& GetDisplayName(void);
|
||
|
const std::string& GetHash(void) const;
|
||
|
const std::vector<DeckLinkDeviceMode *>& GetModes(void) const;
|
||
|
const std::string& GetName(void) const;
|
||
|
|
||
|
bool GetInput(IDeckLinkInput **input);
|
||
|
|
||
|
inline bool IsDevice(IDeckLink *device_)
|
||
|
{
|
||
|
return device_ == device;
|
||
|
}
|
||
|
};
|