public static GATData ToGATData( this AudioClip clip, GATDataAllocationMode mode )
{
GATData data;
float[] tempArray;
tempArray = new float[ clip.samples ];
clip.GetData( tempArray, 0 );
#if UNITY_EDITOR
if( Application.isPlaying == false )
{
mode = GATDataAllocationMode.Unmanaged;
}
#endif
if( mode == GATDataAllocationMode.Managed )
{
data = GATManager.GetDataContainer( clip.samples );
data.CopyFrom( tempArray, 0, 0, clip.samples );
}
else if( mode == GATDataAllocationMode.Fixed )
{
data = GATManager.GetFixedDataContainer( clip.samples, "ClipData: "+clip.name );
data.CopyFrom( tempArray, 0, 0, clip.samples );
}
else
{
data = new GATData( tempArray );
}
return data;
}