X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=nageru%2Fdecklink_util.cpp;h=c2ebd575b073cb1743d6a2cc3c1ea418c415d126;hb=8bf76def09e0747734c33a21a8f94b3f462305c7;hp=33a7933a033e26c08d91d59e1f4919a0717d55b6;hpb=9ffd4f03f314cc6e0254449593def95c9bc203d6;p=nageru diff --git a/nageru/decklink_util.cpp b/nageru/decklink_util.cpp index 33a7933..c2ebd57 100644 --- a/nageru/decklink_util.cpp +++ b/nageru/decklink_util.cpp @@ -90,3 +90,22 @@ BMDVideoConnection pick_default_video_connection(IDeckLink *card, BMDDeckLinkAtt return connection_mask & (-connection_mask); } } + +bool decklink_card_is_active(IDeckLink *card, unsigned card_index) +{ + IDeckLinkStatus *status; + if (card->QueryInterface(IID_IDeckLinkStatus, (void**)&status) != S_OK) { + fprintf(stderr, "Card %u has no status interface\n", card_index); + abort(); + } + + int64_t duplex_mode; + if (status->GetInt(bmdDeckLinkStatusDuplexMode, &duplex_mode) != S_OK) { + fprintf(stderr, "Could not query duplex mode for card %u\n", card_index); + abort(); + } + + status->Release(); + + return (duplex_mode != bmdDuplexStatusInactive); +}