#pragma once #include #include #include #include #include "platform.hpp" #include "decklink-device-discovery.hpp" #include "decklink-device-instance.hpp" #include "decklink-device-mode.hpp" class DecklinkBase { protected: DecklinkBase(DeckLinkDeviceDiscovery *discovery_); ComPtr instance; DeckLinkDeviceDiscovery *discovery; std::recursive_mutex deviceMutex; volatile long activateRefs = 0; BMDPixelFormat pixelFormat = bmdFormat8BitYUV; video_colorspace colorSpace = VIDEO_CS_DEFAULT; video_range_type colorRange = VIDEO_RANGE_DEFAULT; speaker_layout channelFormat = SPEAKERS_STEREO; public: virtual bool Activate(DeckLinkDevice *device, long long modeId); virtual void Deactivate(); DeckLinkDevice *GetDevice() const; };