/* Blinker
Copyright 2011 Stefan Schuermans <stefan@blinkenarea.org>
Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
a blinkenarea.org project */
#ifndef CANVASINPUT_H
#define CANVASINPUT_H
#include <string>
#include <BlinkenLib/BlinkenFrame.h>
#include "Canvas.h"
#include "Directory.h"
#include "File.h"
#include "Position.h"
#include "SettingFile.h"
#include "Size.h"
#include "StreamMgr.h"
#include "StreamRecv.h"
namespace Blinker {
/// input to canvas
class Canvas::Input: public StreamRecv
{
public:
/**
* @brief constructor
* @param[in] canvas owning canvas
* @param[in] dirBase base directory
*/
Input(Canvas &canvas, const Directory &dirBase);
/// virtual destructor
virtual ~Input();
private:
/// copy constructor disabled
Input(const Input &that);
/// assignment operator disabled
const Input & operator=(const Input &that);
public:
/// check for update of configuration
void updateConfig();
/**
* @brief set current frame
* @param[in] stream stream name