/*
 * @(#)BurnSession.java
 *
 * This file is part of webCDwriter - Network CD Writing.
 *
 * Copyright (C) 1999-2004 Jörg P. M. Haeger
 *
 * webCDwriter is free software. See CDcreator.java for details.
 */

/**
 * This class sets the options of a BurnSession command
 * on the server.
 *
 * @version 20040705
 * @author Jörg P. M. Haeger
 */
public class BurnSession extends Burn {
	protected void execBurnCommand() {
		execCommand("burnSession");
	}

	protected void execFileSystemOptions() {
		if (Options.volumeID.length() > 0)
			execCommand("setVolumeID "
				+ spaceToEsc(Options.volumeID));
		if (Options.joliet)
			execCommand("setJoliet");
		if (Options.rockRidge)
			execCommand("setRockRidge");
		if (Options.HFS)
			execCommand("setHFS");
		if (Options.bootImage != null)
			execCommand("setBootImage "
				+ spaceToEsc(Options.bootImage));
	}

	protected void execOptions() {
		if (Mode.makeISOImage())
			execFileSystemOptions();

		if (Options.simulate)
			execCommand("setLaserOff");
		if (Options.acceptKey.length() > 0)
			execCommand("setAcceptKey "
				+ spaceToEsc(Options.acceptKey));
		if (Options.blankTOC)
			execCommand("setBlankTOC");
		if (Options.closeCD)
			execCommand("setCloseCD");
		if (Options.copies > 1)
			execCommand("setCopies " + Options.copies);
		if (Options.DAO)
			execCommand("setDAO");
		if (Options.DVDVideo)
			execCommand("setDVDVideo");
		if (Options.hideContents)
			execCommand("setHideContents");
		if (Mode.mediumSize > 700)
			execCommand("setMedium " + Mode.medium);
		if (Options.overburn)
			execCommand("setOverburn");
		execSetProjectInfo();
		if (CDcreator.writeProtection && Options.rejectEmptyCD)
			execCommand("setRejectEmptyCD");
		if (CDcreator.writeProtection && Options.rejectWithoutUserID)
			execCommand("setRejectWithoutUserID");
		if (Options.verify && !Mode.audioCD())
			execCommand("setVerify");
		if (Options.waitForEmptyCD)
			execCommand("setWaitForEmptyCD");
		if (Options.writeProtection.length() > 0)
			execCommand("setWriteProtection "
				+ spaceToEsc(Options.writeProtection));
		if (Options.writer.length() > 0)
			execCommand("setWriter " + spaceToEsc(Options.writer));
	}
}
