diff --git a/examples/DemoRunner/Builds/Android/app/CMakeLists.txt b/examples/DemoRunner/Builds/Android/app/CMakeLists.txt
index d5c5f03e1e..b71634eb4b 100644
--- a/examples/DemoRunner/Builds/Android/app/CMakeLists.txt
+++ b/examples/DemoRunner/Builds/Android/app/CMakeLists.txt
@@ -1866,7 +1866,6 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp"
"../../../../../modules/juce_gui_extra/native/juce_linux_XEmbedComponent.cpp"
"../../../../../modules/juce_gui_extra/native/juce_mac_AppleRemote.mm"
- "../../../../../modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h"
"../../../../../modules/juce_gui_extra/native/juce_mac_NSViewComponent.mm"
"../../../../../modules/juce_gui_extra/native/juce_mac_NSViewFrameWatcher.h"
"../../../../../modules/juce_gui_extra/native/juce_mac_PushNotifications.cpp"
@@ -3804,7 +3803,6 @@ set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_l
set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_linux_XEmbedComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_mac_AppleRemote.mm" PROPERTIES HEADER_FILE_ONLY TRUE)
-set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_mac_NSViewComponent.mm" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_mac_NSViewFrameWatcher.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_mac_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
diff --git a/examples/DemoRunner/Builds/MacOSX/DemoRunner.xcodeproj/project.pbxproj b/examples/DemoRunner/Builds/MacOSX/DemoRunner.xcodeproj/project.pbxproj
index 1b53c7bf00..bd5ff44b23 100644
--- a/examples/DemoRunner/Builds/MacOSX/DemoRunner.xcodeproj/project.pbxproj
+++ b/examples/DemoRunner/Builds/MacOSX/DemoRunner.xcodeproj/project.pbxproj
@@ -36,7 +36,6 @@
7B4163348896EB1B86B15160 /* AVFoundation.framework */ = {isa = PBXBuildFile; fileRef = DC192EFA899E6CBE6B5CD394; };
8584640341100008744861A5 /* IOKit.framework */ = {isa = PBXBuildFile; fileRef = 71A91516AFD980FEE694C0E1; };
89AD16514B1F4133FFEA1DF9 /* WebKit.framework */ = {isa = PBXBuildFile; fileRef = 96D99A08027CA35D6A4E5CFD; };
- 89BC6E2354102D975E08E918 /* Carbon.framework */ = {isa = PBXBuildFile; fileRef = 440D507FD8F31DB62B1F95C7; };
8C0AEA08A71075A6C765AEC9 /* AVKit.framework */ = {isa = PBXBuildFile; fileRef = 3B99CF94C44E2EE04635A439; };
91CD2BCE4CA07E18229EB436 /* RecentFilesMenuTemplate.nib */ = {isa = PBXBuildFile; fileRef = 9672FCE6167ADB567A9EB2F8; };
9BEA1428416CE06BF72FBAB8 /* DiscRecording.framework */ = {isa = PBXBuildFile; fileRef = 3DC90DA86565B0356B6E5E0B; };
@@ -81,7 +80,6 @@
3DC90DA86565B0356B6E5E0B /* DiscRecording.framework */ /* DiscRecording.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = System/Library/Frameworks/DiscRecording.framework; sourceTree = SDKROOT; };
3E4ED41C374261CFFD309743 /* include_juce_graphics.mm */ /* include_juce_graphics.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_graphics.mm; path = ../../JuceLibraryCode/include_juce_graphics.mm; sourceTree = SOURCE_ROOT; };
40BD06D4AB0D2C73E936A2F1 /* OpenGL.framework */ /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; };
- 440D507FD8F31DB62B1F95C7 /* Carbon.framework */ /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; };
470C3E4553B513FFEF752779 /* AudioToolbox.framework */ /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
491641F7632BCC81BBA0ED85 /* juce_audio_formats */ /* juce_audio_formats */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_audio_formats; path = ../../../../modules/juce_audio_formats; sourceTree = SOURCE_ROOT; };
49ECA8B998B339A083674A22 /* Foundation.framework */ /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
@@ -148,7 +146,6 @@
163B0CF2DD0990A63DF1D5A6,
7B4163348896EB1B86B15160,
8C0AEA08A71075A6C765AEC9,
- 89BC6E2354102D975E08E918,
9F15FD7A7CE83CFD98F07D59,
1351A13E78F38741C6075600,
527DA2E6827BAFDDD3E8E80F,
@@ -173,7 +170,6 @@
470C3E4553B513FFEF752779,
DC192EFA899E6CBE6B5CD394,
3B99CF94C44E2EE04635A439,
- 440D507FD8F31DB62B1F95C7,
02A2ED58B066B4D119F67913,
4F0A137A4115946A346180E6,
B4389672DA4CC8E0A531062D,
diff --git a/examples/DemoRunner/Builds/VisualStudio2015/DemoRunner_App.vcxproj b/examples/DemoRunner/Builds/VisualStudio2015/DemoRunner_App.vcxproj
index 4eca74e762..e3ed40af62 100644
--- a/examples/DemoRunner/Builds/VisualStudio2015/DemoRunner_App.vcxproj
+++ b/examples/DemoRunner/Builds/VisualStudio2015/DemoRunner_App.vcxproj
@@ -3606,7 +3606,6 @@
-
diff --git a/examples/DemoRunner/Builds/VisualStudio2015/DemoRunner_App.vcxproj.filters b/examples/DemoRunner/Builds/VisualStudio2015/DemoRunner_App.vcxproj.filters
index d96da4118e..092b9959db 100644
--- a/examples/DemoRunner/Builds/VisualStudio2015/DemoRunner_App.vcxproj.filters
+++ b/examples/DemoRunner/Builds/VisualStudio2015/DemoRunner_App.vcxproj.filters
@@ -6288,9 +6288,6 @@
JUCE Modules\juce_gui_extra\misc
-
- JUCE Modules\juce_gui_extra\native
-
JUCE Modules\juce_gui_extra\native
diff --git a/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj b/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj
index 4c0db94320..19fdd65e96 100644
--- a/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj
+++ b/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj
@@ -3606,7 +3606,6 @@
-
diff --git a/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj.filters b/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj.filters
index fc46ae63c2..41909cda21 100644
--- a/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj.filters
+++ b/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj.filters
@@ -6288,9 +6288,6 @@
JUCE Modules\juce_gui_extra\misc
-
- JUCE Modules\juce_gui_extra\native
-
JUCE Modules\juce_gui_extra\native
diff --git a/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj b/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj
index 1be400378e..0282632b73 100644
--- a/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj
+++ b/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj
@@ -3606,7 +3606,6 @@
-
diff --git a/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj.filters b/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj.filters
index b0bc598c4b..8567ca3155 100644
--- a/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj.filters
+++ b/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj.filters
@@ -6288,9 +6288,6 @@
JUCE Modules\juce_gui_extra\misc
-
- JUCE Modules\juce_gui_extra\native
-
JUCE Modules\juce_gui_extra\native
diff --git a/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj b/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj
index 220445272d..b02959adfe 100644
--- a/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj
+++ b/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj
@@ -3606,7 +3606,6 @@
-
diff --git a/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj.filters b/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj.filters
index 2884a6b909..0db406c794 100644
--- a/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj.filters
+++ b/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj.filters
@@ -6288,9 +6288,6 @@
JUCE Modules\juce_gui_extra\misc
-
- JUCE Modules\juce_gui_extra\native
-
JUCE Modules\juce_gui_extra\native
diff --git a/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt b/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt
index 5201325022..ba54cfec80 100644
--- a/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt
+++ b/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt
@@ -1643,7 +1643,6 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp"
"../../../../../modules/juce_gui_extra/native/juce_linux_XEmbedComponent.cpp"
"../../../../../modules/juce_gui_extra/native/juce_mac_AppleRemote.mm"
- "../../../../../modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h"
"../../../../../modules/juce_gui_extra/native/juce_mac_NSViewComponent.mm"
"../../../../../modules/juce_gui_extra/native/juce_mac_NSViewFrameWatcher.h"
"../../../../../modules/juce_gui_extra/native/juce_mac_PushNotifications.cpp"
@@ -3279,7 +3278,6 @@ set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_l
set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_linux_XEmbedComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_mac_AppleRemote.mm" PROPERTIES HEADER_FILE_ONLY TRUE)
-set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_mac_NSViewComponent.mm" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_mac_NSViewFrameWatcher.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_mac_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
diff --git a/extras/AudioPerformanceTest/Builds/MacOSX/AudioPerformanceTest.xcodeproj/project.pbxproj b/extras/AudioPerformanceTest/Builds/MacOSX/AudioPerformanceTest.xcodeproj/project.pbxproj
index 6e55f50d9f..0d38b08e17 100644
--- a/extras/AudioPerformanceTest/Builds/MacOSX/AudioPerformanceTest.xcodeproj/project.pbxproj
+++ b/extras/AudioPerformanceTest/Builds/MacOSX/AudioPerformanceTest.xcodeproj/project.pbxproj
@@ -24,7 +24,6 @@
7E870C094BAE67D7EB149F1C /* include_juce_events.mm */ = {isa = PBXBuildFile; fileRef = 248FAA119A4FC24C522165EF; };
8A0F71A4EEC7FE694352DD94 /* Accelerate.framework */ = {isa = PBXBuildFile; fileRef = 9EADBF913B7A454B6BE93A4A; };
9031C69145EE085B60904363 /* IOKit.framework */ = {isa = PBXBuildFile; fileRef = 43775DC3D9F7917846EA5327; };
- 9B19A6655FCC8086134C8656 /* Carbon.framework */ = {isa = PBXBuildFile; fileRef = 1DA5C6A474916745AFEC6DA5; };
9D47995A33BBA693ED435B31 /* include_juce_gui_extra.mm */ = {isa = PBXBuildFile; fileRef = B06AE97C86D27E7FEBCB4631; };
C7B090C29D8DE4D2503204B1 /* include_juce_audio_utils.mm */ = {isa = PBXBuildFile; fileRef = BAFDA8DE51E7A69E477439EB; };
CC782AABFA20787BABBCED90 /* Foundation.framework */ = {isa = PBXBuildFile; fileRef = E1BB9D521BF6C055F5B88628; };
@@ -43,7 +42,6 @@
12C680C68A15B9A590264B18 /* CoreMIDI.framework */ /* CoreMIDI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; };
18C1CCE5684F9FA0478F27AD /* AudioToolbox.framework */ /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
18E39207A0F5F9B8BC7EE94F /* include_juce_audio_processors.mm */ /* include_juce_audio_processors.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_audio_processors.mm; path = ../../JuceLibraryCode/include_juce_audio_processors.mm; sourceTree = SOURCE_ROOT; };
- 1DA5C6A474916745AFEC6DA5 /* Carbon.framework */ /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; };
24425FFB0BCC7E54CADAA013 /* include_juce_core.mm */ /* include_juce_core.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_core.mm; path = ../../JuceLibraryCode/include_juce_core.mm; sourceTree = SOURCE_ROOT; };
248FAA119A4FC24C522165EF /* include_juce_events.mm */ /* include_juce_events.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_events.mm; path = ../../JuceLibraryCode/include_juce_events.mm; sourceTree = SOURCE_ROOT; };
24D90B40648CC05A9B1AA55B /* CoreAudioKit.framework */ /* CoreAudioKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; };
@@ -87,7 +85,6 @@
files = (
8A0F71A4EEC7FE694352DD94,
30BE30F31D1AAED9FC893AA5,
- 9B19A6655FCC8086134C8656,
0319B40AD2FD96007FFA928B,
5AFD011031C266431687C922,
71863EE98034AB7C3CBCAA81,
@@ -108,7 +105,6 @@
children = (
9EADBF913B7A454B6BE93A4A,
18C1CCE5684F9FA0478F27AD,
- 1DA5C6A474916745AFEC6DA5,
453777CEB7099A5D61901D13,
9F28F179EF6B90EB9F4DBEE9,
24D90B40648CC05A9B1AA55B,
diff --git a/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj b/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj
index d9cd8fc6d3..2bd3941749 100644
--- a/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj
+++ b/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj
@@ -3105,7 +3105,6 @@
-
diff --git a/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj.filters b/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj.filters
index 732f83d377..804e40d46c 100644
--- a/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj.filters
+++ b/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj.filters
@@ -5403,9 +5403,6 @@
JUCE Modules\juce_gui_extra\misc
-
- JUCE Modules\juce_gui_extra\native
-
JUCE Modules\juce_gui_extra\native
diff --git a/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt b/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt
index cde798552c..c278a6b890 100644
--- a/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt
+++ b/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt
@@ -1773,7 +1773,6 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp"
"../../../../../modules/juce_gui_extra/native/juce_linux_XEmbedComponent.cpp"
"../../../../../modules/juce_gui_extra/native/juce_mac_AppleRemote.mm"
- "../../../../../modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h"
"../../../../../modules/juce_gui_extra/native/juce_mac_NSViewComponent.mm"
"../../../../../modules/juce_gui_extra/native/juce_mac_NSViewFrameWatcher.h"
"../../../../../modules/juce_gui_extra/native/juce_mac_PushNotifications.cpp"
@@ -3563,7 +3562,6 @@ set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_l
set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_linux_XEmbedComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_mac_AppleRemote.mm" PROPERTIES HEADER_FILE_ONLY TRUE)
-set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_mac_NSViewComponent.mm" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_mac_NSViewFrameWatcher.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_mac_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
diff --git a/extras/AudioPluginHost/Builds/MacOSX/AudioPluginHost.xcodeproj/project.pbxproj b/extras/AudioPluginHost/Builds/MacOSX/AudioPluginHost.xcodeproj/project.pbxproj
index c14a3a46b7..151b4ac915 100644
--- a/extras/AudioPluginHost/Builds/MacOSX/AudioPluginHost.xcodeproj/project.pbxproj
+++ b/extras/AudioPluginHost/Builds/MacOSX/AudioPluginHost.xcodeproj/project.pbxproj
@@ -14,7 +14,6 @@
15CCE43D7DCFC649638919D4 /* include_juce_audio_basics.mm */ = {isa = PBXBuildFile; fileRef = 4C7D82F9274A4F9DBF11235C; };
21D330A5B13178B12BEAFC3C /* AudioToolbox.framework */ = {isa = PBXBuildFile; fileRef = D4EBC17BDB7F88CCBC76730B; };
2727A191DB1BAAC9C04B9081 /* include_juce_opengl.mm */ = {isa = PBXBuildFile; fileRef = 37E4D5C341406B7072120006; };
- 2B4B9CF71F94BDD1E3AC89AE /* Carbon.framework */ = {isa = PBXBuildFile; fileRef = B0935EBBA4F6E2B05F3D1C0A; };
2C3D221D2AA87F07B3F1044D /* include_juce_gui_basics.mm */ = {isa = PBXBuildFile; fileRef = 8FE7B37CDE0818DB27BDDEBD; };
3E1689E23B9C85F03209DCEF /* GraphEditorPanel.cpp */ = {isa = PBXBuildFile; fileRef = 3D78A731234A833CA112AE45; };
443244451A0F2064D4767337 /* Icon.icns */ = {isa = PBXBuildFile; fileRef = 2A6983F82B13F9E8B10299AE; };
@@ -103,7 +102,6 @@
A66EFAC64B1B67B536C73415 /* HostStartup.cpp */ /* HostStartup.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = HostStartup.cpp; path = ../../Source/HostStartup.cpp; sourceTree = SOURCE_ROOT; };
A692426308435C2002F988FE /* proaudio.path */ /* proaudio.path */ = {isa = PBXFileReference; lastKnownFileType = file.path; name = proaudio.path; path = ../../../../examples/Assets/proaudio.path; sourceTree = SOURCE_ROOT; };
A872AF2CAFFC72109B9C6348 /* cassette_recorder.wav */ /* cassette_recorder.wav */ = {isa = PBXFileReference; lastKnownFileType = file.wav; name = cassette_recorder.wav; path = ../../../../examples/Assets/cassette_recorder.wav; sourceTree = SOURCE_ROOT; };
- B0935EBBA4F6E2B05F3D1C0A /* Carbon.framework */ /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; };
B285CAB91AE928C476CA4F9C /* include_juce_audio_utils.mm */ /* include_juce_audio_utils.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_audio_utils.mm; path = ../../JuceLibraryCode/include_juce_audio_utils.mm; sourceTree = SOURCE_ROOT; };
B2A1E626CC120982805754F6 /* JUCEAppIcon.png */ /* JUCEAppIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = JUCEAppIcon.png; path = ../../Source/JUCEAppIcon.png; sourceTree = SOURCE_ROOT; };
B457EE687507BF1DEEA7581F /* WebKit.framework */ /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; };
@@ -130,7 +128,6 @@
B288A89F96704F142ED8E939,
73E371F1B912FCCAE0CD7E5D,
21D330A5B13178B12BEAFC3C,
- 2B4B9CF71F94BDD1E3AC89AE,
AC3BED74AC7C6D9F5739F38B,
E3CB85BA817BC9E3942A8AB0,
70580743C3D5695F065FF698,
@@ -269,7 +266,6 @@
5ACC21AA45BBF48C3C64D56D,
86CA337014D3F67E906FFD28,
D4EBC17BDB7F88CCBC76730B,
- B0935EBBA4F6E2B05F3D1C0A,
9794142D24966F93FFDE51A1,
9F9B445E6755CAA19E4344ED,
E68018DE199135B7F738FB17,
diff --git a/extras/AudioPluginHost/Builds/VisualStudio2015/AudioPluginHost_App.vcxproj b/extras/AudioPluginHost/Builds/VisualStudio2015/AudioPluginHost_App.vcxproj
index da0c8f40ef..478b4e5417 100644
--- a/extras/AudioPluginHost/Builds/VisualStudio2015/AudioPluginHost_App.vcxproj
+++ b/extras/AudioPluginHost/Builds/VisualStudio2015/AudioPluginHost_App.vcxproj
@@ -3340,7 +3340,6 @@
-
diff --git a/extras/AudioPluginHost/Builds/VisualStudio2015/AudioPluginHost_App.vcxproj.filters b/extras/AudioPluginHost/Builds/VisualStudio2015/AudioPluginHost_App.vcxproj.filters
index a7512a68ad..11b7d381fb 100644
--- a/extras/AudioPluginHost/Builds/VisualStudio2015/AudioPluginHost_App.vcxproj.filters
+++ b/extras/AudioPluginHost/Builds/VisualStudio2015/AudioPluginHost_App.vcxproj.filters
@@ -5838,9 +5838,6 @@
JUCE Modules\juce_gui_extra\misc
-
- JUCE Modules\juce_gui_extra\native
-
JUCE Modules\juce_gui_extra\native
diff --git a/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj b/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj
index f1aae45228..4d5d448c28 100644
--- a/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj
+++ b/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj
@@ -3340,7 +3340,6 @@
-
diff --git a/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj.filters b/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj.filters
index d897f689ca..78b43e5282 100644
--- a/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj.filters
+++ b/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj.filters
@@ -5838,9 +5838,6 @@
JUCE Modules\juce_gui_extra\misc
-
- JUCE Modules\juce_gui_extra\native
-
JUCE Modules\juce_gui_extra\native
diff --git a/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj b/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj
index 20318fc96e..cb62b966f3 100644
--- a/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj
+++ b/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj
@@ -3340,7 +3340,6 @@
-
diff --git a/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj.filters b/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj.filters
index 2ac10f615c..f01b06f6e0 100644
--- a/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj.filters
+++ b/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj.filters
@@ -5838,9 +5838,6 @@
JUCE Modules\juce_gui_extra\misc
-
- JUCE Modules\juce_gui_extra\native
-
JUCE Modules\juce_gui_extra\native
diff --git a/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj b/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj
index c41e896d67..1e522b9252 100644
--- a/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj
+++ b/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj
@@ -3340,7 +3340,6 @@
-
diff --git a/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj.filters b/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj.filters
index 9873e70fa1..d1fd27ded4 100644
--- a/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj.filters
+++ b/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj.filters
@@ -5838,9 +5838,6 @@
JUCE Modules\juce_gui_extra\misc
-
- JUCE Modules\juce_gui_extra\native
-
JUCE Modules\juce_gui_extra\native
diff --git a/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt b/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt
index d0a9bc6ae5..2de17f64fc 100644
--- a/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt
+++ b/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt
@@ -1662,7 +1662,6 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp"
"../../../../../modules/juce_gui_extra/native/juce_linux_XEmbedComponent.cpp"
"../../../../../modules/juce_gui_extra/native/juce_mac_AppleRemote.mm"
- "../../../../../modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h"
"../../../../../modules/juce_gui_extra/native/juce_mac_NSViewComponent.mm"
"../../../../../modules/juce_gui_extra/native/juce_mac_NSViewFrameWatcher.h"
"../../../../../modules/juce_gui_extra/native/juce_mac_PushNotifications.cpp"
@@ -3378,7 +3377,6 @@ set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_l
set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_linux_XEmbedComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_mac_AppleRemote.mm" PROPERTIES HEADER_FILE_ONLY TRUE)
-set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_mac_NSViewComponent.mm" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_mac_NSViewFrameWatcher.h" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_mac_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
diff --git a/extras/NetworkGraphicsDemo/Builds/MacOSX/NetworkGraphicsDemo.xcodeproj/project.pbxproj b/extras/NetworkGraphicsDemo/Builds/MacOSX/NetworkGraphicsDemo.xcodeproj/project.pbxproj
index 41b3f82a88..d0f19ffb1a 100644
--- a/extras/NetworkGraphicsDemo/Builds/MacOSX/NetworkGraphicsDemo.xcodeproj/project.pbxproj
+++ b/extras/NetworkGraphicsDemo/Builds/MacOSX/NetworkGraphicsDemo.xcodeproj/project.pbxproj
@@ -29,7 +29,6 @@
A1F34D09F4E4338775917ED1 /* include_juce_audio_formats.mm */ = {isa = PBXBuildFile; fileRef = C6E2284D86D93F1D9D5C7666; };
B323E5E5FBD5663B21A8E623 /* OpenGL.framework */ = {isa = PBXBuildFile; fileRef = 996E743A20FC78671766BF59; };
BB9A9692D99DD0DDB1047B60 /* include_juce_audio_basics.mm */ = {isa = PBXBuildFile; fileRef = 6D1F9E505D20C09647124F0A; };
- BED88ADEA4DC91AA8C810FA8 /* Carbon.framework */ = {isa = PBXBuildFile; fileRef = 398A945EFD9ED923162982B1; };
C4D6C466C41173D6970553D2 /* AudioToolbox.framework */ = {isa = PBXBuildFile; fileRef = 9E8129263CD42C6029FC2CAD; };
C5E7BAD864E02CF37F7BD707 /* include_juce_events.mm */ = {isa = PBXBuildFile; fileRef = 33AA348465F512DBA8778DAF; };
C6348C6B1D0312580E97EA19 /* include_juce_osc.cpp */ = {isa = PBXBuildFile; fileRef = 3BF06B70407FFDBE9534F942; };
@@ -50,7 +49,6 @@
25DEDA8C9F94A6C8DFC8E53E /* SharedCanvas.h */ /* SharedCanvas.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SharedCanvas.h; path = ../../Source/SharedCanvas.h; sourceTree = SOURCE_ROOT; };
2E13A899F4E3C99054A3656F /* Accelerate.framework */ /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; };
33AA348465F512DBA8778DAF /* include_juce_events.mm */ /* include_juce_events.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_events.mm; path = ../../JuceLibraryCode/include_juce_events.mm; sourceTree = SOURCE_ROOT; };
- 398A945EFD9ED923162982B1 /* Carbon.framework */ /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; };
3BF06B70407FFDBE9534F942 /* include_juce_osc.cpp */ /* include_juce_osc.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = include_juce_osc.cpp; path = ../../JuceLibraryCode/include_juce_osc.cpp; sourceTree = SOURCE_ROOT; };
448838BE6E937D450A3C84CE /* CoreMIDI.framework */ /* CoreMIDI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; };
4D1DB6D77B6F3DE7A569780B /* CoreAudioKit.framework */ /* CoreAudioKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; };
@@ -107,7 +105,6 @@
files = (
80EE2C27B466BAFD83881D3F,
C4D6C466C41173D6970553D2,
- BED88ADEA4DC91AA8C810FA8,
3C30D7C28C86F4054257DCD5,
67DF295E93E54432043126DF,
770AB74B1D3A0108F764DD47,
@@ -151,7 +148,6 @@
children = (
2E13A899F4E3C99054A3656F,
9E8129263CD42C6029FC2CAD,
- 398A945EFD9ED923162982B1,
C78806A6727F44EACFDED4A5,
6799B056504F9F017998B9E2,
4D1DB6D77B6F3DE7A569780B,
diff --git a/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj b/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj
index f7274b2353..2cdd187edf 100644
--- a/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj
+++ b/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj
@@ -3203,7 +3203,6 @@
-
diff --git a/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj.filters b/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj.filters
index 472daf4dd6..eb4361bc0e 100644
--- a/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj.filters
+++ b/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj.filters
@@ -5565,9 +5565,6 @@
JUCE Modules\juce_gui_extra\misc
-
- JUCE Modules\juce_gui_extra\native
-
JUCE Modules\juce_gui_extra\native
diff --git a/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj b/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj
index 1b71747456..d003934b01 100644
--- a/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj
+++ b/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj
@@ -17,7 +17,6 @@
11D42F7EC6E6539D79A7F4B1 /* QuartzCore.framework */ = {isa = PBXBuildFile; fileRef = E5D6C36496F5BC84D7213BE8; };
1321E6C1C6170B6C898AD09D /* Icon.icns */ = {isa = PBXBuildFile; fileRef = 951128CA33CCDEF570436B1C; };
1B988E139004D8E2850EB656 /* jucer_PaintRoutine.cpp */ = {isa = PBXBuildFile; fileRef = C187718F7B9EBA88584B43F3; };
- 1E76E36772355E2A43CF4961 /* Carbon.framework */ = {isa = PBXBuildFile; fileRef = D00F311BFC3C2625C457CB9B; };
209FCCC2155A1FCB7E11E20D /* jucer_JucerDocument.cpp */ = {isa = PBXBuildFile; fileRef = 269A454F1FF081DA67FFD578; };
234B6BA2952CBC7C61EF70EF /* include_juce_events.mm */ = {isa = PBXBuildFile; fileRef = 5867DC4E39DF8539B54C0D59; };
241F29FCBB7A17BB44A0B10C /* Cocoa.framework */ = {isa = PBXBuildFile; fileRef = D1F9B0E9F5D54FE48BEB46EA; };
@@ -314,7 +313,6 @@
CCD62DB0A19A985A4B9D7F32 /* jucer_ProjectExport_Android.h */ /* jucer_ProjectExport_Android.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_ProjectExport_Android.h; path = ../../Source/ProjectSaving/jucer_ProjectExport_Android.h; sourceTree = SOURCE_ROOT; };
CD267A28C16C4E79EB749005 /* gpl_logo.svg */ /* gpl_logo.svg */ = {isa = PBXFileReference; lastKnownFileType = file.svg; name = gpl_logo.svg; path = ../../Source/BinaryData/Icons/gpl_logo.svg; sourceTree = SOURCE_ROOT; };
CF6C8BD0DA3D8CD4E99EBADA /* WebKit.framework */ /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; };
- D00F311BFC3C2625C457CB9B /* Carbon.framework */ /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; };
D045BD5943BD38F2720FF5F0 /* jucer_FontPropertyComponent.h */ /* jucer_FontPropertyComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucer_FontPropertyComponent.h; path = ../../Source/ComponentEditor/Properties/jucer_FontPropertyComponent.h; sourceTree = SOURCE_ROOT; };
D05BD91B6105827B010E1C20 /* juce_gui_extra */ /* juce_gui_extra */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_gui_extra; path = ../../../../modules/juce_gui_extra; sourceTree = SOURCE_ROOT; };
D1739728A79A2062418B8EF0 /* wizard_StaticLibrary.svg */ /* wizard_StaticLibrary.svg */ = {isa = PBXFileReference; lastKnownFileType = file.svg; name = wizard_StaticLibrary.svg; path = ../../Source/BinaryData/Icons/wizard_StaticLibrary.svg; sourceTree = SOURCE_ROOT; };
@@ -390,7 +388,6 @@
A578EAD4BB55680E8097BE0F,
C1B9334AE849F93FB3C56B34,
A14C2C2725DA3CA7995D2815,
- 1E76E36772355E2A43CF4961,
241F29FCBB7A17BB44A0B10C,
9359F9401D59B4517F75C39C,
091A57B4B9CE623E75E9A756,
@@ -442,7 +439,6 @@
80D62B907248523E6943298B,
5A75806B34E4EA6598A6024A,
210CD22F25F2C22F9CEEB025,
- D00F311BFC3C2625C457CB9B,
D1F9B0E9F5D54FE48BEB46EA,
728FE25157E9874D50BBECB2,
E983E6DDE3318B872EBE347F,
diff --git a/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj
index ba88364648..3a571ed2f5 100644
--- a/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj
+++ b/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj
@@ -2136,7 +2136,6 @@
-
diff --git a/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj.filters
index d5f0a1bc4a..357d27d0c1 100644
--- a/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj.filters
+++ b/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj.filters
@@ -3759,9 +3759,6 @@
JUCE Modules\juce_gui_extra\misc
-
- JUCE Modules\juce_gui_extra\native
-
JUCE Modules\juce_gui_extra\native
diff --git a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj
index a2df1940ee..f5409fcd7f 100644
--- a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj
+++ b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj
@@ -2136,7 +2136,6 @@
-
diff --git a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters
index 3db0598689..b7a61c47a1 100644
--- a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters
+++ b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters
@@ -3759,9 +3759,6 @@
JUCE Modules\juce_gui_extra\misc
-
- JUCE Modules\juce_gui_extra\native
-
JUCE Modules\juce_gui_extra\native
diff --git a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj
index 4bfcc019cb..9d14dd96bd 100644
--- a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj
+++ b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj
@@ -2136,7 +2136,6 @@
-
diff --git a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters
index 3a6b70316d..9696b57ba3 100644
--- a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters
+++ b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters
@@ -3759,9 +3759,6 @@
JUCE Modules\juce_gui_extra\misc
-
- JUCE Modules\juce_gui_extra\native
-
JUCE Modules\juce_gui_extra\native
diff --git a/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj
index c68d16d02c..3259f8cc02 100644
--- a/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj
+++ b/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj
@@ -2136,7 +2136,6 @@
-
diff --git a/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj.filters
index 154e88be0d..8edf98299d 100644
--- a/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj.filters
+++ b/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj.filters
@@ -3759,9 +3759,6 @@
JUCE Modules\juce_gui_extra\misc
-
- JUCE Modules\juce_gui_extra\native
-
JUCE Modules\juce_gui_extra\native
diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp
index 36641d0716..251040d54b 100644
--- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp
+++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp
@@ -389,7 +389,7 @@ void ProjectExporter::addCommonAudioPluginSettings()
{
if (shouldBuildTargetType (build_tools::ProjectType::Target::AAXPlugIn))
addAAXFoldersToPath();
- }
+}
void ProjectExporter::addLegacyVSTFolderToPathIfSpecified()
{
diff --git a/extras/UnitTestRunner/Builds/MacOSX/UnitTestRunner.xcodeproj/project.pbxproj b/extras/UnitTestRunner/Builds/MacOSX/UnitTestRunner.xcodeproj/project.pbxproj
index 5c1e4e31cf..7f97f9a408 100644
--- a/extras/UnitTestRunner/Builds/MacOSX/UnitTestRunner.xcodeproj/project.pbxproj
+++ b/extras/UnitTestRunner/Builds/MacOSX/UnitTestRunner.xcodeproj/project.pbxproj
@@ -19,7 +19,6 @@
3822F598DA7044E5DB7633A9 /* include_juce_audio_utils.mm */ = {isa = PBXBuildFile; fileRef = 846E187EC2E797B982861CA4; };
3866839F4051D104244870B1 /* CoreAudioKit.framework */ = {isa = PBXBuildFile; fileRef = 336A244E3C6460495F0A424C; };
4BC57B0D2215621D90C8881C /* WebKit.framework */ = {isa = PBXBuildFile; fileRef = D2EBC6292AE5AFC46EB10DAC; };
- 59004CE43AE081B4A6CE9E17 /* Carbon.framework */ = {isa = PBXBuildFile; fileRef = 1932D54A7FAE13BADBA3E9B5; };
5CB3596030B0DD3763CAF85C /* include_juce_data_structures.mm */ = {isa = PBXBuildFile; fileRef = 302A999B2803C0D5C15D237C; };
5FE50792EDC7638DE9A824B5 /* RecentFilesMenuTemplate.nib */ = {isa = PBXBuildFile; fileRef = 5C7BDD8DF72F2FC2D44D757A; };
66FC7F44EEC9044E5C4A21C3 /* CoreAudio.framework */ = {isa = PBXBuildFile; fileRef = C0531453A002C480280C5F05; };
@@ -54,7 +53,6 @@
080EAB9CF5AB2BD6B2BBB173 /* ConsoleApp */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = UnitTestRunner; sourceTree = BUILT_PRODUCTS_DIR; };
08ED235CBE02E0FB4BE4653E /* include_juce_cryptography.mm */ /* include_juce_cryptography.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_cryptography.mm; path = ../../JuceLibraryCode/include_juce_cryptography.mm; sourceTree = SOURCE_ROOT; };
1088318C19CEB1861C58B3BA /* include_juce_video.mm */ /* include_juce_video.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_video.mm; path = ../../JuceLibraryCode/include_juce_video.mm; sourceTree = SOURCE_ROOT; };
- 1932D54A7FAE13BADBA3E9B5 /* Carbon.framework */ /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; };
1CA82C74AEC08421812BDCAC /* include_juce_opengl.mm */ /* include_juce_opengl.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_opengl.mm; path = ../../JuceLibraryCode/include_juce_opengl.mm; sourceTree = SOURCE_ROOT; };
1DC921E6494548F5E73E1056 /* juce_graphics */ /* juce_graphics */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_graphics; path = ../../../../modules/juce_graphics; sourceTree = SOURCE_ROOT; };
2030A589A9355FE6A0F72428 /* Cocoa.framework */ /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
@@ -116,7 +114,6 @@
96EFF7BA261F57DD829324D8,
6EB1A3B818863EF1787A9CCE,
D82BA4D40F5686DAFF5E11FB,
- 59004CE43AE081B4A6CE9E17,
AA207299991F85938465BF65,
66FC7F44EEC9044E5C4A21C3,
3866839F4051D104244870B1,
@@ -141,7 +138,6 @@
7898C73DCA6FA9D9CF669D32,
4B427AF10E722F9A362CEB73,
99527F36B4484133087435CD,
- 1932D54A7FAE13BADBA3E9B5,
2030A589A9355FE6A0F72428,
C0531453A002C480280C5F05,
336A244E3C6460495F0A424C,
diff --git a/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj b/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj
index 135a1d0fa8..bb994d062b 100644
--- a/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj
+++ b/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj
@@ -3408,7 +3408,6 @@
-
diff --git a/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj.filters b/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj.filters
index 0bd431d93e..94b20f9151 100644
--- a/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj.filters
+++ b/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj.filters
@@ -5934,9 +5934,6 @@
JUCE Modules\juce_gui_extra\misc
-
- JUCE Modules\juce_gui_extra\native
-
JUCE Modules\juce_gui_extra\native
diff --git a/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj b/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj
index c297f398d9..46728cebae 100644
--- a/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj
+++ b/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj
@@ -3408,7 +3408,6 @@
-
diff --git a/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj.filters b/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj.filters
index ed815dcaae..441d0dcaa0 100644
--- a/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj.filters
+++ b/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj.filters
@@ -5934,9 +5934,6 @@
JUCE Modules\juce_gui_extra\misc
-
- JUCE Modules\juce_gui_extra\native
-
JUCE Modules\juce_gui_extra\native
diff --git a/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj b/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj
index ed202f9bd6..b61c0b2b6a 100644
--- a/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj
+++ b/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj
@@ -3408,7 +3408,6 @@
-
diff --git a/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj.filters b/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj.filters
index c1e12f0ba3..5c0d2eff20 100644
--- a/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj.filters
+++ b/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj.filters
@@ -5934,9 +5934,6 @@
JUCE Modules\juce_gui_extra\misc
-
- JUCE Modules\juce_gui_extra\native
-
JUCE Modules\juce_gui_extra\native
diff --git a/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj b/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj
index 4ffe980b35..c294584879 100644
--- a/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj
+++ b/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj
@@ -3179,7 +3179,6 @@
-
diff --git a/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj.filters b/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj.filters
index 8e074616e7..3434ca1387 100644
--- a/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj.filters
+++ b/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj.filters
@@ -5532,9 +5532,6 @@
JUCE Modules\juce_gui_extra\misc
-
- JUCE Modules\juce_gui_extra\native
-
JUCE Modules\juce_gui_extra\native
diff --git a/modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUCarbonViewBase.cpp b/modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUCarbonViewBase.cpp
deleted file mode 100644
index 4b9525b1bf..0000000000
--- a/modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUCarbonViewBase.cpp
+++ /dev/null
@@ -1,403 +0,0 @@
-/*
- File: AUCarbonViewBase.cpp
- Abstract: AUCarbonViewBase.h
- Version: 1.1
-
- Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple
- Inc. ("Apple") in consideration of your agreement to the following
- terms, and your use, installation, modification or redistribution of
- this Apple software constitutes acceptance of these terms. If you do
- not agree with these terms, please do not use, install, modify or
- redistribute this Apple software.
-
- In consideration of your agreement to abide by the following terms, and
- subject to these terms, Apple grants you a personal, non-exclusive
- license, under Apple's copyrights in this original Apple software (the
- "Apple Software"), to use, reproduce, modify and redistribute the Apple
- Software, with or without modifications, in source and/or binary forms;
- provided that if you redistribute the Apple Software in its entirety and
- without modifications, you must retain this notice and the following
- text and disclaimers in all such redistributions of the Apple Software.
- Neither the name, trademarks, service marks or logos of Apple Inc. may
- be used to endorse or promote products derived from the Apple Software
- without specific prior written permission from Apple. Except as
- expressly stated in this notice, no other rights or licenses, express or
- implied, are granted by Apple herein, including but not limited to any
- patent rights that may be infringed by your derivative works or by other
- works in which the Apple Software may be incorporated.
-
- The Apple Software is provided by Apple on an "AS IS" basis. APPLE
- MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION
- THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS
- FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND
- OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
-
- IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,
- MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED
- AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
- STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-
- Copyright (C) 2014 Apple Inc. All Rights Reserved.
-
-*/
-#include "AUCarbonViewBase.h"
-#include "AUCarbonViewControl.h"
-#include
-
-AUCarbonViewBase::AUCarbonViewBase(AudioUnitCarbonView inInstance, Float32 inNotificationInterval /* in seconds */) :
- ComponentBase(inInstance),
- mEditAudioUnit(0),
- mParameterListener(NULL),
-#if !__LP64__
- mEventListener(NULL),
-#endif
- mTimerRef (NULL),
- mTimerUPP (NULL),
- mCarbonWindow(NULL),
- mCarbonPane(NULL),
- mXOffset(0),
- mYOffset(0)
-{
- AUEventListenerCreate (ParameterListener, this,
- CFRunLoopGetCurrent(), kCFRunLoopCommonModes,
- inNotificationInterval, inNotificationInterval,
- &mParameterListener);
-}
-
-AUCarbonViewBase::~AUCarbonViewBase()
-{
-#if !__LP64__
- if (mCarbonPane)
- DisposeControl(mCarbonPane);
-
- for (ControlList::iterator it = mControlList.begin(); it != mControlList.end(); ++it) {
- AUCarbonViewControl *ctl = *it;
- delete ctl;
- }
- AUListenerDispose(mParameterListener);
-
- if (mTimerRef)
- ::RemoveEventLoopTimer (mTimerRef);
-
- if (mTimerUPP)
- DisposeEventLoopTimerUPP (mTimerUPP);
-#endif
-}
-
-void AUCarbonViewBase::AddControl(AUCarbonViewControl *control)
-{
- ControlList::iterator it = find(mControlList.begin(), mControlList.end(), control);
- if (it == mControlList.end())
- mControlList.push_back(control);
-}
-
-void AUCarbonViewBase::RemoveControl(AUCarbonViewControl *control)
-{
- ControlList::iterator it = find(mControlList.begin(), mControlList.end(), control);
- if (it != mControlList.end()) {
- AUCarbonViewControl *ctl = *it;
- mControlList.erase(it);
- delete ctl;
- }
-}
-
-void AUCarbonViewBase::ClearControls ()
-{
- for (ControlList::iterator it = mControlList.begin(); it != mControlList.end(); ++it) {
- AUCarbonViewControl *ctl = *it;
- delete ctl;
- }
- mControlList.clear();
-}
-
-void AUCarbonViewBase::ParameterListener(void * inCallbackRefCon,
- void * inObject,
- const AudioUnitEvent * inEvent,
- UInt64 inEventHostTime,
- Float32 inParameterValue)
-{
- if (inEvent->mEventType == kAudioUnitEvent_ParameterValueChange) {
- AUCarbonViewControl *ctl = (AUCarbonViewControl *)inObject;
- ctl->ParameterToControl(inParameterValue);
- }
-}
-
-
-OSStatus AUCarbonViewBase::CreateCarbonView(AudioUnit inAudioUnit, WindowRef inWindow, ControlRef inParentControl, const Float32Point &inLocation, const Float32Point &inSize, ControlRef &outParentControl)
-{
-#if !__LP64__
- mEditAudioUnit = inAudioUnit;
- mCarbonWindow = inWindow;
-
- WindowAttributes attributes;
- verify_noerr(GetWindowAttributes(mCarbonWindow, &attributes));
- mCompositWindow = (attributes & kWindowCompositingAttribute) != 0;
-
- Rect area;
- area.left = short(inLocation.x); area.top = short(inLocation.y);
- area.right = short(area.left + inSize.x); area.bottom = short(area.top + inSize.y);
- OSStatus err = ::CreateUserPaneControl(inWindow, &area,
- kControlSupportsEmbedding,
- &mCarbonPane); // subclass can resize mCarbonPane to taste
- verify_noerr(err);
- if (err) return err;
- outParentControl = mCarbonPane;
-
- // register for mouse-down in our pane -- we want to clear focus
- EventTypeSpec paneEvents[] = {
- { kEventClassControl, kEventControlClick }
- };
- WantEventTypes(GetControlEventTarget(mCarbonPane), GetEventTypeCount(paneEvents), paneEvents);
-
- if (IsCompositWindow()) {
- verify_noerr(::HIViewAddSubview(inParentControl, mCarbonPane));
- mXOffset = 0;
- mYOffset = 0;
- }
- else {
- verify_noerr(::EmbedControl(mCarbonPane, inParentControl));
- mXOffset = inLocation.x;
- mYOffset = inLocation.y;
- }
- mBottomRight.h = mBottomRight.v = 0;
-
- SizeControl(mCarbonPane, 0, 0);
- if (err = CreateUI(mXOffset, mYOffset))
- return err;
-
- // we should only resize the control if a subclass has embedded
- // controls in this AND this is done with the EmbedControl call below
- // if mBottomRight is STILL equal to zero, then that wasn't done
- // so don't size the control
- Rect paneBounds;
- GetControlBounds(mCarbonPane, &paneBounds);
- // only resize mCarbonPane if it has not already been resized during CreateUI
- if ((paneBounds.top == paneBounds.bottom) && (paneBounds.left == paneBounds.right)) {
- if (mBottomRight.h != 0 && mBottomRight.v != 0)
- SizeControl(mCarbonPane, (short) (mBottomRight.h - mXOffset), (short) (mBottomRight.v - mYOffset));
- }
-
- if (IsCompositWindow()) {
- // prepare for handling scroll-events
- EventTypeSpec scrollEvents[] = {
- { kEventClassScrollable, kEventScrollableGetInfo },
- { kEventClassScrollable, kEventScrollableScrollTo }
- };
-
- WantEventTypes(GetControlEventTarget(mCarbonPane), GetEventTypeCount(scrollEvents), scrollEvents);
-
- mCurrentScrollPoint.x = mCurrentScrollPoint.y = 0.0f;
- }
-
- return err;
-#else
- return noErr;
-#endif
-}
-
-OSStatus AUCarbonViewBase::CreateUI(Float32 inXOffset, Float32 inYOffset)
-{
- return noErr;
-}
-
-OSStatus AUCarbonViewBase::EmbedControl(ControlRef ctl)
-{
-#if !__LP64__
- Rect r;
- ::GetControlBounds(ctl, &r);
- if (r.right > mBottomRight.h) mBottomRight.h = r.right;
- if (r.bottom > mBottomRight.v) mBottomRight.v = r.bottom;
-
- if (IsCompositWindow())
- return ::HIViewAddSubview(mCarbonPane, ctl);
- else
- return ::EmbedControl(ctl, mCarbonPane);
-#else
- return noErr;
-#endif
-}
-
-void AUCarbonViewBase::AddCarbonControl(AUCarbonViewControl::ControlType type, const CAAUParameter ¶m, ControlRef control)
-{
- verify_noerr(EmbedControl(control));
-
- AUCarbonViewControl *auvc = new AUCarbonViewControl(this, mParameterListener, type, param, control);
- auvc->Bind();
- AddControl(auvc);
-}
-
-bool AUCarbonViewBase::HandleEvent(EventHandlerCallRef inHandlerRef, EventRef event)
-{
-#if !__LP64__
- UInt32 eclass = GetEventClass(event);
- UInt32 ekind = GetEventKind(event);
- ControlRef control;
-
- switch (eclass) {
- case kEventClassControl:
- {
- switch (ekind) {
- case kEventControlClick:
- GetEventParameter(event, kEventParamDirectObject, typeControlRef, NULL, sizeof(ControlRef), NULL, &control);
- if (control == mCarbonPane) {
- ClearKeyboardFocus(mCarbonWindow);
- return true;
- }
- }
- }
- break;
-
- case kEventClassScrollable:
- {
- switch (ekind) {
- case kEventScrollableGetInfo:
- {
- // [1/4]
- /* <-- kEventParamImageSize (out, typeHISize)
- * On exit, contains the size of the entire scrollable view.
- */
- HISize originalSize = { static_cast(mBottomRight.h), static_cast(mBottomRight.v) };
- verify_noerr(SetEventParameter(event, kEventParamImageSize, typeHISize, sizeof(HISize), &originalSize));
-
- // [2/4]
- /* <-- kEventParamViewSize (out, typeHISize)
- * On exit, contains the amount of the scrollable view that is
- * visible.
- */
- HIViewRef parentView = HIViewGetSuperview(mCarbonPane);
- HIRect parentBounds;
- verify_noerr(HIViewGetBounds(parentView, &parentBounds));
- //HISize windowSize = { float(windowBounds.right - windowBounds.left),
- // float(windowBounds.bottom - windowBounds.top) };
- verify_noerr(SetEventParameter(event, kEventParamViewSize, typeHISize, sizeof(HISize), &(parentBounds.size)));
-
- // [3/4]
- /* <-- kEventParamLineSize (out, typeHISize)
- * On exit, contains the amount that should be scrolled in
- * response to a single click on a scrollbar arrow.
- */
- HISize scrollIncrementSize = { 16.0f, float(20) };
- verify_noerr(SetEventParameter(event, kEventParamLineSize, typeHISize, sizeof(HISize), &scrollIncrementSize));
-
- // [4/4]
- /* <-- kEventParamOrigin (out, typeHIPoint)
- * On exit, contains the scrollable viewÕs current origin (the
- * view-relative coordinate that is drawn at the top left
- * corner of its frame). These coordinates should always be
- * greater than or equal to zero. They should be less than or
- * equal to the viewÕs image size minus its view size.
- */
- verify_noerr(SetEventParameter(event, kEventParamOrigin, typeHIPoint, sizeof(HIPoint), &mCurrentScrollPoint));
- }
- return true;
-
- case kEventScrollableScrollTo:
- {
- /*
- * kEventClassScrollable / kEventScrollableScrollTo
- *
- * Summary:
- * Requests that an HIScrollViewÕs scrollable view should scroll to
- * a particular origin.
- */
-
- /* --> kEventParamOrigin (in, typeHIPoint)
- * The new origin for the scrollable view. The origin
- * coordinates will vary from (0,0) to scrollable viewÕs image
- * size minus its view size.
- */
- HIPoint pointToScrollTo;
- verify_noerr(GetEventParameter(event, kEventParamOrigin, typeHIPoint, NULL, sizeof(HIPoint), NULL, &pointToScrollTo));
-
- float xDelta = mCurrentScrollPoint.x - pointToScrollTo.x;
- float yDelta = mCurrentScrollPoint.y - pointToScrollTo.y;
- // move visible portion the appropriate amount
- verify_noerr(HIViewScrollRect(mCarbonPane, NULL, xDelta, yDelta));
- // set new content to be drawn
- verify_noerr(HIViewSetBoundsOrigin(mCarbonPane, pointToScrollTo.x, pointToScrollTo.y));
-
- mCurrentScrollPoint = pointToScrollTo;
- }
- return true;
-
- default:
- break;
- }
- }
- break;
-
- default:
- break;
- }
-#endif
- return false;
-}
-
-/*! @method TellListener */
-void AUCarbonViewBase::TellListener (const CAAUParameter &auvp, AudioUnitCarbonViewEventID event, void *evpar)
-{
-#if !__LP64__
- if (mEventListener)
- (*mEventListener)(mEventListenerUserData, mComponentInstance, &auvp, event, evpar);
-#endif
-
- AudioUnitEvent auEvent;
- auEvent.mArgument.mParameter = auvp;
- if (event == kAudioUnitCarbonViewEvent_MouseDownInControl) {
- auEvent.mEventType = kAudioUnitEvent_BeginParameterChangeGesture;
- } else {
- auEvent.mEventType = kAudioUnitEvent_EndParameterChangeGesture;
- }
- AUEventListenerNotify(mParameterListener, this, &auEvent);
-}
-
-
-void AUCarbonViewBase::Update (bool inUIThread)
-{
- for (ControlList::iterator iter = mControlList.begin(); iter != mControlList.end(); ++iter)
- {
- (*iter)->Update(inUIThread);
- }
-}
-
-pascal void AUCarbonViewBase::TheTimerProc (EventLoopTimerRef inTimer, void *inUserData)
-{
- AUCarbonViewBase* This = reinterpret_cast(inUserData);
- This->RespondToEventTimer (inTimer);
-}
-
-void AUCarbonViewBase::RespondToEventTimer (EventLoopTimerRef inTimer)
-{}
-
-/*
- THESE are reasonable values for these two times
- 0.005 // delay
- 0.050 // interval
-*/
-
-OSStatus AUCarbonViewBase::CreateEventLoopTimer (Float32 inDelay, Float32 inInterval)
-{
- if (mTimerUPP)
- return noErr;
-
- mTimerUPP = NewEventLoopTimerUPP(TheTimerProc);
-
- EventLoopRef mainEventLoop = GetMainEventLoop();
-
- //doesn't seem to like too small a value
- if (inDelay < 0.005)
- inDelay = 0.005;
-
- OSStatus timerResult = ::InstallEventLoopTimer(
- mainEventLoop,
- inDelay,
- inInterval,
- mTimerUPP,
- this,
- &mTimerRef);
- return timerResult;
-}
diff --git a/modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUCarbonViewBase.h b/modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUCarbonViewBase.h
deleted file mode 100644
index 53fb353bbc..0000000000
--- a/modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUCarbonViewBase.h
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- File: AUCarbonViewBase.h
- Abstract: Part of CoreAudio Utility Classes
- Version: 1.1
-
- Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple
- Inc. ("Apple") in consideration of your agreement to the following
- terms, and your use, installation, modification or redistribution of
- this Apple software constitutes acceptance of these terms. If you do
- not agree with these terms, please do not use, install, modify or
- redistribute this Apple software.
-
- In consideration of your agreement to abide by the following terms, and
- subject to these terms, Apple grants you a personal, non-exclusive
- license, under Apple's copyrights in this original Apple software (the
- "Apple Software"), to use, reproduce, modify and redistribute the Apple
- Software, with or without modifications, in source and/or binary forms;
- provided that if you redistribute the Apple Software in its entirety and
- without modifications, you must retain this notice and the following
- text and disclaimers in all such redistributions of the Apple Software.
- Neither the name, trademarks, service marks or logos of Apple Inc. may
- be used to endorse or promote products derived from the Apple Software
- without specific prior written permission from Apple. Except as
- expressly stated in this notice, no other rights or licenses, express or
- implied, are granted by Apple herein, including but not limited to any
- patent rights that may be infringed by your derivative works or by other
- works in which the Apple Software may be incorporated.
-
- The Apple Software is provided by Apple on an "AS IS" basis. APPLE
- MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION
- THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS
- FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND
- OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
-
- IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,
- MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED
- AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
- STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-
- Copyright (C) 2014 Apple Inc. All Rights Reserved.
-
-*/
-#ifndef __AUCarbonViewBase_h__
-#define __AUCarbonViewBase_h__
-
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-
-#include
-#include "AUCarbonViewControl.h"
-#include "ComponentBase.h"
-
-static const Float32 kDefaultNotificationInterval = 0.100;
-
- /*! @class AUCarbonViewBase */
-class AUCarbonViewBase : public ComponentBase, public CarbonEventHandler
-{
-public:
- /*! @ctor AUCarbonViewBase */
- AUCarbonViewBase ( AudioUnitCarbonView inInstance,
- Float32 inNotificationInterval = kDefaultNotificationInterval /* in seconds */);
- /*! @dtor ~AUCarbonViewBase */
- virtual ~AUCarbonViewBase();
-
- // AUViewBase overrides
- /*! @method CreateCarbonView */
- virtual OSStatus CreateCarbonView (AudioUnit inAudioUnit, WindowRef inWindow, ControlRef inParentControl, const Float32Point &inLocation, const Float32Point &inSize, ControlRef &outParentControl);
-
- // our own virtual methods
- /*! @method CreateUI */
- virtual OSStatus CreateUI (Float32 inXOffset, Float32 inYOffset);
-
- /*! @method HandleEvent */
- virtual bool HandleEvent (EventHandlerCallRef inHandlerRef, EventRef event);
-
- /*! @method GetEditAudioUnit */
- const AudioUnit GetEditAudioUnit () const { return mEditAudioUnit; }
- //
- /*! @method ComponentEntryDispatch */
- static OSStatus ComponentEntryDispatch (
- ComponentParameters * params,
- AUCarbonViewBase * This);
-
- /*! @method AddCarbonControl */
- void AddCarbonControl (
- AUCarbonViewControl::ControlType type,
- const CAAUParameter & param,
- ControlRef control);
-
- /*! @method GetCarbonWindow */
- WindowRef GetCarbonWindow () { return mCarbonWindow; }
- /*! @method GetCarbonPane */
- ControlRef GetCarbonPane () { return mCarbonPane; }
- /*! @method EmbedControl */
- OSStatus EmbedControl (ControlRef ctl);
-
- /*! @method TellListener */
- void TellListener (const CAAUParameter &auvp, AudioUnitCarbonViewEventID event, void *evpar);
-
- // pass in true if wanting an update to the view and you're calling this from a thread
- // that is safe to do UI in.
- // If you don't know, pass in false!
- /*! @method Update */
- void Update (bool inUIThread);
-
- /*! @method GetXOffset */
- Float32 GetXOffset () { return mXOffset; }
- /*! @method GetYOffset */
- Float32 GetYOffset () { return mYOffset; }
-
- /*! @method ClearControls */
- void ClearControls ();
-
- /*! @method IsCompositWindow */
- bool IsCompositWindow () const { return mCompositWindow; }
-
-protected:
-#if !__LP64__
- /*! @method SetEventListener */
- void SetEventListener (AudioUnitCarbonViewEventListener listener, void *userData)
- {
- mEventListener = listener;
- mEventListenerUserData = userData;
- }
-#endif
-
- /*! @method AddControl */
- void AddControl (AUCarbonViewControl *control);
- /*! @method RemoveControl */
- void RemoveControl (AUCarbonViewControl *control);
-
- OSStatus CreateEventLoopTimer (Float32 inDelay, Float32 inInterval);
-
- /*! @method ParameterListener */
- static void ParameterListener (void * inCallbackRefCon,
- void * inObject,
- const AudioUnitEvent * inEvent,
- UInt64 inEventHostTime,
- Float32 inParameterValue);
-
- static pascal void TheTimerProc ( EventLoopTimerRef inTimer,
- void * inUserData);
-
- virtual void RespondToEventTimer (EventLoopTimerRef inTimer);
-
- /*! @var mEditAudioUnit */
- AudioUnit mEditAudioUnit; // the AU we're controlling
- /*! @var mParameterListener */
- AUEventListenerRef mParameterListener;
-
-#if !__LP64__
- /*! @var mEventListener */
- AudioUnitCarbonViewEventListener
- mEventListener;
-#endif
-
- /*! @var mEventListenerUserData */
- void * mEventListenerUserData;
-
-private:
- typedef std::vector ControlList;
- /*! @var mControlList */
- ControlList mControlList;
-
- EventLoopTimerRef mTimerRef;
-
- EventLoopTimerUPP mTimerUPP;
-
-protected:
- /*! @var mCarbonWindow */
- WindowRef mCarbonWindow;
- /*! @var mCarbonPane */
- ControlRef mCarbonPane; // user pane, contains all other controls
- /*! @var mBottomRight */
- Point mBottomRight; // largest width and height of child controls
- /*! @var mXOffset */
- Float32 mXOffset;
- /*! @var mYOffset */
- Float32 mYOffset;
- /*! @var mCompositWindow */
- bool mCompositWindow;
- /*! @var mCurrentScrollPoint */
- HIPoint mCurrentScrollPoint; // needed for scrolling
-};
-
-
-#endif // __AUCarbonViewBase_h__
diff --git a/modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUCarbonViewControl.cpp b/modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUCarbonViewControl.cpp
deleted file mode 100644
index 391eaf40a7..0000000000
--- a/modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUCarbonViewControl.cpp
+++ /dev/null
@@ -1,710 +0,0 @@
-/*
- File: AUCarbonViewControl.cpp
- Abstract: AUCarbonViewControl.h
- Version: 1.1
-
- Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple
- Inc. ("Apple") in consideration of your agreement to the following
- terms, and your use, installation, modification or redistribution of
- this Apple software constitutes acceptance of these terms. If you do
- not agree with these terms, please do not use, install, modify or
- redistribute this Apple software.
-
- In consideration of your agreement to abide by the following terms, and
- subject to these terms, Apple grants you a personal, non-exclusive
- license, under Apple's copyrights in this original Apple software (the
- "Apple Software"), to use, reproduce, modify and redistribute the Apple
- Software, with or without modifications, in source and/or binary forms;
- provided that if you redistribute the Apple Software in its entirety and
- without modifications, you must retain this notice and the following
- text and disclaimers in all such redistributions of the Apple Software.
- Neither the name, trademarks, service marks or logos of Apple Inc. may
- be used to endorse or promote products derived from the Apple Software
- without specific prior written permission from Apple. Except as
- expressly stated in this notice, no other rights or licenses, express or
- implied, are granted by Apple herein, including but not limited to any
- patent rights that may be infringed by your derivative works or by other
- works in which the Apple Software may be incorporated.
-
- The Apple Software is provided by Apple on an "AS IS" basis. APPLE
- MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION
- THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS
- FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND
- OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
-
- IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,
- MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED
- AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
- STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-
- Copyright (C) 2014 Apple Inc. All Rights Reserved.
-
-*/
-#include "AUCarbonViewControl.h"
-#include "AUCarbonViewBase.h"
-#include "AUViewLocalizedStringKeys.h"
-
-AUCarbonViewControl::AUCarbonViewControl(AUCarbonViewBase *ownerView, AUParameterListenerRef listener, ControlType type, const CAAUParameter ¶m, ControlRef control) :
- mOwnerView(ownerView),
- mListener(listener),
- mType(type),
- mParam(param),
- mControl(control),
- mInControlInitialization(0)
-{
-#if !__LP64__
- SetControlReference(control, SRefCon(this));
-#endif
-}
-
-AUCarbonViewControl::~AUCarbonViewControl()
-{
- AUListenerRemoveParameter(mListener, this, &mParam);
-}
-
-AUCarbonViewControl* AUCarbonViewControl::mLastControl = NULL;
-
-void AUCarbonViewControl::Bind()
-{
-#if !__LP64__
- mInControlInitialization = 1; // true
- AUListenerAddParameter(mListener, this, &mParam);
- // will cause an almost-immediate callback
-
- EventTypeSpec events[] = {
- { kEventClassControl, kEventControlValueFieldChanged } // N.B. OS X only
- };
-
- WantEventTypes(GetControlEventTarget(mControl), GetEventTypeCount(events), events);
-
- if (mType == kTypeContinuous || mType == kTypeText || mType == kTypeDiscrete) {
- EventTypeSpec controlEvents[] = {
- { kEventClassControl, kEventControlHit },
- { kEventClassControl, kEventControlClick },
- { kEventClassControl, kEventControlTrack }
- };
- WantEventTypes(GetControlEventTarget(mControl), GetEventTypeCount(controlEvents), controlEvents);
- }
-
- if (mType == kTypeText) {
- EventTypeSpec controlFocusEvents[] = {
- { kEventClassControl, kEventControlSetFocusPart }
- };
- WantEventTypes(GetControlEventTarget(mControl), GetEventTypeCount(controlFocusEvents), controlFocusEvents);
- ControlKeyFilterUPP proc = mParam.ValuesHaveStrings() ? StdKeyFilterCallback : NumericKeyFilterCallback;
- // this will fail for a static text field
- SetControlData(mControl, 0, kControlEditTextKeyFilterTag, sizeof(proc), &proc);
- }
-
- Update(true);
- mInControlInitialization = 0; // false
-#endif
-}
-
-void AUCarbonViewControl::ParameterToControl(Float32 paramValue)
-{
-#if !__LP64__
- ++mInControlInitialization;
- switch (mType) {
- case kTypeContinuous:
- SetValueFract(AUParameterValueToLinear(paramValue, &mParam));
- break;
- case kTypeDiscrete:
- {
- long value = long(paramValue);
-
- // special case [1] -- menu parameters
- if (mParam.HasNamedParams()) {
- // if we're dealing with menus they behave differently!
- // becaue setting min and max doesn't work correctly for the control value
- // first menu item always reports a control value of 1
- ControlKind ctrlKind;
- if (GetControlKind(mControl, &ctrlKind) == noErr) {
- if ((ctrlKind.kind == kControlKindPopupArrow)
- || (ctrlKind.kind == kControlKindPopupButton))
- {
- value = value - long(mParam.ParamInfo().minValue) + 1;
- }
- }
- }
-
- // special case [2] -- Write-only boolean parameters
- AudioUnitParameterInfo AUPI = mParam.ParamInfo();
-
- bool isWriteOnlyBoolParameter = ( (AUPI.unit == kAudioUnitParameterUnit_Boolean) &&
- (AUPI.flags & kAudioUnitParameterFlag_IsWritable) &&
- !(AUPI.flags & kAudioUnitParameterFlag_IsReadable) );
- if (!isWriteOnlyBoolParameter) {
- SetValue (value);
- }
- }
- break;
- case kTypeText:
- {
- CFStringRef cfstr = mParam.GetStringFromValueCopy(¶mValue);
-
- if ( !(mParam.ParamInfo().flags & kAudioUnitParameterFlag_IsWritable) //READ ONLY PARAMS
- && (mParam.ParamInfo().flags & kAudioUnitParameterFlag_IsReadable))
- {
- if (mParam.GetParamTag()) {
- CFMutableStringRef str = CFStringCreateMutableCopy(NULL, 256, cfstr);
- CFRelease (cfstr);
- CFStringAppend (str, CFSTR(" "));
- CFStringAppend (str, mParam.GetParamTag());
- cfstr = str;
- }
- }
- SetTextValue(cfstr);
- CFRelease (cfstr);
- }
- break;
- }
- --mInControlInitialization;
-#endif
-}
-
-void AUCarbonViewControl::ControlToParameter()
-{
-#if !__LP64__
- if (mInControlInitialization)
- return;
-
- switch (mType) {
- case kTypeContinuous:
- {
- double controlValue = GetValueFract();
- Float32 paramValue = AUParameterValueFromLinear(controlValue, &mParam);
- mParam.SetValue(mListener, this, paramValue);
- }
- break;
- case kTypeDiscrete:
- {
- long value = GetValue();
-
- // special case [1] -- Menus
- if (mParam.HasNamedParams()) {
- // if we're dealing with menus they behave differently!
- // becaue setting min and max doesn't work correctly for the control value
- // first menu item always reports a control value of 1
- ControlKind ctrlKind;
- if (GetControlKind(mControl, &ctrlKind) == noErr) {
- if ((ctrlKind.kind == kControlKindPopupArrow)
- || (ctrlKind.kind == kControlKindPopupButton))
- {
- value = value + long(mParam.ParamInfo().minValue) - 1;
- }
- }
- }
-
- // special case [2] -- Write-only boolean parameters
- AudioUnitParameterInfo AUPI = mParam.ParamInfo();
-
- bool isWriteOnlyBoolParameter = ( (AUPI.unit == kAudioUnitParameterUnit_Boolean) &&
- (AUPI.flags & kAudioUnitParameterFlag_IsWritable) &&
- !(AUPI.flags & kAudioUnitParameterFlag_IsReadable) );
- if (isWriteOnlyBoolParameter) {
- value = 1;
- }
-
- mParam.SetValue (mListener, this, value);
- }
- break;
- case kTypeText:
- {
- Float32 val = mParam.GetValueFromString (GetTextValue());
- mParam.SetValue(mListener, this, (mParam.IsIndexedParam() ? (int)val : val));
- if (mParam.ValuesHaveStrings())
- ParameterToControl(val); //make sure we display the correct text (from the AU)
- }
- break;
- }
-#endif
-}
-
-void AUCarbonViewControl::SetValueFract(double value)
-{
-#if !__LP64__
- SInt32 minimum = GetControl32BitMinimum(mControl);
- SInt32 maximum = GetControl32BitMaximum(mControl);
- SInt32 cval = SInt32(value * (maximum - minimum) + minimum + 0.5);
- SetControl32BitValue(mControl, cval);
-// printf("set: value=%lf, min=%ld, max=%ld, ctl value=%ld\n", value, minimum, maximum, cval);
-#endif
-}
-
-double AUCarbonViewControl::GetValueFract()
-{
-#if !__LP64__
- SInt32 minimum = GetControl32BitMinimum(mControl);
- SInt32 maximum = GetControl32BitMaximum(mControl);
- SInt32 cval = GetControl32BitValue(mControl);
- double result = double(cval - minimum) / double(maximum - minimum);
-// printf("get: min=%ld, max=%ld, value=%ld, result=%f\n", minimum, maximum, cval, result);
- return result;
-#else
- return 0;
-#endif
-}
-
-void AUCarbonViewControl::SetTextValue(CFStringRef cfstr)
-{
-#if !__LP64__
- verify_noerr(SetControlData(mControl, 0, kControlEditTextCFStringTag, sizeof(CFStringRef), &cfstr));
-#endif
-}
-
-CFStringRef AUCarbonViewControl::GetTextValue()
-{
-#if !__LP64__
- CFStringRef cfstr;
- verify_noerr(GetControlData(mControl, 0, kControlEditTextCFStringTag, sizeof(CFStringRef), &cfstr, NULL));
- return cfstr;
-#else
- return CFSTR("");
-#endif
-}
-
-void AUCarbonViewControl::SetValue(long value)
-{
-#if !__LP64__
- SetControl32BitValue(mControl, value);
-#endif
-}
-
-long AUCarbonViewControl::GetValue()
-{
-#if !__LP64__
- return GetControl32BitValue(mControl);
-#else
- return 0;
-#endif
-}
-
-/* Notes on event handling
-
- Button (Click and release on button)
- kEventControlClick received
- kEventControlTrack received
- kEventControlValueFieldChanged received
- kEventControlHit received
-
- Button (Click and release outside of button bounds)
- kEventControlClick received
- kEventControlTrack received
-
- Slider (Click, drag, and release)
- kEventControlClick received
- kEventControlTrack received
- kEventControlValueFieldChanged received
- kEventControlValueFieldChanged received
- kEventControlHit received
-
- Slider (Click, release without changing value)
- kEventControlClick received
- kEventControlTrack received
-*/
-bool AUCarbonViewControl::HandleEvent(EventHandlerCallRef inHandlerRef, EventRef event)
-{
- UInt32 eclass = GetEventClass(event);
- UInt32 ekind = GetEventKind(event);
- ControlRef control;
- bool handled = true;
-
- switch (eclass) {
- case kEventClassControl:
- {
- AudioUnitParameterInfo AUPI = mParam.ParamInfo();
-
- bool isWriteOnlyBoolParameter = ( (AUPI.unit == kAudioUnitParameterUnit_Boolean) &&
- (AUPI.flags & kAudioUnitParameterFlag_IsWritable) &&
- !(AUPI.flags & kAudioUnitParameterFlag_IsReadable) );
-
- switch (ekind) {
- case kEventControlSetFocusPart: // tab
- handled = !handled; // fall through to next case
- mLastControl = this;
- case kEventControlValueFieldChanged:
- GetEventParameter(event, kEventParamDirectObject, typeControlRef, NULL, sizeof(ControlRef), NULL, &control);
- verify(control == mControl);
- ControlToParameter();
- return handled;
- case kEventControlClick:
- if (isWriteOnlyBoolParameter) {
- GetEventParameter(event, kEventParamDirectObject, typeControlRef, NULL, sizeof(ControlRef), NULL, &control);
- verify(control == mControl);
- ControlToParameter();
- } else if (mLastControl != this) {
- if (mLastControl != NULL) {
- mLastControl->Update(false);
- }
- mLastControl = this;
- }
- mOwnerView->TellListener(mParam, kAudioUnitCarbonViewEvent_MouseDownInControl, NULL);
- break; // don't return true, continue normal processing
- case kEventControlHit:
- if (mLastControl != this) {
- if (mLastControl != NULL)
- mLastControl->Update(false);
- mLastControl = this;
- }
- mOwnerView->TellListener(mParam, kAudioUnitCarbonViewEvent_MouseUpInControl, NULL);
- break; // don't return true, continue normal processing
- case kEventControlTrack:
- if (mLastControl != this) {
- if (mLastControl != NULL)
- mLastControl->Update(false);
- mLastControl = this;
- }
-
- CallNextEventHandler(inHandlerRef, event);
- ControlToParameter(); // new code
- mOwnerView->TellListener(mParam, kAudioUnitCarbonViewEvent_MouseUpInControl, NULL);
- // old code:
- // break; // don't return true, continue normal processing
-
- return handled; // don't return true, continue normal processing
- }
- }
- }
- return !handled;
-}
-
-pascal void AUCarbonViewControl::SliderTrackProc(ControlRef theControl, ControlPartCode partCode)
-{
- // this doesn't need to actually do anything
-// AUCarbonViewControl *This = (AUCarbonViewControl *)GetControlReference(theControl);
-}
-
-pascal ControlKeyFilterResult AUCarbonViewControl::StdKeyFilterCallback(ControlRef theControl,
- SInt16 *keyCode, SInt16 *charCode,
- EventModifiers *modifiers)
-{
-#if !__LP64__
- SInt16 c = *charCode;
- if (c >= ' ' || c == '\b' || c == 0x7F || (c >= 0x1c && c <= 0x1f) || c == '\t')
- return kControlKeyFilterPassKey;
- if (c == '\r' || c == 3) { // return or Enter
- AUCarbonViewControl *This = (AUCarbonViewControl *)GetControlReference(theControl);
- ControlEditTextSelectionRec sel = { 0, 32767 };
- SetControlData(This->mControl, 0, kControlEditTextSelectionTag, sizeof(sel), &sel);
- This->ControlToParameter();
- }
-#endif
- return kControlKeyFilterBlockKey;
-}
-
-pascal ControlKeyFilterResult AUCarbonViewControl::NumericKeyFilterCallback(ControlRef theControl,
- SInt16 *keyCode, SInt16 *charCode,
- EventModifiers *modifiers)
-{
-#if !__LP64__
- SInt16 c = *charCode;
- if (isdigit(c) || c == '+' || c == '-' || c == '.' || c == '\b' || c == 0x7F || (c >= 0x1c && c <= 0x1f)
- || c == '\t')
- return kControlKeyFilterPassKey;
- if (c == '\r' || c == 3) { // return or Enter
- AUCarbonViewControl *This = (AUCarbonViewControl *)GetControlReference(theControl);
- ControlEditTextSelectionRec sel = { 0, 32767 };
- SetControlData(This->mControl, 0, kControlEditTextSelectionTag, sizeof(sel), &sel);
- This->ControlToParameter();
- }
-#endif
- return kControlKeyFilterBlockKey;
-}
-
-Boolean AUCarbonViewControl::SizeControlToFit(ControlRef inControl, SInt16 *outWidth, SInt16 *outHeight)
-{
-#if !__LP64__
- if (inControl == 0) return false;
-
- Boolean bValue = false;
- // this only works on text controls -- returns an error for other controls, but doesn't do anything,
- // so the error is irrelevant
- SetControlData(inControl, kControlEntireControl, 'stim' /* kControlStaticTextIsMultilineTag */, sizeof(Boolean), &bValue);
-
- SInt16 baseLineOffset;
- Rect bestRect;
- OSErr err = GetBestControlRect(inControl, &bestRect, &baseLineOffset);
- if (err != noErr) return false;
-
- int width = (bestRect.right - bestRect.left) + 1;
- int height = (bestRect.bottom - bestRect.top) + 1;
-
- Rect boundsRect;
- GetControlBounds (inControl, &boundsRect);
-
- Rect newRect;
- newRect.top = boundsRect.top;
- newRect.bottom = newRect.top + height;
- newRect.left = boundsRect.left;
- newRect.right = newRect.left + width;
-
- SetControlBounds (inControl, &newRect);
-
- if (outWidth)
- *outWidth = width;
-
- if (outHeight)
- *outHeight = height;
-#endif
- return true;
-}
-
-#pragma mark ___AUPropertyControl
-bool AUPropertyControl::HandleEvent(EventHandlerCallRef inHandlerRef, EventRef event)
-{
- UInt32 eclass = GetEventClass(event);
- UInt32 ekind = GetEventKind(event);
- switch (eclass) {
- case kEventClassControl:
- switch (ekind) {
- case kEventControlValueFieldChanged:
- HandleControlChange();
- return true; // handled
- }
- }
-
- return false;
-}
-
-void AUPropertyControl::RegisterEvents ()
-{
-#if !__LP64__
- EventTypeSpec events[] = {
- { kEventClassControl, kEventControlValueFieldChanged } // N.B. OS X only
- };
-
- WantEventTypes(GetControlEventTarget(mControl), GetEventTypeCount(events), events);
-#endif
-}
-
-void AUPropertyControl::EmbedControl (ControlRef theControl)
-{
- mView->EmbedControl (theControl);
-}
-
-WindowRef AUPropertyControl::GetCarbonWindow()
-{
- return mView->GetCarbonWindow();
-}
-
-#pragma mark ___AUVPreset
-#if !__LP64__
-static CFStringRef kStringFactoryPreset = kAUViewLocalizedStringKey_FactoryPreset;
-static bool sAUVPresetLocalized = false;
-#endif
-
-AUVPresets::AUVPresets (AUCarbonViewBase* inParentView,
- CFArrayRef& inPresets,
- Point inLocation,
- int nameWidth,
- int controlWidth,
- ControlFontStyleRec & inFontStyle)
- : AUPropertyControl (inParentView),
- mPresets (inPresets),
- mView (inParentView)
-{
-#if !__LP64__
- Rect r;
-
- // ok we now have an array of factory presets
- // get their strings and display them
-
- r.top = inLocation.v; r.bottom = r.top;
- r.left = inLocation.h; r.right = r.left;
-
- // localize as necessary
- if (!sAUVPresetLocalized) {
- CFBundleRef mainBundle = CFBundleGetBundleWithIdentifier(kLocalizedStringBundle_AUView);
- if (mainBundle) {
- kStringFactoryPreset = CFCopyLocalizedStringFromTableInBundle(
- kAUViewLocalizedStringKey_FactoryPreset, kLocalizedStringTable_AUView,
- mainBundle, CFSTR("FactoryPreset title string"));
- sAUVPresetLocalized = true;
- }
- }
-
- // create localized title string
- CFMutableStringRef factoryPresetsTitle = CFStringCreateMutable(NULL, 0);
- CFStringAppend(factoryPresetsTitle, kStringFactoryPreset);
- CFStringAppend(factoryPresetsTitle, kAUViewUnlocalizedString_TitleSeparator);
-
- ControlRef theControl;
- verify_noerr(CreateStaticTextControl(mView->GetCarbonWindow(), &r, factoryPresetsTitle, &inFontStyle, &theControl));
- SInt16 width = 0;
- AUCarbonViewControl::SizeControlToFit(theControl, &width, &mHeight);
- CFRelease(factoryPresetsTitle);
- EmbedControl(theControl);
-
- r.top -= 2;
- r.left += width + 10;
- r.right = r.left;
- r.bottom = r.top;
-
- verify_noerr(CreatePopupButtonControl ( mView->GetCarbonWindow(), &r, NULL,
- -12345, // DON'T GET MENU FROM RESOURCE mMenuID,!!!
- FALSE, // variableWidth,
- 0, // titleWidth,
- 0, // titleJustification,
- 0, // titleStyle,
- &mControl));
-
- MenuRef menuRef;
- verify_noerr(CreateNewMenu(1, 0, &menuRef));
-
- int numPresets = CFArrayGetCount(mPresets);
-
- for (int i = 0; i < numPresets; ++i)
- {
- AUPreset* preset = (AUPreset*) CFArrayGetValueAtIndex (mPresets, i);
- verify_noerr(AppendMenuItemTextWithCFString (menuRef, preset->presetName, 0, 0, 0));
- }
-
- verify_noerr(SetControlData(mControl, 0, kControlPopupButtonMenuRefTag, sizeof(menuRef), &menuRef));
- verify_noerr (SetControlFontStyle (mControl, &inFontStyle));
-
- SetControl32BitMaximum (mControl, numPresets);
-
- // size popup
- SInt16 height = 0;
-
- AUCarbonViewControl::SizeControlToFit(mControl, &width, &height);
-
- if (height > mHeight) mHeight = height;
- if (mHeight < 0) mHeight = 0;
-
- // find which menu item is the Default preset
- UInt32 propertySize = sizeof(AUPreset);
- AUPreset defaultPreset;
- OSStatus result = AudioUnitGetProperty (mView->GetEditAudioUnit(),
- kAudioUnitProperty_PresentPreset,
- kAudioUnitScope_Global,
- 0,
- &defaultPreset,
- &propertySize);
-
- mPropertyID = kAudioUnitProperty_PresentPreset;
-#endif
-#ifndef __LP64__
- if (result != noErr) { // if the PresentPreset property is not implemented, fall back to the CurrentPreset property
- result = AudioUnitGetProperty (mView->GetEditAudioUnit(),
- kAudioUnitProperty_CurrentPreset,
- kAudioUnitScope_Global,
- 0,
- &defaultPreset,
- &propertySize);
- mPropertyID = kAudioUnitProperty_CurrentPreset;
- if (result == noErr)
- CFRetain (defaultPreset.presetName);
- }
-#endif
-#if !__LP64__
- EmbedControl (mControl);
-
- HandlePropertyChange(defaultPreset);
-
- RegisterEvents();
-#endif
-}
-
-void AUVPresets::AddInterest (AUEventListenerRef inListener,
- void * inObject)
-{
- AudioUnitEvent e;
- e.mEventType = kAudioUnitEvent_PropertyChange;
- e.mArgument.mProperty.mAudioUnit = mView->GetEditAudioUnit();
- e.mArgument.mProperty.mPropertyID = mPropertyID;
- e.mArgument.mProperty.mScope = kAudioUnitScope_Global;
- e.mArgument.mProperty.mElement = 0;
-
- AUEventListenerAddEventType(inListener, inObject, &e);
-}
-
-void AUVPresets::RemoveInterest (AUEventListenerRef inListener,
- void * inObject)
-{
- AudioUnitEvent e;
- e.mEventType = kAudioUnitEvent_PropertyChange;
- e.mArgument.mProperty.mAudioUnit = mView->GetEditAudioUnit();
- e.mArgument.mProperty.mPropertyID = mPropertyID;
- e.mArgument.mProperty.mScope = kAudioUnitScope_Global;
- e.mArgument.mProperty.mElement = 0;
-
- AUEventListenerRemoveEventType(inListener, inObject, &e);
-}
-
-void AUVPresets::HandleControlChange ()
-{
-#if !__LP64__
- SInt32 i = GetControl32BitValue(mControl);
- if (i > 0)
- {
- AUPreset* preset = (AUPreset*) CFArrayGetValueAtIndex (mPresets, i-1);
-
- verify_noerr(AudioUnitSetProperty (mView->GetEditAudioUnit(),
- mPropertyID, // either currentPreset or PresentPreset depending on which is supported
- kAudioUnitScope_Global,
- 0,
- preset,
- sizeof(AUPreset)));
-
- // when we change a preset we can't expect the AU to update its state
- // as it isn't meant to know that its being viewed!
- // so we broadcast a notification to all listeners that all parameters on this AU have changed
- AudioUnitParameter changedUnit;
- changedUnit.mAudioUnit = mView->GetEditAudioUnit();
- changedUnit.mParameterID = kAUParameterListener_AnyParameter;
- verify_noerr (AUParameterListenerNotify (NULL, NULL, &changedUnit) );
- }
-#endif
-}
-
-void AUVPresets::HandlePropertyChange(AUPreset &preset)
-{
-#if !__LP64__
- // check to see if the preset is in our menu
- int numPresets = CFArrayGetCount(mPresets);
- if (preset.presetNumber < 0) {
- SetControl32BitValue (mControl, 0); //controls are one-based
- } else {
- for (SInt32 i = 0; i < numPresets; ++i) {
- AUPreset* currPreset = (AUPreset*) CFArrayGetValueAtIndex (mPresets, i);
- if (preset.presetNumber == currPreset->presetNumber) {
- SetControl32BitValue (mControl, ++i); //controls are one-based
- break;
- }
- }
- }
-
- if (preset.presetName)
- CFRelease (preset.presetName);
-#endif
-}
-
-bool AUVPresets::HandlePropertyChange (const AudioUnitProperty &inProp)
-{
- if (inProp.mPropertyID == mPropertyID)
- {
- UInt32 theSize = sizeof(AUPreset);
- AUPreset currentPreset;
-
- OSStatus result = AudioUnitGetProperty(inProp.mAudioUnit,
- inProp.mPropertyID,
- inProp.mScope,
- inProp.mElement, ¤tPreset, &theSize);
-
- if (result == noErr) {
-#ifndef __LP64__
- if (inProp.mPropertyID == kAudioUnitProperty_CurrentPreset && currentPreset.presetName)
- CFRetain (currentPreset.presetName);
-#endif
- HandlePropertyChange(currentPreset);
- return true;
- }
- }
- return false;
-}
diff --git a/modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUCarbonViewControl.h b/modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUCarbonViewControl.h
deleted file mode 100644
index fb5adb4b83..0000000000
--- a/modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUCarbonViewControl.h
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- File: AUCarbonViewControl.h
- Abstract: Part of CoreAudio Utility Classes
- Version: 1.1
-
- Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple
- Inc. ("Apple") in consideration of your agreement to the following
- terms, and your use, installation, modification or redistribution of
- this Apple software constitutes acceptance of these terms. If you do
- not agree with these terms, please do not use, install, modify or
- redistribute this Apple software.
-
- In consideration of your agreement to abide by the following terms, and
- subject to these terms, Apple grants you a personal, non-exclusive
- license, under Apple's copyrights in this original Apple software (the
- "Apple Software"), to use, reproduce, modify and redistribute the Apple
- Software, with or without modifications, in source and/or binary forms;
- provided that if you redistribute the Apple Software in its entirety and
- without modifications, you must retain this notice and the following
- text and disclaimers in all such redistributions of the Apple Software.
- Neither the name, trademarks, service marks or logos of Apple Inc. may
- be used to endorse or promote products derived from the Apple Software
- without specific prior written permission from Apple. Except as
- expressly stated in this notice, no other rights or licenses, express or
- implied, are granted by Apple herein, including but not limited to any
- patent rights that may be infringed by your derivative works or by other
- works in which the Apple Software may be incorporated.
-
- The Apple Software is provided by Apple on an "AS IS" basis. APPLE
- MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION
- THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS
- FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND
- OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
-
- IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,
- MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED
- AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
- STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-
- Copyright (C) 2014 Apple Inc. All Rights Reserved.
-
-*/
-#ifndef __AUCarbonViewControl_h__
-#define __AUCarbonViewControl_h__
-
-#include
-#include
-#include
-#include "CarbonEventHandler.h"
-#include "CAAUParameter.h"
-
-class AUCarbonViewBase;
-
-// ____________________________________________________________________________
-// AUCarbonViewControl
-// Wrapper for a control that is wired to an AudioUnit parameter.
- /*! @class AUCarbonViewControl */
-class AUCarbonViewControl : public CarbonEventHandler {
- // note that the controls are never disposed; that's managed by the AUCarbonViewBase's
- // parent pane which contains all of them ... if we later need to be able to delete
- // individual controls on the fly, extra work needed
-public:
- enum ControlType {
- kTypeContinuous, // e.g. slider
- kTypeDiscrete, // e.g. pop-up menu
- kTypeText
- };
-
- AUCarbonViewControl(AUCarbonViewBase *ownerView, AUParameterListenerRef listener, ControlType type, const CAAUParameter ¶m, ControlRef control);
- ~AUCarbonViewControl();
-
- /*! @method Bind */
- virtual void Bind(); // second-stage construction
-
- /*! @method ControlToParameter */
- virtual void ControlToParameter();
- /*! @method ParameterToControl */
- virtual void ParameterToControl(Float32 newValue);
-
- /*! @method SetValueFract */
- virtual void SetValueFract(double value);
- /*! @method GetValueFract */
- virtual double GetValueFract();
- /*! @method SetTextValue */
- virtual void SetTextValue(CFStringRef str);
- /*! @method GetTextValue */
- virtual CFStringRef GetTextValue();
- /*! @method SetValue */
- virtual void SetValue(long value);
- /*! @method GetValue */
- virtual long GetValue();
-
- /*! @method GetOwnerView */
- AUCarbonViewBase * GetOwnerView() {return mOwnerView;}
-
- /*! @method Update */
- void Update (bool inUIThread)
- {
- if (inUIThread)
- ParameterToControl (mParam.GetValue());
- else
- AUParameterListenerNotify (mListener, this, &mParam);
- }
-
-
- // CarbonEventHandler overrides
- /*! @method HandleEvent */
- virtual bool HandleEvent(EventHandlerCallRef inHandlerRef, EventRef event);
-
- /*! @method ControlRef */
- operator ControlRef() { return mControl; }
-
- /*! @method SizeControlToFit */
- static Boolean SizeControlToFit(ControlRef inControl, SInt16 *outWidth = NULL, SInt16 *outHeight = NULL);
-
- /*! @method SliderTrackProc */
- static pascal void SliderTrackProc(ControlRef theControl, ControlPartCode partCode);
- /*! @method NumericKeyFilterCallback */
- static pascal ControlKeyFilterResult NumericKeyFilterCallback(ControlRef theControl, SInt16 *keyCode, SInt16 *charCode,
- EventModifiers *modifiers);
-protected:
- /*! @method ParamInfo */
- const AudioUnitParameterInfo &ParamInfo() { return mParam.ParamInfo(); }
-
- /*! @var mOwnerView */
- AUCarbonViewBase * mOwnerView;
- /*! @var mListener */
- AUParameterListenerRef mListener;
- /*! @var mType */
- ControlType mType;
- /*! @var mParam */
- CAAUParameter mParam;
-
- /*! @var mControl */
- ControlRef mControl;
-
- /*! @method StdKeyFilterCallback */
- static pascal ControlKeyFilterResult StdKeyFilterCallback(ControlRef theControl, SInt16 *keyCode, SInt16 *charCode,
- EventModifiers *modifiers);
- SInt16 mInControlInitialization;
-
- static AUCarbonViewControl* mLastControl;
-};
-
- /*! @class AUPropertyControl */
-class AUPropertyControl : public CarbonEventHandler {
-public:
- /*! @ctor AUPropertyControl */
- AUPropertyControl (AUCarbonViewBase * inBase) : mControl(0), mView (inBase), mHeight(0) {}
-
- /*! @method HandleEvent */
- virtual bool HandleEvent(EventHandlerCallRef inHandlerRef, EventRef event);
-
- /*! @method HandlePropertyChange */
- virtual bool HandlePropertyChange (const AudioUnitProperty &inProp) = 0;
-
- /*! @method AddInterest */
- virtual void AddInterest (AUEventListenerRef inListener,
- void * inObject) = 0;
-
- /*! @method RemoveInterest */
- virtual void RemoveInterest (AUEventListenerRef inListener,
- void * inObject) = 0;
-
- /*! @method GetHeight */
- int GetHeight() { return mHeight;}
-
-protected:
- /*! @method HandleControlChange */
- virtual void HandleControlChange () = 0;
-
- /*! @method RegisterEvents */
- void RegisterEvents ();
-
- /*! @method EmbedControl */
- void EmbedControl (ControlRef theControl);
-
- /*! @method GetCarbonWindow */
- WindowRef GetCarbonWindow();
-
- /*! @var mControl */
- ControlRef mControl;
- /*! @var mView */
- AUCarbonViewBase* mView;
- /*! @var mHeight */
- SInt16 mHeight;
-};
-
- /*! @class AUVPresets */
-class AUVPresets : public AUPropertyControl {
-public:
- /*! @ctor HandleControlChange */
- AUVPresets (AUCarbonViewBase * inBase,
- CFArrayRef& inPresets,
- Point inLocation,
- int nameWidth,
- int controlWidth,
- ControlFontStyleRec & inFontStyle);
-
- virtual ~AUVPresets () { CFRelease (mPresets); }
-
- /*! @method HandlePropertyChange */
- virtual bool HandlePropertyChange (const AudioUnitProperty &inProp);
-
- /*! @method AddInterest */
- virtual void AddInterest (AUEventListenerRef inListener,
- void * inObject);
-
- /*! @method RemoveInterest */
- virtual void RemoveInterest (AUEventListenerRef inListener,
- void * inObject);
-
-protected:
- /*! @method HandleControlChange */
- virtual void HandleControlChange ();
-
- /*! @var mPresets */
- CFArrayRef mPresets;
- /*! @var mView */
- AUCarbonViewBase* mView;
- AudioUnitPropertyID mPropertyID;
-
- void HandlePropertyChange(AUPreset &preset);
-};
-
-#endif // __AUCarbonViewControl_h__
diff --git a/modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUCarbonViewDispatch.cpp b/modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUCarbonViewDispatch.cpp
deleted file mode 100644
index 6b0e65a82c..0000000000
--- a/modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUCarbonViewDispatch.cpp
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- File: AUCarbonViewDispatch.cpp
- Abstract: AUCarbonViewDispatch.h
- Version: 1.1
-
- Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple
- Inc. ("Apple") in consideration of your agreement to the following
- terms, and your use, installation, modification or redistribution of
- this Apple software constitutes acceptance of these terms. If you do
- not agree with these terms, please do not use, install, modify or
- redistribute this Apple software.
-
- In consideration of your agreement to abide by the following terms, and
- subject to these terms, Apple grants you a personal, non-exclusive
- license, under Apple's copyrights in this original Apple software (the
- "Apple Software"), to use, reproduce, modify and redistribute the Apple
- Software, with or without modifications, in source and/or binary forms;
- provided that if you redistribute the Apple Software in its entirety and
- without modifications, you must retain this notice and the following
- text and disclaimers in all such redistributions of the Apple Software.
- Neither the name, trademarks, service marks or logos of Apple Inc. may
- be used to endorse or promote products derived from the Apple Software
- without specific prior written permission from Apple. Except as
- expressly stated in this notice, no other rights or licenses, express or
- implied, are granted by Apple herein, including but not limited to any
- patent rights that may be infringed by your derivative works or by other
- works in which the Apple Software may be incorporated.
-
- The Apple Software is provided by Apple on an "AS IS" basis. APPLE
- MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION
- THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS
- FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND
- OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
-
- IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,
- MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED
- AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
- STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-
- Copyright (C) 2014 Apple Inc. All Rights Reserved.
-
-*/
-#include "AUCarbonViewBase.h"
-
-// ____________________________________________________________________________
-// component dispatch
-
-#if PRAGMA_STRUCT_ALIGN
- #pragma options align=mac68k
-#elif PRAGMA_STRUCT_PACKPUSH
- #pragma pack(push, 2)
-#elif PRAGMA_STRUCT_PACK
- #pragma pack(2)
-#endif
- struct AudioUnitCarbonViewCreateGluePB {
- unsigned char componentFlags;
- unsigned char componentParamSize;
- short componentWhat;
- ControlRef* outControl;
- const Float32Point* inSize;
- const Float32Point* inLocation;
- ControlRef inParentControl;
- WindowRef inWindow;
- AudioUnit inAudioUnit;
- AudioUnitCarbonView inView;
- };
-#if !__LP64__
- struct AudioUnitCarbonViewSetEventListenerGluePB {
- unsigned char componentFlags;
- unsigned char componentParamSize;
- short componentWhat;
- void* inUserData;
- AudioUnitCarbonViewEventListener inCallback;
- AudioUnitCarbonView inView;
- };
-#endif
-#if PRAGMA_STRUCT_ALIGN
- #pragma options align=reset
-#elif PRAGMA_STRUCT_PACKPUSH
- #pragma pack(pop)
-#elif PRAGMA_STRUCT_PACK
- #pragma pack()
-#endif
-
-#define CheckNull(x) if ((x) == NULL) return paramErr;
-
-OSStatus AUCarbonViewBase::ComponentEntryDispatch(ComponentParameters *p, AUCarbonViewBase *This)
-{
- if (This == NULL) return paramErr;
-
- OSStatus result = noErr;
-
- switch (p->what) {
- case kAudioUnitCarbonViewCreateSelect:
- {
- AudioUnitCarbonViewCreateGluePB *pb = (AudioUnitCarbonViewCreateGluePB *)p;
- CheckNull(pb->inAudioUnit);
- CheckNull(pb->inWindow);
- CheckNull(pb->inParentControl);
- CheckNull(pb->inSize);
- CheckNull(pb->inLocation);
- CheckNull(pb->outControl);
- result = This->CreateCarbonView(pb->inAudioUnit, pb->inWindow, pb->inParentControl,
- *pb->inLocation, *pb->inSize, *pb->outControl);
- }
- break;
-#if !__LP64__
- case kAudioUnitCarbonViewSetEventListenerSelect:
- {
- AudioUnitCarbonViewSetEventListenerGluePB *pb = (AudioUnitCarbonViewSetEventListenerGluePB *)p;
- This->SetEventListener(pb->inCallback, pb->inUserData);
- }
- break;
-#endif
-
- default:
- result = ComponentBase::ComponentEntryDispatch(p, This);
- break;
- }
- return result;
-}
diff --git a/modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/CarbonEventHandler.cpp b/modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/CarbonEventHandler.cpp
deleted file mode 100644
index d2318302e6..0000000000
--- a/modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/CarbonEventHandler.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- File: CarbonEventHandler.cpp
- Abstract: CarbonEventHandler.h
- Version: 1.1
-
- Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple
- Inc. ("Apple") in consideration of your agreement to the following
- terms, and your use, installation, modification or redistribution of
- this Apple software constitutes acceptance of these terms. If you do
- not agree with these terms, please do not use, install, modify or
- redistribute this Apple software.
-
- In consideration of your agreement to abide by the following terms, and
- subject to these terms, Apple grants you a personal, non-exclusive
- license, under Apple's copyrights in this original Apple software (the
- "Apple Software"), to use, reproduce, modify and redistribute the Apple
- Software, with or without modifications, in source and/or binary forms;
- provided that if you redistribute the Apple Software in its entirety and
- without modifications, you must retain this notice and the following
- text and disclaimers in all such redistributions of the Apple Software.
- Neither the name, trademarks, service marks or logos of Apple Inc. may
- be used to endorse or promote products derived from the Apple Software
- without specific prior written permission from Apple. Except as
- expressly stated in this notice, no other rights or licenses, express or
- implied, are granted by Apple herein, including but not limited to any
- patent rights that may be infringed by your derivative works or by other
- works in which the Apple Software may be incorporated.
-
- The Apple Software is provided by Apple on an "AS IS" basis. APPLE
- MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION
- THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS
- FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND
- OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
-
- IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,
- MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED
- AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
- STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-
- Copyright (C) 2014 Apple Inc. All Rights Reserved.
-
-*/
-
-#include "CarbonEventHandler.h"
-
-static pascal OSStatus TheEventHandler(EventHandlerCallRef inHandlerRef, EventRef inEvent, void *inUserData)
-{
- CarbonEventHandler *handler = (CarbonEventHandler *)inUserData;
- if (handler->HandleEvent(inHandlerRef, inEvent))
- return noErr;
- else return eventNotHandledErr;
-}
-
-CarbonEventHandler::CarbonEventHandler() :
- mHandlers(NULL)
-{
-}
-
-CarbonEventHandler::~CarbonEventHandler()
-{
- if (mHandlers != NULL) {
- int count = static_cast(CFDictionaryGetCount(mHandlers));
- EventHandlerRef *theHandlers = (EventHandlerRef*) malloc(count * sizeof(EventHandlerRef));
- CFDictionaryGetKeysAndValues(mHandlers, NULL, (const void **)theHandlers);
-
- for (int i = 0; i < count; i++)
- RemoveEventHandler(theHandlers[i]);
- CFDictionaryRemoveAllValues(mHandlers);
- CFRelease (mHandlers);
- free(theHandlers);
- }
-}
-
-void CarbonEventHandler::WantEventTypes(EventTargetRef target, UInt32 inNumTypes, const EventTypeSpec *inList)
-{
- if (mHandlers == NULL)
- mHandlers = CFDictionaryCreateMutable(NULL, 0, NULL, NULL);
-
- EventHandlerRef handler;
-
- if (CFDictionaryGetValueIfPresent (mHandlers, target, (const void **)&handler)) // if there is already a handler for the target, add the type
- verify_noerr(AddEventTypesToHandler(handler, inNumTypes, inList));
- else {
- verify_noerr(InstallEventHandler(target, TheEventHandler, inNumTypes, inList, this, &handler));
- CFDictionaryAddValue(mHandlers, target, handler);
- }
-}
diff --git a/modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/CarbonEventHandler.h b/modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/CarbonEventHandler.h
deleted file mode 100644
index 4ba4995fc3..0000000000
--- a/modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/CarbonEventHandler.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- File: CarbonEventHandler.h
- Abstract: Part of CoreAudio Utility Classes
- Version: 1.1
-
- Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple
- Inc. ("Apple") in consideration of your agreement to the following
- terms, and your use, installation, modification or redistribution of
- this Apple software constitutes acceptance of these terms. If you do
- not agree with these terms, please do not use, install, modify or
- redistribute this Apple software.
-
- In consideration of your agreement to abide by the following terms, and
- subject to these terms, Apple grants you a personal, non-exclusive
- license, under Apple's copyrights in this original Apple software (the
- "Apple Software"), to use, reproduce, modify and redistribute the Apple
- Software, with or without modifications, in source and/or binary forms;
- provided that if you redistribute the Apple Software in its entirety and
- without modifications, you must retain this notice and the following
- text and disclaimers in all such redistributions of the Apple Software.
- Neither the name, trademarks, service marks or logos of Apple Inc. may
- be used to endorse or promote products derived from the Apple Software
- without specific prior written permission from Apple. Except as
- expressly stated in this notice, no other rights or licenses, express or
- implied, are granted by Apple herein, including but not limited to any
- patent rights that may be infringed by your derivative works or by other
- works in which the Apple Software may be incorporated.
-
- The Apple Software is provided by Apple on an "AS IS" basis. APPLE
- MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION
- THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS
- FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND
- OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
-
- IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,
- MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED
- AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
- STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-
- Copyright (C) 2014 Apple Inc. All Rights Reserved.
-
-*/
-#ifndef __CarbonEventHandler_h__
-#define __CarbonEventHandler_h__
-
-#include
-
- /*! @class CarbonEventHandler */
-class CarbonEventHandler {
-public:
- /*! @ctor CarbonEventHandler */
- CarbonEventHandler();
- /*! @dtor ~CarbonEventHandler */
- virtual ~CarbonEventHandler();
-
- /*! @method WantEventTypes */
- virtual void WantEventTypes(EventTargetRef target, UInt32 inNumTypes, const EventTypeSpec *inList);
-
- /*! @method HandleEvent */
- virtual bool HandleEvent(EventHandlerCallRef inHandlerRef, EventRef event) = 0;
-
-protected:
- /*! @var mHandlers */
- CFMutableDictionaryRef mHandlers;
-};
-
-#endif // __CarbonEventHandler_h__
diff --git a/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm b/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm
index 2a0d080a0b..72eea53003 100644
--- a/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm
+++ b/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm
@@ -22,11 +22,6 @@
#if JucePlugin_Build_AU
-#if __LP64__
- #undef JUCE_SUPPORT_CARBON
- #define JUCE_SUPPORT_CARBON 0
-#endif
-
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wshorten-64-to-32",
"-Wunused-parameter",
"-Wdeprecated-declarations",
@@ -52,29 +47,11 @@ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wshorten-64-to-32",
#include
#include "CoreAudioUtilityClasses/MusicDeviceBase.h"
-/** The BUILD_AU_CARBON_UI flag lets you specify whether old-school carbon hosts are supported as
- well as ones that can open a cocoa view. If this is enabled, you'll need to also add the AUCarbonBase
- files to your project.
-*/
-#if ! (defined (BUILD_AU_CARBON_UI) || JUCE_64BIT)
- #define BUILD_AU_CARBON_UI 1
-#endif
-
-#ifdef __LP64__
- #undef BUILD_AU_CARBON_UI // (not possible in a 64-bit build)
-#endif
-
-#if BUILD_AU_CARBON_UI
- #include "CoreAudioUtilityClasses/AUCarbonViewBase.h"
-#endif
-
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
-#define JUCE_MAC_WINDOW_VISIBITY_BODGE 1
#define JUCE_CORE_INCLUDE_OBJC_HELPERS 1
#include "../utility/juce_IncludeModuleHeaders.h"
-#include "../utility/juce_CarbonVisibility.h"
#include
#include
@@ -96,13 +73,7 @@ struct AudioProcessorHolder
AudioProcessorHolder (bool initialiseGUI)
{
if (initialiseGUI)
- {
- #if BUILD_AU_CARBON_UI
- NSApplicationLoad();
- #endif
-
initialiseJuce_GUI();
- }
juceFilter.reset (createPluginFilterOfType (AudioProcessor::wrapperType_AudioUnit));
@@ -1060,23 +1031,6 @@ public:
return rate > 0 ? juceFilter->getLatencySamples() / rate : 0;
}
- //==============================================================================
- #if BUILD_AU_CARBON_UI
- int GetNumCustomUIComponents() override
- {
- return getHostType().isDigitalPerformer() ? 0 : 1;
- }
-
- void GetUIComponentDescs (ComponentDescription* inDescArray) override
- {
- inDescArray[0].componentType = kAudioUnitCarbonViewComponentType;
- inDescArray[0].componentSubType = JucePlugin_AUSubType;
- inDescArray[0].componentManufacturer = JucePlugin_AUManufacturerCode;
- inDescArray[0].componentFlags = 0;
- inDescArray[0].componentFlagsMask = 0;
- }
- #endif
-
//==============================================================================
bool getCurrentPosition (AudioPlayHead::CurrentPositionInfo& info) override
{
@@ -2420,243 +2374,6 @@ private:
JUCE_DECLARE_NON_COPYABLE (JuceAU)
};
-//==============================================================================
-#if BUILD_AU_CARBON_UI
-
-class JuceAUView : public AUCarbonViewBase
-{
-public:
- JuceAUView (AudioUnitCarbonView auview)
- : AUCarbonViewBase (auview),
- juceFilter (nullptr)
- {
- }
-
- ~JuceAUView()
- {
- deleteUI();
- }
-
- ComponentResult CreateUI (Float32 /*inXOffset*/, Float32 /*inYOffset*/) override
- {
- JUCE_AUTORELEASEPOOL
- {
- if (juceFilter == nullptr)
- {
- void* pointers[2];
- UInt32 propertySize = sizeof (pointers);
-
- AudioUnitGetProperty (GetEditAudioUnit(),
- juceFilterObjectPropertyID,
- kAudioUnitScope_Global,
- 0,
- pointers,
- &propertySize);
-
- juceFilter = (AudioProcessor*) pointers[0];
- }
-
- if (juceFilter != nullptr)
- {
- deleteUI();
-
- if (AudioProcessorEditor* editorComp = juceFilter->createEditorIfNeeded())
- {
- editorComp->setOpaque (true);
- windowComp.reset (new ComponentInHIView (editorComp, mCarbonPane));
- }
- }
- else
- {
- jassertfalse; // can't get a pointer to our effect
- }
- }
-
- return noErr;
- }
-
- AudioUnitCarbonViewEventListener getEventListener() const { return mEventListener; }
- void* getEventListenerUserData() const { return mEventListenerUserData; }
-
-private:
- //==============================================================================
- AudioProcessor* juceFilter;
- std::unique_ptr windowComp;
-
- void deleteUI()
- {
- if (windowComp != nullptr)
- {
- PopupMenu::dismissAllActiveMenus();
-
- /* This assertion is triggered when there's some kind of modal component active, and the
- host is trying to delete our plugin.
- If you must use modal components, always use them in a non-blocking way, by never
- calling runModalLoop(), but instead using enterModalState() with a callback that
- will be performed on completion. (Note that this assertion could actually trigger
- a false alarm even if you're doing it correctly, but is here to catch people who
- aren't so careful) */
- jassert (Component::getCurrentlyModalComponent() == nullptr);
-
- if (JuceAU::EditorCompHolder* editorCompHolder = dynamic_cast (windowComp->getChildComponent(0)))
- if (AudioProcessorEditor* audioProcessEditor = dynamic_cast (editorCompHolder->getChildComponent(0)))
- juceFilter->editorBeingDeleted (audioProcessEditor);
-
- windowComp = nullptr;
- }
- }
-
- //==============================================================================
- // Uses a child NSWindow to sit in front of a HIView and display our component
- class ComponentInHIView : public Component
- {
- public:
- ComponentInHIView (AudioProcessorEditor* ed, HIViewRef parentHIView)
- : parentView (parentHIView),
- editor (ed),
- recursive (false)
- {
- JUCE_AUTORELEASEPOOL
- {
- jassert (ed != nullptr);
- addAndMakeVisible (editor);
- setOpaque (true);
- setVisible (true);
- setBroughtToFrontOnMouseClick (true);
-
- setSize (editor.getWidth(), editor.getHeight());
- SizeControl (parentHIView, (SInt16) editor.getWidth(), (SInt16) editor.getHeight());
-
- WindowRef windowRef = HIViewGetWindow (parentHIView);
- hostWindow = [[NSWindow alloc] initWithWindowRef: windowRef];
-
- // not really sure why this is needed in older OS X versions
- // but JUCE plug-ins crash without it
- if ((SystemStats::getOperatingSystemType() & 0xff) < 12)
- [hostWindow retain];
-
- [hostWindow setCanHide: YES];
- [hostWindow setReleasedWhenClosed: YES];
-
- updateWindowPos();
-
- #if ! JucePlugin_EditorRequiresKeyboardFocus
- addToDesktop (ComponentPeer::windowIsTemporary | ComponentPeer::windowIgnoresKeyPresses);
- setWantsKeyboardFocus (false);
- #else
- addToDesktop (ComponentPeer::windowIsTemporary);
- setWantsKeyboardFocus (true);
- #endif
-
- setVisible (true);
- toFront (false);
-
- addSubWindow();
-
- NSWindow* pluginWindow = [((NSView*) getWindowHandle()) window];
- [pluginWindow setNextResponder: hostWindow];
-
- attachWindowHidingHooks (this, (WindowRef) windowRef, hostWindow);
- }
- }
-
- ~ComponentInHIView()
- {
- JUCE_AUTORELEASEPOOL
- {
- removeWindowHidingHooks (this);
-
- NSWindow* pluginWindow = [((NSView*) getWindowHandle()) window];
- [hostWindow removeChildWindow: pluginWindow];
- removeFromDesktop();
-
- [hostWindow release];
- hostWindow = nil;
- }
- }
-
- void updateWindowPos()
- {
- HIPoint f;
- f.x = f.y = 0;
- HIPointConvert (&f, kHICoordSpaceView, parentView, kHICoordSpaceScreenPixel, 0);
- setTopLeftPosition ((int) f.x, (int) f.y);
- }
-
- void addSubWindow()
- {
- NSWindow* pluginWindow = [((NSView*) getWindowHandle()) window];
- [pluginWindow setExcludedFromWindowsMenu: YES];
- [pluginWindow setCanHide: YES];
-
- [hostWindow addChildWindow: pluginWindow
- ordered: NSWindowAbove];
- [hostWindow orderFront: nil];
- [pluginWindow orderFront: nil];
- }
-
- void resized() override
- {
- if (Component* const child = getChildComponent (0))
- child->setBounds (getLocalBounds());
- }
-
- void paint (Graphics&) override {}
-
- void childBoundsChanged (Component*) override
- {
- if (! recursive)
- {
- recursive = true;
-
- const int w = jmax (32, editor.getWidth());
- const int h = jmax (32, editor.getHeight());
-
- SizeControl (parentView, (SInt16) w, (SInt16) h);
-
- if (getWidth() != w || getHeight() != h)
- setSize (w, h);
-
- editor.repaint();
-
- updateWindowPos();
- addSubWindow(); // (need this for AULab)
-
- recursive = false;
- }
- }
-
- bool keyPressed (const KeyPress& kp) override
- {
- if (! kp.getModifiers().isCommandDown())
- {
- // If we have an unused keypress, move the key-focus to a host window
- // and re-inject the event..
- static NSTimeInterval lastEventTime = 0; // check we're not recursively sending the same event
- NSTimeInterval eventTime = [[NSApp currentEvent] timestamp];
-
- if (lastEventTime != eventTime)
- {
- lastEventTime = eventTime;
-
- [[hostWindow parentWindow] makeKeyWindow];
- repostCurrentNSEvent();
- }
- }
-
- return false;
- }
-
- private:
- HIViewRef parentView;
- NSWindow* hostWindow;
- JuceAU::EditorCompHolder editor;
- bool recursive;
- };
-};
-
-#endif
-
//==============================================================================
#define JUCE_COMPONENT_ENTRYX(Class, Name, Suffix) \
extern "C" __attribute__((visibility("default"))) ComponentResult Name ## Suffix (ComponentParameters* params, Class* obj); \
@@ -2694,10 +2411,6 @@ JUCE_COMPONENT_ENTRY (JuceAU, JucePlugin_AUExportPrefix, Entry)
JUCE_FACTORY_ENTRY (JuceAU, JucePlugin_AUExportPrefix)
#endif
-#if BUILD_AU_CARBON_UI
- JUCE_COMPONENT_ENTRY (JuceAUView, JucePlugin_AUExportPrefix, ViewEntry)
-#endif
-
#if ! JUCE_DISABLE_AU_FACTORY_ENTRY
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wcast-align", "-Wzero-as-null-pointer-constant")
diff --git a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.mm b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.mm
index 02867e2dfa..dde248f781 100644
--- a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.mm
+++ b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.mm
@@ -24,11 +24,8 @@
#if JucePlugin_Build_VST || JucePlugin_Build_VST3
-#define JUCE_MAC_WINDOW_VISIBITY_BODGE 1
-
#include "../utility/juce_IncludeSystemHeaders.h"
#include "../utility/juce_IncludeModuleHeaders.h"
-#include "../utility/juce_CarbonVisibility.h"
//==============================================================================
namespace juce
@@ -153,8 +150,6 @@ void* attachComponentToWindowRefVST (Component* comp, void* parentWindowOrView,
[hostWindow orderFront: nil];
[pluginWindow orderFront: nil];
- attachWindowHidingHooks (comp, (WindowRef) parentWindowOrView, hostWindow);
-
return hostWindow;
}
#endif
@@ -192,8 +187,6 @@ void detachComponentFromWindowRefVST (Component* comp, void* window, bool isNSVi
comp->getProperties() ["boundsEventRef"].toString().getHexValue64();
RemoveEventHandler (ref);
- removeWindowHidingHooks (comp);
-
CFUniquePtr dummyView ((HIViewRef) (void*) (pointer_sized_int)
comp->getProperties() ["dummyViewRef"].toString().getHexValue64());
diff --git a/modules/juce_audio_plugin_client/juce_audio_plugin_client_AU.r b/modules/juce_audio_plugin_client/juce_audio_plugin_client_AU.r
index 82f7641401..850a756c7f 100644
--- a/modules/juce_audio_plugin_client/juce_audio_plugin_client_AU.r
+++ b/modules/juce_audio_plugin_client/juce_audio_plugin_client_AU.r
@@ -41,23 +41,3 @@
#define ENTRY_POINT JucePlugin_AUExportPrefixQuoted "Entry"
#include "AUResources.r"
-
-//==============================================================================
-// component resources for Audio Unit Carbon View
-
-#ifndef BUILD_AU_CARBON_UI
- #define BUILD_AU_CARBON_UI 1
-#endif
-
-#if BUILD_AU_CARBON_UI
- #define RES_ID 2000
- #define COMP_TYPE kAudioUnitCarbonViewComponentType
- #define COMP_SUBTYPE JucePlugin_AUSubType
- #define COMP_MANUF JucePlugin_AUManufacturerCode
- #define VERSION JucePlugin_VersionCode
- #define NAME JucePlugin_Manufacturer ": " JucePlugin_Name " View"
- #define DESCRIPTION NAME
- #define ENTRY_POINT JucePlugin_AUExportPrefixQuoted "ViewEntry"
-
- #include "AUResources.r"
-#endif
diff --git a/modules/juce_audio_plugin_client/juce_audio_plugin_client_AU_2.mm b/modules/juce_audio_plugin_client/juce_audio_plugin_client_AU_2.mm
index 9da303d357..112fdd466a 100644
--- a/modules/juce_audio_plugin_client/juce_audio_plugin_client_AU_2.mm
+++ b/modules/juce_audio_plugin_client/juce_audio_plugin_client_AU_2.mm
@@ -55,9 +55,6 @@ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wparentheses",
#include "AU/CoreAudioUtilityClasses/AUBase.cpp"
#include "AU/CoreAudioUtilityClasses/AUBuffer.cpp"
-#include "AU/CoreAudioUtilityClasses/AUCarbonViewBase.cpp"
-#include "AU/CoreAudioUtilityClasses/AUCarbonViewControl.cpp"
-#include "AU/CoreAudioUtilityClasses/AUCarbonViewDispatch.cpp"
#include "AU/CoreAudioUtilityClasses/AUDispatch.cpp"
#include "AU/CoreAudioUtilityClasses/AUInputElement.cpp"
#include "AU/CoreAudioUtilityClasses/AUMIDIBase.cpp"
@@ -69,7 +66,6 @@ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wparentheses",
#include "AU/CoreAudioUtilityClasses/CAMutex.cpp"
#include "AU/CoreAudioUtilityClasses/CAStreamBasicDescription.cpp"
#include "AU/CoreAudioUtilityClasses/CAVectorUnit.cpp"
-#include "AU/CoreAudioUtilityClasses/CarbonEventHandler.cpp"
#include "AU/CoreAudioUtilityClasses/ComponentBase.cpp"
#include "AU/CoreAudioUtilityClasses/MusicDeviceBase.cpp"
diff --git a/modules/juce_audio_plugin_client/utility/juce_CarbonVisibility.h b/modules/juce_audio_plugin_client/utility/juce_CarbonVisibility.h
deleted file mode 100644
index 8ef5832fa5..0000000000
--- a/modules/juce_audio_plugin_client/utility/juce_CarbonVisibility.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- ==============================================================================
-
- This file is part of the JUCE 7 technical preview.
- Copyright (c) 2022 - Raw Material Software Limited
-
- You may use this code under the terms of the GPL v3
- (see www.gnu.org/licenses).
-
- For the technical preview this file cannot be licensed commercially.
-
- JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
- EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
- DISCLAIMED.
-
- ==============================================================================
-*/
-
-namespace juce
-{
-
-//==============================================================================
-#if JUCE_SUPPORT_CARBON && JUCE_MAC_WINDOW_VISIBITY_BODGE
-
-/* When you wrap a WindowRef as an NSWindow, it seems to bugger up the HideWindow
- function, so when the host tries (and fails) to hide the window, this stuff catches
- the event and forces it to update.
-*/
-static pascal OSStatus windowVisibilityBodge (EventHandlerCallRef, EventRef e, void* user)
-{
- NSWindow* hostWindow = (NSWindow*) user;
-
- switch (GetEventKind (e))
- {
- case kEventWindowInit: [hostWindow display]; break;
- case kEventWindowShown: [hostWindow orderFront: nil]; break;
- case kEventWindowHidden: [hostWindow orderOut: nil]; break;
- }
-
- return eventNotHandledErr;
-}
-
-inline void attachWindowHidingHooks (Component* comp, void* hostWindowRef, NSWindow* nsWindow)
-{
- const EventTypeSpec eventsToCatch[] =
- {
- { kEventClassWindow, kEventWindowInit },
- { kEventClassWindow, kEventWindowShown },
- { kEventClassWindow, kEventWindowHidden }
- };
-
- EventHandlerRef ref;
- InstallWindowEventHandler ((WindowRef) hostWindowRef,
- NewEventHandlerUPP (windowVisibilityBodge),
- GetEventTypeCount (eventsToCatch), eventsToCatch,
- (void*) nsWindow, &ref);
-
- comp->getProperties().set ("carbonEventRef", String::toHexString ((pointer_sized_int) (void*) ref));
-}
-
-inline void removeWindowHidingHooks (Component* comp)
-{
- if (comp != nullptr)
- RemoveEventHandler ((EventHandlerRef) (void*) (pointer_sized_int)
- comp->getProperties() ["carbonEventRef"].toString().getHexValue64());
-}
-
-#elif JUCE_MAC
- inline void attachWindowHidingHooks (void*, void*, void*) {}
- inline void removeWindowHidingHooks (void*) {}
-#endif
-
-} // namespace juce
diff --git a/modules/juce_audio_plugin_client/utility/juce_IncludeSystemHeaders.h b/modules/juce_audio_plugin_client/utility/juce_IncludeSystemHeaders.h
index 275449e3c0..c7992836b3 100644
--- a/modules/juce_audio_plugin_client/utility/juce_IncludeSystemHeaders.h
+++ b/modules/juce_audio_plugin_client/utility/juce_IncludeSystemHeaders.h
@@ -34,10 +34,6 @@
#include
#include
#elif JUCE_MAC || JUCE_IOS
- #if ! (defined (JUCE_SUPPORT_CARBON) || defined (__LP64__))
- #define JUCE_SUPPORT_CARBON 1
- #endif
-
#ifdef __OBJC__
#if JUCE_MAC
#include
@@ -48,10 +44,6 @@
#endif
#endif
- #if JUCE_SUPPORT_CARBON && (! JUCE_IOS)
- #include
- #endif
-
#include
#include
#include
diff --git a/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm b/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm
index 89b1e13705..fe35cc8bed 100644
--- a/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm
+++ b/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm
@@ -28,10 +28,6 @@ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wdeprecated-declarations")
#include
-#if JUCE_SUPPORT_CARBON
- #include
-#endif
-
#include
#include
@@ -427,7 +423,6 @@ namespace AudioUnitFormatHelpers
}
//==============================================================================
-class AudioUnitPluginWindowCarbon;
class AudioUnitPluginWindowCocoa;
//==============================================================================
@@ -1615,7 +1610,6 @@ public:
private:
//==============================================================================
- friend class AudioUnitPluginWindowCarbon;
friend class AudioUnitPluginWindowCocoa;
friend class AudioUnitPluginFormat;
@@ -2594,162 +2588,12 @@ private:
}
};
-#if JUCE_SUPPORT_CARBON
-
-//==============================================================================
-class AudioUnitPluginWindowCarbon : public AudioProcessorEditor
-{
-public:
- AudioUnitPluginWindowCarbon (AudioUnitPluginInstance& p)
- : AudioProcessorEditor (&p),
- plugin (p),
- audioComponent (nullptr),
- viewComponent (nullptr)
- {
- innerWrapper.reset (new InnerWrapperComponent (*this));
- addAndMakeVisible (innerWrapper.get());
-
- setOpaque (true);
- setVisible (true);
- setSize (400, 300);
-
- UInt32 propertySize;
- if (AudioUnitGetPropertyInfo (plugin.audioUnit, kAudioUnitProperty_GetUIComponentList,
- kAudioUnitScope_Global, 0, &propertySize, NULL) == noErr
- && propertySize > 0)
- {
- HeapBlock views (propertySize / sizeof (AudioComponentDescription));
-
- if (AudioUnitGetProperty (plugin.audioUnit, kAudioUnitProperty_GetUIComponentList,
- kAudioUnitScope_Global, 0, &views[0], &propertySize) == noErr)
- {
- audioComponent = AudioComponentFindNext (nullptr, &views[0]);
- }
- }
- }
-
- ~AudioUnitPluginWindowCarbon()
- {
- innerWrapper = nullptr;
-
- if (isValid())
- plugin.editorBeingDeleted (this);
- }
-
- bool isValid() const noexcept { return audioComponent != nullptr; }
-
- //==============================================================================
- void paint (Graphics& g) override
- {
- g.fillAll (Colours::black);
- }
-
- void resized() override
- {
- if (innerWrapper != nullptr)
- innerWrapper->setSize (getWidth(), getHeight());
- }
-
- //==============================================================================
- bool keyStateChanged (bool) override { return false; }
- bool keyPressed (const KeyPress&) override { return false; }
-
- //==============================================================================
- AudioUnit getAudioUnit() const { return plugin.audioUnit; }
-
- AudioUnitCarbonView getViewComponent()
- {
- if (viewComponent == nullptr && audioComponent != nullptr)
- AudioComponentInstanceNew (audioComponent, &viewComponent);
-
- return viewComponent;
- }
-
- void closeViewComponent()
- {
- if (viewComponent != nullptr)
- {
- JUCE_AU_LOG ("Closing AU GUI: " + plugin.getName());
-
- AudioComponentInstanceDispose (viewComponent);
- viewComponent = nullptr;
- }
- }
-
-private:
- //==============================================================================
- AudioUnitPluginInstance& plugin;
- AudioComponent audioComponent;
- AudioUnitCarbonView viewComponent;
-
- //==============================================================================
- class InnerWrapperComponent : public CarbonViewWrapperComponent
- {
- public:
- InnerWrapperComponent (AudioUnitPluginWindowCarbon& w) : owner (w) {}
-
- ~InnerWrapperComponent()
- {
- deleteWindow();
- }
-
- HIViewRef attachView (WindowRef windowRef, HIViewRef rootView) override
- {
- JUCE_AU_LOG ("Opening AU GUI: " + owner.plugin.getName());
-
- AudioUnitCarbonView carbonView = owner.getViewComponent();
-
- if (carbonView == 0)
- return 0;
-
- Float32Point pos = { 0, 0 };
- Float32Point size = { 250, 200 };
- HIViewRef pluginView = 0;
-
- AudioUnitCarbonViewCreate (carbonView, owner.getAudioUnit(), windowRef, rootView,
- &pos, &size, (ControlRef*) &pluginView);
-
- return pluginView;
- }
-
- void removeView (HIViewRef) override
- {
- owner.closeViewComponent();
- }
-
- private:
- AudioUnitPluginWindowCarbon& owner;
-
- JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (InnerWrapperComponent)
- };
-
- friend class InnerWrapperComponent;
- std::unique_ptr innerWrapper;
-
- JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (AudioUnitPluginWindowCarbon)
-};
-
-#endif
-
//==============================================================================
AudioProcessorEditor* AudioUnitPluginInstance::createEditor()
{
std::unique_ptr w (new AudioUnitPluginWindowCocoa (*this, false));
if (! static_cast (w.get())->isValid())
- w.reset();
-
- #if JUCE_SUPPORT_CARBON
- if (w == nullptr)
- {
- w.reset (new AudioUnitPluginWindowCarbon (*this));
-
- if (! static_cast (w.get())->isValid())
- w.reset();
- }
- #endif
-
- if (w == nullptr)
w.reset (new AudioUnitPluginWindowCocoa (*this, true)); // use AUGenericView as a fallback
return w.release();
diff --git a/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp
index 5e8f6a5923..db06c4ddc9 100644
--- a/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp
+++ b/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp
@@ -1220,10 +1220,6 @@ struct VSTPluginInstance final : public AudioPluginInstance,
wantsMidiMessages = pluginCanDo ("receiveVstMidiEvent") > 0 || isSynthPlugin();
- #if JUCE_MAC && JUCE_SUPPORT_CARBON
- usesCocoaNSView = ((unsigned int) pluginCanDo ("hasCockosViewAsConfig") & 0xffff0000ul) == 0xbeef0000ul;
- #endif
-
setLatencySamples (vstEffect->initialDelay);
}
@@ -1961,7 +1957,6 @@ struct VSTPluginInstance final : public AudioPluginInstance,
ModuleHandle::Ptr vstModule;
std::unique_ptr extraFunctions;
- bool usesCocoaNSView = false;
private:
//==============================================================================
@@ -2732,18 +2727,8 @@ public:
#elif JUCE_MAC
ignoreUnused (recursiveResize, pluginRefusesToResize, alreadyInside);
- #if JUCE_SUPPORT_CARBON
- if (! plug.usesCocoaNSView)
- {
- carbonWrapper.reset (new CarbonWrapperComponent (*this));
- addAndMakeVisible (carbonWrapper.get());
- }
- else
- #endif
- {
- cocoaWrapper.reset (new NSViewComponentWithParent (plugin));
- addAndMakeVisible (cocoaWrapper.get());
- }
+ cocoaWrapper.reset (new NSViewComponentWithParent (plugin));
+ addAndMakeVisible (cocoaWrapper.get());
#endif
activeVSTWindows.add (this);
@@ -2769,9 +2754,6 @@ public:
closePluginWindow();
#if JUCE_MAC
- #if JUCE_SUPPORT_CARBON
- carbonWrapper.reset();
- #endif
cocoaWrapper.reset();
#endif
@@ -2800,11 +2782,6 @@ public:
setSize (correctedBounds.getWidth(), correctedBounds.getHeight());
#if JUCE_MAC
- #if JUCE_SUPPORT_CARBON
- if (carbonWrapper != nullptr)
- carbonWrapper->setSize (correctedBounds.getWidth(), correctedBounds.getHeight());
- #endif
-
if (cocoaWrapper != nullptr)
cocoaWrapper->setSize (correctedBounds.getWidth(), correctedBounds.getHeight());
#endif
@@ -2820,25 +2797,19 @@ public:
void visibilityChanged() override
{
- if (cocoaWrapper != nullptr)
- {
- if (isShowing())
- openPluginWindow ((NSView*) cocoaWrapper->getView());
- else
- closePluginWindow();
- }
+ if (isShowing())
+ openPluginWindow ((NSView*) cocoaWrapper->getView());
+ else
+ closePluginWindow();
}
void childBoundsChanged (Component*) override
{
- if (cocoaWrapper != nullptr)
- {
- auto w = cocoaWrapper->getWidth();
- auto h = cocoaWrapper->getHeight();
+ auto w = cocoaWrapper->getWidth();
+ auto h = cocoaWrapper->getHeight();
- if (w != getWidth() || h != getHeight())
- setSize (w, h);
- }
+ if (w != getWidth() || h != getHeight())
+ setSize (w, h);
}
void parentHierarchyChanged() override { visibilityChanged(); }
@@ -3317,86 +3288,6 @@ private:
//==============================================================================
#if JUCE_MAC
- #if JUCE_SUPPORT_CARBON
- struct CarbonWrapperComponent : public CarbonViewWrapperComponent
- {
- CarbonWrapperComponent (VSTPluginWindow& w) : owner (w)
- {
- keepPluginWindowWhenHidden = w.shouldAvoidDeletingWindow();
- setRepaintsChildHIViewWhenCreated (w.shouldRepaintCarbonWindowWhenCreated());
- }
-
- ~CarbonWrapperComponent()
- {
- deleteWindow();
- }
-
- HIViewRef attachView (WindowRef windowRef, HIViewRef /*rootView*/) override
- {
- owner.openPluginWindow (windowRef);
- return {};
- }
-
- void removeView (HIViewRef) override
- {
- if (owner.isOpen)
- {
- owner.isOpen = false;
- owner.dispatch (Vst2::effEditClose, 0, 0, 0, 0);
- owner.dispatch (Vst2::effEditSleep, 0, 0, 0, 0);
- }
- }
-
- bool getEmbeddedViewSize (int& w, int& h) override
- {
- Vst2::ERect* rect = nullptr;
- owner.dispatch (Vst2::effEditGetRect, 0, 0, &rect, 0);
- w = rect->right - rect->left;
- h = rect->bottom - rect->top;
- return true;
- }
-
- void handleMouseDown (int x, int y) override
- {
- if (! alreadyInside)
- {
- alreadyInside = true;
- getTopLevelComponent()->toFront (true);
- owner.dispatch (Vst2::effEditMouse, x, y, 0, 0);
- alreadyInside = false;
- }
- else
- {
- PostEvent (::mouseDown, 0);
- }
- }
-
- void handlePaint() override
- {
- if (auto* peer = getPeer())
- {
- auto pos = peer->globalToLocal (getScreenPosition());
- Vst2::ERect r;
- r.left = (int16) pos.getX();
- r.top = (int16) pos.getY();
- r.right = (int16) (r.left + getWidth());
- r.bottom = (int16) (r.top + getHeight());
-
- owner.dispatch (Vst2::effEditDraw, 0, 0, &r, 0);
- }
- }
-
- private:
- VSTPluginWindow& owner;
- bool alreadyInside = false;
-
- JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CarbonWrapperComponent)
- };
-
- friend struct CarbonWrapperComponent;
- std::unique_ptr carbonWrapper;
- #endif
-
std::unique_ptr cocoaWrapper;
void resized() override
diff --git a/modules/juce_audio_processors/juce_audio_processors.cpp b/modules/juce_audio_processors/juce_audio_processors.cpp
index 80914cc0ab..98abe6c2b7 100644
--- a/modules/juce_audio_processors/juce_audio_processors.cpp
+++ b/modules/juce_audio_processors/juce_audio_processors.cpp
@@ -36,13 +36,6 @@
#include
//==============================================================================
-#if JUCE_MAC
- #if JUCE_SUPPORT_CARBON && (JUCE_PLUGINHOST_VST || JUCE_PLUGINHOST_AU)
- #include
- #include
- #endif
-#endif
-
#if (JUCE_PLUGINHOST_VST || JUCE_PLUGINHOST_VST3) && (JUCE_LINUX || JUCE_BSD)
#include
#include
diff --git a/modules/juce_audio_processors/juce_audio_processors.h b/modules/juce_audio_processors/juce_audio_processors.h
index 553e3d24b7..101a659e94 100644
--- a/modules/juce_audio_processors/juce_audio_processors.h
+++ b/modules/juce_audio_processors/juce_audio_processors.h
@@ -107,10 +107,6 @@
// #error "You need to set either the JUCE_PLUGINHOST_AU and/or JUCE_PLUGINHOST_VST and/or JUCE_PLUGINHOST_VST3 and/or JUCE_PLUGINHOST_LADSPA flags if you're using this module!"
#endif
-#if ! (defined (JUCE_SUPPORT_CARBON) || JUCE_64BIT || JUCE_IOS)
- #define JUCE_SUPPORT_CARBON 1
-#endif
-
#ifndef JUCE_SUPPORT_LEGACY_AUDIOPROCESSOR
#define JUCE_SUPPORT_LEGACY_AUDIOPROCESSOR 1
#endif
diff --git a/modules/juce_audio_processors/utilities/juce_ExtensionsVisitor.h b/modules/juce_audio_processors/utilities/juce_ExtensionsVisitor.h
index a272fee762..260669c8d2 100644
--- a/modules/juce_audio_processors/utilities/juce_ExtensionsVisitor.h
+++ b/modules/juce_audio_processors/utilities/juce_ExtensionsVisitor.h
@@ -30,7 +30,7 @@ namespace Steinberg
#endif
//==============================================================================
-#if (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) || (defined(AUDIOCOMPONENT_NOCARBONINSTANCES) && AUDIOCOMPONENT_NOCARBONINSTANCES)
+#if TARGET_OS_IPHONE
struct OpaqueAudioComponentInstance;
typedef struct OpaqueAudioComponentInstance* AudioComponentInstance;
#else
diff --git a/modules/juce_core/files/juce_File.h b/modules/juce_core/files/juce_File.h
index 8a82a4a833..baa816c8be 100644
--- a/modules/juce_core/files/juce_File.h
+++ b/modules/juce_core/files/juce_File.h
@@ -20,17 +20,13 @@
==============================================================================
*/
-#if ! defined (DOXYGEN) && (JUCE_MAC || JUCE_IOS)
- #if __LP64__
- using OSType = unsigned int;
- #else
- using OSType = unsigned long;
- #endif
-#endif
-
namespace juce
{
+#if ! DOXYGEN && (JUCE_MAC || JUCE_IOS)
+ using OSType = unsigned int;
+#endif
+
//==============================================================================
/**
Represents a local file or directory.
diff --git a/modules/juce_gui_basics/juce_gui_basics.cpp b/modules/juce_gui_basics/juce_gui_basics.cpp
index d9697568b7..0493ed43a2 100644
--- a/modules/juce_gui_basics/juce_gui_basics.cpp
+++ b/modules/juce_gui_basics/juce_gui_basics.cpp
@@ -44,10 +44,6 @@
#import
#import
- #if JUCE_SUPPORT_CARBON
- #import // still needed for SetSystemUIMode()
- #endif
-
#elif JUCE_IOS
#if JUCE_PUSH_NOTIFICATIONS && defined (__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
#import
diff --git a/modules/juce_gui_basics/juce_gui_basics.h b/modules/juce_gui_basics/juce_gui_basics.h
index 57d10f3ee1..00981d387b 100644
--- a/modules/juce_gui_basics/juce_gui_basics.h
+++ b/modules/juce_gui_basics/juce_gui_basics.h
@@ -36,7 +36,7 @@
minimumCppStandard: 14
dependencies: juce_graphics juce_data_structures
- OSXFrameworks: Carbon Cocoa QuartzCore
+ OSXFrameworks: Cocoa QuartzCore
WeakOSXFrameworks: Metal MetalKit
iOSFrameworks: CoreServices UIKit
WeakiOSFrameworks: Metal MetalKit
diff --git a/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm b/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm
index 783fc9fe09..5c213a0c47 100644
--- a/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm
+++ b/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm
@@ -1385,35 +1385,7 @@ public:
// has a Z label). Therefore, we need to query the current keyboard
// layout to figure out what character the key would have produced
// if the shift key was not pressed
- String unmodified;
-
- #if JUCE_SUPPORT_CARBON
- if (auto currentKeyboard = CFUniquePtr (TISCopyCurrentKeyboardInputSource()))
- {
- if (auto layoutData = (CFDataRef) TISGetInputSourceProperty (currentKeyboard,
- kTISPropertyUnicodeKeyLayoutData))
- {
- if (auto* layoutPtr = (const UCKeyboardLayout*) CFDataGetBytePtr (layoutData))
- {
- UInt32 keysDown = 0;
- UniChar buffer[4];
- UniCharCount actual;
-
- if (UCKeyTranslate (layoutPtr, [ev keyCode], kUCKeyActionDown, 0, LMGetKbdType(),
- kUCKeyTranslateNoDeadKeysBit, &keysDown, sizeof (buffer) / sizeof (UniChar),
- &actual, buffer) == 0)
- unmodified = String (CharPointer_UTF16 (reinterpret_cast (buffer)), 4);
- }
- }
- }
-
- // did the above layout conversion fail
- if (unmodified.isEmpty())
- #endif
- {
- unmodified = nsStringToJuce ([ev charactersIgnoringModifiers]);
- }
-
+ String unmodified = nsStringToJuce ([ev charactersIgnoringModifiers]);
auto keyCode = (int) unmodified[0];
if (keyCode == 0x19) // (backwards-tab)
diff --git a/modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h b/modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h
deleted file mode 100644
index bd8ea3c2e3..0000000000
--- a/modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h
+++ /dev/null
@@ -1,339 +0,0 @@
-/*
- ==============================================================================
-
- This file is part of the JUCE 7 technical preview.
- Copyright (c) 2022 - Raw Material Software Limited
-
- You may use this code under the terms of the GPL v3
- (see www.gnu.org/licenses).
-
- For the technical preview this file cannot be licensed commercially.
-
- JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
- EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
- DISCLAIMED.
-
- ==============================================================================
-*/
-
-namespace juce
-{
-
-//==============================================================================
-/**
- Creates a floating carbon window that can be used to hold a carbon UI.
-
- This is a handy class that's designed to be inlined where needed, e.g.
- in the audio plugin hosting code.
-
- @tags{GUI}
-*/
-class CarbonViewWrapperComponent : public Component,
- public ComponentMovementWatcher,
- public Timer
-{
-public:
- CarbonViewWrapperComponent()
- : ComponentMovementWatcher (this),
- carbonWindow (nil),
- keepPluginWindowWhenHidden (false),
- wrapperWindow (nil),
- embeddedView (0),
- recursiveResize (false),
- repaintChildOnCreation (true)
- {
- }
-
- ~CarbonViewWrapperComponent()
- {
- jassert (embeddedView == 0); // must call deleteWindow() in the subclass's destructor!
- }
-
- virtual HIViewRef attachView (WindowRef windowRef, HIViewRef rootView) = 0;
- virtual void removeView (HIViewRef embeddedView) = 0;
- virtual void handleMouseDown (int, int) {}
- virtual void handlePaint() {}
-
- virtual bool getEmbeddedViewSize (int& w, int& h)
- {
- if (embeddedView == 0)
- return false;
-
- HIRect bounds;
- HIViewGetBounds (embeddedView, &bounds);
- w = jmax (1, roundToInt (bounds.size.width));
- h = jmax (1, roundToInt (bounds.size.height));
- return true;
- }
-
- void createWindow()
- {
- if (wrapperWindow == nil)
- {
- Rect r;
- r.left = (short) getScreenX();
- r.top = (short) getScreenY();
- r.right = (short) (r.left + getWidth());
- r.bottom = (short) (r.top + getHeight());
-
- CreateNewWindow (kDocumentWindowClass,
- (WindowAttributes) (kWindowStandardHandlerAttribute | kWindowCompositingAttribute
- | kWindowNoShadowAttribute | kWindowNoTitleBarAttribute),
- &r, &wrapperWindow);
-
- jassert (wrapperWindow != 0);
- if (wrapperWindow == 0)
- return;
-
- carbonWindow = [[NSWindow alloc] initWithWindowRef: wrapperWindow];
-
- [getOwnerWindow() addChildWindow: carbonWindow
- ordered: NSWindowAbove];
-
- embeddedView = attachView (wrapperWindow, HIViewGetRoot (wrapperWindow));
-
- // Check for the plugin creating its own floating window, and if there is one,
- // we need to reparent it to make it visible..
- if (carbonWindow.childWindows.count > 0)
- if (NSWindow* floatingChildWindow = [[carbonWindow childWindows] objectAtIndex: 0])
- [getOwnerWindow() addChildWindow: floatingChildWindow
- ordered: NSWindowAbove];
-
- EventTypeSpec windowEventTypes[] =
- {
- { kEventClassWindow, kEventWindowGetClickActivation },
- { kEventClassWindow, kEventWindowHandleDeactivate },
- { kEventClassWindow, kEventWindowBoundsChanging },
- { kEventClassMouse, kEventMouseDown },
- { kEventClassMouse, kEventMouseMoved },
- { kEventClassMouse, kEventMouseDragged },
- { kEventClassMouse, kEventMouseUp },
- { kEventClassWindow, kEventWindowDrawContent },
- { kEventClassWindow, kEventWindowShown },
- { kEventClassWindow, kEventWindowHidden }
- };
-
- EventHandlerUPP upp = NewEventHandlerUPP (carbonEventCallback);
- InstallWindowEventHandler (wrapperWindow, upp,
- sizeof (windowEventTypes) / sizeof (EventTypeSpec),
- windowEventTypes, this, &eventHandlerRef);
-
- setOurSizeToEmbeddedViewSize();
- setEmbeddedWindowToOurSize();
-
- creationTime = Time::getCurrentTime();
- }
- }
-
- void deleteWindow()
- {
- removeView (embeddedView);
- embeddedView = 0;
-
- if (wrapperWindow != nil)
- {
- NSWindow* ownerWindow = getOwnerWindow();
-
- if ([[ownerWindow childWindows] count] > 0)
- {
- [ownerWindow removeChildWindow: carbonWindow];
- [carbonWindow close];
- }
-
- RemoveEventHandler (eventHandlerRef);
- DisposeWindow (wrapperWindow);
- wrapperWindow = nil;
- }
- }
-
- //==============================================================================
- void setOurSizeToEmbeddedViewSize()
- {
- int w, h;
- if (getEmbeddedViewSize (w, h))
- {
- if (w != getWidth() || h != getHeight())
- {
- startTimer (50);
- setSize (w, h);
-
- if (Component* p = getParentComponent())
- p->setSize (w, h);
- }
- else
- {
- startTimer (jlimit (50, 500, getTimerInterval() + 20));
- }
- }
- else
- {
- stopTimer();
- }
- }
-
- void setEmbeddedWindowToOurSize()
- {
- if (! recursiveResize)
- {
- recursiveResize = true;
-
- if (embeddedView != 0)
- {
- HIRect r;
- r.origin.x = 0;
- r.origin.y = 0;
- r.size.width = (float) getWidth();
- r.size.height = (float) getHeight();
- HIViewSetFrame (embeddedView, &r);
- }
-
- if (wrapperWindow != nil)
- {
- jassert (getTopLevelComponent()->getDesktopScaleFactor() == 1.0f);
- Rectangle screenBounds (getScreenBounds() * Desktop::getInstance().getGlobalScaleFactor());
-
- Rect wr;
- wr.left = (short) screenBounds.getX();
- wr.top = (short) screenBounds.getY();
- wr.right = (short) screenBounds.getRight();
- wr.bottom = (short) screenBounds.getBottom();
-
- SetWindowBounds (wrapperWindow, kWindowContentRgn, &wr);
-
- // This group stuff is mainly a workaround for Mackie plugins like FinalMix..
- WindowGroupRef group = GetWindowGroup (wrapperWindow);
- WindowRef attachedWindow;
-
- if (GetIndexedWindow (group, 2, kWindowGroupContentsReturnWindows, &attachedWindow) == noErr)
- {
- SelectWindow (attachedWindow);
- ActivateWindow (attachedWindow, TRUE);
- HideWindow (wrapperWindow);
- }
-
- ShowWindow (wrapperWindow);
- }
-
- recursiveResize = false;
- }
- }
-
- void componentMovedOrResized (bool /*wasMoved*/, bool /*wasResized*/) override
- {
- setEmbeddedWindowToOurSize();
- }
-
- // (overridden to intercept movements of the top-level window)
- void componentMovedOrResized (Component& component, bool wasMoved, bool wasResized) override
- {
- ComponentMovementWatcher::componentMovedOrResized (component, wasMoved, wasResized);
-
- if (&component == getTopLevelComponent())
- setEmbeddedWindowToOurSize();
- }
-
- void componentPeerChanged() override
- {
- deleteWindow();
- createWindow();
- }
-
- void componentVisibilityChanged() override
- {
- if (isShowing())
- createWindow();
- else if (! keepPluginWindowWhenHidden)
- deleteWindow();
-
- setEmbeddedWindowToOurSize();
- }
-
- static void recursiveHIViewRepaint (HIViewRef view)
- {
- HIViewSetNeedsDisplay (view, true);
- HIViewRef child = HIViewGetFirstSubview (view);
-
- while (child != 0)
- {
- recursiveHIViewRepaint (child);
- child = HIViewGetNextView (child);
- }
- }
-
- void timerCallback() override
- {
- if (isShowing())
- {
- setOurSizeToEmbeddedViewSize();
-
- // To avoid strange overpainting problems when the UI is first opened, we'll
- // repaint it a few times during the first second that it's on-screen..
- if (repaintChildOnCreation && (Time::getCurrentTime() - creationTime).inMilliseconds() < 1000)
- recursiveHIViewRepaint (HIViewGetRoot (wrapperWindow));
- }
- }
-
- void setRepaintsChildHIViewWhenCreated (bool b) noexcept
- {
- repaintChildOnCreation = b;
- }
-
- OSStatus carbonEventHandler (EventHandlerCallRef /*nextHandlerRef*/, EventRef event)
- {
- switch (GetEventKind (event))
- {
- case kEventWindowHandleDeactivate:
- ActivateWindow (wrapperWindow, TRUE);
- return noErr;
-
- case kEventWindowGetClickActivation:
- {
- getTopLevelComponent()->toFront (false);
- [carbonWindow makeKeyAndOrderFront: nil];
-
- ClickActivationResult howToHandleClick = kActivateAndHandleClick;
-
- SetEventParameter (event, kEventParamClickActivation, typeClickActivationResult,
- sizeof (ClickActivationResult), &howToHandleClick);
-
- if (embeddedView != 0)
- HIViewSetNeedsDisplay (embeddedView, true);
-
- return noErr;
- }
- }
-
- return eventNotHandledErr;
- }
-
- static pascal OSStatus carbonEventCallback (EventHandlerCallRef nextHandlerRef, EventRef event, void* userData)
- {
- return ((CarbonViewWrapperComponent*) userData)->carbonEventHandler (nextHandlerRef, event);
- }
-
- NSWindow* carbonWindow;
- bool keepPluginWindowWhenHidden;
-
-protected:
- WindowRef wrapperWindow;
- HIViewRef embeddedView;
- bool recursiveResize, repaintChildOnCreation;
- Time creationTime;
-
- EventHandlerRef eventHandlerRef;
-
- NSWindow* getOwnerWindow() const { return [((NSView*) getWindowHandle()) window]; }
-};
-
-//==============================================================================
-// Non-public utility function that hosts can use if they need to get hold of the
-// internals of a carbon wrapper window..
-void* getCarbonWindow (Component* possibleCarbonComponent)
-{
- if (CarbonViewWrapperComponent* cv = dynamic_cast (possibleCarbonComponent))
- return cv->carbonWindow;
-
- return nullptr;
-}
-
-} // namespace juce
diff --git a/modules/juce_video/native/juce_mac_Video.h b/modules/juce_video/native/juce_mac_Video.h
index 7745355515..f43a8bc8c6 100644
--- a/modules/juce_video/native/juce_mac_Video.h
+++ b/modules/juce_video/native/juce_mac_Video.h
@@ -577,18 +577,11 @@ private:
PlayerController (Pimpl& ownerToUse, bool useNativeControlsIfAvailable)
: PlayerControllerBase (ownerToUse, useNativeControlsIfAvailable)
{
- #if JUCE_32BIT
- // 32-bit builds don't have AVPlayerView, so need to use a layer
- useNativeControls = false;
- #endif
-
wrappedPlayer = [&]() -> std::unique_ptr
{
- #if ! JUCE_32BIT
if (@available (macOS 10.9, *))
if (useNativeControls)
return std::make_unique();
- #endif
return std::make_unique ();
}();
@@ -658,7 +651,6 @@ private:
NSUniquePtr playerLayer { [[AVPlayerLayer alloc] init] };
};
- #if ! JUCE_32BIT
class API_AVAILABLE (macos (10.9)) WrappedPlayerView : public WrappedPlayer
{
public:
@@ -670,7 +662,6 @@ private:
private:
NSUniquePtr playerView { [[AVPlayerView alloc] init] };
};
- #endif
std::unique_ptr wrappedPlayer;
};