#ifndef RECORDER_VSTARCAMRECORDER_H #define RECORDER_VSTARCAMRECORDER_H #include "Recorder.h" #include "Settings.h" #include namespace Http { class HttpClient; } // namespace Http namespace CameraRecorder { namespace Recorder { class VStarCamRecorder : public virtual Recorder { public: VStarCamRecorder(Http::HttpClient* pHttpClient, const Settings& settings, Util::RecorderMutexPointer pRecorderMutex); ~VStarCamRecorder(); virtual std::string Snapshot(ctpl::thread_pool* pThreadPool, const std::string& ffmpeg) override; virtual std::string MultiSnapshot(ctpl::thread_pool* pThreadPool, const std::string& ffmpeg, int numberOfImages) override; virtual std::string Video(ctpl::thread_pool* pThreadPool, const std::string& ffmpeg) override; private: static std::string GetFolderName(const Settings& settings); static std::string GetFileName(const Settings& settings, const std::string& extension, const std::string& dateTimeString, int imageIndex); static void Snapshots(Http::HttpClient* pHttpClient, const Settings& settings, std::string dateTimeString, int numberOfImages); static void Snapshot(Http::HttpClient* pHttpClient, const Settings& settings, const filesystem::path& fileName); private: Http::HttpClient* m_pHttpClient; Settings m_settings; }; } // namespace Recorder } // namespace CameraRecorder #endif // RECORDER_VSTARCAMRECORDER_H