VideoConsumerPtr DecklinkVideoConsumer::Create() { VideoConsumerPtr pResult; CComPtr<IDeckLinkIterator> pDecklinkIterator; HRESULT result = pDecklinkIterator.CoCreateInstance(CLSID_CDeckLinkIterator); if(FAILED(result)) { LOG << TEXT("No Decklink drivers installed"); return pResult; } CComPtr<IDeckLink> pDecklink; IDeckLink* pTempDecklink = NULL; while(pDecklinkIterator->Next(&pTempDecklink) == S_OK) { if(pDecklink == NULL) pDecklink = pTempDecklink; if(pTempDecklink) pTempDecklink->Release(); pTempDecklink = NULL; } if(pDecklink == NULL) { LOG << TEXT("No Decklink card found"); return pResult; } ImplementationPtr pImpl(new Implementation(pDecklink)); pResult.reset(new DecklinkVideoConsumer(pImpl)); if(pResult != 0 && pResult->SetupDevice(0) == false) pResult.reset(); return pResult; }
IPAddress IPAddress::operator ^ (const IPAddress& other) const { if (family() == other.family()) { if (family() == IPv4) { IPv4AddressImpl t(pImpl()->addr()); IPv4AddressImpl o(other.pImpl()->addr()); return IPAddress((t ^ o).addr(), sizeof(struct in_addr)); } #if defined(POCO_HAVE_IPv6) else if (family() == IPv6) { const IPv6AddressImpl t(pImpl()->addr(), pImpl()->scope()); const IPv6AddressImpl o(other.pImpl()->addr(), other.pImpl()->scope()); const IPv6AddressImpl r = t ^ o; return IPAddress(r.addr(), r.scope(), sizeof(struct in6_addr)); } #endif else throw Poco::InvalidArgumentException("Invalid or unsupported address family passed to IPAddress()"); } else throw Poco::InvalidArgumentException("Invalid or unsupported address family passed to IPAddress()"); }
bool IPAddress::isGlobalMC() const { return pImpl()->isGlobalMC(); }
bool IPAddress::isMulticast() const { return pImpl()->isMulticast(); }
const struct sockaddr* SocketAddress::addr() const { return pImpl()->addr(); }
std::unique_ptr<Parser> DoubleTextParserFactory::createParser() { std::unique_ptr<DoubleTextParserImpl> pImpl (new DoubleTextParserImpl(mFilePath)); return std::unique_ptr<Parser>(new DoubleTextParser(pImpl)); }
std::string SocketAddress::toString() const { return pImpl()->toString(); }
Poco::UInt16 SocketAddress::port() const { return ntohs(pImpl()->port()); }
unsigned IPAddress::prefixLength() const { return pImpl()->prefixLength(); }
void IPAddress::mask(const IPAddress& mask, const IPAddress& set) { pImpl()->mask(mask.pImpl(), set.pImpl()); }
bool IPAddress::isLoopback() const { return pImpl()->isLoopback(); }
const void* IPAddress::addr() const { return pImpl()->addr(); }
bool IPAddress::isBroadcast() const { return pImpl()->isBroadcast(); }
bool IPAddress::isWildcard() const { return pImpl()->isWildcard(); }
Poco::UInt32 IPAddress::scope() const { return pImpl()->scope(); }
IPAddress::Family IPAddress::family() const { return static_cast<IPAddress::Family>(pImpl()->family()); }
shared_ptr<Detector> Detector::create() { auto profGroup = ProfileGroup::create(); unique_ptr<DetectorImpl> pImpl(new DetectorImpl(profGroup)); return shared_ptr<Detector>(new Detector(std::move(pImpl))); }
int IPAddress::af() const { return pImpl()->af(); }
bool IPAddress::isLinkLocal() const { return pImpl()->isLinkLocal(); }
void IPAddress::mask(const IPAddress& mask) { IPAddress null; pImpl()->mask(mask.pImpl(), null.pImpl()); }
bool IPAddress::isSiteLocal() const { return pImpl()->isSiteLocal(); }
SocketAddress::Family SocketAddress::family() const { return static_cast<Family>(pImpl()->family()); }
bool IPAddress::isIPv4Compatible() const { return pImpl()->isIPv4Compatible(); }
IPAddress SocketAddress::host() const { return pImpl()->host(); }
bool IPAddress::isIPv4Mapped() const { return pImpl()->isIPv4Mapped(); }
poco_socklen_t SocketAddress::length() const { return pImpl()->length(); }
bool IPAddress::isWellKnownMC() const { return pImpl()->isWellKnownMC(); }
int SocketAddress::af() const { return pImpl()->af(); }
bool IPAddress::isOrgLocalMC() const { return pImpl()->isOrgLocalMC(); }