/// <summary>
/// Extracts the audio data from an AudioClip and sets it in a GATData object.
/// Memory is allocated according to the specified GATDataAllocationMode.
/// </summary>
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);
}