/* 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();
}
}
}