|
#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
|
|
);
|
|
}
|