annotate plugin/PluginIdentifier.cpp @ 282:d9319859a4cf tip

(none)
author benoitrigolleau
date Fri, 31 Oct 2008 11:00:24 +0000
parents fc9323a41f5a
children
rev   line source
lbajardsilogic@0 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
lbajardsilogic@0 2
lbajardsilogic@0 3 /*
lbajardsilogic@0 4 Sonic Visualiser
lbajardsilogic@0 5 An audio file viewer and annotation editor.
lbajardsilogic@0 6 Centre for Digital Music, Queen Mary, University of London.
lbajardsilogic@0 7
lbajardsilogic@0 8 This program is free software; you can redistribute it and/or
lbajardsilogic@0 9 modify it under the terms of the GNU General Public License as
lbajardsilogic@0 10 published by the Free Software Foundation; either version 2 of the
lbajardsilogic@0 11 License, or (at your option) any later version. See the file
lbajardsilogic@0 12 COPYING included with this distribution for more information.
lbajardsilogic@0 13 */
lbajardsilogic@0 14
lbajardsilogic@0 15 /*
lbajardsilogic@0 16 This is a modified version of a source file from the
lbajardsilogic@0 17 Rosegarden MIDI and audio sequencer and notation editor.
lbajardsilogic@0 18 This file copyright 2000-2006 Chris Cannam and QMUL.
lbajardsilogic@0 19 */
lbajardsilogic@0 20
lbajardsilogic@0 21 #include "PluginIdentifier.h"
lbajardsilogic@0 22 #include <iostream>
lbajardsilogic@0 23 #include <QFileInfo>
lbajardsilogic@0 24
lbajardsilogic@0 25 QString
lbajardsilogic@0 26 PluginIdentifier::createIdentifier(QString type,
lbajardsilogic@0 27 QString soName,
lbajardsilogic@0 28 QString label)
lbajardsilogic@0 29 {
lbajardsilogic@0 30 QString identifier = type + ":" + QFileInfo(soName).baseName() + ":" + label;
lbajardsilogic@0 31 return identifier;
lbajardsilogic@0 32 }
lbajardsilogic@0 33
lbajardsilogic@0 34 QString
lbajardsilogic@0 35 PluginIdentifier::canonicalise(QString identifier)
lbajardsilogic@0 36 {
lbajardsilogic@0 37 QString type, soName, label;
lbajardsilogic@0 38 parseIdentifier(identifier, type, soName, label);
lbajardsilogic@0 39 return createIdentifier(type, soName, label);
lbajardsilogic@0 40 }
lbajardsilogic@0 41
lbajardsilogic@0 42 void
lbajardsilogic@0 43 PluginIdentifier::parseIdentifier(QString identifier,
lbajardsilogic@0 44 QString &type,
lbajardsilogic@0 45 QString &soName,
lbajardsilogic@0 46 QString &label)
lbajardsilogic@0 47 {
lbajardsilogic@0 48 type = identifier.section(':', 0, 0);
lbajardsilogic@0 49 soName = identifier.section(':', 1, 1);
lbajardsilogic@0 50 label = identifier.section(':', 2);
lbajardsilogic@0 51 }
lbajardsilogic@0 52
lbajardsilogic@0 53 bool
lbajardsilogic@0 54 PluginIdentifier::areIdentifiersSimilar(QString id1, QString id2)
lbajardsilogic@0 55 {
lbajardsilogic@0 56 QString type1, type2, soName1, soName2, label1, label2;
lbajardsilogic@0 57
lbajardsilogic@0 58 parseIdentifier(id1, type1, soName1, label1);
lbajardsilogic@0 59 parseIdentifier(id2, type2, soName2, label2);
lbajardsilogic@0 60
lbajardsilogic@0 61 if (type1 != type2 || label1 != label2) return false;
lbajardsilogic@0 62
lbajardsilogic@0 63 bool similar = (soName1.section('/', -1).section('.', 0, 0) ==
lbajardsilogic@0 64 soName2.section('/', -1).section('.', 0, 0));
lbajardsilogic@0 65
lbajardsilogic@0 66 return similar;
lbajardsilogic@0 67 }
lbajardsilogic@0 68
lbajardsilogic@0 69 QString
lbajardsilogic@0 70 PluginIdentifier::BUILTIN_PLUGIN_SONAME = "_builtin";
lbajardsilogic@0 71
lbajardsilogic@0 72 QString
lbajardsilogic@0 73 PluginIdentifier::RESERVED_PROJECT_DIRECTORY_KEY = "__QMUL__:__RESERVED__:ProjectDirectoryKey";
lbajardsilogic@0 74