/*
 * See the files COPYING and README for copyright information and how to reach
 * the author.
 *
 *  $Id: setup.h,v 1.10 2006/05/15 18:52:45 lordjaxom Exp $
 */

#ifndef VDR_BURN_SETUP_H
#define VDR_BURN_SETUP_H

#include "common.h"
#include "proctools/property.h"
#include <string>
#include <vdr/menuitems.h>

namespace vdr_burn
{

// --- cBurnParameters --------------------------------------------------------

struct cBurnParameters
{
	cBurnParameters(void);

	bool ProcessArgs(int argc, char **argv);

	std::string DataPath;
	std::string TempPath;
	std::string DvdDevice;
	std::string IsoPath;
};

extern cBurnParameters BurnParameters;

// --- cBurnSetup -------------------------------------------------------------
	
struct cBurnSetup: public proctools::property_bag
{
	cBurnSetup(void);

	bool SetupParse(const char *Name, const char *Value);

	proctools::property<int> UseIso2UTF;
	proctools::property<int> RemovePath;
	proctools::property<int> OfferChapters;
	proctools::property<int> OfferDiskSize;
	proctools::property<int> OfferStoreMode;
	proctools::property<int> ChaptersMode;
	proctools::property<int> StoreMode;
	proctools::property<int> DiskSize;
	proctools::property<int> CustomDiskSize;
	proctools::property<int> BurnSpeed;
	proctools::property<int> DemuxType;
	proctools::property<int> CutOnDemux;
	proctools::property<int> OfferCutOnDemux;
};

extern cBurnSetup BurnSetup;

// --- cBurnMenuSetupPage -----------------------------------------------------

class cBurnMenuSetupPage: public cMenuSetupPage
{
	friend struct setup_storer;

private:
	cBurnSetup mData;

protected:
	virtual void Store(void);

public:
	cBurnMenuSetupPage(void);
};

}

#endif // VDR_BURN_SETUP_H
