mirror of
https://github.com/LMMS/lmms.git
synced 2026-01-24 22:38:07 -05:00
This also adds more min/max checks, mostly for logarithmic scales. Since this raised some warnings for logarithmic CV ports, the CV metadata is now also read (but CV ports are still not supported).
83 lines
2.2 KiB
C++
83 lines
2.2 KiB
C++
/*
|
|
* PluginIssue.h - PluginIssue class
|
|
*
|
|
* Copyright (c) 2019 Johannes Lorenz <j.git$$$lorenz-ho.me, $$$=@>
|
|
*
|
|
* This file is part of LMMS - https://lmms.io
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2 of the License, or (at your option) any later version.
|
|
*
|
|
* This program 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.
|
|
*
|
|
* You should have received a copy of the GNU General Public
|
|
* License along with this program (see COPYING); if not, write to the
|
|
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
* Boston, MA 02110-1301 USA.
|
|
*
|
|
*/
|
|
|
|
#ifndef PLUGINISSUE_H
|
|
#define PLUGINISSUE_H
|
|
|
|
#include <QDebug>
|
|
#include <string>
|
|
|
|
//! Types of issues that can cause LMMS to not load a plugin
|
|
//! LMMS Plugins should use this to indicate errors
|
|
enum PluginIssueType
|
|
{
|
|
// port flow & type
|
|
unknownPortFlow,
|
|
unknownPortType,
|
|
// channel count
|
|
tooManyInputChannels,
|
|
tooManyOutputChannels,
|
|
tooManyMidiInputChannels,
|
|
tooManyMidiOutputChannels,
|
|
noOutputChannel,
|
|
// port metadata
|
|
portHasNoDef,
|
|
portHasNoMin,
|
|
portHasNoMax,
|
|
minGreaterMax,
|
|
defaultValueNotInRange,
|
|
logScaleMinMissing,
|
|
logScaleMaxMissing,
|
|
logScaleMinMaxDifferentSigns,
|
|
// features
|
|
featureNotSupported, //!< plugin requires functionality LMMS can't offer
|
|
// misc
|
|
badPortType, //!< port type not supported
|
|
blacklisted,
|
|
noIssue
|
|
};
|
|
|
|
//! Issue type bundled with informational string
|
|
class PluginIssue
|
|
{
|
|
static const char* msgFor(const PluginIssueType& it);
|
|
|
|
PluginIssueType m_issueType;
|
|
std::string m_info;
|
|
|
|
public:
|
|
PluginIssue(PluginIssueType it, std::string msg = std::string())
|
|
: m_issueType(it), m_info(msg)
|
|
{
|
|
}
|
|
PluginIssueType type() const { return m_issueType; }
|
|
bool operator==(const PluginIssue& other) const;
|
|
bool operator<(const PluginIssue& other) const;
|
|
friend QDebug operator<<(QDebug stream, const PluginIssue& iss);
|
|
};
|
|
|
|
QDebug operator<<(QDebug stream, const PluginIssue& iss);
|
|
|
|
#endif // PLUGINISSUE_H
|