コード例 #1
0
ファイル: Sounds.cs プロジェクト: jhurliman/simian
        private void SendPreloadSoundsPacket(QueuedInterestListEvent[] eventDatas, IScenePresence presence)
        {
            if (!(presence is LLAgent) || presence.InterestList == null)
            {
                return;
            }
            LLAgent agent = (LLAgent)presence;

            PreloadSoundPacket preload = new PreloadSoundPacket();

            preload.DataBlock = new PreloadSoundPacket.DataBlockBlock[eventDatas.Length];

            for (int i = 0; i < eventDatas.Length; i++)
            {
                object[]     state   = (object[])eventDatas[i].Event.State;
                ISceneEntity source  = (ISceneEntity)state[0];
                UUID         soundID = (UUID)state[1];

                preload.DataBlock[i] = new PreloadSoundPacket.DataBlockBlock
                {
                    ObjectID = source.ID, OwnerID = source.OwnerID, SoundID = soundID
                };
            }

            m_udp.SendPacket(agent, preload, ThrottleCategory.Task, true);
        }
コード例 #2
0
ファイル: SoundManager.cs プロジェクト: scatterp/plexview
        /// <summary>Process an incoming packet and raise the appropriate events</summary>
        /// <param name="sender">The sender</param>
        /// <param name="e">The EventArgs object containing the packet data</param>
        protected void PreloadSoundHandler(object sender, PacketReceivedEventArgs e)
        {
            if (m_PreloadSound != null)
            {
                PreloadSoundPacket preload = (PreloadSoundPacket)e.Packet;

                foreach (PreloadSoundPacket.DataBlockBlock data in preload.DataBlock)
                {
                    OnPreloadSound(new PreloadSoundEventArgs(e.Simulator, data.SoundID, data.OwnerID, data.ObjectID));
                }
            }
        }
コード例 #3
0
        protected void PreloadSoundHandler(object sender, PacketReceivedEventArgs e)
        {
            var simulator = e.Simulator;
            var packet = e.Packet;

            if (!MaintainSounds) return;
            if (!IsMaster(simulator)) return;

            PreloadSoundPacket preload = (PreloadSoundPacket)packet;
            foreach (PreloadSoundPacket.DataBlockBlock data in preload.DataBlock)
            {

                Sound_OnPreloadSound(this, new PreloadSoundEventArgs(simulator, data.SoundID, data.OwnerID, data.ObjectID));
            }
        }
コード例 #4
0
        protected void PreloadSoundHandler(Packet packet, Simulator simulator)
        {
            PreloadSoundPacket preload = (PreloadSoundPacket)packet;

            if (OnPreloadSound != null)
            {
                foreach (PreloadSoundPacket.DataBlockBlock data in preload.DataBlock)
                {
                    try
                    {
                        OnPreloadSound(data.SoundID, data.OwnerID, data.ObjectID);
                    }
                    catch (Exception e) { Logger.Log(e.Message, Helpers.LogLevel.Error, Client, e); }
                }
            }
        }
コード例 #5
0
ファイル: Sounds.cs プロジェクト: thoys/simian
        private void SendPreloadSoundsPacket(QueuedInterestListEvent[] eventDatas, IScenePresence presence)
        {
            if (!(presence is LLAgent) || presence.InterestList == null)
                return;
            LLAgent agent = (LLAgent)presence;

            PreloadSoundPacket preload = new PreloadSoundPacket();
            preload.DataBlock = new PreloadSoundPacket.DataBlockBlock[eventDatas.Length];

            for (int i = 0; i < eventDatas.Length; i++)
            {
                object[] state = (object[])eventDatas[i].Event.State;
                ISceneEntity source = (ISceneEntity)state[0];
                UUID soundID = (UUID)state[1];

                preload.DataBlock[i] = new PreloadSoundPacket.DataBlockBlock
                    { ObjectID = source.ID, OwnerID = source.OwnerID, SoundID = soundID };
            }

            m_udp.SendPacket(agent, preload, ThrottleCategory.Task, true);
        }