TC-44 New TestClient command ownerprims to display prim counts TC-43 Overhaul TestClient help menu system git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@2000 52acb1d6-8a22-11de-b505-999d5b087335
70 lines
2.3 KiB
C#
70 lines
2.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading;
|
|
using OpenMetaverse;
|
|
using OpenMetaverse.Packets;
|
|
|
|
namespace OpenMetaverse.TestClient
|
|
{
|
|
public class ParcelVoiceInfoCommand : Command
|
|
{
|
|
private AutoResetEvent ParcelVoiceInfoEvent = new AutoResetEvent(false);
|
|
private string VoiceRegionName = null;
|
|
private int VoiceLocalID = -1;
|
|
private string VoiceChannelURI = null;
|
|
|
|
public ParcelVoiceInfoCommand(TestClient testClient)
|
|
{
|
|
Name = "voiceparcel";
|
|
Description = "obtain parcel voice info. Usage: voiceparcel";
|
|
Category = CommandCategory.Other;
|
|
|
|
Client = testClient;
|
|
}
|
|
|
|
private bool registered = false;
|
|
|
|
private bool IsVoiceManagerRunning()
|
|
{
|
|
if (null == Client.VoiceManager) return false;
|
|
|
|
if (!registered)
|
|
{
|
|
Client.VoiceManager.OnParcelVoiceInfo += Voice_OnParcelVoiceInfo;
|
|
registered = true;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
|
|
public override string Execute(string[] args, UUID fromAgentID)
|
|
{
|
|
if (!IsVoiceManagerRunning())
|
|
return String.Format("VoiceManager not running for {0}", fromAgentID);
|
|
|
|
if (!Client.VoiceManager.RequestParcelVoiceInfo())
|
|
{
|
|
return "RequestParcelVoiceInfo failed. Not available for the current grid?";
|
|
}
|
|
ParcelVoiceInfoEvent.WaitOne(30 * 1000, false);
|
|
|
|
if (String.IsNullOrEmpty(VoiceRegionName) && -1 == VoiceLocalID)
|
|
{
|
|
return String.Format("Parcel Voice Info request for {0} failed.", Client.Self.Name);
|
|
}
|
|
|
|
return String.Format("Parcel Voice Info request for {0}: region name \"{1}\", parcel local id {2}, channel URI {3}",
|
|
Client.Self.Name, VoiceRegionName, VoiceLocalID, VoiceChannelURI);
|
|
}
|
|
|
|
void Voice_OnParcelVoiceInfo(string regionName, int localID, string channelURI)
|
|
{
|
|
VoiceRegionName = regionName;
|
|
VoiceLocalID = localID;
|
|
VoiceChannelURI = channelURI;
|
|
|
|
ParcelVoiceInfoEvent.Set();
|
|
}
|
|
}
|
|
}
|