Browse Source

Some additions and updates to PluginHostType, including a method to get a string description.

tags/2021-05-28
jules 12 years ago
parent
commit
44ba3f52fe
1 changed files with 71 additions and 16 deletions
  1. +71
    -16
      modules/juce_audio_plugin_client/utility/juce_PluginHostType.h

+ 71
- 16
modules/juce_audio_plugin_client/utility/juce_PluginHostType.h View File

@@ -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…
Cancel
Save