Browse Source

tags/2021-05-28
jules 17 years ago
parent
commit
c70ca3f387
12 changed files with 452 additions and 363 deletions
  1. +67
    -75
      extras/audio plugin host/build/mac/PluginHost.xcodeproj/project.pbxproj
  2. +12
    -0
      extras/audio plugin host/build/win32/PluginHost.vcproj
  3. +1
    -1
      extras/audio plugin host/src/HostStartup.cpp
  4. +1
    -1
      extras/audio plugin host/src/host/FilterGraph.cpp
  5. +282
    -283
      extras/audio plugin host/src/host/FilterGraph.h
  6. +1
    -1
      extras/audio plugin host/src/host/GraphEditorPanel.cpp
  7. +1
    -1
      extras/audio plugin host/src/host/InternalFilters.cpp
  8. +1
    -1
      extras/audio plugin host/src/host/MainHostWindow.cpp
  9. +4
    -0
      extras/audio plugin host/src/includes.h
  10. +58
    -0
      extras/audio plugin host/src/juce_AppConfig.h
  11. +12
    -0
      extras/audio plugin host/src/juce_LibrarySource.cpp
  12. +12
    -0
      extras/audio plugin host/src/juce_LibrarySource.mm

+ 67
- 75
extras/audio plugin host/build/mac/PluginHost.xcodeproj/project.pbxproj View File

@@ -7,40 +7,48 @@
objects = {

/* Begin PBXBuildFile section */
8411682E0CBBEE0500232E45 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8411682D0CBBEE0500232E45 /* OpenGL.framework */; };
84CF14390CD6367800A8D756 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84CF14380CD6367800A8D756 /* AudioUnit.framework */; };
84B59D6D0DE34F530041FA3D /* juce_LibrarySource.mm in Sources */ = {isa = PBXBuildFile; fileRef = 84B59D6C0DE34F530041FA3D /* juce_LibrarySource.mm */; };
84C0A38F0DE2D5C700606895 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84C0A3810DE2D5C700606895 /* AGL.framework */; };
84C0A3900DE2D5C700606895 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84C0A3820DE2D5C700606895 /* ApplicationServices.framework */; };
84C0A3910DE2D5C700606895 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84C0A3830DE2D5C700606895 /* AudioUnit.framework */; };
84C0A3920DE2D5C700606895 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84C0A3840DE2D5C700606895 /* Carbon.framework */; };
84C0A3930DE2D5C700606895 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84C0A3850DE2D5C700606895 /* Cocoa.framework */; };
84C0A3940DE2D5C700606895 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84C0A3860DE2D5C700606895 /* CoreAudio.framework */; };
84C0A3950DE2D5C700606895 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84C0A3870DE2D5C700606895 /* CoreFoundation.framework */; };
84C0A3960DE2D5C700606895 /* CoreMIDI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84C0A3880DE2D5C700606895 /* CoreMIDI.framework */; };
84C0A3970DE2D5C700606895 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84C0A3890DE2D5C700606895 /* CoreServices.framework */; };
84C0A3980DE2D5C700606895 /* DiscRecording.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84C0A38A0DE2D5C700606895 /* DiscRecording.framework */; };
84C0A3990DE2D5C700606895 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84C0A38B0DE2D5C700606895 /* IOKit.framework */; };
84C0A39A0DE2D5C700606895 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84C0A38C0DE2D5C700606895 /* OpenGL.framework */; };
84C0A39B0DE2D5C700606895 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84C0A38D0DE2D5C700606895 /* QuickTime.framework */; };
84C0A39C0DE2D5C700606895 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84C0A38E0DE2D5C700606895 /* WebKit.framework */; };
84FC4CD90CD8894600850651 /* juce.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 84FC4CD80CD8894600850651 /* juce.xcconfig */; };
84FFAEAC0C6C8A6F009F6E72 /* FilterGraph.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84FFAE920C6C8A6F009F6E72 /* FilterGraph.cpp */; };
84FFAEAD0C6C8A6F009F6E72 /* GraphEditorPanel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84FFAE940C6C8A6F009F6E72 /* GraphEditorPanel.cpp */; };
84FFAEAE0C6C8A6F009F6E72 /* InternalFilters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84FFAE960C6C8A6F009F6E72 /* InternalFilters.cpp */; };
84FFAEAF0C6C8A6F009F6E72 /* MainHostWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84FFAE980C6C8A6F009F6E72 /* MainHostWindow.cpp */; };
84FFAEB00C6C8A6F009F6E72 /* HostStartup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84FFAE9A0C6C8A6F009F6E72 /* HostStartup.cpp */; };
84FFAEFE0C6C8E80009F6E72 /* libjucedebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 84FFAEFC0C6C8E76009F6E72 /* libjucedebug.a */; };
84FFAF040C6C8ED5009F6E72 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84FFAEFF0C6C8ED5009F6E72 /* CoreAudio.framework */; };
84FFAF050C6C8ED5009F6E72 /* CoreMIDI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84FFAF000C6C8ED5009F6E72 /* CoreMIDI.framework */; };
84FFAF060C6C8ED5009F6E72 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84FFAF010C6C8ED5009F6E72 /* IOKit.framework */; };
84FFAF080C6C8ED5009F6E72 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84FFAF030C6C8ED5009F6E72 /* QuickTime.framework */; };
84FFAF150C6C8EE8009F6E72 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84FFAF140C6C8EE8009F6E72 /* AGL.framework */; };
8D0C4E920486CD37000505A6 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20286C33FDCF999611CA2CEA /* Carbon.framework */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
84FFAEFB0C6C8E76009F6E72 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 84FFAEF70C6C8E76009F6E72 /* Juce.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = D2AAC046055464E500DB518D;
remoteInfo = Juce;
};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
20286C33FDCF999611CA2CEA /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
4A9504C8FFE6A3BC11CA0CBA /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = "<absolute>"; };
4A9504CAFFE6A41611CA0CBA /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; };
508344B209E5C41E0093A071 /* Juce Plugin Host.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = "Juce Plugin Host.app"; sourceTree = BUILT_PRODUCTS_DIR; };
8411682D0CBBEE0500232E45 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; };
84CF14380CD6367800A8D756 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = "<absolute>"; };
508344B209E5C41E0093A071 /* Juce Plugin Host.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Juce Plugin Host.app"; sourceTree = BUILT_PRODUCTS_DIR; };
84B59D6A0DE34F530041FA3D /* includes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = includes.h; path = ../../src/includes.h; sourceTree = SOURCE_ROOT; };
84B59D6B0DE34F530041FA3D /* juce_AppConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = juce_AppConfig.h; path = ../../src/juce_AppConfig.h; sourceTree = SOURCE_ROOT; };
84B59D6C0DE34F530041FA3D /* juce_LibrarySource.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_LibrarySource.mm; path = ../../src/juce_LibrarySource.mm; sourceTree = SOURCE_ROOT; };
84C0A3810DE2D5C700606895 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = "<absolute>"; };
84C0A3820DE2D5C700606895 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = "<absolute>"; };
84C0A3830DE2D5C700606895 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = "<absolute>"; };
84C0A3840DE2D5C700606895 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
84C0A3850DE2D5C700606895 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
84C0A3860DE2D5C700606895 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
84C0A3870DE2D5C700606895 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; };
84C0A3880DE2D5C700606895 /* CoreMIDI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = /System/Library/Frameworks/CoreMIDI.framework; sourceTree = "<absolute>"; };
84C0A3890DE2D5C700606895 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; };
84C0A38A0DE2D5C700606895 /* DiscRecording.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = /System/Library/Frameworks/DiscRecording.framework; sourceTree = "<absolute>"; };
84C0A38B0DE2D5C700606895 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; };
84C0A38C0DE2D5C700606895 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; };
84C0A38D0DE2D5C700606895 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = "<absolute>"; };
84C0A38E0DE2D5C700606895 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = /System/Library/Frameworks/WebKit.framework; sourceTree = "<absolute>"; };
84FC4CD80CD8894600850651 /* juce.xcconfig */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xcconfig; name = juce.xcconfig; path = ../../../../build/macosx/juce.xcconfig; sourceTree = SOURCE_ROOT; };
84FFAE920C6C8A6F009F6E72 /* FilterGraph.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = FilterGraph.cpp; path = ../../src/host/FilterGraph.cpp; sourceTree = SOURCE_ROOT; };
84FFAE930C6C8A6F009F6E72 /* FilterGraph.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = FilterGraph.h; path = ../../src/host/FilterGraph.h; sourceTree = SOURCE_ROOT; };
@@ -51,12 +59,6 @@
84FFAE980C6C8A6F009F6E72 /* MainHostWindow.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = MainHostWindow.cpp; path = ../../src/host/MainHostWindow.cpp; sourceTree = SOURCE_ROOT; };
84FFAE990C6C8A6F009F6E72 /* MainHostWindow.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = MainHostWindow.h; path = ../../src/host/MainHostWindow.h; sourceTree = SOURCE_ROOT; };
84FFAE9A0C6C8A6F009F6E72 /* HostStartup.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = HostStartup.cpp; path = ../../src/HostStartup.cpp; sourceTree = SOURCE_ROOT; };
84FFAEF70C6C8E76009F6E72 /* Juce.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Juce.xcodeproj; path = ../../../../build/macosx/Juce.xcodeproj; sourceTree = SOURCE_ROOT; };
84FFAEFF0C6C8ED5009F6E72 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
84FFAF000C6C8ED5009F6E72 /* CoreMIDI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = /System/Library/Frameworks/CoreMIDI.framework; sourceTree = "<absolute>"; };
84FFAF010C6C8ED5009F6E72 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; };
84FFAF030C6C8ED5009F6E72 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = "<absolute>"; };
84FFAF140C6C8EE8009F6E72 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = "<absolute>"; };
8D0C4E960486CD37000505A6 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = Info.plist; sourceTree = "<group>"; };
/* End PBXFileReference section */

@@ -65,15 +67,20 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
84FFAEFE0C6C8E80009F6E72 /* libjucedebug.a in Frameworks */,
8D0C4E920486CD37000505A6 /* Carbon.framework in Frameworks */,
84FFAF040C6C8ED5009F6E72 /* CoreAudio.framework in Frameworks */,
84FFAF050C6C8ED5009F6E72 /* CoreMIDI.framework in Frameworks */,
84FFAF060C6C8ED5009F6E72 /* IOKit.framework in Frameworks */,
84FFAF080C6C8ED5009F6E72 /* QuickTime.framework in Frameworks */,
84FFAF150C6C8EE8009F6E72 /* AGL.framework in Frameworks */,
8411682E0CBBEE0500232E45 /* OpenGL.framework in Frameworks */,
84CF14390CD6367800A8D756 /* AudioUnit.framework in Frameworks */,
84C0A38F0DE2D5C700606895 /* AGL.framework in Frameworks */,
84C0A3900DE2D5C700606895 /* ApplicationServices.framework in Frameworks */,
84C0A3910DE2D5C700606895 /* AudioUnit.framework in Frameworks */,
84C0A3920DE2D5C700606895 /* Carbon.framework in Frameworks */,
84C0A3930DE2D5C700606895 /* Cocoa.framework in Frameworks */,
84C0A3940DE2D5C700606895 /* CoreAudio.framework in Frameworks */,
84C0A3950DE2D5C700606895 /* CoreFoundation.framework in Frameworks */,
84C0A3960DE2D5C700606895 /* CoreMIDI.framework in Frameworks */,
84C0A3970DE2D5C700606895 /* CoreServices.framework in Frameworks */,
84C0A3980DE2D5C700606895 /* DiscRecording.framework in Frameworks */,
84C0A3990DE2D5C700606895 /* IOKit.framework in Frameworks */,
84C0A39A0DE2D5C700606895 /* OpenGL.framework in Frameworks */,
84C0A39B0DE2D5C700606895 /* QuickTime.framework in Frameworks */,
84C0A39C0DE2D5C700606895 /* WebKit.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -111,6 +118,9 @@
84FFAE980C6C8A6F009F6E72 /* MainHostWindow.cpp */,
84FFAE990C6C8A6F009F6E72 /* MainHostWindow.h */,
84FFAE9A0C6C8A6F009F6E72 /* HostStartup.cpp */,
84B59D6B0DE34F530041FA3D /* juce_AppConfig.h */,
84B59D6A0DE34F530041FA3D /* includes.h */,
84B59D6C0DE34F530041FA3D /* juce_LibrarySource.mm */,
84FC4CD80CD8894600850651 /* juce.xcconfig */,
);
name = Sources;
@@ -127,29 +137,24 @@
20286C32FDCF999611CA2CEA /* External Frameworks and Libraries */ = {
isa = PBXGroup;
children = (
84CF14380CD6367800A8D756 /* AudioUnit.framework */,
8411682D0CBBEE0500232E45 /* OpenGL.framework */,
84FFAF140C6C8EE8009F6E72 /* AGL.framework */,
84FFAEFF0C6C8ED5009F6E72 /* CoreAudio.framework */,
84FFAF000C6C8ED5009F6E72 /* CoreMIDI.framework */,
84FFAF010C6C8ED5009F6E72 /* IOKit.framework */,
84FFAF030C6C8ED5009F6E72 /* QuickTime.framework */,
84FFAEF70C6C8E76009F6E72 /* Juce.xcodeproj */,
20286C33FDCF999611CA2CEA /* Carbon.framework */,
4A9504CAFFE6A41611CA0CBA /* CoreServices.framework */,
4A9504C8FFE6A3BC11CA0CBA /* ApplicationServices.framework */,
84C0A3810DE2D5C700606895 /* AGL.framework */,
84C0A3820DE2D5C700606895 /* ApplicationServices.framework */,
84C0A3830DE2D5C700606895 /* AudioUnit.framework */,
84C0A3840DE2D5C700606895 /* Carbon.framework */,
84C0A3850DE2D5C700606895 /* Cocoa.framework */,
84C0A3860DE2D5C700606895 /* CoreAudio.framework */,
84C0A3870DE2D5C700606895 /* CoreFoundation.framework */,
84C0A3880DE2D5C700606895 /* CoreMIDI.framework */,
84C0A3890DE2D5C700606895 /* CoreServices.framework */,
84C0A38A0DE2D5C700606895 /* DiscRecording.framework */,
84C0A38B0DE2D5C700606895 /* IOKit.framework */,
84C0A38C0DE2D5C700606895 /* OpenGL.framework */,
84C0A38D0DE2D5C700606895 /* QuickTime.framework */,
84C0A38E0DE2D5C700606895 /* WebKit.framework */,
);
name = "External Frameworks and Libraries";
sourceTree = "<group>";
};
84FFAEF80C6C8E76009F6E72 /* Products */ = {
isa = PBXGroup;
children = (
84FFAEFC0C6C8E76009F6E72 /* libjucedebug.a */,
);
name = Products;
sourceTree = "<group>";
};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
@@ -177,31 +182,17 @@
20286C28FDCF999611CA2CEA /* Project object */ = {
isa = PBXProject;
buildConfigurationList = C0E91AC908A95435008D54AB /* Build configuration list for PBXProject "PluginHost" */;
compatibilityVersion = "Xcode 2.4";
hasScannedForEncodings = 1;
mainGroup = 20286C29FDCF999611CA2CEA /* PluginHost */;
projectDirPath = "";
projectReferences = (
{
ProductGroup = 84FFAEF80C6C8E76009F6E72 /* Products */;
ProjectRef = 84FFAEF70C6C8E76009F6E72 /* Juce.xcodeproj */;
},
);
projectRoot = "";
targets = (
8D0C4E890486CD37000505A6 /* PluginHost */,
);
};
/* End PBXProject section */

/* Begin PBXReferenceProxy section */
84FFAEFC0C6C8E76009F6E72 /* libjucedebug.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libjucedebug.a;
remoteRef = 84FFAEFB0C6C8E76009F6E72 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
/* End PBXReferenceProxy section */

/* Begin PBXResourcesBuildPhase section */
8D0C4E8C0486CD37000505A6 /* Resources */ = {
isa = PBXResourcesBuildPhase;
@@ -223,6 +214,7 @@
84FFAEAE0C6C8A6F009F6E72 /* InternalFilters.cpp in Sources */,
84FFAEAF0C6C8A6F009F6E72 /* MainHostWindow.cpp in Sources */,
84FFAEB00C6C8A6F009F6E72 /* HostStartup.cpp in Sources */,
84B59D6D0DE34F530041FA3D /* juce_LibrarySource.mm in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};


+ 12
- 0
extras/audio plugin host/build/win32/PluginHost.vcproj View File

@@ -178,6 +178,18 @@
RelativePath="..\..\src\HostStartup.cpp"
>
</File>
<File
RelativePath="..\..\src\includes.h"
>
</File>
<File
RelativePath="..\..\src\juce_AppConfig.h"
>
</File>
<File
RelativePath="..\..\src\juce_LibrarySource.cpp"
>
</File>
<Filter
Name="host"
>


+ 1
- 1
extras/audio plugin host/src/HostStartup.cpp View File

@@ -29,7 +29,7 @@
==============================================================================
*/
#include "../../../juce.h"
#include "includes.h"
#include "host/MainHostWindow.h"
#include "host/InternalFilters.h"


+ 1
- 1
extras/audio plugin host/src/host/FilterGraph.cpp View File

@@ -29,7 +29,7 @@
==============================================================================
*/
#include "../../../../juce.h"
#include "../includes.h"
#include "FilterGraph.h"
#include "InternalFilters.h"
#include "GraphEditorPanel.h"


+ 282
- 283
extras/audio plugin host/src/host/FilterGraph.h View File

@@ -1,283 +1,282 @@
/*
==============================================================================
This file is part of the JUCE library - "Jules' Utility Class Extensions"
Copyright 2004-7 by Raw Material Software ltd.
------------------------------------------------------------------------------
JUCE can be redistributed and/or modified 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.
JUCE 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 JUCE; if not, visit www.gnu.org/licenses or write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
Boston, MA 02111-1307 USA
------------------------------------------------------------------------------
If you'd like to release a closed-source product which uses JUCE, commercial
licenses are also available: visit www.rawmaterialsoftware.com/juce for
more information.
==============================================================================
*/
#ifndef __JUCE_FILTERGRAPH_JUCEHEADER__
#define __JUCE_FILTERGRAPH_JUCEHEADER__
class FilterInGraph;
class FilterGraph;
const char* const filenameSuffix = ".filtergraph";
const char* const filenameWildcard = "*.filtergraph";
//==============================================================================
/**
Represents a connection between two pins in a FilterGraph.
*/
class FilterConnection
{
public:
//==============================================================================
FilterConnection (FilterGraph& owner);
FilterConnection (const FilterConnection& other);
~FilterConnection();
//==============================================================================
uint32 sourceFilterID;
int sourceChannel;
uint32 destFilterID;
int destChannel;
//==============================================================================
juce_UseDebuggingNewOperator
private:
FilterGraph& owner;
const FilterConnection& operator= (const FilterConnection&);
};
//==============================================================================
/**
Represents one of the filters in a FilterGraph.
*/
/*class FilterInGraph : public ReferenceCountedObject
{
public:
//==============================================================================
FilterInGraph (FilterGraph& owner, AudioPluginInstance* const plugin);
~FilterInGraph();
//==============================================================================
AudioPluginInstance* const filter;
uint32 uid;
//==============================================================================
void showUI (bool useGenericUI);
double getX() const throw() { return x; }
double getY() const throw() { return y; }
void setPosition (double x, double y) throw();
XmlElement* createXml() const;
static FilterInGraph* createForDescription (FilterGraph& owner,
const PluginDescription& desc,
String& errorMessage);
static FilterInGraph* createFromXml (FilterGraph& owner, const XmlElement& xml);
//==============================================================================
typedef ReferenceCountedObjectPtr <FilterInGraph> Ptr;
//==============================================================================
juce_UseDebuggingNewOperator
private:
friend class FilterGraphPlayer;
FilterGraph& owner;
double x, y;
friend class PluginWindow;
Component* activeUI;
Component* activeGenericUI;
int lastX, lastY;
MidiBuffer outputMidi;
AudioSampleBuffer processedAudio;
MidiBuffer processedMidi;
void prepareBuffers (int blockSize);
void renderBlock (int numSamples,
const ReferenceCountedArray <FilterInGraph>& filters,
const OwnedArray <FilterConnection>& connections);
FilterInGraph (const FilterInGraph&);
const FilterInGraph& operator= (const FilterInGraph&);
};
*/
//==============================================================================
/**
A collection of filters and some connections between them.
*/
class FilterGraph : public FileBasedDocument
{
public:
//==============================================================================
FilterGraph();
~FilterGraph();
//==============================================================================
AudioProcessorGraph& getGraph() throw() { return graph; }
int getNumFilters() const throw();
const AudioProcessorGraph::Node::Ptr getNode (const int index) const throw();
const AudioProcessorGraph::Node::Ptr getNodeForId (const uint32 uid) const throw();
void addFilter (const PluginDescription* desc, double x, double y);
void removeFilter (const uint32 filterUID);
void disconnectFilter (const uint32 filterUID);
void removeIllegalConnections();
void setNodePosition (const int nodeId, double x, double y);
void getNodePosition (const int nodeId, double& x, double& y) const;
//==============================================================================
int getNumConnections() const throw();
const AudioProcessorGraph::Connection* getConnection (const int index) const throw();
const AudioProcessorGraph::Connection* getConnectionBetween (uint32 sourceFilterUID, int sourceFilterChannel,
uint32 destFilterUID, int destFilterChannel) const throw();
bool canConnect (uint32 sourceFilterUID, int sourceFilterChannel,
uint32 destFilterUID, int destFilterChannel) const throw();
bool addConnection (uint32 sourceFilterUID, int sourceFilterChannel,
uint32 destFilterUID, int destFilterChannel);
void removeConnection (const int index);
void removeConnection (uint32 sourceFilterUID, int sourceFilterChannel,
uint32 destFilterUID, int destFilterChannel);
void clear();
//==============================================================================
XmlElement* createXml() const;
void restoreFromXml (const XmlElement& xml);
//==============================================================================
const String getDocumentTitle();
const String loadDocument (const File& file);
const String saveDocument (const File& file);
const File getLastDocumentOpened();
void setLastDocumentOpened (const File& file);
/** The special channel index used to refer to a filter's midi channel.
*/
static const int midiChannelNumber;
//==============================================================================
juce_UseDebuggingNewOperator
private:
//friend class FilterGraphPlayer;
//ReferenceCountedArray <FilterInGraph> filters;
//OwnedArray <FilterConnection> connections;
AudioProcessorGraph graph;
AudioProcessorPlayer player;
uint32 lastUID;
uint32 getNextUID() throw();
void createNodeFromXml (const XmlElement& xml);
FilterGraph (const FilterGraph&);
const FilterGraph& operator= (const FilterGraph&);
};
//==============================================================================
/**
*/
/*class FilterGraphPlayer : public AudioIODeviceCallback,
public MidiInputCallback,
public ChangeListener
{
public:
//==============================================================================
FilterGraphPlayer (FilterGraph& graph);
~FilterGraphPlayer();
//==============================================================================
void setAudioDeviceManager (AudioDeviceManager* dm);
AudioDeviceManager* getAudioDeviceManager() const throw() { return deviceManager; }
//==============================================================================
void audioDeviceIOCallback (const float** inputChannelData,
int totalNumInputChannels,
float** outputChannelData,
int totalNumOutputChannels,
int numSamples);
void audioDeviceAboutToStart (double sampleRate, int numSamplesPerBlock);
void audioDeviceStopped();
void handleIncomingMidiMessage (MidiInput* source, const MidiMessage& message);
void changeListenerCallback (void*);
//==============================================================================
static int compareElements (FilterInGraph* const first, FilterInGraph* const second) throw();
const float** inputChannelData;
int totalNumInputChannels;
float** outputChannelData;
int totalNumOutputChannels;
MidiBuffer incomingMidi;
MidiKeyboardState keyState;
MidiMessageCollector messageCollector;
//==============================================================================
class PlayerAwareFilter
{
public:
virtual void setPlayer (FilterGraphPlayer* newPlayer) = 0;
};
private:
FilterGraph& graph;
CriticalSection processLock;
double sampleRate;
int blockSize;
AudioDeviceManager* deviceManager;
ReferenceCountedArray <FilterInGraph> filters;
OwnedArray <FilterConnection> connections;
void update();
FilterGraphPlayer (const FilterGraphPlayer&);
const FilterGraphPlayer& operator= (const FilterGraphPlayer&);
};
*/
#endif
/*
==============================================================================

This file is part of the JUCE library - "Jules' Utility Class Extensions"
Copyright 2004-7 by Raw Material Software ltd.

------------------------------------------------------------------------------

JUCE can be redistributed and/or modified 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.

JUCE 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 JUCE; if not, visit www.gnu.org/licenses or write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
Boston, MA 02111-1307 USA

------------------------------------------------------------------------------

If you'd like to release a closed-source product which uses JUCE, commercial
licenses are also available: visit www.rawmaterialsoftware.com/juce for
more information.

==============================================================================
*/

#ifndef __JUCE_FILTERGRAPH_JUCEHEADER__
#define __JUCE_FILTERGRAPH_JUCEHEADER__

class FilterInGraph;
class FilterGraph;

const char* const filenameSuffix = ".filtergraph";
const char* const filenameWildcard = "*.filtergraph";

//==============================================================================
/**
Represents a connection between two pins in a FilterGraph.
*/
class FilterConnection
{
public:
//==============================================================================
FilterConnection (FilterGraph& owner);
FilterConnection (const FilterConnection& other);
~FilterConnection();

//==============================================================================
uint32 sourceFilterID;
int sourceChannel;
uint32 destFilterID;
int destChannel;

//==============================================================================
juce_UseDebuggingNewOperator

private:
FilterGraph& owner;

const FilterConnection& operator= (const FilterConnection&);
};


//==============================================================================
/**
Represents one of the filters in a FilterGraph.
*/
/*class FilterInGraph : public ReferenceCountedObject
{
public:
//==============================================================================
FilterInGraph (FilterGraph& owner, AudioPluginInstance* const plugin);
~FilterInGraph();

//==============================================================================
AudioPluginInstance* const filter;
uint32 uid;

//==============================================================================
void showUI (bool useGenericUI);

double getX() const throw() { return x; }
double getY() const throw() { return y; }
void setPosition (double x, double y) throw();

XmlElement* createXml() const;

static FilterInGraph* createForDescription (FilterGraph& owner,
const PluginDescription& desc,
String& errorMessage);

static FilterInGraph* createFromXml (FilterGraph& owner, const XmlElement& xml);

//==============================================================================
typedef ReferenceCountedObjectPtr <FilterInGraph> Ptr;

//==============================================================================
juce_UseDebuggingNewOperator

private:
friend class FilterGraphPlayer;
FilterGraph& owner;
double x, y;

friend class PluginWindow;
Component* activeUI;
Component* activeGenericUI;
int lastX, lastY;

MidiBuffer outputMidi;
AudioSampleBuffer processedAudio;
MidiBuffer processedMidi;

void prepareBuffers (int blockSize);
void renderBlock (int numSamples,
const ReferenceCountedArray <FilterInGraph>& filters,
const OwnedArray <FilterConnection>& connections);

FilterInGraph (const FilterInGraph&);
const FilterInGraph& operator= (const FilterInGraph&);
};
*/

//==============================================================================
/**
A collection of filters and some connections between them.
*/
class FilterGraph : public FileBasedDocument
{
public:
//==============================================================================
FilterGraph();
~FilterGraph();

//==============================================================================
AudioProcessorGraph& getGraph() throw() { return graph; }

int getNumFilters() const throw();
const AudioProcessorGraph::Node::Ptr getNode (const int index) const throw();
const AudioProcessorGraph::Node::Ptr getNodeForId (const uint32 uid) const throw();

void addFilter (const PluginDescription* desc, double x, double y);

void removeFilter (const uint32 filterUID);
void disconnectFilter (const uint32 filterUID);

void removeIllegalConnections();

void setNodePosition (const int nodeId, double x, double y);
void getNodePosition (const int nodeId, double& x, double& y) const;

//==============================================================================
int getNumConnections() const throw();
const AudioProcessorGraph::Connection* getConnection (const int index) const throw();

const AudioProcessorGraph::Connection* getConnectionBetween (uint32 sourceFilterUID, int sourceFilterChannel,
uint32 destFilterUID, int destFilterChannel) const throw();

bool canConnect (uint32 sourceFilterUID, int sourceFilterChannel,
uint32 destFilterUID, int destFilterChannel) const throw();

bool addConnection (uint32 sourceFilterUID, int sourceFilterChannel,
uint32 destFilterUID, int destFilterChannel);

void removeConnection (const int index);

void removeConnection (uint32 sourceFilterUID, int sourceFilterChannel,
uint32 destFilterUID, int destFilterChannel);

void clear();


//==============================================================================

XmlElement* createXml() const;
void restoreFromXml (const XmlElement& xml);

//==============================================================================
const String getDocumentTitle();
const String loadDocument (const File& file);
const String saveDocument (const File& file);
const File getLastDocumentOpened();
void setLastDocumentOpened (const File& file);

/** The special channel index used to refer to a filter's midi channel.
*/
static const int midiChannelNumber;

//==============================================================================
juce_UseDebuggingNewOperator

private:
//friend class FilterGraphPlayer;
//ReferenceCountedArray <FilterInGraph> filters;
//OwnedArray <FilterConnection> connections;

AudioProcessorGraph graph;
AudioProcessorPlayer player;

uint32 lastUID;
uint32 getNextUID() throw();

void createNodeFromXml (const XmlElement& xml);

FilterGraph (const FilterGraph&);
const FilterGraph& operator= (const FilterGraph&);
};


//==============================================================================
/**

*/
/*class FilterGraphPlayer : public AudioIODeviceCallback,
public MidiInputCallback,
public ChangeListener

{
public:
//==============================================================================
FilterGraphPlayer (FilterGraph& graph);
~FilterGraphPlayer();

//==============================================================================
void setAudioDeviceManager (AudioDeviceManager* dm);
AudioDeviceManager* getAudioDeviceManager() const throw() { return deviceManager; }

//==============================================================================
void audioDeviceIOCallback (const float** inputChannelData,
int totalNumInputChannels,
float** outputChannelData,
int totalNumOutputChannels,
int numSamples);
void audioDeviceAboutToStart (double sampleRate, int numSamplesPerBlock);
void audioDeviceStopped();

void handleIncomingMidiMessage (MidiInput* source, const MidiMessage& message);

void changeListenerCallback (void*);

//==============================================================================
static int compareElements (FilterInGraph* const first, FilterInGraph* const second) throw();

const float** inputChannelData;
int totalNumInputChannels;
float** outputChannelData;
int totalNumOutputChannels;
MidiBuffer incomingMidi;

MidiKeyboardState keyState;
MidiMessageCollector messageCollector;

//==============================================================================
class PlayerAwareFilter
{
public:
virtual void setPlayer (FilterGraphPlayer* newPlayer) = 0;
};

private:
FilterGraph& graph;
CriticalSection processLock;
double sampleRate;
int blockSize;
AudioDeviceManager* deviceManager;

ReferenceCountedArray <FilterInGraph> filters;
OwnedArray <FilterConnection> connections;

void update();

FilterGraphPlayer (const FilterGraphPlayer&);
const FilterGraphPlayer& operator= (const FilterGraphPlayer&);
};
*/

#endif

+ 1
- 1
extras/audio plugin host/src/host/GraphEditorPanel.cpp View File

@@ -29,7 +29,7 @@
==============================================================================
*/
#include "../../../../juce.h"
#include "../includes.h"
#include "GraphEditorPanel.h"
#include "InternalFilters.h"
#include "MainHostWindow.h"


+ 1
- 1
extras/audio plugin host/src/host/InternalFilters.cpp View File

@@ -29,7 +29,7 @@
==============================================================================
*/
#include "../../../../juce.h"
#include "../includes.h"
#include "InternalFilters.h"
#include "FilterGraph.h"


+ 1
- 1
extras/audio plugin host/src/host/MainHostWindow.cpp View File

@@ -29,7 +29,7 @@
==============================================================================
*/
#include "../../../../juce.h"
#include "../includes.h"
#include "MainHostWindow.h"
#include "InternalFilters.h"


+ 4
- 0
extras/audio plugin host/src/includes.h View File

@@ -0,0 +1,4 @@
#include "juce_AppConfig.h"
#include "../../../juce_amalgamated.h"
using juce::uint32;

+ 58
- 0
extras/audio plugin host/src/juce_AppConfig.h View File

@@ -0,0 +1,58 @@
/*
==============================================================================
This file is part of the JUCE library - "Jules' Utility Class Extensions"
Copyright 2004-7 by Raw Material Software ltd.
------------------------------------------------------------------------------
JUCE can be redistributed and/or modified 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.
JUCE 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 JUCE; if not, visit www.gnu.org/licenses or write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
Boston, MA 02111-1307 USA
------------------------------------------------------------------------------
If you'd like to release a closed-source product which uses JUCE, commercial
licenses are also available: visit www.rawmaterialsoftware.com/juce for
more information.
==============================================================================
*/
/*
This file contains settings that you might want to explicitly apply to
the your build.
Most of these are turned on or off by default, but you can override
that setting here by un-commenting it and giving it a 1 or 0 value.
*/
#define JUCE_PLUGINHOST_VST 1
#define JUCE_PLUGINHOST_AU 1
//#define JUCE_ONLY_BUILD_CORE_LIBRARY 1
//#define JUCE_FORCE_DEBUG 1
//#define JUCE_LOG_ASSERTIONS 1
//#define JUCE_ASIO 1
//#define JUCE_ALSA 1
//#define JUCE_QUICKTIME 1
//#define JUCE_OPENGL 1
//#define JUCE_USE_FLAC 1
//#define JUCE_USE_OGGVORBIS 1
//#define JUCE_USE_CDBURNER 1
//#define JUCE_ENABLE_REPAINT_DEBUGGING 1
//#define JUCE_USE_XINERAMA 1
//#define JUCE_USE_XSHM 1
//#define JUCE_BUILD_GUI_CLASSES 1
//#define JUCE_CHECK_MEMORY_LEAKS 1
//#define JUCE_CATCH_UNHANDLED_EXCEPTIONS 1
//#define JUCE_STRINGS_ARE_UNICODE 1

+ 12
- 0
extras/audio plugin host/src/juce_LibrarySource.cpp View File

@@ -0,0 +1,12 @@
/*
This file includes the entire juce source tree via the amalgamated file.
You could add the amalgamated file directly to your project, but doing it
like this allows you to put your app's config settings in the
juce_AppConfig.h file and have them applied to both the juce headers and
the source code.
*/
#include "juce_AppConfig.h"
#include "../../../juce_amalgamated.cpp"

+ 12
- 0
extras/audio plugin host/src/juce_LibrarySource.mm View File

@@ -0,0 +1,12 @@
/*
This file includes the entire juce source tree via the amalgamated file.
You could add the amalgamated file directly to your project, but doing it
like this allows you to put your app's config settings in the
juce_AppConfig.h file and have them applied to both the juce headers and
the source code.
*/
#include "juce_AppConfig.h"
#include "../../../juce_amalgamated.mm"

Loading…
Cancel
Save