#include "MediaEngine.h" #if AX_TARGET_PLATFORM == AX_PLATFORM_WIN32 # include "media/WmfMediaEngine.h" #elif AX_TARGET_PLATFORM == AX_PLATFORM_WINRT # include "media/MfMediaEngine.h" // #elif defined(__APPLE__) // # include "media/AvfMediaEngine.h" #endif namespace axstd { // static_pointer_cast overload for std::shared_ptr using std::static_pointer_cast; // static_pointer_cast overload for std::unique_ptr template std::unique_ptr static_pointer_cast(std::unique_ptr&& r) { (void)static_cast(static_cast(0)); typedef typename std::unique_ptr::element_type E; return std::unique_ptr(static_cast(r.release())); } } // namespace axstd NS_AX_BEGIN std::unique_ptr CreatePlatformMediaEngineFactory() { #if AX_TARGET_PLATFORM == AX_PLATFORM_WIN32 return axstd::static_pointer_cast(std::make_unique()); #elif AX_TARGET_PLATFORM == AX_PLATFORM_WINRT return axstd::static_pointer_cast(std::make_unique()); // #elif defined(__APPLE__) // return axstd::static_pointer_cast(std::make_unique()); #else return nullptr; #endif } NS_AX_END