Exemple #1
0
        /// <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();
            }
        }
Exemple #2
0
        /// <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();
            }
        }
Exemple #3
0
 /// <summary>
 /// Реагирует при получении от клиента команды на прикращение записи голосовгосообщения.
 /// </summary>
 /// <param name="aControlSession">Сессия клиента, выполнившегокоманду.</param>
 public void OnStopRecordSound(ControlSession aControlSession)
 {
     channelManager.StopRecord(aControlSession.GetHashCode());
 }
Exemple #4
0
 /// <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());
 }
Exemple #5
0
 /// <summary>
 /// Реагирует при получении от клиента команды на выключение аудиосервера.
 /// </summary>
 /// <param name="aControlSession">Сессия клиента, пославшего команды выключения.</param>
 public void OnShutdown(ControlSession aControlSession)
 {
     Uninitialize();
     Logger.Info("Сервер был остановлен с консоли.");
     Process.GetCurrentProcess().Kill();
 }
Exemple #6
0
 /// <summary>
 /// Реагирует при запросе количества управляющий соединений.
 /// </summary>
 /// <param name="aControlSession">Сессия клиента, выполнившего запрос.</param>
 /// <param name="aSessionCount">Выходной параметр - количество управляющий сессий.</param>
 public void OnQueryStatus(ControlSession aControlSession, out int aSessionCount)
 {
     aSessionCount = controlListener.GetSessionsCount();
 }
Exemple #7
0
 /// <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();
     }
 }
Exemple #8
0
 /// <summary>
 /// Реагирует при потерисоединения с клиентом.
 /// </summary>
 /// <param name="aControlSession">ControlSession, для которой потеряна связь.</param>
 public void OnCloseConnection(ControlSession aControlSession)
 {
     controlListener.OnCloseConnection(aControlSession);
 }