// --------------------------------------------------------------------------------------------------------------------
//
// Copyright (c) VRMADA, All rights reserved.
//
// --------------------------------------------------------------------------------------------------------------------
using System.Collections.Generic;
using UltimateXR.Avatar;
using UnityEngine;
namespace UltimateXR.Networking
{
///
/// Interface for classes that implement network voice transmission functionality.
///
public interface IUxrNetworkVoiceImplementation : IUxrNetworkSdk
{
#region Public Types & Data
///
/// Gets the compatible networking SDKs that this voice implementation can work with.
///
IEnumerable CompatibleNetworkSDKs { get; }
#endregion
#region Public Methods
///
/// Adds global support for the SDK if necessary, by adding required GameObjects and/or components to the
/// or the scene where it is located.
///
///
/// The networking SDK that is used. Since a voice implementation might support more than one
/// networking SDK, this parameter tells which networking SDK is currently selected
///
/// The network manager
/// Returns a list of GameObjects that were created, if any
/// Returns a list of components that were created, if any
void SetupGlobal(string networkingSdk, UxrNetworkManager networkManager, out List newGameObjects, out List newComponents);
///
/// Adds network voice functionality to an .
///
///
/// The networking SDK that is used. Since a voice implementation might support more than one
/// networking SDK, this parameter tells which networking SDK is currently selected
///
/// The avatar to add voice functionality to
/// Returns a list of GameObjects that were created, if any
/// Returns a list of components that were created, if any
void SetupAvatar(string networkingSdk, UxrAvatar avatar, out List newGameObjects, out List newComponents);
#endregion
}
}