1 /* 2 * Hedgewars, a free turn based strategy game 3 * Copyright (c) 2004-2015 Andrey Korotaev <unC0Rr@gmail.com> 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; version 2 of the License 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 17 */ 18 19 #ifndef RECORDER_H 20 #define RECORDER_H 21 22 #include <QString> 23 #include <QByteArray> 24 25 #include "tcpBase.h" 26 27 class GameUIConfig; 28 class VideoItem; 29 30 class HWRecorder : public TCPBase 31 { 32 Q_OBJECT 33 public: 34 HWRecorder(GameUIConfig * config, const QString & prefix); 35 virtual ~HWRecorder(); 36 37 void EncodeVideo(const QByteArray & record); 38 void abort(); 39 bool simultaneousRun(); 40 41 VideoItem * item; // used by pagevideos 42 QString name; 43 QString prefix; 44 45 protected: 46 // virtuals from TCPBase 47 virtual QStringList getArguments(); 48 virtual void onClientRead(); 49 virtual void onClientDisconnect(); 50 51 signals: 52 void onProgress(float progress); // 0 < progress < 1 53 void encodingFinished(bool success); 54 void ErrorMessage(const QString &); 55 56 private: 57 bool finished; 58 bool aborted; 59 GameUIConfig * config; 60 }; 61 62 #endif // RECORDER_H 63