[This message is particularly important for people developing web interfaces and other external tools for OpenSim that touch inventory]

So, to wrap this up:

I've now committed the new version of libomv with the inventory code changes, and the necessary changes in OpenSim that use those new enums and codes. Initial tests show that everything is ok with current viewers, even without changing the DB, but, as usual, more testing needs to happen before the changes are sealed.

In the long run, however, it is advised that grid operators adjust the DB, specifically inventory folders tables, so that they reflect the codes of the "protocol." This protocol is now coded up in a new enum in libomv called FolderType, which is pasted below for convenience. This new enum follows exactly the one found in the Linden viewer for folder types.

Also a warning to note the difference between *folder* types and *asset* types, a difference that had been muddied so far. Assets and folders are different things. There is a relation between them, of course, and the viewer tries to use the same codes in most cases (e.g. Texture assets = 0, Texture folder = 0). But there is at least one important difference when it comes to the root folder. So far, libomv had only one enum (AssetType) that tried to code both things at the same time, hence the confusion. Now it has two separate enums, FolderType and AssetType. I'm also pasting AssetType here for convenience.

If you have a web interface, plugin or external tool that touches inventory folders, please follow the codes in the *FolderType* enum.


    /// <summary>
    /// The different types of folder.
    /// </summary>
    public enum FolderType : sbyte
    {
/// <summary>None folder type (normal user-created folder)</summary>
        None = -1,
        /// <summary>Texture folder type</summary>
        Texture = 0,
        /// <summary>Sound folder type</summary>
        Sound = 1,
        /// <summary>Calling card folder type</summary>
        CallingCard = 2,
        /// <summary>Landmark folder type</summary>
        Landmark = 3,
        /// <summary>Clothing folder type</summary>
        Clothing = 5,
        /// <summary>Object folder type</summary>
        Object = 6,
        /// <summary>Notecard folder type</summary>
        Notecard = 7,
        /// <summary>The root folder type</summary>
        Root = 8,
        /// <summary>LSLText folder</summary>
        LSLText = 10,
        /// <summary>Bodyparts folder</summary>
        BodyPart = 13,
        /// <summary>Trash folder</summary>
        Trash = 14,
        /// <summary>Snapshot folder</summary>
        Snapshot = 15,
        /// <summary>Lost And Found folder</summary>
        LostAndFound = 16,
        /// <summary>Animation folder</summary>
        Animation = 20,
        /// <summary>Gesture folder</summary>
        Gesture = 21,
        /// <summary>Favorites folder</summary>
        Favorites = 23,
        /// <summary>Ensemble beginning range</summary>
        EnsembleStart = 26,
        /// <summary>Ensemble ending range</summary>
        EnsembleEnd= 45,
        /// <summary>Current outfit folder</summary>
        CurrentOutfit = 46,
        /// <summary>Outfit folder</summary>
        Outfit = 47,
        /// <summary>My outfits folder</summary>
        MyOutfits = 48,
        /// <summary>Mesh folder</summary>
        Mesh = 49,
/// <summary>Marketplace direct delivery inbox ("Received Items")</summary>
        Inbox = 50,
        /// <summary>Marketplace direct delivery outbox</summary>
        Outbox = 51,
        /// <summary>Basic root folder</summary>
        BasicRoot = 52,
        /// <summary>Marketplace listings folder</summary>
        MarketplaceListings = 53,
        /// <summary>Marketplace stock folder</summary>
        MarkplaceStock = 54,
        /// <summary>Hypergrid Suitcase folder</summary>
        Suitcase = 100
    }

    /// <summary>
    /// The different types of grid assets
    /// </summary>
    public enum AssetType : sbyte
    {
        /// <summary>Unknown asset type</summary>
        Unknown = -1,
/// <summary>Texture asset, stores in JPEG2000 J2C stream format</summary>
        Texture = 0,
        /// <summary>Sound asset</summary>
        Sound = 1,
        /// <summary>Calling card for another avatar</summary>
        CallingCard = 2,
        /// <summary>Link to a location in world</summary>
        Landmark = 3,
// <summary>Legacy script asset, you should never see one of these</summary>
        //[Obsolete]
        //Script = 4,
/// <summary>Collection of textures and parameters that can be worn by an avatar</summary>
        Clothing = 5,
        /// <summary>Primitive that can contain textures, sounds,
        /// scripts and more</summary>
        Object = 6,
        /// <summary>Notecard asset</summary>
        Notecard = 7,
/// <summary>Holds a collection of inventory items. "Category" in the Linden viewer</summary>
        Folder = 8,
        /// <summary>Linden scripting language script</summary>
        LSLText = 10,
        /// <summary>LSO bytecode for a script</summary>
        LSLBytecode = 11,
        /// <summary>Uncompressed TGA texture</summary>
        TextureTGA = 12,
/// <summary>Collection of textures and shape parameters that can be worn</summary>
        Bodypart = 13,
        /// <summary>Uncompressed sound</summary>
        SoundWAV = 17,
        /// <summary>Uncompressed TGA non-square image, not to be used as a
        /// texture</summary>
        ImageTGA = 18,
        /// <summary>Compressed JPEG non-square image, not to be used as a
        /// texture</summary>
        ImageJPEG = 19,
        /// <summary>Animation</summary>
        Animation = 20,
/// <summary>Sequence of animations, sounds, chat, and pauses</summary>
        Gesture = 21,
        /// <summary>Simstate file</summary>
        Simstate = 22,
        /// <summary>Asset is a link to another inventory item</summary>
        Link = 24,
        /// <summary>Asset is a link to another inventory folder</summary>
        LinkFolder = 25,
/// <summary>Marketplace Folder. Same as an Category but different display methods.</summary>
        MarketplaceFolder = 26,
        /// <summary>Linden mesh format</summary>
        Mesh = 49,
    }


_______________________________________________
Opensim-dev mailing list
[email protected]
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev

Reply via email to