/* Blinker
Copyright 2011-2019 Stefan Schuermans <stefan@blinkenarea.org>
Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
a blinkenarea.org project */
#include <list>
#include <string>
#include <BlinkenLib/BlinkenFrame.h>
#include <BlinkenLib/BlinkenMovie.h>
#include "Directory.h"
#include "File.h"
#include "InStreamFile.h"
#include "ListTracker.h"
#include "ListTracker_impl.h"
#include "Mgrs.h"
#include "Module.h"
#include "OutStreamFile.h"
#include "Player.h"
#include "PlayerMovie.h"
#include "StreamRecv.h"
#include "Time.h"
#include "TimeCallee.h"
namespace Blinker {
/**
* @brief constructor
* @param[in] name module name
* @param[in] mgrs managers
* @param[in] dirBase base directory
*/
Player::Player(const std::string &name, Mgrs &mgrs,
const Directory &dirBase):
Module(name, mgrs, dirBase),
m_fileOutStream(dirBase.getFile("outstream"), mgrs.m_streamMgr),
m_fileHaltStream(dirBase.getFile("haltstream"), mgrs.m_streamMgr),
m_fileInSync(dirBase.getFile("insync"), mgrs.m_syncMgr),
m_playlistTracker(*this, dirBase.getSubdir("playlist")),
m_curValid(false),
m_unknownMovie(false),
m_curEntry(m_playlistTracker.m_list.begin()),
m_curFrame(0),
m_curFrameStart(0),
m_curFrameEnd(0),
m_curChange(false),
m_halted(false)
{
m_maxDeviation.fromMs(30);