summaryrefslogtreecommitdiff
path: root/sdDisplayReplay.h
blob: e580e16dfafc4462052289035c50ab7ab2f09f4b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#ifndef CSDDISPLAYREPLAY_H
#define CSDDISPLAYREPLAY_H

#include <vdr/osdbase.h>
#include <libskindesignerapi/osdelements.h>
#include <libskindesignerapi/skindesignerosdbase.h>
#include <memory>

#include "PVideo.h"
#include "hlsPlayerControl.h"

class cSdDisplayReplay : public skindesignerapi::cSkindesignerOsdObject
{
public:
	enum eElements {
	    Background,
	    Replay,
	    Info,
		Time
	};

	cSdDisplayReplay(plexclient::Video Video, cHlsPlayerControl* Control);
	~cSdDisplayReplay();

	virtual void Show(void);
	//virtual eOSState ProcessKey(eKeys Key);

private:
	plexclient::Video m_video;
	cHlsPlayerControl* m_pContol;

	skindesignerapi::cOsdView* m_pRootView;
	std::shared_ptr<skindesignerapi::cViewElement> m_pBackground;
	std::shared_ptr<skindesignerapi::cViewElement> m_pReplay;
	std::shared_ptr<skindesignerapi::cViewElement> m_pInfo;
	std::shared_ptr<skindesignerapi::cViewElement> m_pTime;

	int m_lastsecond;

	void DrawReplay();
	void DrawInfo();
	bool DrawTime();
	void Flush();

	std::string IndexToHMS(int index, bool WithSeconds = true);
};

#endif // CSDDISPLAYREPLAY_H