9 #ifndef hifi_InputRecorder_h
10 #define hifi_InputRecorder_h
18 #include <QJsonObject>
23 namespace controller {
26 using PoseStates = std::map<QString, Pose>;
27 using ActionStates = std::map<QString, float>;
32 static InputRecorder* getInstance();
35 void loadRecording(
const QString& path);
36 void startRecording();
40 void toggleRecording() { _recording = !_recording; }
41 void togglePlayback() { _playback = !_playback; }
43 bool isRecording() {
return _recording; }
44 bool isPlayingback() {
return (_playback && !_loading); }
45 void setActionState(
const QString& action,
float value);
46 void setActionState(
const QString& action,
const controller::Pose& pose);
47 float getActionState(
const QString& action);
48 ActionStates getActionstates();
49 controller::Pose getPoseState(
const QString& action);
50 QString getSaveDirectory();
53 QJsonObject recordDataToJson();
54 bool _recording {
false };
55 bool _playback {
false };
56 bool _loading {
false };
57 std::vector<PoseStates> _poseStateList = std::vector<PoseStates>();
58 std::vector<ActionStates> _actionStateList = std::vector<ActionStates>();
59 PoseStates _currentFramePoses;
60 ActionStates _currentFrameActions;
62 int _framesRecorded { 0 };