3#include "../_decl/decl_genicam_device.hpp"
5#include "../image_stream.hpp"
6#include "../composite_stream.hpp"
7#include "../point_cloud_stream.hpp"
22 "unsupported composite stream type");
23 auto streamBase = CreateOrGetStreamHelper<T>(index);
26 throw std::logic_error(
"impossible to get the same stream with different types");
30 inline StreamBasePtr GenICamDevice::CreateStream(
int index, StreamType streamType)
const
32 auto getStreamHandle = [
this, index](CExports::CVDSTREAM &handle) {
33 return CExports::CVDDeviceGetStreamAt(
Handle(), index, handle);
39 case StreamType::Legacy:
42 case StreamType::Image:
43 return Internal::DoResCallShareOut<ImageStream>(getStreamHandle,
46 case StreamType::Composite:
47 return Internal::DoResCallShareOut<CompositeStream>(getStreamHandle,
50 case StreamType::PointCloud:
51 return Internal::DoResCallShareOut<PointCloudStream>(getStreamHandle,
void * Handle() const noexcept
Classic API device handle.
Definition decl_device.hpp:122
A device representing a GenICam compliant device.
Definition decl_genicam_device.hpp:19
std::shared_ptr< T > Stream() const
Get the first stream for this device.
Definition decl_genicam_device.hpp:47
Namespace for driver or device related operations.
Definition decl_composite.hpp:28
std::shared_ptr< StreamBase > StreamBasePtr
Convenience shared pointer for StreamBase.
Definition driver.hpp:113
Root namespace for the Image Manager interface.
Definition c_bayer_to_rgb.h:17
T dynamic_pointer_cast(T... args)