Esempio n. 1
0
        /// <summary>
        /// Update online user state (can be used to move/deaf/mute users)
        /// </summary>
        /// <param name="user"></param>
        public void UpdateUserState(VirtualServerEntity.OnlineUser user)
        {
            // set user state
            var state = new User(user.Session, user.Id, user.Mute, user.Deaf, user.Supress,
#if MURMUR_123
                                 user.PrioritySpeaker,
#endif
                                 user.SelfMute, user.SelfDeaf,
#if MURMUR_123
                                 user.Recording,
#endif
                                 user.ChannelId, user.Name, user.OnlineSecs, user.BytesPerSec, user.Version, user.Release,
                                 user.Os, user.OsVersion, user.Identity, user.Context, user.Comment, user.Address, user.TcpOnly, user.Idlesecs
#if MURMUR_123380
                                 ,
                                 user.UdpPing,
                                 user.TcpPing
#endif
                                 );

            _server.setState(state);

            // update in cache
            if (_entity.OnlineUsers.ContainsKey(user.Id))
            {
                _entity.OnlineUsers[user.Id] = user;
            }
            else
            {
                _entity.OnlineUsers.Add(user.Id, user);
            }
        }
        /// <summary>
        /// Create online user object from Ice user object
        /// </summary>
        /// <param name="u"></param>
        /// <returns></returns>
        internal static VirtualServerEntity.OnlineUser getOnlineUser(User u)
        {
            var user = new VirtualServerEntity.OnlineUser()
            {
                Id          = u.userid,
                ChannelId   = u.channel,
                Name        = u.name,
                Address     = u.address,
                BytesPerSec = u.bytespersec,
                Comment     = u.comment,
                Context     = u.context,
                Deaf        = u.deaf,
                Identity    = u.identity,
                Idlesecs    = u.idlesecs,
                Mute        = u.mute,
                OnlineSecs  = u.onlinesecs,
                Os          = u.os,
                OsVersion   = u.osversion,
#if MURMUR_123
                PrioritySpeaker = u.prioritySpeaker,
                Recording       = u.recording,
#endif
                Release  = u.release,
                SelfDeaf = u.selfDeaf,
                SelfMute = u.selfMute,
                Session  = u.session,
                Supress  = u.suppress,
                TcpOnly  = u.tcponly,
#if MURMUR_124
                TcpPing = u.tcpPing,
                UdpPing = u.udpPing,
#endif
                Version = u.version,
            };

            return(user);
        }