35 #include "UniquePointer.h"
38 namespace ArgusSamples
42 : m_initialized(false)
44 , m_prevRunning(false)
67 ORIGINATE_ERROR(
"Out of memory");
75 PROPAGATE_ERROR(dispatcher.
createSession(m_session, deviceIndex));
76 PROPAGATE_ERROR(m_perfTracker->setSession(m_session.get()));
79 PROPAGATE_ERROR(dispatcher.
createRequest(m_request, Argus::CAPTURE_INTENT_STILL_CAPTURE,
87 Argus::IStream *iStream = Argus::interface_cast<Argus::IStream>(m_outputStream.get());
89 ORIGINATE_ERROR(
"Failed to get IStream interface");
92 PROPAGATE_ERROR(composer.bindStream(iStream->getEGLStream()));
94 const Argus::Size2D<uint32_t> streamSize = iStream->getResolution();
95 PROPAGATE_ERROR(composer.setStreamAspectRatio(iStream->getEGLStream(),
96 (float)streamSize.width() / (float)streamSize.height()));
110 Argus::interface_cast<Argus::IStream>(m_outputStream)->getEGLStream(),
true));
126 PROPAGATE_ERROR(dispatcher.stopRepeat(m_session.get()));
128 Argus::interface_cast<Argus::IStream>(m_outputStream)->getEGLStream(),
false));
129 PROPAGATE_ERROR(dispatcher.waitForIdle(m_session.get()));
146 m_outputStream.get()));
148 Argus::IStream *iStream = Argus::interface_cast<Argus::IStream>(m_outputStream);
150 REPORT_ERROR(
"Failed to get IStream interface");
153 iStream->disconnect();
156 PROPAGATE_ERROR_CONTINUE(composer.
unbindStream(iStream->getEGLStream()));
158 m_outputStream.reset();
162 PROPAGATE_ERROR_CONTINUE(m_request.reset());
194 PROPAGATE_ERROR(
stop());
214 PROPAGATE_ERROR_CONTINUE(session->
shutdown());
234 if (deviceCount == 0)
235 ORIGINATE_ERROR(
"No camera devices found");
238 for (uint32_t deviceIndex = 0; deviceIndex < deviceCount; ++deviceIndex)
240 UniquePointer<Session> session(
new Session);
243 ORIGINATE_ERROR(
"Out of memory");
245 PROPAGATE_ERROR(session->initialize(deviceIndex));
255 PROPAGATE_ERROR(session->
start());
271 PROPAGATE_ERROR(session->
stop());
283 const bool isTrue =
static_cast<const Value<bool>&
>(source).
get();
290 PROPAGATE_ERROR(
stop());
296 PROPAGATE_ERROR(
start());
306 PROPAGATE_ERROR(
stop());
307 PROPAGATE_ERROR(
start());