/*
 * Preset.hpp
 *
 *  Created on: Aug 5, 2008
 *      Author: carm
 */

#ifndef PRESET_HPP_
#define PRESET_HPP_

#include <string>

#include "Renderer/BeatDetect.hpp"
#include "Renderer/Pipeline.hpp"
#include "Renderer/PipelineContext.hpp"

class Preset {
public:

	
	Preset(const std::string & name=std::string(), const std::string & author = std::string());
	virtual ~Preset();

	void setName(const std::string & value);
	const std::string & name() const;

	void setAuthor(const std::string & value);
	const std::string & author() const;

	virtual Pipeline & pipeline() = 0;
	virtual void Render(const BeatDetect &music, const PipelineContext &context) = 0;

private:
	std::string _name;
	std::string _author;
};

#endif /* PRESET_HPP_ */