// // /*===============================================================================
// // Copyright (C) 2024 PhantomsXR Ltd. All Rights Reserved.
// //
// // This file is part of the Assembly-CSharp.
// //
// // The Nin1 cannot be copied, distributed, or made available to
// // third-parties for commercial purposes without written permission of PhantomsXR Ltd.
// //
// // Contact nswell@phantomsxr.com for licensing requests.
// // ===============================================================================*/
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Phantom.XRMOD.GameServices.Runtime
{
public interface IVoiceProvider
{
void Initialize(string _configuration, Voice3DProperties _voice3DProperties);
void DeInitialize();
///
/// Join voice channel by channel name
///
/// will join channel's name
/// The channel type is indicated by the method used to initiate the channel join.
/// JoinEchoChannelAsync joins an echo channel, JoinGroupChannelAsyc joins a group channel,
/// and JoinPositionalChannelAsync joins a positional channel.
///
void JoinVoiceChannel(string _channelName, JoinChannelType _joinChannelType);
///
/// Leave current voice channel
///
void LeaveVoiceChannel();
///
/// Create a new voice channel by channel name
///
/// will create channel's name
/// The channel type is indicated by the method used to initiate the channel join.
/// JoinEchoChannelAsync joins an echo channel, JoinGroupChannelAsyc joins a group channel,
/// and JoinPositionalChannelAsync joins a positional channel.
///
void CreateVoiceChannel(string _channelName, JoinChannelType _joinChannelType);
///
/// Mute self microphone
///
/// Muted state, True is muted otherwise is unmuted
void MuteSelfMicrophone(bool _muted);
///
/// Mute other user microphone
///
/// Muted state, True is muted otherwise is unmuted
/// Channel name
/// Mute target
void MuteOtherMicrophone(bool _muted, string _channleId, string _userId);
///
/// "Block" a user, bidirectionally muting audio/text between that player and the local user.
///
/// Block state, True is blocked otherwise is unblock
/// Channel name
/// The userid to bidirectionally mute or unmute
void BlockUser(bool _block, string _channelId, string _userId);
///
/// All participant
///
///
List GetParticipants();
VoiceParticipant GetParticipant(string _userId);
}
}