#pragma once #include "decklink.hpp" #include "decklink-device-mode.hpp" #include #include #include class DeckLinkDevice { ComPtr device; std::map modeIdMap; std::vector modes; std::string name; std::string displayName; std::string hash; int32_t maxChannel; 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& GetModes(void) const; const std::string& GetName(void) const; const int32_t GetMaxChannel(void) const; bool GetInput(IDeckLinkInput **input); inline bool IsDevice(IDeckLink *device_) { return device_ == device; } };