diff --git a/CMakeLists.txt b/CMakeLists.txt index 6c67ce0..2d6e440 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,6 +34,17 @@ LIST(APPEND CMAKE_PREFIX_PATH third_party/glog/_build) find_package(glog REQUIRED) message(STATUS "Found glog: ${glog_VERSION}") +if(WITH_API) + find_package(OpenCV REQUIRED) + message(STATUS "Found OpenCV: ${OpenCV_VERSION}") + + if(OpenCV_VERSION VERSION_LESS 3.0) + add_definitions(-DUSE_OPENCV2) + else() + add_definitions(-DUSE_OPENCV3) + endif() +endif() + LIST(APPEND CMAKE_MODULE_PATH cmake) include(CMakePackageConfigHelpers) @@ -136,6 +147,9 @@ set(MYNTEYE_LINKLIBS glog::glog ${UVC_LIB} ) +if(WITH_API) + list(APPEND MYNTEYE_LINKLIBS ${OpenCV_LIBS}) +endif() #message(STATUS "MYNTEYE_LINKLIBS: ${MYNTEYE_LINKLIBS}") add_library(${MYNTEYE_NAME} SHARED ${MYNTEYE_SRCS}) diff --git a/samples/README.md b/samples/README.md index e4747b6..2bb4ff4 100644 --- a/samples/README.md +++ b/samples/README.md @@ -21,6 +21,17 @@ make samples ## Run +Camera with api layer, + +```bash +./samples/_output/bin/api/camera_a + +# Windows +.\samples\_output\bin\api\camera_a.bat +``` + +Camera with device layer, + ```bash ./samples/_output/bin/device/camera_d diff --git a/samples/api/camera.cc b/samples/api/camera.cc index d484623..92546ab 100644 --- a/samples/api/camera.cc +++ b/samples/api/camera.cc @@ -7,5 +7,7 @@ MYNTEYE_USE_NAMESPACE int main(int argc, char *argv[]) { glog_init _(argc, argv); + auto &&api = API::Create(); + return 0; } diff --git a/src/api/api.cc b/src/api/api.cc index 043035e..543bcb4 100644 --- a/src/api/api.cc +++ b/src/api/api.cc @@ -2,9 +2,13 @@ #include +#include "mynteye/utils.h" + +#include "device/device.h" + MYNTEYE_BEGIN_NAMESPACE -API::API() { +API::API(std::shared_ptr device) : device_(device) { VLOG(2) << __func__; } @@ -12,4 +16,12 @@ API::~API() { VLOG(2) << __func__; } +std::shared_ptr API::Create() { + return Create(device::select()); +} + +std::shared_ptr API::Create(std::shared_ptr device) { + return std::make_shared(device); +} + MYNTEYE_END_NAMESPACE diff --git a/src/api/api.h b/src/api/api.h index 12dc9fc..db1c925 100644 --- a/src/api/api.h +++ b/src/api/api.h @@ -2,14 +2,24 @@ #define MYNTEYE_API_H_ #pragma once +#include + #include "mynteye/mynteye.h" MYNTEYE_BEGIN_NAMESPACE +class Device; + class MYNTEYE_API API { public: - API(); - ~API(); + explicit API(std::shared_ptr device); + /*virtual*/ ~API(); + + static std::shared_ptr Create(); + static std::shared_ptr Create(std::shared_ptr device); + + private: + std::shared_ptr device_; }; MYNTEYE_END_NAMESPACE