Search Results for

    Show / Hide Table of Contents

    Class ClientSession<T>

    Handles a client session. Requires implementations of IAudioClient<T>, IAudioInput and IAudioOutput. Handles input, output along with filters over the entire client lifecycle. Adjusts to changes in configuration at runtime.

    Inheritance
    System.Object
    ClientSession<T>
    Namespace: Adrenak.UniVoice
    Assembly: cs.temp.dll.dll
    Syntax
    public class ClientSession<T> : IDisposable
    Type Parameters
    Name Description
    T

    Constructors

    ClientSession(IAudioClient<T>, IAudioInput, IAudioOutputFactory)

    Declaration
    public ClientSession(IAudioClient<T> client, IAudioInput input, IAudioOutputFactory outputFactory)
    Parameters
    Type Name Description
    IAudioClient<T> client
    IAudioInput input
    IAudioOutputFactory outputFactory

    ClientSession(IAudioClient<T>, IAudioInput, Func<IAudioOutput>)

    Declaration
    public ClientSession(IAudioClient<T> client, IAudioInput input, Func<IAudioOutput> outputProvider)
    Parameters
    Type Name Description
    IAudioClient<T> client
    IAudioInput input
    System.Func<IAudioOutput> outputProvider

    Properties

    Client

    Declaration
    public IAudioClient<T> Client { get; set; }
    Property Value
    Type Description
    IAudioClient<T>

    Input

    The IAudioInput that's used for sourcing outgoing audio

    Declaration
    public IAudioInput Input { get; set; }
    Property Value
    Type Description
    IAudioInput

    InputEnabled

    Whether input audio will be processed. If set to false, any input audio captured by Input would be ignored and would neither be processed by the InputFilters nor send via the Client This can be used to create "Push to talk" style features without having to use YourVoiceSettings

    Declaration
    public bool InputEnabled { get; set; }
    Property Value
    Type Description
    System.Boolean

    InputFilters

    The IAudioFilter that will be applied to the outgoing audio for all the peers. Note that filters are executed in the order they are present in this list

    Declaration
    public List<IAudioFilter> InputFilters { get; set; }
    Property Value
    Type Description
    System.Collections.Generic.List<IAudioFilter>

    OutputFactory

    The IAudioOutputFactory that creates the IAudioOutput of peers

    Declaration
    public IAudioOutputFactory OutputFactory { get; set; }
    Property Value
    Type Description
    IAudioOutputFactory

    OutputFilters

    The output IAudioFilter that will be applied to the incoming audio for all the peers. Note that filters are executed in the order they are present in this list.

    Declaration
    [Obsolete("OutputFilters has been removed. Use AddOutputFilter and RemoveOutputFilter instead.", true)]
    public List<IAudioFilter> OutputFilters { get; set; }
    Property Value
    Type Description
    System.Collections.Generic.List<IAudioFilter>

    OutputProvider

    The provider of IAudioOutput objects for peers. If this value is being set while peers already exist, the old outputs would be cleared and new onces will be created.

    Declaration
    public Func<IAudioOutput> OutputProvider { get; set; }
    Property Value
    Type Description
    System.Func<IAudioOutput>

    OutputsEnabled

    Whether any incoming audio from peers would be processed. If set to false, all incoming peer audio is ignored, and would neither be processed by the OutputFilters nor output to the IAudioOutput of any peer. This can be used to easily mute all the peers on the network. Note that this doesn't stop the audio data from arriving and would consume bandwidth. To stop reception completely by telling the server to not send audio, use YourVoiceSettings

    Declaration
    public bool OutputsEnabled { get; set; }
    Property Value
    Type Description
    System.Boolean

    PeerOutputs

    The IAudioOutput instances of each peer in the session

    Declaration
    public Dictionary<T, IAudioOutput> PeerOutputs { get; }
    Property Value
    Type Description
    System.Collections.Generic.Dictionary<T, IAudioOutput>

    Methods

    AddOutputFilter<TFilter>(Func<IAudioFilter>)

    Adds an filter to the output audio. Note: it is possible to register the same filter type more than once, this can be used to create some effects but can also cause errors.

    Declaration
    public void AddOutputFilter<TFilter>(Func<IAudioFilter> filterFactory)
        where TFilter : IAudioFilter
    Parameters
    Type Name Description
    System.Func<IAudioFilter> filterFactory

    A lambda method that returns an instance of the filter type

    Type Parameters
    Name Description
    TFilter

    The type of the filter to be added

    Dispose()

    Declaration
    public void Dispose()

    HasInputFilter<TFilter>()

    Checks if an input audio filter of a specific type has been registered.

    Declaration
    public bool HasInputFilter<TFilter>()
        where TFilter : IAudioFilter
    Returns
    Type Description
    System.Boolean

    True if the filter is registered, false otherwise

    Type Parameters
    Name Description
    TFilter

    The type of the filter to check

    HasOutputFilter<TFilter>()

    Checks if an output audio filter of a specific type has been registered.

    Declaration
    public bool HasOutputFilter<TFilter>()
        where TFilter : IAudioFilter
    Returns
    Type Description
    System.Boolean

    True if the filter is registered, false otherwise

    Type Parameters
    Name Description
    TFilter

    The type of the filter to check

    RemoveOutputFilter<TFilter>()

    Removes a previously registered output audio filter

    Declaration
    public void RemoveOutputFilter<TFilter>()
        where TFilter : IAudioFilter
    Type Parameters
    Name Description
    TFilter

    The type of the filter to be removed

    In This Article
    Back to top UniVoice documentation