#include #include #include #include extern "C" { void lcameraDev_main( const std::shared_ptr& componentThread) { lcamera_dev::lcameraDevMain(componentThread); } void lcameraDev_exit(void) { lcamera_dev::lcameraDevExit(); } sscl::co::ViralNonPostingInvoker lcameraDev_getOrCreateDeviceCReq(const std::string& deviceSelector) { lcamera_dev::LcameraDevState& state = lcamera_dev::getLcameraDevState(); if (!state.isInitialized) { throw std::runtime_error( "lcameraDev_getOrCreateDeviceCReq: call lcameraDev_main first"); } co_return co_await lcamera_dev::getOrCreateDeviceSessionCReq(deviceSelector); } sscl::co::ViralNonPostingInvoker lcameraDev_releaseDeviceCReq( const std::shared_ptr& deviceSession) { lcamera_dev::LcameraDevState& state = lcamera_dev::getLcameraDevState(); if (!state.isInitialized) { throw std::runtime_error( "lcameraDev_releaseDeviceCReq: call lcameraDev_main first"); } co_await lcamera_dev::releaseDeviceSessionCReq(deviceSession); co_return; } sscl::co::ViralNonPostingInvoker> lcameraDev_enumerateCamerasCReq(void) { lcamera_dev::LcameraDevState& state = lcamera_dev::getLcameraDevState(); if (!state.isInitialized) { throw std::runtime_error( "lcameraDev_enumerateCamerasCReq: call lcameraDev_main first"); } co_return co_await lcamera_dev::enumerateCamerasCReq(); } sscl::co::ViralNonPostingInvoker lcameraDev_configureSessionModeCReq( const std::shared_ptr& deviceSession, const lcamera_dev::LcameraDevCameraModeRequest& request) { lcamera_dev::LcameraDevState& state = lcamera_dev::getLcameraDevState(); if (!state.isInitialized) { throw std::runtime_error( "lcameraDev_configureSessionModeCReq: call lcameraDev_main " "first"); } if (!deviceSession) { throw std::runtime_error( "lcameraDev_configureSessionModeCReq: deviceSession is null"); } co_return co_await deviceSession->configureSessionModeCReq(request); } } // extern "C"