You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
2.6 KiB
107 lines
2.6 KiB
9 years ago
|
//------------------------------------------------------------------------------
|
||
|
//
|
||
|
// Project: Anonymizer
|
||
|
//
|
||
|
// Brno University of Technology
|
||
|
// Faculty of Information Technology
|
||
|
//
|
||
|
//------------------------------------------------------------------------------
|
||
|
//
|
||
|
// This project was financially supported by project VG20102015006 funds
|
||
|
// provided by Ministry of the Interior of the Czech republic.
|
||
|
//
|
||
|
//------------------------------------------------------------------------------
|
||
|
/*!
|
||
|
|
||
|
@file timelabel.h
|
||
|
@brief Header file
|
||
|
@details Details
|
||
|
@authors Martin Borek (mborekcz@gmail.com)
|
||
|
@authors Filip Orsag (orsag@fit.vutbr.cz)
|
||
|
@date 2014-2015
|
||
|
@note This project was supported by MV CR project VG20102015006.
|
||
|
@copyright BUT OPEN SOURCE LICENCE (see License.txt)
|
||
|
|
||
|
*/
|
||
|
|
||
|
#ifndef TIMELABEL_H
|
||
|
#define TIMELABEL_H
|
||
|
|
||
|
#include <QLabel>
|
||
|
|
||
|
namespace TimeConversion
|
||
|
{
|
||
|
struct Time
|
||
|
{
|
||
|
unsigned long raw;
|
||
|
unsigned long hr;
|
||
|
unsigned long min;
|
||
|
unsigned long sec;
|
||
|
unsigned long ms;
|
||
|
};
|
||
|
static const unsigned long ms2hr = 3600000; // 1000*60*60 ms
|
||
|
static const unsigned long ms2min = 60000; // 1000*60 ms
|
||
|
static const unsigned long ms2sec = 1000; // 1000 ms
|
||
|
|
||
|
void convert_time(Time &converted);
|
||
|
void Time2QString(Time const &time, QString &timeString, bool showHours);
|
||
|
|
||
|
}
|
||
|
|
||
|
using namespace TimeConversion;
|
||
|
|
||
|
class TimeLabel : public QLabel
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
public:
|
||
|
/**
|
||
|
* Constructor
|
||
|
* @param parent Parent widget
|
||
|
*/
|
||
|
explicit TimeLabel(QWidget *parent = 0);
|
||
|
|
||
|
/**
|
||
|
* Destructor
|
||
|
*/
|
||
|
~TimeLabel();
|
||
|
|
||
|
/**
|
||
|
* Sets the total video time.
|
||
|
* @param time Time in milliseconds
|
||
|
*/
|
||
|
void set_total_time(const unsigned long &time);
|
||
|
|
||
|
/**
|
||
|
* Displays given time position with the total time.
|
||
|
* @param time Displayed time
|
||
|
* @param includeTotal If true, total length is also displayed.
|
||
|
*/
|
||
|
void display_time(const unsigned long &time, bool includeTotal=true);
|
||
|
|
||
|
/**
|
||
|
* Sets the total number of frames.
|
||
|
* @param frameCount Number of frames
|
||
|
*/
|
||
|
void set_frame_count(unsigned long frameCount);
|
||
|
|
||
|
/**
|
||
|
* Displays given frame number with the total number of frames.
|
||
|
* @param frameNumber Displayed frame number
|
||
|
* @param includeTotal If true, total number of frames is also displayed.
|
||
|
*/
|
||
|
void display_frame_num(unsigned long frameNumber, bool includeTotal=true);
|
||
|
private:
|
||
|
|
||
|
private:
|
||
|
Time totalTime;
|
||
|
Time currentTime;
|
||
|
QString totalTimeString;
|
||
|
QString currentTimeString;
|
||
|
bool showHours;
|
||
|
|
||
|
unsigned long totalFrameCount;
|
||
|
|
||
|
};
|
||
|
|
||
|
#endif // TIMELABEL_H
|