1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- #include "decklink-device-mode.hpp"
- DeckLinkDeviceMode::DeckLinkDeviceMode(IDeckLinkDisplayMode *mode, long long id)
- : id(id), mode(mode)
- {
- if (mode == nullptr)
- return;
- decklink_string_t decklinkStringName;
- if (mode->GetName(&decklinkStringName) == S_OK)
- DeckLinkStringToStdString(decklinkStringName, name);
- }
- DeckLinkDeviceMode::DeckLinkDeviceMode(const std::string &name, long long id)
- : id(id), mode(nullptr), name(name)
- {
- }
- DeckLinkDeviceMode::~DeckLinkDeviceMode(void) {}
- BMDDisplayMode DeckLinkDeviceMode::GetDisplayMode(void) const
- {
- if (mode != nullptr)
- return mode->GetDisplayMode();
- return bmdModeUnknown;
- }
- int DeckLinkDeviceMode::GetWidth()
- {
- if (mode != nullptr)
- return mode->GetWidth();
- return 0;
- }
- int DeckLinkDeviceMode::GetHeight()
- {
- if (mode != nullptr)
- return mode->GetHeight();
- return 0;
- }
- bool DeckLinkDeviceMode::GetFrameRate(BMDTimeValue *frameDuration,
- BMDTimeScale *timeScale)
- {
- if (mode != nullptr)
- return SUCCEEDED(mode->GetFrameRate(frameDuration, timeScale));
- return false;
- }
- BMDDisplayModeFlags DeckLinkDeviceMode::GetDisplayModeFlags(void) const
- {
- if (mode != nullptr)
- return mode->GetFlags();
- return (BMDDisplayModeFlags)0;
- }
- long long DeckLinkDeviceMode::GetId(void) const
- {
- return id;
- }
- const std::string &DeckLinkDeviceMode::GetName(void) const
- {
- return name;
- }
- bool DeckLinkDeviceMode::IsEqualFrameRate(int64_t num, int64_t den)
- {
- bool equal = false;
- if (mode) {
- BMDTimeValue frameDuration;
- BMDTimeScale timeScale;
- if (SUCCEEDED(mode->GetFrameRate(&frameDuration, &timeScale)))
- equal = timeScale * den == frameDuration * num;
- }
- return equal;
- }
- void DeckLinkDeviceMode::SetMode(IDeckLinkDisplayMode *mode_)
- {
- mode = mode_;
- }
|