Chris@49: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
Chris@0: 
Chris@0: /*
Chris@52:     Sonic Visualiser
Chris@52:     An audio file viewer and annotation editor.
Chris@52:     Centre for Digital Music, Queen Mary, University of London.
Chris@0:     
Chris@52:     This program is free software; you can redistribute it and/or
Chris@52:     modify it under the terms of the GNU General Public License as
Chris@52:     published by the Free Software Foundation; either version 2 of the
Chris@52:     License, or (at your option) any later version.  See the file
Chris@52:     COPYING included with this distribution for more information.
Chris@0: */
Chris@0: 
Chris@0: /*
Chris@0:    This is a modified version of a source file from the 
Chris@0:    Rosegarden MIDI and audio sequencer and notation editor.
Chris@17:    This file copyright 2000-2006 Chris Cannam.
Chris@0: */
Chris@0: 
Chris@0: #ifndef _PLUGIN_IDENTIFIER_H_
Chris@0: #define _PLUGIN_IDENTIFIER_H_
Chris@0: 
Chris@0: #include <QString>
Chris@0: 
Chris@0: 
Chris@0: // A plugin identifier is simply a string; this class provides methods
Chris@0: // to parse it into its constituent bits (plugin type, DLL path and label).
Chris@0: 
Chris@0: class PluginIdentifier {
Chris@0: 
Chris@0: public:
Chris@0:  
Chris@0:     static QString createIdentifier(QString type, QString soName, QString label);
Chris@0: 
Chris@0:     static void parseIdentifier(QString identifier,
Chris@0: 				QString &type, QString &soName, QString &label);
Chris@0: 
Chris@0:     static bool areIdentifiersSimilar(QString id1, QString id2);
Chris@0: 
Chris@0:     // Fake soName for use with plugins that are actually compiled in
Chris@0:     static QString BUILTIN_PLUGIN_SONAME;
Chris@0: 
Chris@0:     // Not strictly related to identifiers
Chris@0:     static QString RESERVED_PROJECT_DIRECTORY_KEY;
Chris@0: };
Chris@0: 
Chris@0: #endif