.. _program_listing_file_include_depthai_device_Device.hpp: Program Listing for File Device.hpp =================================== |exhale_lsh| :ref:`Return to documentation for file ` (``include/depthai/device/Device.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once // std #include #include #include #include #include #include #include // project #include "DataQueue.hpp" #include "depthai/device/DeviceBase.hpp" namespace dai { class Device : public DeviceBase { public: using DeviceBase::DeviceBase; // inherit the ctors explicit Device(const Pipeline& pipeline); template ::value, bool> = true> [[deprecated("Use constructor taking 'UsbSpeed' instead")]] Device(const Pipeline& pipeline, T usb2Mode); Device(const Pipeline& pipeline, UsbSpeed maxUsbSpeed); Device(const Pipeline& pipeline, const dai::Path& pathToCmd); Device(const Pipeline& pipeline, const DeviceInfo& devInfo); template ::value, bool> = true> [[deprecated("Use constructor taking 'UsbSpeed' instead")]] Device(const Pipeline& pipeline, const DeviceInfo& devInfo, T usb2Mode); Device(const Pipeline& pipeline, const DeviceInfo& devInfo, UsbSpeed maxUsbSpeed); Device(const Pipeline& pipeline, const DeviceInfo& devInfo, const dai::Path& pathToCmd); Device(); ~Device() override; static constexpr std::size_t EVENT_QUEUE_MAXIMUM_SIZE{2048}; std::shared_ptr getOutputQueue(const std::string& name); std::shared_ptr getOutputQueue(const std::string& name, unsigned int maxSize, bool blocking = true); std::vector getOutputQueueNames() const; std::shared_ptr getInputQueue(const std::string& name); std::shared_ptr getInputQueue(const std::string& name, unsigned int maxSize, bool blocking = true); std::vector getInputQueueNames() const; // void setCallback(const std::string& name, std::function(std::shared_ptr)> cb); std::vector getQueueEvents(const std::vector& queueNames, std::size_t maxNumEvents = std::numeric_limits::max(), std::chrono::microseconds timeout = std::chrono::microseconds(-1)); std::vector getQueueEvents(const std::initializer_list& queueNames, std::size_t maxNumEvents = std::numeric_limits::max(), std::chrono::microseconds timeout = std::chrono::microseconds(-1)); std::vector getQueueEvents(std::string queueName, std::size_t maxNumEvents = std::numeric_limits::max(), std::chrono::microseconds timeout = std::chrono::microseconds(-1)); std::vector getQueueEvents(std::size_t maxNumEvents = std::numeric_limits::max(), std::chrono::microseconds timeout = std::chrono::microseconds(-1)); std::string getQueueEvent(const std::vector& queueNames, std::chrono::microseconds timeout = std::chrono::microseconds(-1)); std::string getQueueEvent(const std::initializer_list& queueNames, std::chrono::microseconds timeout = std::chrono::microseconds(-1)); std::string getQueueEvent(std::string queueName, std::chrono::microseconds timeout = std::chrono::microseconds(-1)); std::string getQueueEvent(std::chrono::microseconds timeout = std::chrono::microseconds(-1)); private: std::unordered_map> outputQueueMap; std::unordered_map> inputQueueMap; std::unordered_map callbackIdMap; // Event queue std::mutex eventMtx; std::condition_variable eventCv; std::deque eventQueue; bool startPipelineImpl(const Pipeline& pipeline) override; void closeImpl() override; }; } // namespace dai