#ifndef ASH_PROJECTOR_PROJECTOR_METADATA_CONTROLLER_H_
#define ASH_PROJECTOR_PROJECTOR_METADATA_CONTROLLER_H_
#include <memory>
#include <string>
#include "ash/ash_export.h"
#include "ash/projector/projector_metadata_model.h"
#include "base/files/file_path.h"
#include "base/memory/weak_ptr.h"
#include "media/mojo/mojom/speech_recognition.mojom.h"
namespace base {
class FilePath;
}
namespace ash {
class ASH_EXPORT ProjectorMetadataController {
public:
ProjectorMetadataController();
ProjectorMetadataController(const ProjectorMetadataController&) = delete;
ProjectorMetadataController& operator=(const ProjectorMetadataController&) =
delete;
virtual ~ProjectorMetadataController();
virtual void OnRecordingStarted();
virtual void RecordTranscription(
const media::SpeechRecognitionResult& speech_result);
virtual void SetSpeechRecognitionStatus(RecognitionStatus status);
virtual void RecordKeyIdea();
virtual void SaveMetadata(const base::FilePath& video_file_path);
void SetProjectorMetadataModelForTest(
std::unique_ptr<ProjectorMetadata> metadata);
protected:
virtual void OnSaveFileResult(const base::FilePath& path,
size_t transcripts_count,
bool success);
private:
std::unique_ptr<ProjectorMetadata> metadata_;
base::WeakPtrFactory<ProjectorMetadataController> weak_factory_{this};
};
}
#endif