using System;
using UnityEngine;

public class AudioSourceParent : MonoBehaviour
{
	private AudioSourceMgr AudioMan
	{
		get
		{
			return this.m_AudioMan;
		}
	}

	public void AttachVoice(Transform f_trParent, AudioSourceParent.dgOnDettach f_dgDetattchCallBack)
	{
		this.m_dgOnDetattch = f_dgDetattchCallBack;
		this.m_AudioMan = GameMain.Instance.SoundMgr.AllocVoice(f_trParent, true);
	}

	public void OnDestroy()
	{
		if (this.m_dgOnDetattch != null)
		{
			this.m_dgOnDetattch(this);
			this.m_dgOnDetattch = null;
		}
		if (this.m_AudioMan != null)
		{
			GameMain.Instance.SoundMgr.FreeVoice(this.m_AudioMan, false);
			this.m_AudioMan = null;
		}
	}

	public AudioSourceMgr m_AudioMan;

	private AudioSourceParent.dgOnDettach m_dgOnDetattch;

	public delegate void dgOnDettach(AudioSourceParent f_asp);
}
