/* Copyright (C) 2014 DaikonForge */ namespace DaikonForge.VoIP { using UnityEngine; /// /// Event handler for when new audio data becomes available /// public delegate void AudioBufferReadyHandler( BigArray newData, int frequency ); public delegate void AudioIntHandler(int length); public delegate void AudioStateHandler(); /// /// Base class for audio input devices /// public abstract class AudioInputDeviceBase : MonoBehaviour { /// /// Called when new audio data becomes available /// public event AudioBufferReadyHandler OnAudioBufferReady; public event AudioIntHandler OnRecordingEnd; public event AudioStateHandler OnRecordingStart; public event AudioStateHandler OnNoRecordingPerimission; /// /// Start recording audio data /// public abstract void StartRecording(); /// /// Stop recording audio data /// public abstract void StopRecording(); protected void bufferReady( BigArray newData, int frequency ) { if( OnAudioBufferReady != null ) OnAudioBufferReady( newData, frequency ); } protected void RecordingFinish(int length) { if (OnRecordingEnd != null) OnRecordingEnd(length); } protected void RecordingStart() { OnRecordingStart?.Invoke(); } protected void NoRecordingPerimissions() { if (OnNoRecordingPerimission != null) OnNoRecordingPerimission(); } } }