// Copyright 2004, Microsoft Corporation
// Sample Code - Use restricted to terms of use defined in the accompanying license agreement (EULA.doc)

//--------------------------------------------------------------
// Autogenerated by XSDObjectGen version 1.4.4.0
// Schema file: FilePackagerLayout.xsd
// Creation Date: 10/5/2007 2:19:52 PM
//--------------------------------------------------------------

using System;
using System.Xml.Serialization;
using System.Collections;
using System.Xml.Schema;
using System.ComponentModel;

namespace AK.Wwise.FilePackager.PackageLayout
{

	public struct Declarations
	{
		public const string SchemaVersion = "";
	}

	[Serializable]
	public enum Type
	{
		[XmlEnum(Name="StreamedAudio")] StreamedAudio,
		[XmlEnum(Name="SoundBank")] SoundBank
	}


	[Serializable]
	[EditorBrowsable(EditorBrowsableState.Advanced)]
	public class FileCollection : ArrayList
	{
		public File Add(File obj)
		{
			base.Add(obj);
			return obj;
		}

		public File Add()
		{
			return Add(new File());
		}

		public void Insert(int index, File obj)
		{
			base.Insert(index, obj);
		}

		public void Remove(File obj)
		{
			base.Remove(obj);
		}

		new public File this[int index]
		{
			get { return (File) base[index]; }
			set { base[index] = value; }
		}
	}



	[XmlRoot(ElementName="FilePackagerLayout",IsNullable=false),Serializable]
	public class FilePackagerLayout
	{

		[XmlAttribute(AttributeName="SchemaVersion",Form=XmlSchemaForm.Unqualified,DataType="unsignedInt")]
		[EditorBrowsable(EditorBrowsableState.Advanced)]
		public uint __SchemaVersion;
		
		[XmlIgnore]
		[EditorBrowsable(EditorBrowsableState.Advanced)]
		public bool __SchemaVersionSpecified;
		
		[XmlIgnore]
		public uint SchemaVersion
		{ 
			get { return __SchemaVersion; }
			set { __SchemaVersion = value; __SchemaVersionSpecified = true; }
		}

		[XmlElement(ElementName="OutputFileName",IsNullable=false,Form=XmlSchemaForm.Qualified,DataType="string")]
		[EditorBrowsable(EditorBrowsableState.Advanced)]
		public string __OutputFileName;
		
		[XmlIgnore]
		public string OutputFileName
		{ 
			get { return __OutputFileName; }
			set { __OutputFileName = value; }
		}

		[XmlElement(ElementName="DefaultBlockSize",IsNullable=false,Form=XmlSchemaForm.Qualified,DataType="unsignedInt")]
		[EditorBrowsable(EditorBrowsableState.Advanced)]
		public uint __DefaultBlockSize;
		
		[XmlIgnore]
		[EditorBrowsable(EditorBrowsableState.Advanced)]
		public bool __DefaultBlockSizeSpecified;
		
		[XmlIgnore]
		public uint DefaultBlockSize
		{ 
			get { return __DefaultBlockSize; }
			set { __DefaultBlockSize = value; __DefaultBlockSizeSpecified = true; }
		}

		[XmlElement(Type=typeof(FileList),ElementName="FileList",IsNullable=false,Form=XmlSchemaForm.Qualified)]
		[EditorBrowsable(EditorBrowsableState.Advanced)]
		public FileList __FileList;
		
		[XmlIgnore]
		public FileList FileList
		{
			get
			{
				if (__FileList == null) __FileList = new FileList();		
				return __FileList;
			}
			set {__FileList = value;}
		}

		public FilePackagerLayout()
		{
		}
	}


	[XmlType(TypeName="FileList"),Serializable]
	public class FileList
	{
		[System.Runtime.InteropServices.DispIdAttribute(-4)]
		public IEnumerator GetEnumerator() 
		{
            return FileCollection.GetEnumerator();
		}

		public File Add(File obj)
		{
			return FileCollection.Add(obj);
		}

		[XmlIgnore]
		public File this[int index]
		{
			get { return (File) FileCollection[index]; }
		}

		[XmlIgnore]
        public int Count 
		{
            get { return FileCollection.Count; }
        }

        public void Clear()
		{
			FileCollection.Clear();
        }

		public File Remove(int index) 
		{ 
            File obj = FileCollection[index];
            FileCollection.Remove(obj);
			return obj;
        }

        public void Remove(object obj)
		{
            FileCollection.Remove(obj);
        }

		[XmlElement(Type=typeof(File),ElementName="File",IsNullable=false,Form=XmlSchemaForm.Qualified)]
		[EditorBrowsable(EditorBrowsableState.Advanced)]
		public FileCollection __FileCollection;
		
		[XmlIgnore]
		public FileCollection FileCollection
		{
			get
			{
				if (__FileCollection == null) __FileCollection = new FileCollection();
				return __FileCollection;
			}
			set {__FileCollection = value;}
		}

		public FileList()
		{
		}
	}


	[XmlType(TypeName="File"),Serializable]
	public class File
	{

		[XmlAttribute(AttributeName="Id",Form=XmlSchemaForm.Unqualified,DataType="unsignedInt")]
		[EditorBrowsable(EditorBrowsableState.Advanced)]
		public uint __Id;
		
		[XmlIgnore]
		[EditorBrowsable(EditorBrowsableState.Advanced)]
		public bool __IdSpecified;
		
		[XmlIgnore]
		public uint Id
		{ 
			get { return __Id; }
			set { __Id = value; __IdSpecified = true; }
		}

		[XmlAttribute(AttributeName="Language",Form=XmlSchemaForm.Unqualified,DataType="string")]
		[EditorBrowsable(EditorBrowsableState.Advanced)]
		public string __Language;
		
		[XmlIgnore]
		public string Language
		{ 
			get { return __Language; }
			set { __Language = value; }
		}

		[XmlAttribute(AttributeName="Type",Form=XmlSchemaForm.Unqualified)]
		[EditorBrowsable(EditorBrowsableState.Advanced)]
		public Type __Type;
		
		[XmlIgnore]
		[EditorBrowsable(EditorBrowsableState.Advanced)]
		public bool __TypeSpecified;
		
		[XmlIgnore]
		public Type Type
		{ 
			get { return __Type; }
			set { __Type = value; __TypeSpecified = true; }
		}

		public File()
		{
		}
	}
}
