platform.cpp 912 B

1234567891011121314151617181920212223242526272829303132333435
  1. #include "../platform.hpp"
  2. #include <util/platform.h>
  3. IDeckLinkDiscovery *CreateDeckLinkDiscoveryInstance(void)
  4. {
  5. IDeckLinkDiscovery *instance;
  6. const HRESULT result =
  7. CoCreateInstance(CLSID_CDeckLinkDiscovery, nullptr, CLSCTX_ALL,
  8. IID_IDeckLinkDiscovery, (void **)&instance);
  9. return result == S_OK ? instance : nullptr;
  10. }
  11. IDeckLinkIterator *CreateDeckLinkIteratorInstance(void)
  12. {
  13. IDeckLinkIterator *iterator;
  14. const HRESULT result =
  15. CoCreateInstance(CLSID_CDeckLinkIterator, nullptr, CLSCTX_ALL,
  16. IID_IDeckLinkIterator, (void **)&iterator);
  17. return result == S_OK ? iterator : nullptr;
  18. }
  19. bool DeckLinkStringToStdString(decklink_string_t input, std::string &output)
  20. {
  21. if (input == nullptr)
  22. return false;
  23. size_t len = wcslen(input);
  24. size_t utf8_len = os_wcs_to_utf8(input, len, nullptr, 0);
  25. output.resize(utf8_len);
  26. os_wcs_to_utf8(input, len, &output[0], utf8_len);
  27. return true;
  28. }