//======= Copyright (c) Valve Corporation, All rights reserved. ===============
//
// Purpose: Play one-shot sounds as opposed to continuos/looping ones
//
//=============================================================================

using UnityEngine;
using System.Collections;

namespace Valve.VR.InteractionSystem
{
	//-------------------------------------------------------------------------
	public class SoundPlayOneshot : MonoBehaviour
	{
		public AudioClip[] waveFiles;
		private AudioSource thisAudioSource;

		public float volMin;
		public float volMax;

		public float pitchMin;
		public float pitchMax;

		public bool playOnAwake;


		//-------------------------------------------------
		void Awake()
		{
			thisAudioSource = GetComponent<AudioSource>();

			if ( playOnAwake )
			{
				Play();
			}
		}


		//-------------------------------------------------
		public void Play()
		{
			if ( thisAudioSource != null && thisAudioSource.isActiveAndEnabled && !Util.IsNullOrEmpty( waveFiles ) )
			{
				//randomly apply a volume between the volume min max
				thisAudioSource.volume = Random.Range( volMin, volMax );

				//randomly apply a pitch between the pitch min max
				thisAudioSource.pitch = Random.Range( pitchMin, pitchMax );

				// play the sound
				thisAudioSource.PlayOneShot( waveFiles[Random.Range( 0, waveFiles.Length )] );
			}
		}


		//-------------------------------------------------
		public void Pause()
		{
			if ( thisAudioSource != null )
			{
				thisAudioSource.Pause();
			}
		}


		//-------------------------------------------------
		public void UnPause()
		{
			if ( thisAudioSource != null )
			{
				thisAudioSource.UnPause();
			}
		}
	}
}