#ifndef OPTIONS_H
#define OPTIONS_H

/*
 * @(#)Options.h
 *
 * This file is part of webCDwriter - Network CD Writing.
 *
 * Copyright (C) 1999-2004 Jörg P. M. Haeger
 *
 * webCDwriter is free software. See CDWserver.cpp for details.
 *
 * Jörg Haeger, 25.04.2001
 */

/**
 * A container for the writing options.
 *
 * @version 20040504
 * @author Jörg P. M. Haeger
 */
struct Options {
	int protocolVersion;
	String acceptKey;
	int blankTOC;
	String bootImage;
	int burnOffline;
	int CDText;
	int closeCD;
	int copies;
	int DAO;
	int DVDVideo;
	int format;
	int HFS;
	int hideContents;
	int joliet;
	int laserOff;
	String medium;
	int overburn;
	int rejectEmptyCD;
	int rejectUnprotectedCD;
	int rockRidge;
	int speed;
	int verify;
	int videoDVD;
	String volumeID;
	String writeProtection;
	String writer;

	class ProjectInfo {
		public: String from, to, label, contents;
	};

	ProjectInfo projectInfo;

	Options() {
		protocolVersion = 1;
		reset();
	}

	~Options() {
		reset();
	}

	public: int mediumDVD() {
		return mediumDVDRewritable()
			|| medium.equals("DVD-R") || medium.equals("DVD+R");
	}

	public: int mediumDVDRewritable() {
		return medium.equals("DVD-RW") || medium.equals("DVD+RW");
	}

	void reset() {
		if (protocolVersion == 1) {
			closeCD = 1;
			joliet = 1;
			rockRidge = 1;
		}
		else {
			closeCD = 0;
			joliet = 0;
			rockRidge = 0;
		}
		acceptKey = "";
		blankTOC = 0;
		bootImage = "";
		burnOffline = 0;
//		CDText = 0;
		copies = 1;
		DAO = 0;
		DVDVideo = 0;
		format = 0;
		HFS = 0;
		hideContents = 0;
		laserOff = 0;
		medium = "";
		overburn = 0;
		projectInfo.from = "-";
		projectInfo.to = "-";
		projectInfo.label = "-";
		projectInfo.contents = "-";
		rejectEmptyCD = 0;
		rejectUnprotectedCD = 0;
		speed = 0;
		verify = 0;
		videoDVD = 0;
		volumeID = "";
		writeProtection = "";
		writer = "";
	}
};

#endif
