/// <summary> /// Реагирует при запросе клиентом уровня звука на выходных каналах. /// </summary> /// <param name="aControlSession">Сессия клиенты, выполнившего запрос.</param> /// <param name="aChannelIds">Идентификаторы каналов.</param> /// <param name="aChannelLevels">Уровни каналов.</param> public void OnChannelData(ControlSession aControlSession, out int[] aChannelIds, out int[] aChannelLevels) { var channelsCount = configuration.GetOutChannelsCount(); aChannelIds = new int[channelsCount]; aChannelLevels = new int[channelsCount]; for (var i = 0; i < channelsCount; ++i) { var channel = configuration.GetOutChannel(i); var channelId = (int) channel.GetId(); aChannelIds[i] = channelId; aChannelLevels[i] = channelManager.GetChannelById(channelId).GetCurrentLevel(); } }
/// <summary> /// Реагирует при запросе клиентом информации о каналах. /// </summary> /// <param name="aControlSession">Сессия клиенты, выполнившего запрос.</param> /// <param name="aChannelIds">Выходной параметр - идентификаторы каналов.</param> /// <param name="aChannelNames">Выходной параметр - заголовки каналов.</param> public void OnChannelInfo(ControlSession aControlSession, out int[] aChannelIds, out string[] aChannelNames) { var channelsCount = configuration.GetOutChannelsCount(); aChannelIds = new int[channelsCount]; aChannelNames = new string[channelsCount]; for (var i = 0; i < channelsCount; ++i) { var channel = configuration.GetOutChannel(i); aChannelIds[i] = (int) channel.GetId(); aChannelNames[i] = channel.GetName(); } }
/// <summary> /// Реагирует при получении от клиента команды на прикращение записи голосовгосообщения. /// </summary> /// <param name="aControlSession">Сессия клиента, выполнившегокоманду.</param> public void OnStopRecordSound(ControlSession aControlSession) { channelManager.StopRecord(aControlSession.GetHashCode()); }
/// <summary> /// Реагирует при получении от клиента команды на запись звукового сообщения. /// </summary> /// <param name="aControlSession">Сессия клиента, выполнившего команду.</param> /// <param name="aInputLineId">Идентификатор входного канала.</param> /// <param name="aChannelsIds">Идентификаторы каналов для вывода сообщения.</param> public void OnStartRecordSound(ControlSession aControlSession, int aInputLineId, int[] aChannelsIds) { channelManager.StartRecord(aInputLineId, aChannelsIds, aControlSession.GetHashCode()); }
/// <summary> /// Реагирует при получении от клиента команды на выключение аудиосервера. /// </summary> /// <param name="aControlSession">Сессия клиента, пославшего команды выключения.</param> public void OnShutdown(ControlSession aControlSession) { Uninitialize(); Logger.Info("Сервер был остановлен с консоли."); Process.GetCurrentProcess().Kill(); }
/// <summary> /// Реагирует при запросе количества управляющий соединений. /// </summary> /// <param name="aControlSession">Сессия клиента, выполнившего запрос.</param> /// <param name="aSessionCount">Выходной параметр - количество управляющий сессий.</param> public void OnQueryStatus(ControlSession aControlSession, out int aSessionCount) { aSessionCount = controlListener.GetSessionsCount(); }
/// <summary> /// Реагирует при запросе клиентом входных каналов. /// </summary> /// <param name="aControlSession">Сесссия клиента, выполнившего запрос.</param> /// <param name="aInputLineIds">Выходной параметр - идентификаторы входных каналов.</param> /// <param name="aInputLineNames">Выходной параметр - заголовки входных каналов.</param> public void OnInputLine(ControlSession aControlSession, out int[] aInputLineIds, out string[] aInputLineNames) { var inputLinesCount = configuration.GetInChannelsCount(); aInputLineIds = new int[inputLinesCount]; aInputLineNames = new string[inputLinesCount]; for (var i = 0; i < inputLinesCount; ++i) { var inputLine = configuration.GetInChannel(i); aInputLineIds[i] = (int) inputLine.GetId(); aInputLineNames[i] = inputLine.GetName(); } }
/// <summary> /// Реагирует при потерисоединения с клиентом. /// </summary> /// <param name="aControlSession">ControlSession, для которой потеряна связь.</param> public void OnCloseConnection(ControlSession aControlSession) { controlListener.OnCloseConnection(aControlSession); }