You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

90 lines
2.9 KiB

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