/*
 * JPEGData
 *
 * Copyright (c) 2005, 2006 Marco Schmidt.
 * All rights reserved.
 */
package net.sourceforge.jiu.codecs.jpeg;

import java.util.Vector;

/**
 * Data for decoding or encoding images from or to 
 * JPEG File Interchange Format (JFIF) files.
 * @author Marco Schmidt
 * @since 0.13.0
 */
public class JPEGData
{
	private JPEGFrame frame;
	private Vector huffmanTables = new Vector();
	private Vector quantTables = new Vector();
	private Vector scans = new Vector();

	public void addQuantizationTable(JPEGQuantizationTable table)
	{
		quantTables.add(table);
	}

	public void addHuffmanTable(JPEGHuffmanTable table)
	{
		huffmanTables.add(table);
	}

	public void addScan(JPEGScan scan)
	{
		scans.add(scan);
	}

	public JPEGFrame getFrame()
	{
		return frame;
	}

	/**
	 * Return a quantization table with a given id or
	 * null on failure to find it.
	 * @param id integer id value of table
	 * @return actual table or null on failure
	 */
	public JPEGQuantizationTable getQuantizationTable(int id)
	{
		JPEGQuantizationTable table = null;
		int index = 0;
		while (index < quantTables.size())
		{
			table = (JPEGQuantizationTable)quantTables.elementAt(index++);
			if (table.getId() == id)
			{
				return table;
			}
		}
		return null;
	}

	public void setFrame(JPEGFrame newFrame)
	{
		frame = newFrame;
	}
}
