From b2c6f316e16e9bb33f81997319a4130fa683bc48 Mon Sep 17 00:00:00 2001 From: MW Date: Thu, 19 Jul 2007 20:21:02 +0000 Subject: Some work on Inventory (not yet finished or enabled) --- OpenSim/Region/Capabilities/Caps.cs | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) (limited to 'OpenSim/Region/Capabilities') diff --git a/OpenSim/Region/Capabilities/Caps.cs b/OpenSim/Region/Capabilities/Caps.cs index 110ba6f..ab2b3a6 100644 --- a/OpenSim/Region/Capabilities/Caps.cs +++ b/OpenSim/Region/Capabilities/Caps.cs @@ -38,7 +38,7 @@ using OpenSim.Region.Caches; namespace OpenSim.Region.Capabilities { - public delegate void UpLoadedTexture(LLUUID assetID, LLUUID inventoryItem, byte[] data); + public delegate void UpLoadedTexture(string assetName, LLUUID assetID, LLUUID inventoryItem, byte[] data); public class Caps { @@ -223,12 +223,14 @@ namespace OpenSim.Region.Capabilities /// public LLSDAssetUploadResponse NewAgentInventoryRequest(LLSDAssetUploadRequest llsdRequest) { + // Console.WriteLine("asset upload request via CAPS"); + string assetName = llsdRequest.name; string capsBase = "/CAPS/" + m_capsObjectPath; LLUUID newAsset = LLUUID.Random(); LLUUID newInvItem = LLUUID.Random(); string uploaderPath = Util.RandomClass.Next(5000, 8000).ToString("0000"); - AssetUploader uploader = new AssetUploader(newAsset, newInvItem, capsBase + uploaderPath, this.httpListener); + AssetUploader uploader = new AssetUploader(assetName, newAsset, newInvItem, capsBase + uploaderPath, this.httpListener); httpListener.AddStreamHandler(new BinaryStreamHandler("POST", capsBase + uploaderPath, uploader.uploaderCaps)); string uploaderURL = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + capsBase + uploaderPath; @@ -245,14 +247,14 @@ namespace OpenSim.Region.Capabilities /// /// /// - public void UploadCompleteHandler(LLUUID assetID, LLUUID inventoryItem, byte[] data) + public void UploadCompleteHandler(string assetName, LLUUID assetID, LLUUID inventoryItem, byte[] data) { AssetBase asset; asset = new AssetBase(); asset.FullID = assetID; asset.Type = 0; asset.InvType = 0; - asset.Name = "UploadedTexture" + Util.RandomClass.Next(1, 1000).ToString("000"); + asset.Name = assetName; //"UploadedTexture" + Util.RandomClass.Next(1, 1000).ToString("000"); asset.Data = data; this.assetCache.AddAsset(asset); } @@ -265,6 +267,8 @@ namespace OpenSim.Region.Capabilities private LLUUID newAssetID; private LLUUID inventoryItemID; private BaseHttpServer httpListener; + private bool SaveImages = true; + private string m_assetName = ""; /// /// @@ -273,8 +277,9 @@ namespace OpenSim.Region.Capabilities /// /// /// - public AssetUploader(LLUUID assetID, LLUUID inventoryItem, string path, BaseHttpServer httpServer) + public AssetUploader(string assetName, LLUUID assetID, LLUUID inventoryItem, string path, BaseHttpServer httpServer) { + m_assetName = assetName; newAssetID = assetID; inventoryItemID = inventoryItem; uploaderPath = path; @@ -299,13 +304,27 @@ namespace OpenSim.Region.Capabilities res = LLSDHelpers.SerialiseLLSDReply(uploadComplete); httpListener.RemoveStreamHandler("POST", uploaderPath); - + + if(this.SaveImages) + this.SaveImageToFile(m_assetName + ".jp2", data); + if (OnUpLoad != null) { - OnUpLoad(newAssetID, inv, data); + OnUpLoad(m_assetName, newAssetID, inv, data); } + return res; } + + private void SaveImageToFile(string filename, byte[] data) + { + + FileStream fs = File.Create(filename); + BinaryWriter bw = new BinaryWriter(fs); + bw.Write(data); + bw.Close(); + fs.Close(); + } } } } -- cgit v1.1