40#include <boost/utility.hpp>
42#include <pcl/pcl_exports.h>
44#include <DepthSense.hxx>
62 class PCL_EXPORTS DepthSenseDeviceManager : boost::noncopyable
67 using Ptr = std::shared_ptr<DepthSenseDeviceManager>;
75 std::lock_guard<std::mutex> lock (mutex_);
77 instance.reset (
new DepthSenseDeviceManager);
86 return (context_.getDevices ().size ());
124 DepthSenseDeviceManager ();
130 isCaptured (
const std::string& sn)
const
132 return (captured_devices_.count (sn) != 0);
135 DepthSense::Context context_;
137 static std::mutex mutex_;
140 std::thread depth_sense_thread_;
142 struct CapturedDevice
145 DepthSense::DepthNode depth_node;
146 DepthSense::ColorNode color_node;
149 std::map<std::string, CapturedDevice> captured_devices_;
void releaseDevice(const std::string &sn)
Release DepthSense device with given serial number.
void reconfigureDevice(const std::string &sn)
Reconfigure DepthSense device with given serial number.
~DepthSenseDeviceManager()
void startDevice(const std::string &sn)
Start data capturing for a given device.
std::string captureDevice(DepthSenseGrabberImpl *grabber)
Capture first available device and associate it with a given grabber instance.
static Ptr & getInstance()
void stopDevice(const std::string &sn)
Stop data capturing for a given device.
std::string captureDevice(DepthSenseGrabberImpl *grabber, const std::string &sn)
Capture the device with given serial number and associate it with a given grabber instance.
std::size_t getNumDevices()
Get the number of connected DepthSense devices.
std::string captureDevice(DepthSenseGrabberImpl *grabber, std::size_t index)
Capture the device with given index and associate it with a given grabber instance.
std::shared_ptr< DepthSenseDeviceManager > Ptr