|
|
- #pragma once
-
- #include "IStream.h"
-
- #include <fsdk/IObject.h>
- #include <fsdk/FaceEngine.h>
- #include <fsdk/FSDKVersion.h>
-
- #if !defined(FSDK_VERSION_MAJOR)
- #error "FsdkVersion.h header is needed, but not included here"
- #endif
-
- #if FSDK_VERSION_MAJOR >= 5
- #include <fsdk/LaunchOptions.h>
- #endif
-
- namespace vsdk {
- struct IVehicleEngine;
- }
-
- namespace tsdk {
-
- struct ITrackEngine : fsdk::IRefCounted {
-
- /**
- * @brief Stops processing with all queued callbacks waiting.
- * @note It is a blocking function, which will wait all stored callbacks
- * execution.
- */
- TRACK_ENGINE_API virtual void stop() = 0;
-
- /**
- * @brief Create the Stream object.
- * @return Pointer to created object or nullptr if failed.
- * */
- TRACK_ENGINE_API virtual tsdk::IStream* createStream(StreamParams *params = nullptr) = 0;
-
- /** @brief Sets a best shot observer for all streams
- * @param observer pointer to the observer object, @see IBatchBestShotObserver
- */
- TRACK_ENGINE_API virtual void setBatchBestShotObserver(
- tsdk::IBatchBestShotObserver *observer) = 0;
-
- /** @brief Sets a visual observer for all streams
- * @param observer pointer to the observer object, @see IBatchVisualObserver
- */
- TRACK_ENGINE_API virtual void setBatchVisualObserver(
- tsdk::IBatchVisualObserver *observer) = 0;
-
- /** @brief Sets a debug observer for all streams
- * @param observer pointer to the observer object, @see IBatchDebugObserver
- */
- TRACK_ENGINE_API virtual void setBatchDebugObserver(
- tsdk::IBatchDebugObserver *observer) = 0;
- };
-
- /**
- * @brief Create the TrackerEngine object by config path.
- * @param [in] engine pointer to the FaceEngine object;
- * @param [in] configPath configuration file path;
- * @param [in] vehicleEngine pointer to the VehicleEngine object;
- * @param [in] launchOptions launch options for sdk functions;
- * @return fsdk ResultValue object, where value is track engine object reference.
- * */
- TRACK_ENGINE_API fsdk::ResultValue<fsdk::FSDKError, fsdk::Ref<tsdk::ITrackEngine>> createTrackEngine(
- fsdk::FaceEngineType* engine,
- const char* configPath = nullptr,
- vsdk::IVehicleEngine* vehicleEngine = nullptr
- #if FSDK_VERSION_MAJOR >= 5
- , const fsdk::LaunchOptions *launchOptions = nullptr
- #endif
- );
-
- /**
- * @brief Create the TrackerEngine object by settings provider.
- * @param [in] engine pointer to the FaceEngine object;
- * @param [in] settings provider with configuration;
- * @param [in] vehicleEngine pointer to the VehicleEngine object;
- * @param [in] launchOptions launch options for sdk functions;
- * @return fsdk ResultValue object, where value is track engine object reference.
- * */
- TRACK_ENGINE_API fsdk::ResultValue<fsdk::FSDKError, fsdk::Ref<tsdk::ITrackEngine>> createTrackEngine(
- fsdk::FaceEngineType* engine,
- const fsdk::ISettingsProviderPtr& provider,
- vsdk::IVehicleEngine* vehicleEngine = nullptr
- #if FSDK_VERSION_MAJOR >= 5
- , const fsdk::LaunchOptions *launchOptions = nullptr
- #endif
- );
- }
|