From a6662645b35d5fb8288025e79fd8a8e36af9f4c4 Mon Sep 17 00:00:00 2001 From: Date: Fri, 29 Aug 2008 20:31:12 +0000 Subject: [PATCH] Implemented avatar sounds in Simian git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@2184 52acb1d6-8a22-11de-b505-999d5b087335 --- Programs/Simian/Extensions/AvatarManager.cs | 21 +++++++++++++++++++++ Programs/Simian/Extensions/Movement.cs | 14 -------------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/Programs/Simian/Extensions/AvatarManager.cs b/Programs/Simian/Extensions/AvatarManager.cs index de92e1fc..adb30388 100644 --- a/Programs/Simian/Extensions/AvatarManager.cs +++ b/Programs/Simian/Extensions/AvatarManager.cs @@ -24,6 +24,7 @@ namespace Simian.Extensions Server.UDP.RegisterPacketCallback(PacketType.AgentIsNowWearing, new PacketCallback(AgentIsNowWearingHandler)); Server.UDP.RegisterPacketCallback(PacketType.AgentSetAppearance, new PacketCallback(AgentSetAppearanceHandler)); Server.UDP.RegisterPacketCallback(PacketType.AgentAnimation, new PacketCallback(AgentAnimationHandler)); + Server.UDP.RegisterPacketCallback(PacketType.SoundTrigger, new PacketCallback(SoundTriggerHandler)); Server.UDP.RegisterPacketCallback(PacketType.ViewerEffect, new PacketCallback(ViewerEffectHandler)); Server.UDP.RegisterPacketCallback(PacketType.UUIDNameRequest, new PacketCallback(UUIDNameRequestHandler)); } @@ -70,6 +71,20 @@ namespace Simian.Extensions Server.UDP.BroadcastPacket(sendAnim, PacketCategory.State); } + public void TriggerSound(Agent agent, UUID soundID, float gain) + { + SoundTriggerPacket sound = new SoundTriggerPacket(); + sound.SoundData.Handle = Server.RegionHandle; + sound.SoundData.ObjectID = agent.AgentID; + sound.SoundData.ParentID = agent.AgentID; + sound.SoundData.OwnerID = agent.AgentID; + sound.SoundData.Position = agent.Avatar.Position; + sound.SoundData.SoundID = soundID; + sound.SoundData.Gain = gain; + + Server.UDP.BroadcastPacket(sound, PacketCategory.State); + } + void AgentAnimationHandler(Packet packet, Agent agent) { AgentAnimationPacket animPacket = (AgentAnimationPacket)packet; @@ -215,6 +230,12 @@ namespace Simian.Extensions Server.UDP.BroadcastPacket(appearance, PacketCategory.State); } + void SoundTriggerHandler(Packet packet, Agent agent) + { + SoundTriggerPacket trigger = (SoundTriggerPacket)packet; + TriggerSound(agent, trigger.SoundData.SoundID, trigger.SoundData.Gain); + } + void UUIDNameRequestHandler(Packet packet, Agent agent) { UUIDNameRequestPacket request = (UUIDNameRequestPacket)packet; diff --git a/Programs/Simian/Extensions/Movement.cs b/Programs/Simian/Extensions/Movement.cs index 8c989fff..3e8aa900 100644 --- a/Programs/Simian/Extensions/Movement.cs +++ b/Programs/Simian/Extensions/Movement.cs @@ -58,20 +58,6 @@ namespace Simian.Extensions updateTimer.Dispose(); } - public void TriggerSound(Agent agent, UUID soundID) - { - SoundTriggerPacket sound = new SoundTriggerPacket(); - sound.SoundData.Handle = server.RegionHandle; - sound.SoundData.ObjectID = agent.AgentID; - sound.SoundData.ParentID = agent.AgentID; - sound.SoundData.OwnerID = agent.AgentID; - sound.SoundData.Position = agent.Avatar.Position; - sound.SoundData.SoundID = soundID; - sound.SoundData.Gain = 1f; - - server.UDP.BroadcastPacket(sound, PacketCategory.State); - } - void UpdateTimer_Elapsed(object sender) { int tick = Environment.TickCount;