diff options
Diffstat (limited to 'opentrack-logic/tracklogger.hpp')
-rw-r--r-- | opentrack-logic/tracklogger.hpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/opentrack-logic/tracklogger.hpp b/opentrack-logic/tracklogger.hpp new file mode 100644 index 00000000..65128d48 --- /dev/null +++ b/opentrack-logic/tracklogger.hpp @@ -0,0 +1,53 @@ +#pragma once +#include "main-settings.hpp" +#include "opentrack-compat/options.hpp" + +#include <fstream> +#include <QString> +#include <QMessageBox> +#include <QWidget> + +class OPENTRACK_LOGIC_EXPORT TrackLogger +{ +public: + TrackLogger() + { + } + + virtual void write(const char *) + { + } + + virtual void write(const double *, int n) + { + } + + virtual void next_line() + { + } + + void write_pose(const double *p) + { + write(p, 6); + } +}; + + +class OPENTRACK_LOGIC_EXPORT TrackLoggerCSV : public TrackLogger +{ + std::ofstream out; + bool first_col; + inline void handle_first_col_sep(); +public: + TrackLoggerCSV(const QString &filename) : TrackLogger(), + first_col(true) + { + out.open(filename.toStdString()); + } + + bool is_open() const { return out.is_open(); } + virtual void write(const char *s); + virtual void write(const double *p, int n); + virtual void next_line(); +}; + |