mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
Some additions and updates to PluginHostType, including a method to get a string description.
This commit is contained in:
parent
c8f72856d6
commit
44ba3f52fe
1 changed files with 71 additions and 16 deletions
|
|
@ -28,8 +28,8 @@ class PluginHostType
|
|||
public:
|
||||
//==============================================================================
|
||||
PluginHostType() : type (getHostType()) {}
|
||||
PluginHostType (const PluginHostType& other) : type (other.type) {}
|
||||
PluginHostType& operator= (const PluginHostType& other) { type = other.type; return *this; }
|
||||
PluginHostType (const PluginHostType& other) noexcept : type (other.type) {}
|
||||
PluginHostType& operator= (const PluginHostType& other) noexcept { type = other.type; return *this; }
|
||||
|
||||
//==============================================================================
|
||||
enum HostType
|
||||
|
|
@ -44,21 +44,23 @@ public:
|
|||
CakewalkSonar8,
|
||||
CakewalkSonarGeneric,
|
||||
DigidesignProTools,
|
||||
EmagicLogic,
|
||||
Reaper,
|
||||
MackieTracktion3,
|
||||
MackieTracktionGeneric,
|
||||
Tracktion3,
|
||||
TracktionGeneric,
|
||||
SteinbergCubase4,
|
||||
SteinbergCubase5,
|
||||
SteinbergCubase5Bridged,
|
||||
SteinbergCubaseGeneric,
|
||||
SteinbergCubase6,
|
||||
SteinbergCubase7,
|
||||
SteinbergCubaseGeneric,
|
||||
SteinbergNuendo3,
|
||||
SteinbergNuendo4,
|
||||
SteinbergNuendo5,
|
||||
SteinbergNuendoGeneric,
|
||||
SteinbergWavelab5,
|
||||
SteinbergWavelab6,
|
||||
SteinbergWavelab7,
|
||||
SteinbergWavelab8,
|
||||
SteinbergNuendo,
|
||||
SteinbergWavelabGeneric,
|
||||
MuseReceptorGeneric,
|
||||
MagixSamplitude,
|
||||
|
|
@ -74,15 +76,16 @@ public:
|
|||
|
||||
//==============================================================================
|
||||
bool isAbletonLive() const noexcept { return type == AbletonLive6 || type == AbletonLive7 || type == AbletonLive8 || type == AbletonLiveGeneric; }
|
||||
bool isNuendo() const noexcept { return type == SteinbergNuendo3 || type == SteinbergNuendo4 || type == SteinbergNuendo5 || type == SteinbergNuendoGeneric; }
|
||||
bool isCubase() const noexcept { return type == SteinbergCubase4 || type == SteinbergCubase5 || type == SteinbergCubase5Bridged || type == SteinbergCubase6 || type == SteinbergCubase7 || type == SteinbergCubaseGeneric; }
|
||||
bool isCubaseBridged() const noexcept { return type == SteinbergCubase5Bridged; }
|
||||
bool isNuendo() const noexcept { return type == SteinbergNuendo; }
|
||||
bool isTracktion() const noexcept { return type == MackieTracktion3 || type == MackieTracktionGeneric; }
|
||||
bool isSteinberg() const noexcept { return isCubase() || isNuendo() || isWavelab(); }
|
||||
bool isTracktion() const noexcept { return type == Tracktion3 || type == TracktionGeneric; }
|
||||
bool isSonar() const noexcept { return type == CakewalkSonar8 || type == CakewalkSonarGeneric; }
|
||||
bool isWavelab() const noexcept { return isWavelabLegacy() || type == SteinbergWavelab7 || type == SteinbergWavelab8 || type == SteinbergWavelabGeneric; }
|
||||
bool isWavelabLegacy() const noexcept { return type == SteinbergWavelab5 || type == SteinbergWavelab6; }
|
||||
bool isPremiere() const noexcept { return type == AdobePremierePro; }
|
||||
bool isLogic() const noexcept { return type == AppleLogic || type == EmagicLogic; }
|
||||
bool isLogic() const noexcept { return type == AppleLogic; }
|
||||
bool isReceptor() const noexcept { return type == MuseReceptorGeneric; }
|
||||
bool isSamplitude() const noexcept { return type == MagixSamplitude; }
|
||||
bool isFruityLoops() const noexcept { return type == FruityLoops; }
|
||||
|
|
@ -93,6 +96,52 @@ public:
|
|||
bool isPyramix() const noexcept { return type == MergingPyramix; }
|
||||
bool isVBVSTScanner() const noexcept { return type == VBVSTScanner; }
|
||||
|
||||
//==============================================================================
|
||||
const char* getHostDescription() const noexcept
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case AbletonLive6: return "Ableton Live 6";
|
||||
case AbletonLive7: return "Ableton Live 7";
|
||||
case AbletonLive8: return "Ableton Live 8";
|
||||
case AbletonLiveGeneric: return "Ableton Live";
|
||||
case AdobePremierePro: return "Adobe Premiere";
|
||||
case AppleLogic: return "Apple Logic";
|
||||
case CakewalkSonar8: return "Cakewalk Sonar 8";
|
||||
case CakewalkSonarGeneric: return "Cakewalk Sonar";
|
||||
case DigidesignProTools: return "ProTools";
|
||||
case Reaper: return "Reaper";
|
||||
case Tracktion3: return "Tracktion 3";
|
||||
case TracktionGeneric: return "Tracktion";
|
||||
case SteinbergCubase4: return "Steinberg Cubase 4";
|
||||
case SteinbergCubase5: return "Steinberg Cubase 5";
|
||||
case SteinbergCubase5Bridged: return "Steinberg Cubase 5 Bridged";
|
||||
case SteinbergCubase6: return "Steinberg Cubase 6";
|
||||
case SteinbergCubase7: return "Steinberg Cubase 7";
|
||||
case SteinbergCubaseGeneric: return "Steinberg Cubase";
|
||||
case SteinbergNuendo3: return "Steinberg Nuendo 3";
|
||||
case SteinbergNuendo4: return "Steinberg Nuendo 4";
|
||||
case SteinbergNuendo5: return "Steinberg Nuendo 5";
|
||||
case SteinbergNuendoGeneric: return "Steinberg Nuendo";
|
||||
case SteinbergWavelab5: return "Steinberg Wavelab 5";
|
||||
case SteinbergWavelab6: return "Steinberg Wavelab 6";
|
||||
case SteinbergWavelab7: return "Steinberg Wavelab 7";
|
||||
case SteinbergWavelab8: return "Steinberg Wavelab 8";
|
||||
case SteinbergWavelabGeneric: return "Steinberg Wavelab";
|
||||
case MuseReceptorGeneric: return "Muse Receptor";
|
||||
case MagixSamplitude: return "Magix Samplitude";
|
||||
case FruityLoops: return "FruityLoops";
|
||||
case WaveBurner: return "WaveBurner";
|
||||
case DigitalPerformer: return "DigitalPerformer";
|
||||
case StudioOne: return "Studio One";
|
||||
case MergingPyramix: return "Pyramix";
|
||||
case VBVSTScanner: return "VBVSTScanner";
|
||||
default: break;
|
||||
}
|
||||
|
||||
return "Unknown";
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
static String getHostPath()
|
||||
{
|
||||
|
|
@ -114,6 +163,10 @@ private:
|
|||
if (hostFilename.containsIgnoreCase ("Adobe Premiere")) return AdobePremierePro;
|
||||
if (hostFilename.contains ("Logic")) return AppleLogic;
|
||||
if (hostFilename.containsIgnoreCase ("Pro Tools")) return DigidesignProTools;
|
||||
if (hostFilename.containsIgnoreCase ("Nuendo 3")) return SteinbergNuendo3;
|
||||
if (hostFilename.containsIgnoreCase ("Nuendo 4")) return SteinbergNuendo4;
|
||||
if (hostFilename.containsIgnoreCase ("Nuendo 5")) return SteinbergNuendo5;
|
||||
if (hostFilename.containsIgnoreCase ("Nuendo")) return SteinbergNuendoGeneric;
|
||||
if (hostFilename.containsIgnoreCase ("Cubase 4")) return SteinbergCubase4;
|
||||
if (hostFilename.containsIgnoreCase ("Cubase 5")) return SteinbergCubase5;
|
||||
if (hostFilename.containsIgnoreCase ("Cubase 6")) return SteinbergCubase6;
|
||||
|
|
@ -121,12 +174,13 @@ private:
|
|||
if (hostFilename.containsIgnoreCase ("Cubase")) return SteinbergCubaseGeneric;
|
||||
if (hostPath.containsIgnoreCase ("Wavelab 7")) return SteinbergWavelab7;
|
||||
if (hostPath.containsIgnoreCase ("Wavelab 8")) return SteinbergWavelab8;
|
||||
if (hostPath.containsIgnoreCase ("Nuendo")) return SteinbergNuendo;
|
||||
if (hostFilename.containsIgnoreCase ("Wavelab")) return SteinbergWavelabGeneric;
|
||||
if (hostFilename.containsIgnoreCase ("WaveBurner")) return WaveBurner;
|
||||
if (hostFilename.contains ("Digital Performer")) return DigitalPerformer;
|
||||
if (hostFilename.containsIgnoreCase ("reaper")) return Reaper;
|
||||
if (hostPath.containsIgnoreCase ("Studio One")) return StudioOne;
|
||||
if (hostPath.containsIgnoreCase ("Tracktion 3")) return Tracktion3;
|
||||
if (hostFilename.containsIgnoreCase ("Tracktion")) return TracktionGeneric;
|
||||
|
||||
#elif JUCE_WINDOWS
|
||||
if (hostFilename.containsIgnoreCase ("Live 6.")) return AbletonLive6;
|
||||
|
|
@ -137,9 +191,9 @@ private:
|
|||
if (hostFilename.containsIgnoreCase ("ProTools")) return DigidesignProTools;
|
||||
if (hostPath.containsIgnoreCase ("SONAR 8")) return CakewalkSonar8;
|
||||
if (hostFilename.containsIgnoreCase ("SONAR")) return CakewalkSonarGeneric;
|
||||
if (hostFilename.containsIgnoreCase ("Logic")) return EmagicLogic;
|
||||
if (hostPath.containsIgnoreCase ("Tracktion 3")) return MackieTracktion3;
|
||||
if (hostFilename.containsIgnoreCase ("Tracktion")) return MackieTracktionGeneric;
|
||||
if (hostFilename.containsIgnoreCase ("Logic")) return AppleLogic;
|
||||
if (hostPath.containsIgnoreCase ("Tracktion 3")) return Tracktion3;
|
||||
if (hostFilename.containsIgnoreCase ("Tracktion")) return TracktionGeneric;
|
||||
if (hostFilename.containsIgnoreCase ("reaper")) return Reaper;
|
||||
if (hostFilename.containsIgnoreCase ("Cubase4")) return SteinbergCubase4;
|
||||
if (hostFilename.containsIgnoreCase ("Cubase5")) return SteinbergCubase5;
|
||||
|
|
@ -151,15 +205,16 @@ private:
|
|||
if (hostPath.containsIgnoreCase ("Wavelab 6")) return SteinbergWavelab6;
|
||||
if (hostPath.containsIgnoreCase ("Wavelab 7")) return SteinbergWavelab7;
|
||||
if (hostPath.containsIgnoreCase ("Wavelab 8")) return SteinbergWavelab8;
|
||||
if (hostPath.containsIgnoreCase ("Nuendo")) return SteinbergNuendo;
|
||||
if (hostPath.containsIgnoreCase ("Nuendo")) return SteinbergNuendoGeneric;
|
||||
if (hostFilename.containsIgnoreCase ("Wavelab")) return SteinbergWavelabGeneric;
|
||||
if (hostFilename.containsIgnoreCase ("rm-host")) return MuseReceptorGeneric;
|
||||
if (hostFilename.startsWithIgnoreCase ("Sam")) return MagixSamplitude;
|
||||
if (hostFilename.startsWith ("FL")) return FruityLoops;
|
||||
if (hostPath.containsIgnoreCase ("Studio One")) return StudioOne;
|
||||
if (hostPath.containsIgnoreCase ("Digital Performer")) return DigitalPerformer;
|
||||
if (hostFilename.containsIgnoreCase ("VST_Scanner")) return VBVSTScanner;
|
||||
if (hostPath.containsIgnoreCase ("Merging Technologies")) return MergingPyramix;
|
||||
if (hostFilename.startsWithIgnoreCase ("Sam")) return MagixSamplitude;
|
||||
|
||||
#elif JUCE_LINUX
|
||||
jassertfalse // not yet done!
|
||||
#else
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue