#ifndef ASH_PUBLIC_CPP_PROJECTOR_PROJECTOR_CLIENT_H_
#define ASH_PUBLIC_CPP_PROJECTOR_PROJECTOR_CLIENT_H_
#include <vector>
#include "ash/public/cpp/ash_public_export.h"
namespace base {
class FilePath;
}
namespace ash {
struct NewScreencastPrecondition;
struct SpeechRecognitionAvailability;
class ASH_PUBLIC_EXPORT ProjectorClient {
public:
static ProjectorClient* Get();
ProjectorClient();
ProjectorClient(const ProjectorClient&) = delete;
ProjectorClient& operator=(const ProjectorClient&) = delete;
virtual ~ProjectorClient();
virtual SpeechRecognitionAvailability GetSpeechRecognitionAvailability()
const = 0;
virtual void StartSpeechRecognition() = 0;
virtual void StopSpeechRecognition() = 0;
virtual void ForceEndSpeechRecognition() = 0;
virtual bool GetBaseStoragePath(base::FilePath* result) const = 0;
virtual bool IsDriveFsMounted() const = 0;
virtual bool IsDriveFsMountFailed() const = 0;
virtual void OpenProjectorApp() const = 0;
virtual void MinimizeProjectorApp() const = 0;
virtual void CloseProjectorApp() const = 0;
virtual void OnNewScreencastPreconditionChanged(
const NewScreencastPrecondition& precondition) const = 0;
virtual void ToggleFileSyncingNotificationForPaths(
const std::vector<base::FilePath>& screencast_paths,
bool suppress) = 0;
};
}
#endif