/*
 * WriteType.java
 *
 * Copyright (c) 2007  Vreixo Formoso
 *
 * This library is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 * See COPYING file for details.
 */

package org.pykix.libburnia.libburn;

/**
 * Possible disc writing style/modes.
 * 
 * @author Vreixo Formoso
 * @since 0.1
 */
public enum WriteType {
	
	/** 
	 * Packet writing.
	 * currently unsupported, (for DVD Incremental Streaming use TAO)
	 */
	PACKET,

	/**
	 * <ul> 
	 * <li>With CD:                     Track At Once recording
	 *     2s gaps between tracks, no fonky lead-ins
	 *     
	 * <li>With sequential DVD-R[W]:    Incremental Streaming
	 * <li>With DVD-RAM/+RW:            Random Writeable (used sequentially)
	 * <li>With overwriteable DVD-RW:   Rigid Restricted Overwrite
	 * </ul> 
	 */
	TAO,

	/**
	 * <ul> 
	 * <li>With CD:                     Session At Once
	 *     Block type MUST be BURN_BLOCK_SAO
	 *     ts A70122: Currently not capable of mixing data and audio tracks.
	 * <li>With sequential DVD-R[W]:    Disc-at-once, DAO
	 *     Single session, single track, fixed size mandatory, (-dvd-compat)
	 */
	SAO,

	/** 
	 * With CD: Raw disc at once recording.
	 * all subcodes must be provided by lib or user
	 * only raw block types are supported
	 */
	RAW,

	/**
	 *  In replies this indicates that not any writing will work.
	 *  As parameter for inquiries it indicates that no particular write
	 *  mode shall is specified.
	 *  Do not use for setting a write mode for burning. It won't work.
	 */
	NONE

}
