| 
							- /*
 -   ==============================================================================
 - 
 -    This file is part of the JUCE library.
 -    Copyright (c) 2013 - Raw Material Software Ltd.
 - 
 -    Permission is granted to use this software under the terms of either:
 -    a) the GPL v2 (or any later version)
 -    b) the Affero GPL v3
 - 
 -    Details of these licenses can be found at: www.gnu.org/licenses
 - 
 -    JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
 -    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 -    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 - 
 -    ------------------------------------------------------------------------------
 - 
 -    To release a closed-source product which uses JUCE, commercial licenses are
 -    available: visit www.juce.com for more information.
 - 
 -   ==============================================================================
 - */
 - 
 - #ifndef JUCE_PLUGINDESCRIPTION_H_INCLUDED
 - #define JUCE_PLUGINDESCRIPTION_H_INCLUDED
 - 
 - 
 - //==============================================================================
 - /**
 -     A small class to represent some facts about a particular type of plug-in.
 - 
 -     This class is for storing and managing the details about a plug-in without
 -     actually having to load an instance of it.
 - 
 -     A KnownPluginList contains a list of PluginDescription objects.
 - 
 -     @see KnownPluginList
 - */
 - class JUCE_API  PluginDescription
 - {
 - public:
 -     //==============================================================================
 -     PluginDescription();
 -     PluginDescription (const PluginDescription& other);
 -     PluginDescription& operator= (const PluginDescription& other);
 -     ~PluginDescription();
 - 
 -     //==============================================================================
 -     /** The name of the plug-in. */
 -     String name;
 - 
 -     /** A more descriptive name for the plug-in.
 -         This may be the same as the 'name' field, but some plug-ins may provide an
 -         alternative name.
 -     */
 -     String descriptiveName;
 - 
 -     /** The plug-in format, e.g. "VST", "AudioUnit", etc. */
 -     String pluginFormatName;
 - 
 -     /** A category, such as "Dynamics", "Reverbs", etc. */
 -     String category;
 - 
 -     /** The manufacturer. */
 -     String manufacturerName;
 - 
 -     /** The version. This string doesn't have any particular format. */
 -     String version;
 - 
 -     /** Either the file containing the plug-in module, or some other unique way
 -         of identifying it.
 - 
 -         E.g. for an AU, this would be an ID string that the component manager
 -         could use to retrieve the plug-in. For a VST, it's the file path.
 -     */
 -     String fileOrIdentifier;
 - 
 -     /** The last time the plug-in file was changed.
 -         This is handy when scanning for new or changed plug-ins.
 -     */
 -     Time lastFileModTime;
 - 
 -     /** A unique ID for the plug-in.
 - 
 -         Note that this might not be unique between formats, e.g. a VST and some
 -         other format might actually have the same id.
 - 
 -         @see createIdentifierString
 -     */
 -     int uid;
 - 
 -     /** True if the plug-in identifies itself as a synthesiser. */
 -     bool isInstrument;
 - 
 -     /** The number of inputs. */
 -     int numInputChannels;
 - 
 -     /** The number of outputs. */
 -     int numOutputChannels;
 - 
 -     /** True if the plug-in is part of a multi-type container, e.g. a VST Shell. */
 -     bool hasSharedContainer;
 - 
 -     /** Returns true if the two descriptions refer the the same plug-in.
 - 
 -         This isn't quite as simple as them just having the same file (because of
 -         shell plug-ins).
 -     */
 -     bool isDuplicateOf (const PluginDescription& other) const;
 - 
 -     //==============================================================================
 -     /** Returns a string that can be saved and used to uniquely identify the
 -         plugin again.
 - 
 -         This contains less info than the XML encoding, and is independent of the
 -         plug-in's file location, so can be used to store a plug-in ID for use
 -         across different machines.
 -     */
 -     String createIdentifierString() const;
 - 
 -     //==============================================================================
 -     /** Creates an XML object containing these details.
 - 
 -         @see loadFromXml
 -     */
 -     XmlElement* createXml() const;
 - 
 -     /** Reloads the info in this structure from an XML record that was previously
 -         saved with createXML().
 - 
 -         Returns true if the XML was a valid plug-in description.
 -     */
 -     bool loadFromXml (const XmlElement& xml);
 - 
 - 
 - private:
 -     //==============================================================================
 -     JUCE_LEAK_DETECTOR (PluginDescription)
 - };
 - 
 - 
 - #endif   // JUCE_PLUGINDESCRIPTION_H_INCLUDED
 
 
  |