From 07f674eabea146a37c96fe6971ecfdb2bea8cc2e Mon Sep 17 00:00:00 2001 From: Dante Ruiz Date: Wed, 19 Apr 2017 20:41:56 +0100 Subject: [PATCH] exprting compressed file --- interface/src/Application.cpp | 2 +- .../src/controllers/InputRecorder.cpp | 30 +++++++++++++++++-- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 8ccc587250..cf079ac2c8 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -2738,7 +2738,7 @@ void Application::keyPressEvent(QKeyEvent* event) { offscreenUi->load("Browser.qml"); } else if (isOption) { controller::InputRecorder* inputRecorder = controller::InputRecorder::getInstance(); - inputRecorder->togglePlayback(); + inputRecorder->saveRecording(); } break; diff --git a/libraries/controllers/src/controllers/InputRecorder.cpp b/libraries/controllers/src/controllers/InputRecorder.cpp index 51480645fb..e404048ffd 100644 --- a/libraries/controllers/src/controllers/InputRecorder.cpp +++ b/libraries/controllers/src/controllers/InputRecorder.cpp @@ -11,9 +11,19 @@ #include #include #include +#include +#include +#include +#include +#include +#include #include -namespace controller { +QString SAVE_DIRECTORY = QDir::homePath()+"/hifi-input-recordings/"; +QString FILE_PREFIX_NAME = "input-recording-"; +QString COMPRESS_EXTENSION = ".tar.gz"; +namespace controller { + QJsonObject poseToJsonObject(const Pose pose) { QJsonObject newPose; @@ -47,7 +57,22 @@ namespace controller { return newPose; } - void exportFile(QJsonObject object) { + void exportToFile(QJsonObject& object) { + if (!QDir(SAVE_DIRECTORY).exists()) { + QDir().mkdir(SAVE_DIRECTORY); + } + + QString timeStamp = QDateTime::currentDateTime().toString(Qt::ISODate); + timeStamp.replace(":", "-"); + QString fileName = SAVE_DIRECTORY + FILE_PREFIX_NAME + timeStamp + COMPRESS_EXTENSION; + QFile saveFile (fileName); + if (!saveFile.open(QIODevice::WriteOnly)) { + qWarning() << "could not open file: " << fileName; + return; + } + QJsonDocument saveData(object); + QByteArray compressedData = qCompress(saveData.toJson(QJsonDocument::Compact)); + saveFile.write(compressedData); } InputRecorder::InputRecorder() {} @@ -91,6 +116,7 @@ namespace controller { data["actionList"] = actionArrayList; data["poseList"] = poseArrayList; + exportToFile(data); } void InputRecorder::loadRecording() {