in Scripts/Runtime/Wit.cs [537:584]
private void DeactivateRequest(UnityEvent onComplete = null, bool abort = false)
{
// Stop timeout coroutine
if (null != _timeLimitCoroutine)
{
StopCoroutine(_timeLimitCoroutine);
_timeLimitCoroutine = null;
}
// Stop recording
StopRecording();
_micDataBuffer?.Clear();
_writeBuffer = null;
// Deactivate transcription provider
_activeTranscriptionProvider?.Deactivate();
// Deactivate recording request
bool isRecordingRequestActive = IsRequestActive;
DeactivateWitRequest(_recordingRequest, abort);
// Abort transmitting requests
if (abort)
{
AbortQueue();
foreach (var request in _transmitRequests)
{
DeactivateWitRequest(request, true);
}
_transmitRequests.Clear();
}
// Transmit recording request
else if (isRecordingRequestActive && _minKeepAliveWasHit)
{
_transmitRequests.Add(_recordingRequest);
_recordingRequest = null;
events.OnMicDataSent?.Invoke();
}
// Disable below event
_minKeepAliveWasHit = false;
// No longer active
_isActive = false;
// Perform on complete event
onComplete?.Invoke();
}