//==============================================================================
//	Created on: 10/12/2003
//	A single music file
//
//	Written by Ron Prestenback
//	© 2003, Epic Games, Inc.  All Rights Reserved
//==============================================================================
class Stream extends StreamBase
	Native;

cpptext
{
	UBOOL   LoadID3Tag();
	UBOOL   SaveID3Tag();
}

var() editconst protected                  int             Handle;
var() editconst private   const            string          DefaultExtension; // What to use if no extension specified
var() editconst protected const editinline StreamTag       IDTag;
var() editconst private   const editinline FilePath        PathName;
var() editconst private   const            EFileType       Type;           // Type of file (mp3, wav, ogg)
var() editconst           const bool                       bReadOnly;      // Whether this stream is read-only (cannot be deleted)

native final function bool   SaveID3Tag(); // not yet implemented
native final function bool   LoadID3Tag();

function bool            IsReadOnly()  { return bReadOnly; }
function int             GetHandle()   { return Handle;    }
function StreamTag       GetTag()      { return IDTag;     }
function EFileType GetType()           { return Type;      }

function string          GetDirectory()  { return PathName.Directory;                   }
function string          GetFileName()   { return PathName.FileName;                    }
function string          GetExtension()  { return PathName.Extension;                   }
function string          GetPath()       { return PathName.FullPath;                    }
function string          GetFullName()   { return GetFileName() $ "." $ GetExtension(); }


function string GetSongTitle()
{
	if ( IDTag == None || IDTag.Title.FieldValue == "" )
		return GetFileName();

	return IDTag.Title.FieldValue;
}

event bool SetHandle( int NewHandle )
{
	Handle = NewHandle;
	return true;
}

function DumpScriptTag()
{
	IDTag.DumpScriptTag();
}

function DumpTags()
{
	IDTag.DumpTag();
}

DefaultProperties
{
	DefaultExtension="mp3"
	Type=FILE_None
	Handle=-1
}
