From fc231a862f3cfc59042ad47276328d9a2a9b63fc Mon Sep 17 00:00:00 2001 From: Lukasz Kozakiewicz Date: Mon, 23 Oct 2017 09:54:16 +0200 Subject: [PATCH] Re-save all projects. --- .../MacOSX/Info-AUv3_AppExtension.plist | 2 +- .../MacOSX/Info-Standalone_Plugin.plist | 2 +- .../AUv3Synth/Builds/MacOSX/Info-VST.plist | 2 +- .../AUv3Synth/Builds/MacOSX/Info-VST3.plist | 2 +- .../Builds/iOS/Info-AUv3_AppExtension.plist | 2 +- .../Builds/iOS/Info-Standalone_Plugin.plist | 2 +- .../Builds/MacOSX/Info-App.plist | 2 +- .../AnimationAppExample_App.vcxproj | 10 + .../AnimationAppExample_App.vcxproj.filters | 12 + .../Builds/iOS/Info-App.plist | 2 +- .../Builds/MacOSX/Info-App.plist | 2 +- .../AudioAppExample_App.vcxproj | 10 + .../AudioAppExample_App.vcxproj.filters | 12 + .../AudioAppExample/Builds/iOS/Info-App.plist | 2 +- .../Builds/LinuxMakefile/Makefile | 8 +- .../Builds/MacOSX/Info-App.plist | 2 +- .../BlocksDrawing_App.vcxproj | 10 + .../BlocksDrawing_App.vcxproj.filters | 12 + .../BlocksDrawing_App.vcxproj | 10 + .../BlocksDrawing_App.vcxproj.filters | 12 + .../BlocksDrawing/Builds/iOS/Info-App.plist | 2 +- .../Builds/LinuxMakefile/Makefile | 8 +- .../Builds/MacOSX/Info-App.plist | 2 +- .../BlocksMonitor_App.vcxproj | 10 + .../BlocksMonitor_App.vcxproj.filters | 12 + .../BlocksMonitor_App.vcxproj | 10 + .../BlocksMonitor_App.vcxproj.filters | 12 + .../BlocksMonitor/Builds/iOS/Info-App.plist | 2 +- .../BlocksSynth/Builds/LinuxMakefile/Makefile | 8 +- .../BlocksSynth/Builds/MacOSX/Info-App.plist | 2 +- .../VisualStudio2015/BlocksSynth_App.vcxproj | 10 + .../BlocksSynth_App.vcxproj.filters | 12 + .../VisualStudio2017/BlocksSynth_App.vcxproj | 10 + .../BlocksSynth_App.vcxproj.filters | 12 + .../BlocksSynth/Builds/iOS/Info-App.plist | 2 +- .../Builds/LinuxMakefile/Makefile | 8 +- .../Builds/MacOSX/Info-App.plist | 2 +- .../BouncingBallWavetableDemo_App.vcxproj | 10 + ...ncingBallWavetableDemo_App.vcxproj.filters | 12 + .../BouncingBallWavetableDemo_App.vcxproj | 10 + ...ncingBallWavetableDemo_App.vcxproj.filters | 12 + .../Builds/MacOSX/Info-App.plist | 2 +- .../ComponentTutorialExample_App.vcxproj | 10 + ...mponentTutorialExample_App.vcxproj.filters | 12 + .../ComponentTutorialExample_App.vcxproj | 10 + ...mponentTutorialExample_App.vcxproj.filters | 12 + .../Builds/MacOSX/Info-AU.plist | 2 +- .../MacOSX/Info-Standalone_Plugin.plist | 2 +- .../Builds/MacOSX/Info-VST.plist | 2 +- .../DSPModulePluginDemo_SharedCode.vcxproj | 10 + ...odulePluginDemo_SharedCode.vcxproj.filters | 12 + .../DSPModulePluginDemo_SharedCode.vcxproj | 10 + ...odulePluginDemo_SharedCode.vcxproj.filters | 12 + .../DSPDemo/Builds/LinuxMakefile/Makefile | 8 +- examples/DSPDemo/Builds/MacOSX/Info-App.plist | 2 +- .../VisualStudio2017/DSPDemo_App.vcxproj | 10 + .../DSPDemo_App.vcxproj.filters | 12 + .../Demo/Builds/Android/app/CMakeLists.txt | 12 +- examples/Demo/Builds/Android/app/build.gradle | 1 + .../Android/app/src/main/AndroidManifest.xml | 2 +- .../com/yourcompany/jucedemo/JuceDemo.java | 11 + examples/Demo/Builds/LinuxMakefile/Makefile | 8 +- examples/Demo/Builds/MacOSX/Info-App.plist | 2 +- .../VisualStudio2013/JuceDemo_App.vcxproj | 10 + .../JuceDemo_App.vcxproj.filters | 12 + .../VisualStudio2015/JuceDemo_App.vcxproj | 10 + .../JuceDemo_App.vcxproj.filters | 12 + .../VisualStudio2017/JuceDemo_App.vcxproj | 10 + .../JuceDemo_App.vcxproj.filters | 12 + examples/Demo/Builds/iOS/Info-App.plist | 2 +- .../AppIcon.appiconset/Icon-AppStore-1024.png | Bin 0 -> 50668 bytes .../Icon-Notification-20@2x.png | Bin 0 -> 2452 bytes .../Icon-Notification-20@3x.png | Bin 0 -> 4956 bytes .../Icon-Notifications-20.png | Bin 0 -> 979 bytes .../Icon-Notifications-20@2x.png | Bin 0 -> 2452 bytes .../HelloWorld/Builds/LinuxMakefile/Makefile | 8 +- .../HelloWorld/Builds/MacOSX/Info-App.plist | 2 +- .../VisualStudio2015/HelloWorld_App.vcxproj | 10 + .../HelloWorld_App.vcxproj.filters | 12 + .../VisualStudio2017/HelloWorld_App.vcxproj | 10 + .../HelloWorld_App.vcxproj.filters | 12 + examples/HelloWorld/Builds/iOS/Info-App.plist | 2 +- .../Builds/Android/app/CMakeLists.txt | 12 +- .../Builds/Android/app/build.gradle | 1 + .../Android/app/src/main/AndroidManifest.xml | 2 +- .../InAppPurchase.java | 11 + .../InAppPurchase.xcodeproj/project.pbxproj | 390 ++ .../Builds/MacOSX/Info-App.plist | 29 + .../Builds/MacOSX/RecentFilesMenuTemplate.nib | Bin 0 -> 2842 bytes .../AppIcon.appiconset/Icon-AppStore-1024.png | Bin 0 -> 80633 bytes .../Icon-Notification-20@2x.png | Bin 0 -> 2605 bytes .../Icon-Notification-20@3x.png | Bin 0 -> 4787 bytes .../Icon-Notifications-20.png | Bin 0 -> 948 bytes .../Icon-Notifications-20@2x.png | Bin 0 -> 2605 bytes .../InAppPurchase/Builds/iOS/Info-App.plist | 2 +- .../MPETest/Builds/LinuxMakefile/Makefile | 8 +- examples/MPETest/Builds/MacOSX/Info-App.plist | 2 +- .../VisualStudio2015/MPETest_App.vcxproj | 10 + .../MPETest_App.vcxproj.filters | 12 + .../VisualStudio2017/MPETest_App.vcxproj | 10 + .../MPETest_App.vcxproj.filters | 12 + .../Builds/Android/app/CMakeLists.txt | 12 +- .../MidiTest/Builds/Android/app/build.gradle | 1 + .../Android/app/src/main/AndroidManifest.xml | 2 +- .../com/yourcompany/miditest/MidiTest.java | 11 + .../MidiTest/Builds/LinuxMakefile/Makefile | 8 +- .../MidiTest/Builds/MacOSX/Info-App.plist | 2 +- .../VisualStudio2015/MidiTest_App.vcxproj | 10 + .../MidiTest_App.vcxproj.filters | 12 + .../VisualStudio2017/MidiTest_App.vcxproj | 10 + .../MidiTest_App.vcxproj.filters | 12 + examples/MidiTest/Builds/iOS/Info-App.plist | 2 +- .../Builds/Android/app/CMakeLists.txt | 12 +- .../Builds/Android/app/build.gradle | 1 + .../Android/app/src/main/AndroidManifest.xml | 2 +- .../JUCENetworkGraphicsDemo.java | 11 + .../Builds/LinuxMakefile/Makefile | 8 +- .../Builds/MacOSX/Info-App.plist | 2 +- .../JUCE Network Graphics Demo_App.vcxproj | 10 + ... Network Graphics Demo_App.vcxproj.filters | 12 + .../JUCE Network Graphics Demo_App.vcxproj | 10 + ... Network Graphics Demo_App.vcxproj.filters | 12 + .../Builds/iOS/Info-App.plist | 2 +- .../AppIcon.appiconset/Icon-AppStore-1024.png | Bin 0 -> 50668 bytes .../Icon-Notification-20@2x.png | Bin 0 -> 2452 bytes .../Icon-Notification-20@3x.png | Bin 0 -> 4956 bytes .../Icon-Notifications-20.png | Bin 0 -> 979 bytes .../Icon-Notifications-20@2x.png | Bin 0 -> 2452 bytes .../OSCMonitor/Builds/LinuxMakefile/Makefile | 8 +- .../OSCMonitor/Builds/MacOSX/Info-App.plist | 2 +- .../VisualStudio2015/OSCMonitor_App.vcxproj | 10 + .../OSCMonitor_App.vcxproj.filters | 12 + .../VisualStudio2017/OSCMonitor_App.vcxproj | 10 + .../OSCMonitor_App.vcxproj.filters | 12 + .../Builds/Android/app/CMakeLists.txt | 12 +- .../Builds/Android/app/build.gradle | 1 + .../Android/app/src/main/AndroidManifest.xml | 2 +- .../yourcompany/oscreceiver/OSCReceiver.java | 11 + .../OSCReceiver/Builds/LinuxMakefile/Makefile | 8 +- .../OSCReceiver/Builds/MacOSX/Info-App.plist | 2 +- .../VisualStudio2015/OSCReceiver_App.vcxproj | 10 + .../OSCReceiver_App.vcxproj.filters | 12 + .../VisualStudio2017/OSCReceiver_App.vcxproj | 10 + .../OSCReceiver_App.vcxproj.filters | 12 + .../OSCReceiver/Builds/iOS/Info-App.plist | 2 +- .../Builds/Android/app/CMakeLists.txt | 4 +- .../OSCSender/Builds/Android/app/build.gradle | 1 + .../Android/app/src/main/AndroidManifest.xml | 2 +- .../com/yourcompany/oscsender/OSCSender.java | 11 + .../OSCSender/Builds/LinuxMakefile/Makefile | 8 +- .../OSCSender/Builds/MacOSX/Info-App.plist | 2 +- examples/OSCSender/Builds/iOS/Info-App.plist | 2 +- .../Builds/MacOSX/Info-App.plist | 2 +- .../OpenGLAppExample_App.vcxproj | 10 + .../OpenGLAppExample_App.vcxproj.filters | 12 + .../Builds/iOS/Info-App.plist | 2 +- .../Builds/MacOSX/Info-App.plist | 2 +- .../PluckedStringsDemo_App.vcxproj | 10 + .../PluckedStringsDemo_App.vcxproj.filters | 12 + .../PluckedStringsDemo_App.vcxproj | 10 + .../PluckedStringsDemo_App.vcxproj.filters | 12 + .../Arpeggiator/Builds/MacOSX/Info-AU.plist | 2 +- .../Arpeggiator/Builds/MacOSX/Info-VST.plist | 2 +- .../Arpeggiator_SharedCode.vcxproj | 10 + .../Arpeggiator_SharedCode.vcxproj.filters | 12 + .../Arpeggiator_SharedCode.vcxproj | 10 + .../Arpeggiator_SharedCode.vcxproj.filters | 12 + .../GainPlugIn/Builds/MacOSX/Info-AU.plist | 2 +- .../GainPlugIn/Builds/MacOSX/Info-VST.plist | 2 +- .../GainPlugIn/Builds/MacOSX/Info-VST3.plist | 2 +- .../GainPlugIn_SharedCode.vcxproj | 10 + .../GainPlugIn_SharedCode.vcxproj.filters | 12 + .../GainPlugIn_SharedCode.vcxproj | 10 + .../GainPlugIn_SharedCode.vcxproj.filters | 12 + .../Builds/iOS/Info-Standalone_Plugin.plist | 2 +- .../Builds/MacOSX/Info-AAX.plist | 2 +- .../MultiOutSynth/Builds/MacOSX/Info-AU.plist | 2 +- .../Builds/MacOSX/Info-VST.plist | 2 +- .../Builds/MacOSX/Info-VST3.plist | 2 +- .../MultiOutSynth_SharedCode.vcxproj | 10 + .../MultiOutSynth_SharedCode.vcxproj.filters | 12 + .../MultiOutSynth_SharedCode.vcxproj | 10 + .../MultiOutSynth_SharedCode.vcxproj.filters | 12 + .../NoiseGate/Builds/MacOSX/Info-AAX.plist | 2 +- .../NoiseGate/Builds/MacOSX/Info-AU.plist | 2 +- .../NoiseGate/Builds/MacOSX/Info-VST.plist | 2 +- .../NoiseGate/Builds/MacOSX/Info-VST3.plist | 2 +- .../NoiseGate_SharedCode.vcxproj | 10 + .../NoiseGate_SharedCode.vcxproj.filters | 12 + .../NoiseGate_SharedCode.vcxproj | 10 + .../NoiseGate_SharedCode.vcxproj.filters | 12 + .../Surround/Builds/LinuxMakefile/Makefile | 8 +- .../Surround/Builds/MacOSX/Info-AAX.plist | 2 +- .../Surround/Builds/MacOSX/Info-AU.plist | 2 +- .../Surround/Builds/MacOSX/Info-VST.plist | 2 +- .../Surround/Builds/MacOSX/Info-VST3.plist | 2 +- .../Surround_SharedCode.vcxproj | 10 + .../Surround_SharedCode.vcxproj.filters | 12 + .../Surround_SharedCode.vcxproj | 10 + .../Surround_SharedCode.vcxproj.filters | 12 + .../Builds/Android/app/CMakeLists.txt | 2397 ++++++++++ .../Builds/Android/app/build.gradle | 92 + .../Builds/Android/app/google-services.json | 42 + .../app/src/debug/res/raw/demonstrative.mp3 | Bin 0 -> 127059 bytes .../app/src/debug/res/raw/ic_stat_name.png | Bin 0 -> 351 bytes .../app/src/debug/res/raw/ic_stat_name10.png | Bin 0 -> 1156 bytes .../app/src/debug/res/raw/ic_stat_name2.png | Bin 0 -> 204 bytes .../app/src/debug/res/raw/ic_stat_name3.png | Bin 0 -> 292 bytes .../app/src/debug/res/raw/ic_stat_name4.png | Bin 0 -> 341 bytes .../app/src/debug/res/raw/ic_stat_name5.png | Bin 0 -> 337 bytes .../app/src/debug/res/raw/ic_stat_name6.png | Bin 0 -> 1059 bytes .../app/src/debug/res/raw/ic_stat_name7.png | Bin 0 -> 543 bytes .../app/src/debug/res/raw/ic_stat_name8.png | Bin 0 -> 928 bytes .../app/src/debug/res/raw/ic_stat_name9.png | Bin 0 -> 915 bytes .../Android/app/src/debug/res/raw/isntit.mp3 | Bin 0 -> 11284 bytes .../app/src/debug/res/raw/jinglebellssms.mp3 | Bin 0 -> 24116 bytes .../Android/app/src/debug/res/raw/served.mp3 | Bin 0 -> 6687 bytes .../Android/app/src/debug/res/raw/solemn.mp3 | Bin 0 -> 75650 bytes .../app/src/debug/res/values/string.xml | 5 + .../Android/app/src/main/AndroidManifest.xml | 35 + .../vending/billing/IInAppBillingService.java | 971 ++++ .../JuceFirebaseInstanceIdService.java | 17 + .../JuceFirebaseMessagingService.java | 36 + .../PushNotificationsDemo.java | 2513 +++++++++++ .../app/src/release/res/raw/demonstrative.mp3 | Bin 0 -> 127059 bytes .../app/src/release/res/raw/ic_stat_name.png | Bin 0 -> 351 bytes .../src/release/res/raw/ic_stat_name10.png | Bin 0 -> 1156 bytes .../app/src/release/res/raw/ic_stat_name2.png | Bin 0 -> 204 bytes .../app/src/release/res/raw/ic_stat_name3.png | Bin 0 -> 292 bytes .../app/src/release/res/raw/ic_stat_name4.png | Bin 0 -> 341 bytes .../app/src/release/res/raw/ic_stat_name5.png | Bin 0 -> 337 bytes .../app/src/release/res/raw/ic_stat_name6.png | Bin 0 -> 1059 bytes .../app/src/release/res/raw/ic_stat_name7.png | Bin 0 -> 543 bytes .../app/src/release/res/raw/ic_stat_name8.png | Bin 0 -> 928 bytes .../app/src/release/res/raw/ic_stat_name9.png | Bin 0 -> 915 bytes .../app/src/release/res/raw/isntit.mp3 | Bin 0 -> 11284 bytes .../src/release/res/raw/jinglebellssms.mp3 | Bin 0 -> 24116 bytes .../app/src/release/res/raw/served.mp3 | Bin 0 -> 6687 bytes .../app/src/release/res/raw/solemn.mp3 | Bin 0 -> 75650 bytes .../app/src/release/res/values/string.xml | 5 + .../Builds/Android/build.gradle | 18 + .../wrapper/LICENSE-for-gradlewrapper.txt | 202 + .../Android/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 53636 bytes .../gradle/wrapper/gradle-wrapper.properties | 1 + .../Builds/Android/gradlew | 160 + .../Builds/Android/gradlew.bat | 90 + .../Builds/Android/settings.gradle | 1 + .../Builds/MacOSX/Info-App.plist | 29 + .../project.pbxproj | 365 ++ .../Builds/MacOSX/RecentFilesMenuTemplate.nib | Bin 0 -> 2842 bytes .../PushNotificationsDemo.sln | 20 + .../PushNotificationsDemo_App.vcxproj | 2340 ++++++++++ .../PushNotificationsDemo_App.vcxproj.filters | 3911 +++++++++++++++++ .../Builds/VisualStudio2015/resources.rc | 29 + .../Builds/iOS/Info-App.plist | 45 + .../iOS/PushNotificationsDemo.entitlements | 8 + .../project.pbxproj | 395 ++ .../AppIcon.appiconset/Contents.json | 158 + .../LaunchImage.launchimage/Contents.json | 57 + .../LaunchImage-ipad-landscape-1x.png | Bin 0 -> 4904 bytes .../LaunchImage-ipad-landscape-2x.png | Bin 0 -> 15969 bytes .../LaunchImage-ipad-portrait-1x.png | Bin 0 -> 5350 bytes .../LaunchImage-ipad-portrait-2x.png | Bin 0 -> 16897 bytes .../LaunchImage-iphone-2x.png | Bin 0 -> 4542 bytes .../LaunchImage-iphone-retina4.png | Bin 0 -> 5356 bytes .../PushNotificationsDemo.jucer | 6 +- .../Builds/MacOSX/Info-App.plist | 2 +- .../SimpleFFTExample_App.vcxproj | 10 + .../SimpleFFTExample_App.vcxproj.filters | 12 + .../SimpleFFTExample_App.vcxproj | 10 + .../SimpleFFTExample_App.vcxproj.filters | 12 + .../Builds/Android/app/CMakeLists.txt | 12 +- .../Builds/Android/app/build.gradle | 1 + .../Android/app/src/main/AndroidManifest.xml | 2 +- .../juce/jucedemoplugin/JuceDemoPlugin.java | 11 + .../Builds/LinuxMakefile/Makefile | 8 +- .../Builds/MacOSX/Info-AU.plist | 2 +- .../MacOSX/Info-AUv3_AppExtension.plist | 2 +- .../MacOSX/Info-Standalone_Plugin.plist | 2 +- .../Builds/MacOSX/Info-VST.plist | 2 +- .../JuceDemoPlugin_SharedCode.vcxproj | 10 + .../JuceDemoPlugin_SharedCode.vcxproj.filters | 12 + .../JuceDemoPlugin_SharedCode.vcxproj | 10 + .../JuceDemoPlugin_SharedCode.vcxproj.filters | 12 + .../Builds/iOS/Info-AUv3_AppExtension.plist | 2 +- .../Builds/iOS/Info-Standalone_Plugin.plist | 2 +- .../Builds/LinuxMakefile/Makefile | 8 +- .../Builds/MacOSX/Info-App.plist | 2 +- .../VisualStudio2013/Plugin Host_App.vcxproj | 10 + .../Plugin Host_App.vcxproj.filters | 12 + .../VisualStudio2015/Plugin Host_App.vcxproj | 10 + .../Plugin Host_App.vcxproj.filters | 12 + .../VisualStudio2017/Plugin Host_App.vcxproj | 10 + .../Plugin Host_App.vcxproj.filters | 12 + .../Builds/Android/app/CMakeLists.txt | 12 +- .../Builds/Android/app/build.gradle | 1 + .../Android/app/src/main/AndroidManifest.xml | 2 +- .../AudioPerformanceTest.java | 11 + .../Builds/LinuxMakefile/Makefile | 8 +- .../Builds/MacOSX/Info-App.plist | 2 +- .../AudioPerformanceTest_App.vcxproj | 10 + .../AudioPerformanceTest_App.vcxproj.filters | 12 + .../Builds/iOS/Info-App.plist | 2 +- extras/Projucer/Builds/LinuxMakefile/Makefile | 8 +- .../VisualStudio2013/Projucer_App.vcxproj | 10 + .../Projucer_App.vcxproj.filters | 12 + .../VisualStudio2015/Projucer_App.vcxproj | 10 + .../Projucer_App.vcxproj.filters | 12 + .../VisualStudio2017/Projucer_App.vcxproj | 10 + .../Projucer_App.vcxproj.filters | 12 + extras/Projucer/Projucer.jucer | 18 +- .../Builds/LinuxMakefile/Makefile | 8 +- .../UnitTestRunner_ConsoleApp.vcxproj | 12 + .../UnitTestRunner_ConsoleApp.vcxproj.filters | 12 + .../Builds/LinuxMakefile/Makefile | 8 +- .../juce_dll_StaticLibrary.vcxproj | 10 + .../juce_dll_StaticLibrary.vcxproj.filters | 12 + 317 files changed, 15941 insertions(+), 174 deletions(-) create mode 100644 examples/Demo/Builds/iOS/JuceDemo/Images.xcassets/AppIcon.appiconset/Icon-AppStore-1024.png create mode 100644 examples/Demo/Builds/iOS/JuceDemo/Images.xcassets/AppIcon.appiconset/Icon-Notification-20@2x.png create mode 100644 examples/Demo/Builds/iOS/JuceDemo/Images.xcassets/AppIcon.appiconset/Icon-Notification-20@3x.png create mode 100644 examples/Demo/Builds/iOS/JuceDemo/Images.xcassets/AppIcon.appiconset/Icon-Notifications-20.png create mode 100644 examples/Demo/Builds/iOS/JuceDemo/Images.xcassets/AppIcon.appiconset/Icon-Notifications-20@2x.png create mode 100644 examples/InAppPurchase/Builds/MacOSX/InAppPurchase.xcodeproj/project.pbxproj create mode 100644 examples/InAppPurchase/Builds/MacOSX/Info-App.plist create mode 100644 examples/InAppPurchase/Builds/MacOSX/RecentFilesMenuTemplate.nib create mode 100644 examples/InAppPurchase/Builds/iOS/InAppPurchase/Images.xcassets/AppIcon.appiconset/Icon-AppStore-1024.png create mode 100644 examples/InAppPurchase/Builds/iOS/InAppPurchase/Images.xcassets/AppIcon.appiconset/Icon-Notification-20@2x.png create mode 100644 examples/InAppPurchase/Builds/iOS/InAppPurchase/Images.xcassets/AppIcon.appiconset/Icon-Notification-20@3x.png create mode 100644 examples/InAppPurchase/Builds/iOS/InAppPurchase/Images.xcassets/AppIcon.appiconset/Icon-Notifications-20.png create mode 100644 examples/InAppPurchase/Builds/iOS/InAppPurchase/Images.xcassets/AppIcon.appiconset/Icon-Notifications-20@2x.png create mode 100644 examples/NetworkGraphicsDemo/Builds/iOS/JUCE Network Graphics Demo/Images.xcassets/AppIcon.appiconset/Icon-AppStore-1024.png create mode 100644 examples/NetworkGraphicsDemo/Builds/iOS/JUCE Network Graphics Demo/Images.xcassets/AppIcon.appiconset/Icon-Notification-20@2x.png create mode 100644 examples/NetworkGraphicsDemo/Builds/iOS/JUCE Network Graphics Demo/Images.xcassets/AppIcon.appiconset/Icon-Notification-20@3x.png create mode 100644 examples/NetworkGraphicsDemo/Builds/iOS/JUCE Network Graphics Demo/Images.xcassets/AppIcon.appiconset/Icon-Notifications-20.png create mode 100644 examples/NetworkGraphicsDemo/Builds/iOS/JUCE Network Graphics Demo/Images.xcassets/AppIcon.appiconset/Icon-Notifications-20@2x.png create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/CMakeLists.txt create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/build.gradle create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/google-services.json create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/demonstrative.mp3 create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name.png create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name10.png create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name2.png create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name3.png create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name4.png create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name5.png create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name6.png create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name7.png create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name8.png create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name9.png create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/isntit.mp3 create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/jinglebellssms.mp3 create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/served.mp3 create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/solemn.mp3 create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/values/string.xml create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/main/AndroidManifest.xml create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/main/java/com/android/vending/billing/IInAppBillingService.java create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/main/java/com/juce/pushnotificationsdemo/JuceFirebaseInstanceIdService.java create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/main/java/com/juce/pushnotificationsdemo/JuceFirebaseMessagingService.java create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/main/java/com/juce/pushnotificationsdemo/PushNotificationsDemo.java create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/demonstrative.mp3 create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name.png create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name10.png create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name2.png create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name3.png create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name4.png create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name5.png create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name6.png create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name7.png create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name8.png create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name9.png create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/isntit.mp3 create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/jinglebellssms.mp3 create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/served.mp3 create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/solemn.mp3 create mode 100644 examples/PushNotificationsDemo/Builds/Android/app/src/release/res/values/string.xml create mode 100644 examples/PushNotificationsDemo/Builds/Android/build.gradle create mode 100644 examples/PushNotificationsDemo/Builds/Android/gradle/wrapper/LICENSE-for-gradlewrapper.txt create mode 100644 examples/PushNotificationsDemo/Builds/Android/gradle/wrapper/gradle-wrapper.jar create mode 100644 examples/PushNotificationsDemo/Builds/Android/gradle/wrapper/gradle-wrapper.properties create mode 100755 examples/PushNotificationsDemo/Builds/Android/gradlew create mode 100644 examples/PushNotificationsDemo/Builds/Android/gradlew.bat create mode 100644 examples/PushNotificationsDemo/Builds/Android/settings.gradle create mode 100644 examples/PushNotificationsDemo/Builds/MacOSX/Info-App.plist create mode 100644 examples/PushNotificationsDemo/Builds/MacOSX/PushNotificationsDemo.xcodeproj/project.pbxproj create mode 100644 examples/PushNotificationsDemo/Builds/MacOSX/RecentFilesMenuTemplate.nib create mode 100644 examples/PushNotificationsDemo/Builds/VisualStudio2015/PushNotificationsDemo.sln create mode 100644 examples/PushNotificationsDemo/Builds/VisualStudio2015/PushNotificationsDemo_App.vcxproj create mode 100644 examples/PushNotificationsDemo/Builds/VisualStudio2015/PushNotificationsDemo_App.vcxproj.filters create mode 100644 examples/PushNotificationsDemo/Builds/VisualStudio2015/resources.rc create mode 100644 examples/PushNotificationsDemo/Builds/iOS/Info-App.plist create mode 100644 examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo.entitlements create mode 100644 examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo.xcodeproj/project.pbxproj create mode 100644 examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/AppIcon.appiconset/Contents.json create mode 100644 examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/Contents.json create mode 100644 examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-landscape-1x.png create mode 100644 examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-landscape-2x.png create mode 100644 examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-portrait-1x.png create mode 100644 examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-portrait-2x.png create mode 100644 examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/LaunchImage-iphone-2x.png create mode 100644 examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/LaunchImage-iphone-retina4.png diff --git a/examples/AUv3Synth/Builds/MacOSX/Info-AUv3_AppExtension.plist b/examples/AUv3Synth/Builds/MacOSX/Info-AUv3_AppExtension.plist index b16c094106..8ff3a6ee06 100644 --- a/examples/AUv3Synth/Builds/MacOSX/Info-AUv3_AppExtension.plist +++ b/examples/AUv3Synth/Builds/MacOSX/Info-AUv3_AppExtension.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.development.AUv3Synth.AUv3SynthAUv3 CFBundleName AUv3Synth CFBundleDisplayName diff --git a/examples/AUv3Synth/Builds/MacOSX/Info-Standalone_Plugin.plist b/examples/AUv3Synth/Builds/MacOSX/Info-Standalone_Plugin.plist index 0c85262757..3b28127da5 100644 --- a/examples/AUv3Synth/Builds/MacOSX/Info-Standalone_Plugin.plist +++ b/examples/AUv3Synth/Builds/MacOSX/Info-Standalone_Plugin.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.development.AUv3Synth CFBundleName AUv3Synth CFBundleDisplayName diff --git a/examples/AUv3Synth/Builds/MacOSX/Info-VST.plist b/examples/AUv3Synth/Builds/MacOSX/Info-VST.plist index 7ad6a9cd74..97e452a0af 100644 --- a/examples/AUv3Synth/Builds/MacOSX/Info-VST.plist +++ b/examples/AUv3Synth/Builds/MacOSX/Info-VST.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.development.AUv3Synth CFBundleName AUv3Synth CFBundleDisplayName diff --git a/examples/AUv3Synth/Builds/MacOSX/Info-VST3.plist b/examples/AUv3Synth/Builds/MacOSX/Info-VST3.plist index 7ad6a9cd74..97e452a0af 100644 --- a/examples/AUv3Synth/Builds/MacOSX/Info-VST3.plist +++ b/examples/AUv3Synth/Builds/MacOSX/Info-VST3.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.development.AUv3Synth CFBundleName AUv3Synth CFBundleDisplayName diff --git a/examples/AUv3Synth/Builds/iOS/Info-AUv3_AppExtension.plist b/examples/AUv3Synth/Builds/iOS/Info-AUv3_AppExtension.plist index 782f56ded8..179f7bcd01 100644 --- a/examples/AUv3Synth/Builds/iOS/Info-AUv3_AppExtension.plist +++ b/examples/AUv3Synth/Builds/iOS/Info-AUv3_AppExtension.plist @@ -8,7 +8,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.development.AUv3Synth.AUv3SynthAUv3 CFBundleName AUv3Synth CFBundleDisplayName diff --git a/examples/AUv3Synth/Builds/iOS/Info-Standalone_Plugin.plist b/examples/AUv3Synth/Builds/iOS/Info-Standalone_Plugin.plist index 983cc94851..269a8a879b 100644 --- a/examples/AUv3Synth/Builds/iOS/Info-Standalone_Plugin.plist +++ b/examples/AUv3Synth/Builds/iOS/Info-Standalone_Plugin.plist @@ -10,7 +10,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.development.AUv3Synth CFBundleName AUv3Synth CFBundleDisplayName diff --git a/examples/AnimationAppExample/Builds/MacOSX/Info-App.plist b/examples/AnimationAppExample/Builds/MacOSX/Info-App.plist index d346398ab9..f0a94d36b7 100644 --- a/examples/AnimationAppExample/Builds/MacOSX/Info-App.plist +++ b/examples/AnimationAppExample/Builds/MacOSX/Info-App.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.AnimationAppExample CFBundleName AnimationAppExample CFBundleDisplayName diff --git a/examples/AnimationAppExample/Builds/VisualStudio2017/AnimationAppExample_App.vcxproj b/examples/AnimationAppExample/Builds/VisualStudio2017/AnimationAppExample_App.vcxproj index c3d731ce16..4b53c63fdc 100644 --- a/examples/AnimationAppExample/Builds/VisualStudio2017/AnimationAppExample_App.vcxproj +++ b/examples/AnimationAppExample/Builds/VisualStudio2017/AnimationAppExample_App.vcxproj @@ -1622,6 +1622,9 @@ true + + true + true @@ -1631,9 +1634,15 @@ true + + true + true + + true + true @@ -2272,6 +2281,7 @@ + diff --git a/examples/AnimationAppExample/Builds/VisualStudio2017/AnimationAppExample_App.vcxproj.filters b/examples/AnimationAppExample/Builds/VisualStudio2017/AnimationAppExample_App.vcxproj.filters index 9cf63ee6c6..2b43085d33 100644 --- a/examples/AnimationAppExample/Builds/VisualStudio2017/AnimationAppExample_App.vcxproj.filters +++ b/examples/AnimationAppExample/Builds/VisualStudio2017/AnimationAppExample_App.vcxproj.filters @@ -1918,6 +1918,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1927,9 +1930,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3735,6 +3744,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/AnimationAppExample/Builds/iOS/Info-App.plist b/examples/AnimationAppExample/Builds/iOS/Info-App.plist index 9e63c30c32..1e0007617b 100644 --- a/examples/AnimationAppExample/Builds/iOS/Info-App.plist +++ b/examples/AnimationAppExample/Builds/iOS/Info-App.plist @@ -10,7 +10,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.AnimationAppExample CFBundleName AnimationAppExample CFBundleDisplayName diff --git a/examples/AudioAppExample/Builds/MacOSX/Info-App.plist b/examples/AudioAppExample/Builds/MacOSX/Info-App.plist index 93030cee5e..d1daa024d7 100644 --- a/examples/AudioAppExample/Builds/MacOSX/Info-App.plist +++ b/examples/AudioAppExample/Builds/MacOSX/Info-App.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.AudioAppExample CFBundleName AudioAppExample CFBundleDisplayName diff --git a/examples/AudioAppExample/Builds/VisualStudio2017/AudioAppExample_App.vcxproj b/examples/AudioAppExample/Builds/VisualStudio2017/AudioAppExample_App.vcxproj index 0687d2fae9..563942653c 100644 --- a/examples/AudioAppExample/Builds/VisualStudio2017/AudioAppExample_App.vcxproj +++ b/examples/AudioAppExample/Builds/VisualStudio2017/AudioAppExample_App.vcxproj @@ -1670,6 +1670,9 @@ true + + true + true @@ -1679,9 +1682,15 @@ true + + true + true + + true + true @@ -2334,6 +2343,7 @@ + diff --git a/examples/AudioAppExample/Builds/VisualStudio2017/AudioAppExample_App.vcxproj.filters b/examples/AudioAppExample/Builds/VisualStudio2017/AudioAppExample_App.vcxproj.filters index febcde8069..34ef2125ff 100644 --- a/examples/AudioAppExample/Builds/VisualStudio2017/AudioAppExample_App.vcxproj.filters +++ b/examples/AudioAppExample/Builds/VisualStudio2017/AudioAppExample_App.vcxproj.filters @@ -1996,6 +1996,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2005,9 +2008,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3855,6 +3864,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/AudioAppExample/Builds/iOS/Info-App.plist b/examples/AudioAppExample/Builds/iOS/Info-App.plist index d5a71fb335..f26c3917fe 100644 --- a/examples/AudioAppExample/Builds/iOS/Info-App.plist +++ b/examples/AudioAppExample/Builds/iOS/Info-App.plist @@ -10,7 +10,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.AudioAppExample CFBundleName AudioAppExample CFBundleDisplayName diff --git a/examples/BLOCKS/BlocksDrawing/Builds/LinuxMakefile/Makefile b/examples/BLOCKS/BlocksDrawing/Builds/LinuxMakefile/Makefile index 59d9b1db3e..208c7595e8 100644 --- a/examples/BLOCKS/BlocksDrawing/Builds/LinuxMakefile/Makefile +++ b/examples/BLOCKS/BlocksDrawing/Builds/LinuxMakefile/Makefile @@ -38,8 +38,8 @@ ifeq ($(CONFIG),Debug) JUCE_TARGET_APP := BlocksDrawing JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -lGL -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -lGL -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif @@ -59,8 +59,8 @@ ifeq ($(CONFIG),Release) JUCE_TARGET_APP := BlocksDrawing JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -lGL -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -fvisibility=hidden -lGL -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif diff --git a/examples/BLOCKS/BlocksDrawing/Builds/MacOSX/Info-App.plist b/examples/BLOCKS/BlocksDrawing/Builds/MacOSX/Info-App.plist index e2f6838c46..0ed7285a81 100644 --- a/examples/BLOCKS/BlocksDrawing/Builds/MacOSX/Info-App.plist +++ b/examples/BLOCKS/BlocksDrawing/Builds/MacOSX/Info-App.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.yourcompany.BlocksDrawing CFBundleName BlocksDrawing CFBundleDisplayName diff --git a/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2015/BlocksDrawing_App.vcxproj b/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2015/BlocksDrawing_App.vcxproj index 753c205ba3..e6159f3396 100644 --- a/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2015/BlocksDrawing_App.vcxproj +++ b/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2015/BlocksDrawing_App.vcxproj @@ -1667,6 +1667,9 @@ true + + true + true @@ -1676,9 +1679,15 @@ true + + true + true + + true + true @@ -2339,6 +2348,7 @@ + diff --git a/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2015/BlocksDrawing_App.vcxproj.filters b/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2015/BlocksDrawing_App.vcxproj.filters index 5f0167f7ee..81a0d039fc 100644 --- a/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2015/BlocksDrawing_App.vcxproj.filters +++ b/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2015/BlocksDrawing_App.vcxproj.filters @@ -1987,6 +1987,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1996,9 +1999,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3885,6 +3894,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2017/BlocksDrawing_App.vcxproj b/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2017/BlocksDrawing_App.vcxproj index d28c70bb4a..cabdf02ca0 100644 --- a/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2017/BlocksDrawing_App.vcxproj +++ b/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2017/BlocksDrawing_App.vcxproj @@ -1667,6 +1667,9 @@ true + + true + true @@ -1676,9 +1679,15 @@ true + + true + true + + true + true @@ -2339,6 +2348,7 @@ + diff --git a/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2017/BlocksDrawing_App.vcxproj.filters b/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2017/BlocksDrawing_App.vcxproj.filters index db192fdf90..20f0b92391 100644 --- a/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2017/BlocksDrawing_App.vcxproj.filters +++ b/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2017/BlocksDrawing_App.vcxproj.filters @@ -1987,6 +1987,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1996,9 +1999,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3885,6 +3894,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/BLOCKS/BlocksDrawing/Builds/iOS/Info-App.plist b/examples/BLOCKS/BlocksDrawing/Builds/iOS/Info-App.plist index 2d27ffb3ec..26beea7ea4 100644 --- a/examples/BLOCKS/BlocksDrawing/Builds/iOS/Info-App.plist +++ b/examples/BLOCKS/BlocksDrawing/Builds/iOS/Info-App.plist @@ -10,7 +10,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.yourcompany.BlocksDrawing CFBundleName BlocksDrawing CFBundleDisplayName diff --git a/examples/BLOCKS/BlocksMonitor/Builds/LinuxMakefile/Makefile b/examples/BLOCKS/BlocksMonitor/Builds/LinuxMakefile/Makefile index 8ae29384d1..b075baaebf 100644 --- a/examples/BLOCKS/BlocksMonitor/Builds/LinuxMakefile/Makefile +++ b/examples/BLOCKS/BlocksMonitor/Builds/LinuxMakefile/Makefile @@ -38,8 +38,8 @@ ifeq ($(CONFIG),Debug) JUCE_TARGET_APP := BlocksMonitor JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -lGL -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -lGL -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif @@ -59,8 +59,8 @@ ifeq ($(CONFIG),Release) JUCE_TARGET_APP := BlocksMonitor JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -lGL -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -fvisibility=hidden -lGL -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif diff --git a/examples/BLOCKS/BlocksMonitor/Builds/MacOSX/Info-App.plist b/examples/BLOCKS/BlocksMonitor/Builds/MacOSX/Info-App.plist index 731feae693..6e2b0e59db 100644 --- a/examples/BLOCKS/BlocksMonitor/Builds/MacOSX/Info-App.plist +++ b/examples/BLOCKS/BlocksMonitor/Builds/MacOSX/Info-App.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.yourcompany.BlocksInfo CFBundleName BlocksMonitor CFBundleDisplayName diff --git a/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2015/BlocksMonitor_App.vcxproj b/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2015/BlocksMonitor_App.vcxproj index 40d716abef..77a1d74d9b 100644 --- a/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2015/BlocksMonitor_App.vcxproj +++ b/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2015/BlocksMonitor_App.vcxproj @@ -1666,6 +1666,9 @@ true + + true + true @@ -1675,9 +1678,15 @@ true + + true + true + + true + true @@ -2338,6 +2347,7 @@ + diff --git a/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2015/BlocksMonitor_App.vcxproj.filters b/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2015/BlocksMonitor_App.vcxproj.filters index 1b1845909b..d38f1f2e47 100644 --- a/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2015/BlocksMonitor_App.vcxproj.filters +++ b/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2015/BlocksMonitor_App.vcxproj.filters @@ -1984,6 +1984,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1993,9 +1996,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3882,6 +3891,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2017/BlocksMonitor_App.vcxproj b/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2017/BlocksMonitor_App.vcxproj index 4023dba851..30a47c5a74 100644 --- a/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2017/BlocksMonitor_App.vcxproj +++ b/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2017/BlocksMonitor_App.vcxproj @@ -1666,6 +1666,9 @@ true + + true + true @@ -1675,9 +1678,15 @@ true + + true + true + + true + true @@ -2338,6 +2347,7 @@ + diff --git a/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2017/BlocksMonitor_App.vcxproj.filters b/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2017/BlocksMonitor_App.vcxproj.filters index c0a5fb4d10..a1aabb8ff4 100644 --- a/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2017/BlocksMonitor_App.vcxproj.filters +++ b/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2017/BlocksMonitor_App.vcxproj.filters @@ -1984,6 +1984,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1993,9 +1996,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3882,6 +3891,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/BLOCKS/BlocksMonitor/Builds/iOS/Info-App.plist b/examples/BLOCKS/BlocksMonitor/Builds/iOS/Info-App.plist index b124692a8e..f44e9685ba 100644 --- a/examples/BLOCKS/BlocksMonitor/Builds/iOS/Info-App.plist +++ b/examples/BLOCKS/BlocksMonitor/Builds/iOS/Info-App.plist @@ -10,7 +10,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.yourcompany.BlocksInfo CFBundleName BlocksMonitor CFBundleDisplayName diff --git a/examples/BLOCKS/BlocksSynth/Builds/LinuxMakefile/Makefile b/examples/BLOCKS/BlocksSynth/Builds/LinuxMakefile/Makefile index 6053d82a47..6e2c918175 100644 --- a/examples/BLOCKS/BlocksSynth/Builds/LinuxMakefile/Makefile +++ b/examples/BLOCKS/BlocksSynth/Builds/LinuxMakefile/Makefile @@ -38,8 +38,8 @@ ifeq ($(CONFIG),Debug) JUCE_TARGET_APP := BlocksSynth JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -lGL -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -lGL -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif @@ -59,8 +59,8 @@ ifeq ($(CONFIG),Release) JUCE_TARGET_APP := BlocksSynth JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -lGL -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -fvisibility=hidden -lGL -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif diff --git a/examples/BLOCKS/BlocksSynth/Builds/MacOSX/Info-App.plist b/examples/BLOCKS/BlocksSynth/Builds/MacOSX/Info-App.plist index fce6224c82..e9165b5cdc 100644 --- a/examples/BLOCKS/BlocksSynth/Builds/MacOSX/Info-App.plist +++ b/examples/BLOCKS/BlocksSynth/Builds/MacOSX/Info-App.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.yourcompany.BlocksSynth CFBundleName BlocksSynth CFBundleDisplayName diff --git a/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2015/BlocksSynth_App.vcxproj b/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2015/BlocksSynth_App.vcxproj index 368af7cb2d..d23ae37c8a 100644 --- a/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2015/BlocksSynth_App.vcxproj +++ b/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2015/BlocksSynth_App.vcxproj @@ -1666,6 +1666,9 @@ true + + true + true @@ -1675,9 +1678,15 @@ true + + true + true + + true + true @@ -2340,6 +2349,7 @@ + diff --git a/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2015/BlocksSynth_App.vcxproj.filters b/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2015/BlocksSynth_App.vcxproj.filters index e7cebe40b8..54bc2bc9fd 100644 --- a/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2015/BlocksSynth_App.vcxproj.filters +++ b/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2015/BlocksSynth_App.vcxproj.filters @@ -1987,6 +1987,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1996,9 +1999,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3891,6 +3900,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2017/BlocksSynth_App.vcxproj b/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2017/BlocksSynth_App.vcxproj index 861f4e5d99..a2fe36e3bb 100644 --- a/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2017/BlocksSynth_App.vcxproj +++ b/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2017/BlocksSynth_App.vcxproj @@ -1666,6 +1666,9 @@ true + + true + true @@ -1675,9 +1678,15 @@ true + + true + true + + true + true @@ -2340,6 +2349,7 @@ + diff --git a/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2017/BlocksSynth_App.vcxproj.filters b/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2017/BlocksSynth_App.vcxproj.filters index 471b93978f..a525f9d359 100644 --- a/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2017/BlocksSynth_App.vcxproj.filters +++ b/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2017/BlocksSynth_App.vcxproj.filters @@ -1987,6 +1987,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1996,9 +1999,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3891,6 +3900,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/BLOCKS/BlocksSynth/Builds/iOS/Info-App.plist b/examples/BLOCKS/BlocksSynth/Builds/iOS/Info-App.plist index 834353fbf3..f6f6fd1f99 100644 --- a/examples/BLOCKS/BlocksSynth/Builds/iOS/Info-App.plist +++ b/examples/BLOCKS/BlocksSynth/Builds/iOS/Info-App.plist @@ -10,7 +10,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.yourcompany.BlocksSynth CFBundleName BlocksSynth CFBundleDisplayName diff --git a/examples/BouncingBallWavetableDemo/Builds/LinuxMakefile/Makefile b/examples/BouncingBallWavetableDemo/Builds/LinuxMakefile/Makefile index 0b1058b548..28073e5bd8 100644 --- a/examples/BouncingBallWavetableDemo/Builds/LinuxMakefile/Makefile +++ b/examples/BouncingBallWavetableDemo/Builds/LinuxMakefile/Makefile @@ -38,8 +38,8 @@ ifeq ($(CONFIG),Debug) JUCE_TARGET_APP := WavetableBouncingEditor JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif @@ -59,8 +59,8 @@ ifeq ($(CONFIG),Release) JUCE_TARGET_APP := WavetableBouncingEditor JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -Os $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -fvisibility=hidden -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif diff --git a/examples/BouncingBallWavetableDemo/Builds/MacOSX/Info-App.plist b/examples/BouncingBallWavetableDemo/Builds/MacOSX/Info-App.plist index 060067a55d..bbaf163819 100644 --- a/examples/BouncingBallWavetableDemo/Builds/MacOSX/Info-App.plist +++ b/examples/BouncingBallWavetableDemo/Builds/MacOSX/Info-App.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.juce.BouncingBallWavetableDemo CFBundleName BouncingBallWavetableDemo CFBundleDisplayName diff --git a/examples/BouncingBallWavetableDemo/Builds/VisualStudio2013/BouncingBallWavetableDemo_App.vcxproj b/examples/BouncingBallWavetableDemo/Builds/VisualStudio2013/BouncingBallWavetableDemo_App.vcxproj index f032670087..b16f484e6a 100644 --- a/examples/BouncingBallWavetableDemo/Builds/VisualStudio2013/BouncingBallWavetableDemo_App.vcxproj +++ b/examples/BouncingBallWavetableDemo/Builds/VisualStudio2013/BouncingBallWavetableDemo_App.vcxproj @@ -1670,6 +1670,9 @@ true + + true + true @@ -1679,9 +1682,15 @@ true + + true + true + + true + true @@ -2303,6 +2312,7 @@ + diff --git a/examples/BouncingBallWavetableDemo/Builds/VisualStudio2013/BouncingBallWavetableDemo_App.vcxproj.filters b/examples/BouncingBallWavetableDemo/Builds/VisualStudio2013/BouncingBallWavetableDemo_App.vcxproj.filters index 9ceec701bd..f64b17614b 100644 --- a/examples/BouncingBallWavetableDemo/Builds/VisualStudio2013/BouncingBallWavetableDemo_App.vcxproj.filters +++ b/examples/BouncingBallWavetableDemo/Builds/VisualStudio2013/BouncingBallWavetableDemo_App.vcxproj.filters @@ -1981,6 +1981,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1990,9 +1993,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3804,6 +3813,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/BouncingBallWavetableDemo/Builds/VisualStudio2017/BouncingBallWavetableDemo_App.vcxproj b/examples/BouncingBallWavetableDemo/Builds/VisualStudio2017/BouncingBallWavetableDemo_App.vcxproj index 7b13a209fe..43a828d525 100644 --- a/examples/BouncingBallWavetableDemo/Builds/VisualStudio2017/BouncingBallWavetableDemo_App.vcxproj +++ b/examples/BouncingBallWavetableDemo/Builds/VisualStudio2017/BouncingBallWavetableDemo_App.vcxproj @@ -1670,6 +1670,9 @@ true + + true + true @@ -1679,9 +1682,15 @@ true + + true + true + + true + true @@ -2303,6 +2312,7 @@ + diff --git a/examples/BouncingBallWavetableDemo/Builds/VisualStudio2017/BouncingBallWavetableDemo_App.vcxproj.filters b/examples/BouncingBallWavetableDemo/Builds/VisualStudio2017/BouncingBallWavetableDemo_App.vcxproj.filters index 42c5d3312e..002f39396b 100644 --- a/examples/BouncingBallWavetableDemo/Builds/VisualStudio2017/BouncingBallWavetableDemo_App.vcxproj.filters +++ b/examples/BouncingBallWavetableDemo/Builds/VisualStudio2017/BouncingBallWavetableDemo_App.vcxproj.filters @@ -1981,6 +1981,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1990,9 +1993,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3804,6 +3813,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/ComponentTutorialExample/Builds/MacOSX/Info-App.plist b/examples/ComponentTutorialExample/Builds/MacOSX/Info-App.plist index 208e9cab3a..6a1243c8f5 100644 --- a/examples/ComponentTutorialExample/Builds/MacOSX/Info-App.plist +++ b/examples/ComponentTutorialExample/Builds/MacOSX/Info-App.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.ComponentTutorialExample CFBundleName ComponentTutorialExample CFBundleDisplayName diff --git a/examples/ComponentTutorialExample/Builds/VisualStudio2015/ComponentTutorialExample_App.vcxproj b/examples/ComponentTutorialExample/Builds/VisualStudio2015/ComponentTutorialExample_App.vcxproj index b9322e746c..eeb74f3470 100644 --- a/examples/ComponentTutorialExample/Builds/VisualStudio2015/ComponentTutorialExample_App.vcxproj +++ b/examples/ComponentTutorialExample/Builds/VisualStudio2015/ComponentTutorialExample_App.vcxproj @@ -1229,6 +1229,9 @@ true + + true + true @@ -1238,9 +1241,15 @@ true + + true + true + + true + true @@ -1651,6 +1660,7 @@ + diff --git a/examples/ComponentTutorialExample/Builds/VisualStudio2015/ComponentTutorialExample_App.vcxproj.filters b/examples/ComponentTutorialExample/Builds/VisualStudio2015/ComponentTutorialExample_App.vcxproj.filters index 36cc9db395..f796d33622 100644 --- a/examples/ComponentTutorialExample/Builds/VisualStudio2015/ComponentTutorialExample_App.vcxproj.filters +++ b/examples/ComponentTutorialExample/Builds/VisualStudio2015/ComponentTutorialExample_App.vcxproj.filters @@ -1360,6 +1360,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1369,9 +1372,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -2565,6 +2574,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/ComponentTutorialExample/Builds/VisualStudio2017/ComponentTutorialExample_App.vcxproj b/examples/ComponentTutorialExample/Builds/VisualStudio2017/ComponentTutorialExample_App.vcxproj index aa4d68c8a5..cb58214590 100644 --- a/examples/ComponentTutorialExample/Builds/VisualStudio2017/ComponentTutorialExample_App.vcxproj +++ b/examples/ComponentTutorialExample/Builds/VisualStudio2017/ComponentTutorialExample_App.vcxproj @@ -1229,6 +1229,9 @@ true + + true + true @@ -1238,9 +1241,15 @@ true + + true + true + + true + true @@ -1651,6 +1660,7 @@ + diff --git a/examples/ComponentTutorialExample/Builds/VisualStudio2017/ComponentTutorialExample_App.vcxproj.filters b/examples/ComponentTutorialExample/Builds/VisualStudio2017/ComponentTutorialExample_App.vcxproj.filters index 567112a4bc..e4ecd253d3 100644 --- a/examples/ComponentTutorialExample/Builds/VisualStudio2017/ComponentTutorialExample_App.vcxproj.filters +++ b/examples/ComponentTutorialExample/Builds/VisualStudio2017/ComponentTutorialExample_App.vcxproj.filters @@ -1360,6 +1360,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1369,9 +1372,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -2565,6 +2574,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/DSP module plugin demo/Builds/MacOSX/Info-AU.plist b/examples/DSP module plugin demo/Builds/MacOSX/Info-AU.plist index 3b3eb42827..a4d0c83fd4 100644 --- a/examples/DSP module plugin demo/Builds/MacOSX/Info-AU.plist +++ b/examples/DSP module plugin demo/Builds/MacOSX/Info-AU.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.ROLI.DSPmoduleplugindemo CFBundleName DSPModulePluginDemo CFBundleDisplayName diff --git a/examples/DSP module plugin demo/Builds/MacOSX/Info-Standalone_Plugin.plist b/examples/DSP module plugin demo/Builds/MacOSX/Info-Standalone_Plugin.plist index 3049460ac4..1c966b24d5 100644 --- a/examples/DSP module plugin demo/Builds/MacOSX/Info-Standalone_Plugin.plist +++ b/examples/DSP module plugin demo/Builds/MacOSX/Info-Standalone_Plugin.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.ROLI.DSPmoduleplugindemo CFBundleName DSPModulePluginDemo CFBundleDisplayName diff --git a/examples/DSP module plugin demo/Builds/MacOSX/Info-VST.plist b/examples/DSP module plugin demo/Builds/MacOSX/Info-VST.plist index 09ccc89032..3c5466cb42 100644 --- a/examples/DSP module plugin demo/Builds/MacOSX/Info-VST.plist +++ b/examples/DSP module plugin demo/Builds/MacOSX/Info-VST.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.ROLI.DSPmoduleplugindemo CFBundleName DSPModulePluginDemo CFBundleDisplayName diff --git a/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_SharedCode.vcxproj b/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_SharedCode.vcxproj index 64fde38b8e..f019b7ed8b 100644 --- a/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_SharedCode.vcxproj +++ b/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_SharedCode.vcxproj @@ -1775,6 +1775,9 @@ true + + true + true @@ -1784,9 +1787,15 @@ true + + true + true + + true + true @@ -2501,6 +2510,7 @@ + diff --git a/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_SharedCode.vcxproj.filters b/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_SharedCode.vcxproj.filters index 7462893d24..5cb4e1c9be 100644 --- a/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_SharedCode.vcxproj.filters +++ b/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_SharedCode.vcxproj.filters @@ -2128,6 +2128,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2137,9 +2140,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -4188,6 +4197,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_SharedCode.vcxproj b/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_SharedCode.vcxproj index 0fd944d942..400077d712 100644 --- a/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_SharedCode.vcxproj +++ b/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_SharedCode.vcxproj @@ -1776,6 +1776,9 @@ true + + true + true @@ -1785,9 +1788,15 @@ true + + true + true + + true + true @@ -2502,6 +2511,7 @@ + diff --git a/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_SharedCode.vcxproj.filters b/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_SharedCode.vcxproj.filters index fcb1682bf7..6de27094ed 100644 --- a/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_SharedCode.vcxproj.filters +++ b/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_SharedCode.vcxproj.filters @@ -2128,6 +2128,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2137,9 +2140,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -4188,6 +4197,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/DSPDemo/Builds/LinuxMakefile/Makefile b/examples/DSPDemo/Builds/LinuxMakefile/Makefile index bda431c55c..81fba621c5 100644 --- a/examples/DSPDemo/Builds/LinuxMakefile/Makefile +++ b/examples/DSPDemo/Builds/LinuxMakefile/Makefile @@ -38,8 +38,8 @@ ifeq ($(CONFIG),Debug) JUCE_TARGET_APP := DSPDemo JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif @@ -59,8 +59,8 @@ ifeq ($(CONFIG),Release) JUCE_TARGET_APP := DSPDemo JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -fvisibility=hidden -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif diff --git a/examples/DSPDemo/Builds/MacOSX/Info-App.plist b/examples/DSPDemo/Builds/MacOSX/Info-App.plist index 842b06a635..69afb8290d 100644 --- a/examples/DSPDemo/Builds/MacOSX/Info-App.plist +++ b/examples/DSPDemo/Builds/MacOSX/Info-App.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.DSPDemo CFBundleName DSPDemo CFBundleDisplayName diff --git a/examples/DSPDemo/Builds/VisualStudio2017/DSPDemo_App.vcxproj b/examples/DSPDemo/Builds/VisualStudio2017/DSPDemo_App.vcxproj index 8a0c6f0f8e..641725786c 100644 --- a/examples/DSPDemo/Builds/VisualStudio2017/DSPDemo_App.vcxproj +++ b/examples/DSPDemo/Builds/VisualStudio2017/DSPDemo_App.vcxproj @@ -1712,6 +1712,9 @@ true + + true + true @@ -1721,9 +1724,15 @@ true + + true + true + + true + true @@ -2361,6 +2370,7 @@ + diff --git a/examples/DSPDemo/Builds/VisualStudio2017/DSPDemo_App.vcxproj.filters b/examples/DSPDemo/Builds/VisualStudio2017/DSPDemo_App.vcxproj.filters index 6ba3222e8d..899cbe4f31 100644 --- a/examples/DSPDemo/Builds/VisualStudio2017/DSPDemo_App.vcxproj.filters +++ b/examples/DSPDemo/Builds/VisualStudio2017/DSPDemo_App.vcxproj.filters @@ -2047,6 +2047,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2056,9 +2059,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3933,6 +3942,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/Demo/Builds/Android/app/CMakeLists.txt b/examples/Demo/Builds/Android/app/CMakeLists.txt index d7d0abf025..ee562106a1 100644 --- a/examples/Demo/Builds/Android/app/CMakeLists.txt +++ b/examples/Demo/Builds/Android/app/CMakeLists.txt @@ -8,7 +8,7 @@ SET(BINARY_NAME "juce_jni") add_library("cpufeatures" STATIC "${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c") set_source_files_properties("${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c" PROPERTIES COMPILE_FLAGS "-Wno-sign-conversion -Wno-gnu-statement-expression") -add_definitions("-DJUCE_ANDROID=1" "-DJUCE_ANDROID_API_VERSION=10" "-DJUCE_ANDROID_ACTIVITY_CLASSNAME=com_yourcompany_jucedemo_JuceDemo" "-DJUCE_ANDROID_ACTIVITY_CLASSPATH=\"com/yourcompany/jucedemo/JuceDemo\"" "-DJUCE_UNIT_TESTS=1" "-DJUCER_ANDROIDSTUDIO_7F0E4A25=1" "-DJUCE_APP_VERSION=3.0.0" "-DJUCE_APP_VERSION_HEX=0x30000") +add_definitions("-DJUCE_ANDROID=1" "-DJUCE_ANDROID_API_VERSION=10" "-DJUCE_ANDROID_ACTIVITY_CLASSNAME=com_yourcompany_jucedemo_JuceDemo" "-DJUCE_ANDROID_ACTIVITY_CLASSPATH=\"com/yourcompany/jucedemo/JuceDemo\"" "-DJUCE_PUSH_NOTIFICATIONS=1" "-DJUCE_UNIT_TESTS=1" "-DJUCER_ANDROIDSTUDIO_7F0E4A25=1" "-DJUCE_APP_VERSION=3.0.0" "-DJUCE_APP_VERSION_HEX=0x30000") include_directories( AFTER "../../../JuceLibraryCode" @@ -16,6 +16,8 @@ include_directories( AFTER "${ANDROID_NDK}/sources/android/cpufeatures" ) +enable_language(ASM) + IF(JUCE_BUILD_CONFIGFURATION MATCHES "DEBUG") add_definitions("-DDEBUG=1" "-D_DEBUG=1") ELSEIF(JUCE_BUILD_CONFIGFURATION MATCHES "RELEASE") @@ -1297,6 +1299,8 @@ add_library( ${BINARY_NAME} "../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h" "../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp" "../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h" + "../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.cpp" + "../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.h" "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp" "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h" "../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp" @@ -1304,7 +1308,9 @@ add_library( ${BINARY_NAME} "../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp" "../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h" "../../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h" + "../../../../../modules/juce_gui_extra/native/juce_android_PushNotifications.cpp" "../../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp" + "../../../../../modules/juce_gui_extra/native/juce_ios_PushNotifications.cpp" "../../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm" "../../../../../modules/juce_gui_extra/native/juce_linux_X11_SystemTrayIcon.cpp" "../../../../../modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp" @@ -2613,6 +2619,8 @@ set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_Liv set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) @@ -2620,7 +2628,9 @@ set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_Spl set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_android_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_ios_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_linux_X11_SystemTrayIcon.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) diff --git a/examples/Demo/Builds/Android/app/build.gradle b/examples/Demo/Builds/Android/app/build.gradle index c3c804306a..a46af1e432 100644 --- a/examples/Demo/Builds/Android/app/build.gradle +++ b/examples/Demo/Builds/Android/app/build.gradle @@ -84,5 +84,6 @@ repositories { dependencies { } + } diff --git a/examples/Demo/Builds/Android/app/src/main/AndroidManifest.xml b/examples/Demo/Builds/Android/app/src/main/AndroidManifest.xml index 24d2e711bf..0819542f10 100644 --- a/examples/Demo/Builds/Android/app/src/main/AndroidManifest.xml +++ b/examples/Demo/Builds/Android/app/src/main/AndroidManifest.xml @@ -11,7 +11,7 @@ + android:screenOrientation="unspecified" android:launchMode="singleTask"> diff --git a/examples/Demo/Builds/Android/app/src/main/java/com/yourcompany/jucedemo/JuceDemo.java b/examples/Demo/Builds/Android/app/src/main/java/com/yourcompany/jucedemo/JuceDemo.java index 9f33e24b89..04b10fd5e7 100644 --- a/examples/Demo/Builds/Android/app/src/main/java/com/yourcompany/jucedemo/JuceDemo.java +++ b/examples/Demo/Builds/Android/app/src/main/java/com/yourcompany/jucedemo/JuceDemo.java @@ -312,6 +312,7 @@ public class JuceDemo extends Activity getApplicationInfo().dataDir); } + //============================================================================== private void hideActionBar() { // get "getActionBar" method @@ -383,6 +384,7 @@ public class JuceDemo extends Activity private native void resumeApp(); private native void setScreenSize (int screenWidth, int screenHeight, int dpi); private native void appActivityResult (int requestCode, int resultCode, Intent data); + private native void appNewIntent (Intent intent); //============================================================================== private ViewHolder viewHolder; @@ -1450,6 +1452,15 @@ public class JuceDemo extends Activity appActivityResult (requestCode, resultCode, data); } + @Override + protected void onNewIntent (Intent intent) + { + super.onNewIntent(intent); + setIntent(intent); + + appNewIntent (intent); + } + //============================================================================== public final Typeface getTypeFaceFromAsset (String assetName) { diff --git a/examples/Demo/Builds/LinuxMakefile/Makefile b/examples/Demo/Builds/LinuxMakefile/Makefile index bf23d731f1..340e352220 100644 --- a/examples/Demo/Builds/LinuxMakefile/Makefile +++ b/examples/Demo/Builds/LinuxMakefile/Makefile @@ -38,8 +38,8 @@ ifeq ($(CONFIG),Debug) JUCE_TARGET_APP := JuceDemo JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -lGL -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -lGL -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif @@ -59,8 +59,8 @@ ifeq ($(CONFIG),Release) JUCE_TARGET_APP := JuceDemo JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -lGL -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -fvisibility=hidden -lGL -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif diff --git a/examples/Demo/Builds/MacOSX/Info-App.plist b/examples/Demo/Builds/MacOSX/Info-App.plist index e5dfc57a7f..0fbf944f59 100644 --- a/examples/Demo/Builds/MacOSX/Info-App.plist +++ b/examples/Demo/Builds/MacOSX/Info-App.plist @@ -13,7 +13,7 @@ CFBundleIconFile Icon.icns CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.JuceDemo CFBundleName JuceDemo CFBundleDisplayName diff --git a/examples/Demo/Builds/VisualStudio2013/JuceDemo_App.vcxproj b/examples/Demo/Builds/VisualStudio2013/JuceDemo_App.vcxproj index 8278af999b..f188b00d18 100644 --- a/examples/Demo/Builds/VisualStudio2013/JuceDemo_App.vcxproj +++ b/examples/Demo/Builds/VisualStudio2013/JuceDemo_App.vcxproj @@ -1853,6 +1853,9 @@ true + + true + true @@ -1862,9 +1865,15 @@ true + + true + true + + true + true @@ -2572,6 +2581,7 @@ + diff --git a/examples/Demo/Builds/VisualStudio2013/JuceDemo_App.vcxproj.filters b/examples/Demo/Builds/VisualStudio2013/JuceDemo_App.vcxproj.filters index 89b35da17b..ae87cc728e 100644 --- a/examples/Demo/Builds/VisualStudio2013/JuceDemo_App.vcxproj.filters +++ b/examples/Demo/Builds/VisualStudio2013/JuceDemo_App.vcxproj.filters @@ -2293,6 +2293,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2302,9 +2305,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -4317,6 +4326,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/Demo/Builds/VisualStudio2015/JuceDemo_App.vcxproj b/examples/Demo/Builds/VisualStudio2015/JuceDemo_App.vcxproj index a2f9ca9fa8..d68c6501e1 100644 --- a/examples/Demo/Builds/VisualStudio2015/JuceDemo_App.vcxproj +++ b/examples/Demo/Builds/VisualStudio2015/JuceDemo_App.vcxproj @@ -1853,6 +1853,9 @@ true + + true + true @@ -1862,9 +1865,15 @@ true + + true + true + + true + true @@ -2572,6 +2581,7 @@ + diff --git a/examples/Demo/Builds/VisualStudio2015/JuceDemo_App.vcxproj.filters b/examples/Demo/Builds/VisualStudio2015/JuceDemo_App.vcxproj.filters index 2c87722083..193295e986 100644 --- a/examples/Demo/Builds/VisualStudio2015/JuceDemo_App.vcxproj.filters +++ b/examples/Demo/Builds/VisualStudio2015/JuceDemo_App.vcxproj.filters @@ -2293,6 +2293,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2302,9 +2305,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -4317,6 +4326,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/Demo/Builds/VisualStudio2017/JuceDemo_App.vcxproj b/examples/Demo/Builds/VisualStudio2017/JuceDemo_App.vcxproj index 8d07e42594..5071862dbe 100644 --- a/examples/Demo/Builds/VisualStudio2017/JuceDemo_App.vcxproj +++ b/examples/Demo/Builds/VisualStudio2017/JuceDemo_App.vcxproj @@ -1853,6 +1853,9 @@ true + + true + true @@ -1862,9 +1865,15 @@ true + + true + true + + true + true @@ -2572,6 +2581,7 @@ + diff --git a/examples/Demo/Builds/VisualStudio2017/JuceDemo_App.vcxproj.filters b/examples/Demo/Builds/VisualStudio2017/JuceDemo_App.vcxproj.filters index 6c11e67fa3..5e4357f7f5 100644 --- a/examples/Demo/Builds/VisualStudio2017/JuceDemo_App.vcxproj.filters +++ b/examples/Demo/Builds/VisualStudio2017/JuceDemo_App.vcxproj.filters @@ -2293,6 +2293,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2302,9 +2305,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -4317,6 +4326,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/Demo/Builds/iOS/Info-App.plist b/examples/Demo/Builds/iOS/Info-App.plist index f61489064f..6f4cdf8d0d 100644 --- a/examples/Demo/Builds/iOS/Info-App.plist +++ b/examples/Demo/Builds/iOS/Info-App.plist @@ -17,7 +17,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.JuceDemo CFBundleName JuceDemo CFBundleDisplayName diff --git a/examples/Demo/Builds/iOS/JuceDemo/Images.xcassets/AppIcon.appiconset/Icon-AppStore-1024.png b/examples/Demo/Builds/iOS/JuceDemo/Images.xcassets/AppIcon.appiconset/Icon-AppStore-1024.png new file mode 100644 index 0000000000000000000000000000000000000000..fd20188c7cf33809fa4d1445933c010dcf7a821d GIT binary patch literal 50668 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 literal 0 HcmV?d00001 diff --git a/examples/Demo/Builds/iOS/JuceDemo/Images.xcassets/AppIcon.appiconset/Icon-Notification-20@2x.png b/examples/Demo/Builds/iOS/JuceDemo/Images.xcassets/AppIcon.appiconset/Icon-Notification-20@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f673561b35ed83f6a898a064327a18e0f68bbb9b GIT binary patch literal 2452 zcmV;F32XL=P)^p;8OQ(kUFS_E%S^%~B!Q?QNF+!ES&9jXL&73R3T=v> zsvNB>2C3Gzw)PZHD}Lzd(b{T@!62x0X(=9&Z~~eb44Wm;L&742B#Jf(Ofn2JnaM2g za&JEbLc&ajQLLYQKE3CCmixQ+xzF8z@8tS~T#xhWcgt+Vi~=T*98i)j3M3u?G|Ku3 zB@V_|hZfM9UoCHNd~1L!k1UEKPBotsxMxIBm@Dxz5jhzaITZ;~G62Afz3*4%BF>z9H=G|n1WeTh&8xq812%I>~ zUZ)y-ng^~>4_YrCMPp|T^Q!KX)S%U(#&3M-uHB(;3XrU-x99Pk^jxZvHvf){1;n1U z6kNXx^ulM*x{ku=X$1@RA#Uz(L1ZA%{2LI#3@#}TLdtY-3Atc$DjK@B<3M*U>-C?n zr^I-os-*5D2-tN2R@RmlLgBYhvCU4oC-+e(Iz{NvX6RkbV0r*xSK=$P9|JK1!4uC8 zYk~+0c*|{&Z(f4{Ct+**1{^;Bv5WeRimHWm4bj@?qbXO{l`R())3zl!D-xEBy&t4? z4}u5&3Zu6Tpjw!{m^}kT0`#7J!xdBm_5T<8`38tYz->3)j|4eIY3o1s<0<#u)P3ZQ z_M;;)a3lODm9?dXk|e)!|Ae1Q_N*n)j&Dcs$m^i~i_!WNRhW7aYR6`1pTC9T%*A-{ zmR}39D89V#O10vjt*qDa7pQ0J$DW0wHB4#4+Uv_Pv9E zdozkg&%v~Gy9GS^)7skk^3@)~)jzBj_rs}i8T0SSU5nu19q{da0|0^MXh-r7)&YmA zp|v-DEj%%;1XAAP@Vj1s>fZ~1f#c#)F|HD4`&#Gp(#}T!{CTL)un}B&WKkS1aI5YZ zy?~fPI{FX%}@VfV&E+e;;sZbqRXkgNX!D zl(CR7o~)?cQ*0g)kT}(RvzRo=p0yO-+P}c?Ubv!U41typ&{tOt(~K1m$4*DAb5cm1 z0V(fs1blBJ@=GzeWigYn6eA&GL)sv3J{ z7$7mDK;mU$HQ5kq`}eRNB0@;`|FaXGn&)9ETnjO0c9?~jRsuQyDfm4b5%TT?qV8x6 zdY}nbQyL^r24@lrE^7v>m$+-CCi73IY1if51iE~$8?j{JxK($6Fh-jjP zK84wu1esUh<-Iv!fS@GZBBw&&L{Psc20#oJ4hTU~`I7)M0Ky=TngRdCzg;Sb7(-Dn zc)}x9Nr$uFksbyp3MBsWdCvO4^U$4N#2g$TfT4p($|dd)1XBS7)2%T_;DsyzfLTli z&vWr%fJ5t<_+=1R!ZqgM5a9@5TnRv#gl_MYnB4&&F-}5?H1N$B8?3rPKuu@;UTq+? zuAlu5)E#4*0Vt(KkY`PUq3X~%4m?M2*3pNyE_ci^B$3DR(mePy4=826FhD|y!yW8} zPBn0e=GXuUfikBMO67xSdTl?_CuZUFsAM#BT)>k>Hv$0KyWKI3q$Kd5%z!g+4g_TI z4l|e+##o0+L-1)Hh!e-h)N6Ux?MV35qd2;~1sxxs0%Ht}0q=k6z#sR0j_=))f$X%z zm|~?REAVL^gp42w4w8ApNO}*S4wxCF#JZvdmWqf7Uw|#fF4w1nse6@ z2EeBp0DzOO!+5v7%FtBf-VJl>S|Zs;z84d)s)cn8s-~@e?bAPKja@aExMV5{md$`E zafIb32C*n29-DOoemW}~`_I*4)5-OQs;g_N=hf{R=?Nt2%fgX2+K(38n|%?Uwr+} z#$YV%e&uI^%00zqEg()6WNy7A%0&_YtlnZyFZBZpF!e)%M97_^^Y;0ajQxaOgI>v!^P%l`m9yYd8% S)PAG@0000c3})099-ga{s> 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 a^8WzCRjx#`v6e{y00001UKK2pfr^(w9j0AiWQ zyabF0A;U#?k2|v=aA2a#$ZG38?x?mN-bR^tbFu&}y9q>{M7}qY=y3@l z@wBV^YG_^X!@FLjLgDUAv(J(R4daS+T-ZdFpt8#)D?4P3;cDHRWO+aQwJ zuaTF8l58E50|8|R0NPn_QmH$?H|b2zAhF}MvMVNjn}BYY9ncV@;$xsy+sZPGYBMU- zoW(W@1wHGYB~4}uB%%VDWy@z~)Fa!$U|FHV!@ygJr*mbQt@WI|UE1B_mIiL_osR_` zn=_ufB|(a3p*b-G-*J3 zF?<_|r8t7IGW-Z3BQ z8+g>4blBcZ;0@ezo!LL0mcf-S#nWE~&Q2AM_hWWOKw=GSHF{|#fSs*cTz+_RCMpI` z$)hShxVo=~0?|;{`RT!_O^2FM+uFD;_=<(Y`@3{FH$5~R4E@!0X8-tN@vQ9kQ@cIQnF(-Nhw_H&%cxpAaCRi++&&HU7(S8ET z&Z#*I07TMDeo4ZJGK1mb%>Gw7JyzQ3vCEBOEb002ovPDHLkV1g%7 B$tnN< literal 0 HcmV?d00001 diff --git a/examples/Demo/Builds/iOS/JuceDemo/Images.xcassets/AppIcon.appiconset/Icon-Notifications-20@2x.png b/examples/Demo/Builds/iOS/JuceDemo/Images.xcassets/AppIcon.appiconset/Icon-Notifications-20@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f673561b35ed83f6a898a064327a18e0f68bbb9b GIT binary patch literal 2452 zcmV;F32XL=P)^p;8OQ(kUFS_E%S^%~B!Q?QNF+!ES&9jXL&73R3T=v> zsvNB>2C3Gzw)PZHD}Lzd(b{T@!62x0X(=9&Z~~eb44Wm;L&742B#Jf(Ofn2JnaM2g za&JEbLc&ajQLLYQKE3CCmixQ+xzF8z@8tS~T#xhWcgt+Vi~=T*98i)j3M3u?G|Ku3 zB@V_|hZfM9UoCHNd~1L!k1UEKPBotsxMxIBm@Dxz5jhzaITZ;~G62Afz3*4%BF>z9H=G|n1WeTh&8xq812%I>~ zUZ)y-ng^~>4_YrCMPp|T^Q!KX)S%U(#&3M-uHB(;3XrU-x99Pk^jxZvHvf){1;n1U z6kNXx^ulM*x{ku=X$1@RA#Uz(L1ZA%{2LI#3@#}TLdtY-3Atc$DjK@B<3M*U>-C?n zr^I-os-*5D2-tN2R@RmlLgBYhvCU4oC-+e(Iz{NvX6RkbV0r*xSK=$P9|JK1!4uC8 zYk~+0c*|{&Z(f4{Ct+**1{^;Bv5WeRimHWm4bj@?qbXO{l`R())3zl!D-xEBy&t4? z4}u5&3Zu6Tpjw!{m^}kT0`#7J!xdBm_5T<8`38tYz->3)j|4eIY3o1s<0<#u)P3ZQ z_M;;)a3lODm9?dXk|e)!|Ae1Q_N*n)j&Dcs$m^i~i_!WNRhW7aYR6`1pTC9T%*A-{ zmR}39D89V#O10vjt*qDa7pQ0J$DW0wHB4#4+Uv_Pv9E zdozkg&%v~Gy9GS^)7skk^3@)~)jzBj_rs}i8T0SSU5nu19q{da0|0^MXh-r7)&YmA zp|v-DEj%%;1XAAP@Vj1s>fZ~1f#c#)F|HD4`&#Gp(#}T!{CTL)un}B&WKkS1aI5YZ zy?~fPI{FX%}@VfV&E+e;;sZbqRXkgNX!D zl(CR7o~)?cQ*0g)kT}(RvzRo=p0yO-+P}c?Ubv!U41typ&{tOt(~K1m$4*DAb5cm1 z0V(fs1blBJ@=GzeWigYn6eA&GL)sv3J{ z7$7mDK;mU$HQ5kq`}eRNB0@;`|FaXGn&)9ETnjO0c9?~jRsuQyDfm4b5%TT?qV8x6 zdY}nbQyL^r24@lrE^7v>m$+-CCi73IY1if51iE~$8?j{JxK($6Fh-jjP zK84wu1esUh<-Iv!fS@GZBBw&&L{Psc20#oJ4hTU~`I7)M0Ky=TngRdCzg;Sb7(-Dn zc)}x9Nr$uFksbyp3MBsWdCvO4^U$4N#2g$TfT4p($|dd)1XBS7)2%T_;DsyzfLTli z&vWr%fJ5t<_+=1R!ZqgM5a9@5TnRv#gl_MYnB4&&F-}5?H1N$B8?3rPKuu@;UTq+? zuAlu5)E#4*0Vt(KkY`PUq3X~%4m?M2*3pNyE_ci^B$3DR(mePy4=826FhD|y!yW8} zPBn0e=GXuUfikBMO67xSdTl?_CuZUFsAM#BT)>k>Hv$0KyWKI3q$Kd5%z!g+4g_TI z4l|e+##o0+L-1)Hh!e-h)N6Ux?MV35qd2;~1sxxs0%Ht}0q=k6z#sR0j_=))f$X%z zm|~?REAVL^gp42w4w8ApNO}*S4wxCF#JZvdmWqf7Uw|#fF4w1nse6@ z2EeBp0DzOO!+5v7%FtBf-VJl>S|Zs;z84d)s)cn8s-~@e?bAPKja@aExMV5{md$`E zafIb32C*n29-DOoemW}~`_I*4)5-OQs;g_N=hf{R=?Nt2%fgX2+K(38n|%?Uwr+} z#$YV%e&uI^%00zqEg()6WNy7A%0&_YtlnZyFZBZpF!e)%M97_^^Y;0ajQxaOgI>v!^P%l`m9yYd8% S)PAG@0000CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.jucehelloworld CFBundleName HelloWorld CFBundleDisplayName diff --git a/examples/HelloWorld/Builds/VisualStudio2015/HelloWorld_App.vcxproj b/examples/HelloWorld/Builds/VisualStudio2015/HelloWorld_App.vcxproj index 96f80b9cdf..b28734ac94 100644 --- a/examples/HelloWorld/Builds/VisualStudio2015/HelloWorld_App.vcxproj +++ b/examples/HelloWorld/Builds/VisualStudio2015/HelloWorld_App.vcxproj @@ -1229,6 +1229,9 @@ true + + true + true @@ -1238,9 +1241,15 @@ true + + true + true + + true + true @@ -1649,6 +1658,7 @@ + diff --git a/examples/HelloWorld/Builds/VisualStudio2015/HelloWorld_App.vcxproj.filters b/examples/HelloWorld/Builds/VisualStudio2015/HelloWorld_App.vcxproj.filters index 3471bac55d..346b50630f 100644 --- a/examples/HelloWorld/Builds/VisualStudio2015/HelloWorld_App.vcxproj.filters +++ b/examples/HelloWorld/Builds/VisualStudio2015/HelloWorld_App.vcxproj.filters @@ -1360,6 +1360,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1369,9 +1372,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -2559,6 +2568,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/HelloWorld/Builds/VisualStudio2017/HelloWorld_App.vcxproj b/examples/HelloWorld/Builds/VisualStudio2017/HelloWorld_App.vcxproj index 92a37bb3d2..2a2e6815a9 100644 --- a/examples/HelloWorld/Builds/VisualStudio2017/HelloWorld_App.vcxproj +++ b/examples/HelloWorld/Builds/VisualStudio2017/HelloWorld_App.vcxproj @@ -1229,6 +1229,9 @@ true + + true + true @@ -1238,9 +1241,15 @@ true + + true + true + + true + true @@ -1649,6 +1658,7 @@ + diff --git a/examples/HelloWorld/Builds/VisualStudio2017/HelloWorld_App.vcxproj.filters b/examples/HelloWorld/Builds/VisualStudio2017/HelloWorld_App.vcxproj.filters index 73bb6fe2fa..f21a17df5e 100644 --- a/examples/HelloWorld/Builds/VisualStudio2017/HelloWorld_App.vcxproj.filters +++ b/examples/HelloWorld/Builds/VisualStudio2017/HelloWorld_App.vcxproj.filters @@ -1360,6 +1360,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1369,9 +1372,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -2559,6 +2568,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/HelloWorld/Builds/iOS/Info-App.plist b/examples/HelloWorld/Builds/iOS/Info-App.plist index 9b030d4279..04a7c3dbc8 100644 --- a/examples/HelloWorld/Builds/iOS/Info-App.plist +++ b/examples/HelloWorld/Builds/iOS/Info-App.plist @@ -10,7 +10,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.jucehelloworld CFBundleName HelloWorld CFBundleDisplayName diff --git a/examples/InAppPurchase/Builds/Android/app/CMakeLists.txt b/examples/InAppPurchase/Builds/Android/app/CMakeLists.txt index eedb74d85b..fb1a5ec71f 100644 --- a/examples/InAppPurchase/Builds/Android/app/CMakeLists.txt +++ b/examples/InAppPurchase/Builds/Android/app/CMakeLists.txt @@ -8,7 +8,7 @@ SET(BINARY_NAME "juce_jni") add_library("cpufeatures" STATIC "${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c") set_source_files_properties("${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c" PROPERTIES COMPILE_FLAGS "-Wno-sign-conversion -Wno-gnu-statement-expression") -add_definitions("-DJUCE_ANDROID=1" "-DJUCE_ANDROID_API_VERSION=10" "-DJUCE_ANDROID_ACTIVITY_CLASSNAME=com_roli_juceinapppurchasesample_InAppPurchase" "-DJUCE_ANDROID_ACTIVITY_CLASSPATH=\"com/roli/juceinapppurchasesample/InAppPurchase\"" "-DJUCE_IN_APP_PURCHASES=1" "-DJUCER_ANDROIDSTUDIO_7F0E4A25=1" "-DJUCE_APP_VERSION=0.0.2" "-DJUCE_APP_VERSION_HEX=0x2") +add_definitions("-DJUCE_ANDROID=1" "-DJUCE_ANDROID_API_VERSION=10" "-DJUCE_ANDROID_ACTIVITY_CLASSNAME=com_roli_juceinapppurchasesample_InAppPurchase" "-DJUCE_ANDROID_ACTIVITY_CLASSPATH=\"com/roli/juceinapppurchasesample/InAppPurchase\"" "-DJUCE_PUSH_NOTIFICATIONS=1" "-DJUCE_IN_APP_PURCHASES=1" "-DJUCER_ANDROIDSTUDIO_7F0E4A25=1" "-DJUCE_APP_VERSION=0.0.2" "-DJUCE_APP_VERSION_HEX=0x2") include_directories( AFTER "../../../JuceLibraryCode" @@ -16,6 +16,8 @@ include_directories( AFTER "${ANDROID_NDK}/sources/android/cpufeatures" ) +enable_language(ASM) + IF(JUCE_BUILD_CONFIGFURATION MATCHES "DEBUG") add_definitions("-DDEBUG=1" "-D_DEBUG=1") ELSEIF(JUCE_BUILD_CONFIGFURATION MATCHES "RELEASE") @@ -1172,6 +1174,8 @@ add_library( ${BINARY_NAME} "../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h" "../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp" "../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h" + "../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.cpp" + "../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.h" "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp" "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h" "../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp" @@ -1179,7 +1183,9 @@ add_library( ${BINARY_NAME} "../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp" "../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h" "../../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h" + "../../../../../modules/juce_gui_extra/native/juce_android_PushNotifications.cpp" "../../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp" + "../../../../../modules/juce_gui_extra/native/juce_ios_PushNotifications.cpp" "../../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm" "../../../../../modules/juce_gui_extra/native/juce_linux_X11_SystemTrayIcon.cpp" "../../../../../modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp" @@ -2405,6 +2411,8 @@ set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_Liv set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) @@ -2412,7 +2420,9 @@ set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_Spl set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_android_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_ios_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_linux_X11_SystemTrayIcon.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) diff --git a/examples/InAppPurchase/Builds/Android/app/build.gradle b/examples/InAppPurchase/Builds/Android/app/build.gradle index 365d91adb7..3abb585127 100644 --- a/examples/InAppPurchase/Builds/Android/app/build.gradle +++ b/examples/InAppPurchase/Builds/Android/app/build.gradle @@ -84,5 +84,6 @@ repositories { dependencies { } + } diff --git a/examples/InAppPurchase/Builds/Android/app/src/main/AndroidManifest.xml b/examples/InAppPurchase/Builds/Android/app/src/main/AndroidManifest.xml index 8f3b95a5a7..5789359c43 100644 --- a/examples/InAppPurchase/Builds/Android/app/src/main/AndroidManifest.xml +++ b/examples/InAppPurchase/Builds/Android/app/src/main/AndroidManifest.xml @@ -14,7 +14,7 @@ + android:screenOrientation="unspecified" android:launchMode="singleTask"> diff --git a/examples/InAppPurchase/Builds/Android/app/src/main/java/com/roli/juceinapppurchasesample/InAppPurchase.java b/examples/InAppPurchase/Builds/Android/app/src/main/java/com/roli/juceinapppurchasesample/InAppPurchase.java index edd8b35618..0984ee12c9 100644 --- a/examples/InAppPurchase/Builds/Android/app/src/main/java/com/roli/juceinapppurchasesample/InAppPurchase.java +++ b/examples/InAppPurchase/Builds/Android/app/src/main/java/com/roli/juceinapppurchasesample/InAppPurchase.java @@ -312,6 +312,7 @@ public class InAppPurchase extends Activity getApplicationInfo().dataDir); } + //============================================================================== private void hideActionBar() { // get "getActionBar" method @@ -383,6 +384,7 @@ public class InAppPurchase extends Activity private native void resumeApp(); private native void setScreenSize (int screenWidth, int screenHeight, int dpi); private native void appActivityResult (int requestCode, int resultCode, Intent data); + private native void appNewIntent (Intent intent); //============================================================================== private ViewHolder viewHolder; @@ -1450,6 +1452,15 @@ public class InAppPurchase extends Activity appActivityResult (requestCode, resultCode, data); } + @Override + protected void onNewIntent (Intent intent) + { + super.onNewIntent(intent); + setIntent(intent); + + appNewIntent (intent); + } + //============================================================================== public final Typeface getTypeFaceFromAsset (String assetName) { diff --git a/examples/InAppPurchase/Builds/MacOSX/InAppPurchase.xcodeproj/project.pbxproj b/examples/InAppPurchase/Builds/MacOSX/InAppPurchase.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..e1ea3f4dd7 --- /dev/null +++ b/examples/InAppPurchase/Builds/MacOSX/InAppPurchase.xcodeproj/project.pbxproj @@ -0,0 +1,390 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + + 4223557F5863E363994954B7 = {isa = PBXBuildFile; fileRef = 2F3D7DB7AC87E3233938D392; }; + BEC03CE64FD176FB6422EBC3 = {isa = PBXBuildFile; fileRef = 96B420D57D39896A9FE74F13; }; + 2BC2CFD40409659CD7E21571 = {isa = PBXBuildFile; fileRef = 3F5FED00A5AA2B9207A6B6EB; }; + C33FDCF9731616BF0C9112DA = {isa = PBXBuildFile; fileRef = 7CB77C168D78801873E39FE1; }; + 965A8751A797656DB20610C3 = {isa = PBXBuildFile; fileRef = E634897A1E06D58E68CBAD42; }; + FBB095BD17B4F71818F6CB8A = {isa = PBXBuildFile; fileRef = BB9B6A4E376A5CD956B89BFA; }; + 8F09175E78801A7BEC436C82 = {isa = PBXBuildFile; fileRef = DAABDCED79C1DA90F45253B8; }; + 7BE02CD2C77166E21908B09C = {isa = PBXBuildFile; fileRef = B4BD924C5F40ECDA9EEA22F1; }; + 9B8E08DABECD0D5F99D7EFF2 = {isa = PBXBuildFile; fileRef = EA57F29A17BA53F3B98F354D; }; + 5BB107ACD85B15140C1147FF = {isa = PBXBuildFile; fileRef = 058701048E13EF5EF22D6086; }; + B78CB6417449BA02D4DA2068 = {isa = PBXBuildFile; fileRef = 8957C2F43247B9144CF301F1; }; + 0F590D6038AA475993311AE5 = {isa = PBXBuildFile; fileRef = E72CE518332596C4088E985B; }; + 6B45EE9984A422448A884669 = {isa = PBXBuildFile; fileRef = 5AD36663640FF2DB6330F64F; }; + 976E2B3CD2B8C6D0403B38CE = {isa = PBXBuildFile; fileRef = F8B125275656888272484BEB; }; + A1170A64AF41A2EA28250A37 = {isa = PBXBuildFile; fileRef = 1B61114AFEF256BE10C36841; }; + 3C366B944B17251B52026A9E = {isa = PBXBuildFile; fileRef = 3AAEACB2C6425AAF3380FEEE; }; + 58A4E8E701EDD136EFC22BAC = {isa = PBXBuildFile; fileRef = 82FE6A23D19A19BA7C4A43CB; }; + 31AE5142EFE8C3D72E554D83 = {isa = PBXBuildFile; fileRef = A93B7E8919F407B0602C83BD; }; + 2126275CC1CF354DDBB4CED3 = {isa = PBXBuildFile; fileRef = A7B1E98E73BC27CCDAF8F48C; }; + 100EFE7F47BA02D35EBC12D6 = {isa = PBXBuildFile; fileRef = 21A96BA34502EF50486E97C8; }; + C886CC36B0F2FD37AE231386 = {isa = PBXBuildFile; fileRef = 6F2272438E33C7E072BA0BA8; }; + 6060C39637B8013E95E6E3AC = {isa = PBXBuildFile; fileRef = 922399FE8A625331D62BA759; }; + BB99CF11C127FAC73A8DA02D = {isa = PBXBuildFile; fileRef = 423D71BF264E8D8B19DC5734; }; + 0681D2F0BBC50CAFD367C06E = {isa = PBXBuildFile; fileRef = 6B9587B1406F5042B0ABC1CB; }; + 096E437B4858B0435AE86EE4 = {isa = PBXBuildFile; fileRef = 6FBFCD65B9E3CA89AA4BFDF5; }; + 902D58B26B8B4D8F2C5FF25E = {isa = PBXBuildFile; fileRef = 35939652CFD6D9754EFF2646; }; + 48F361EE100F303F67117073 = {isa = PBXBuildFile; fileRef = 108C71ACE959D006C3763F3F; }; + AACCFB6729157D490B1022FC = {isa = PBXBuildFile; fileRef = 29BCE81FB2C2599D9844C8D1; }; + 2FDF2759D0CB5E446A76B070 = {isa = PBXBuildFile; fileRef = 4DAF89A65452144F9A049377; }; + 47C1FFB191DEB35D259A41D6 = {isa = PBXBuildFile; fileRef = EB3A7BAD7BD17CDAF11B8A98; }; + 037DF81E06D4C726436E06E7 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_core"; path = "../../../../modules/juce_core"; sourceTree = "SOURCE_ROOT"; }; + 058701048E13EF5EF22D6086 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; + 07903D8D0E7DAF213BE4B607 = {isa = PBXFileReference; lastKnownFileType = file.ogg; name = JB0.ogg; path = ../../BinaryData/JB0.ogg; sourceTree = "SOURCE_ROOT"; }; + 0B3C52762E6929BA3FF3FA19 = {isa = PBXFileReference; lastKnownFileType = image.png; name = icon.png; path = ../../BinaryData/icon.png; sourceTree = "SOURCE_ROOT"; }; + 108C71ACE959D006C3763F3F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_gui_basics.mm"; path = "../../JuceLibraryCode/include_juce_gui_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + 1565D6212A01131DEA4DD68A = {isa = PBXFileReference; lastKnownFileType = file.ogg; name = Robot1.ogg; path = ../../BinaryData/Robot1.ogg; sourceTree = "SOURCE_ROOT"; }; + 1B61114AFEF256BE10C36841 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = Main.cpp; path = ../../Source/Main.cpp; sourceTree = "SOURCE_ROOT"; }; + 21A96BA34502EF50486E97C8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_processors.mm"; path = "../../JuceLibraryCode/include_juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; }; + 2349B2122D748B3358DCC7EA = {isa = PBXFileReference; lastKnownFileType = image.png; name = Ed.png; path = ../../BinaryData/Ed.png; sourceTree = "SOURCE_ROOT"; }; + 24A647AAF2C1B9E9D49A397E = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_processors"; path = "../../../../modules/juce_audio_processors"; sourceTree = "SOURCE_ROOT"; }; + 29BCE81FB2C2599D9844C8D1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_gui_extra.mm"; path = "../../JuceLibraryCode/include_juce_gui_extra.mm"; sourceTree = "SOURCE_ROOT"; }; + 2EE7B36A322D1293E1913FA5 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_basics"; path = "../../../../modules/juce_audio_basics"; sourceTree = "SOURCE_ROOT"; }; + 2F3D7DB7AC87E3233938D392 = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = InAppPurchase.app; sourceTree = "BUILT_PRODUCTS_DIR"; }; + 333CD6A31EF548252810DCDB = {isa = PBXFileReference; lastKnownFileType = image.png; name = JB.png; path = ../../BinaryData/JB.png; sourceTree = "SOURCE_ROOT"; }; + 35939652CFD6D9754EFF2646 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_graphics.mm"; path = "../../JuceLibraryCode/include_juce_graphics.mm"; sourceTree = "SOURCE_ROOT"; }; + 3AAEACB2C6425AAF3380FEEE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = BinaryData.cpp; path = ../../JuceLibraryCode/BinaryData.cpp; sourceTree = "SOURCE_ROOT"; }; + 3E9A311D6029635960FD7109 = {isa = PBXFileReference; lastKnownFileType = image.png; name = Fabian.png; path = ../../BinaryData/Fabian.png; sourceTree = "SOURCE_ROOT"; }; + 3F5FED00A5AA2B9207A6B6EB = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 41495B9D10DF575B58D2662A = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_utils"; path = "../../../../modules/juce_audio_utils"; sourceTree = "SOURCE_ROOT"; }; + 423D71BF264E8D8B19DC5734 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_cryptography.mm"; path = "../../JuceLibraryCode/include_juce_cryptography.mm"; sourceTree = "SOURCE_ROOT"; }; + 444B2A9037AAEB6207DEE548 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BinaryData.h; path = ../../JuceLibraryCode/BinaryData.h; sourceTree = "SOURCE_ROOT"; }; + 4494523DBD5B3FCFF3ACF24B = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_opengl"; path = "../../../../modules/juce_opengl"; sourceTree = "SOURCE_ROOT"; }; + 4CA763A807E91FB34E04A578 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = "SOURCE_ROOT"; }; + 4D70B451CC1D72B6928BEB4F = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_product_unlocking"; path = "../../../../modules/juce_product_unlocking"; sourceTree = "SOURCE_ROOT"; }; + 4DAF89A65452144F9A049377 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_opengl.mm"; path = "../../JuceLibraryCode/include_juce_opengl.mm"; sourceTree = "SOURCE_ROOT"; }; + 4E09F23D0B6777A1AD2D329B = {isa = PBXFileReference; lastKnownFileType = file.ogg; name = Jules0.ogg; path = ../../BinaryData/Jules0.ogg; sourceTree = "SOURCE_ROOT"; }; + 57EB8C4280FD3E03B228989F = {isa = PBXFileReference; lastKnownFileType = image.png; name = Jules.png; path = ../../BinaryData/Jules.png; sourceTree = "SOURCE_ROOT"; }; + 5AD36663640FF2DB6330F64F = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; + 5C5CD63DA48EA80376F4BBB9 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_cryptography"; path = "../../../../modules/juce_cryptography"; sourceTree = "SOURCE_ROOT"; }; + 5C6062C42FF3E8E5EADED099 = {isa = PBXFileReference; lastKnownFileType = file.ogg; name = Fabian0.ogg; path = ../../BinaryData/Fabian0.ogg; sourceTree = "SOURCE_ROOT"; }; + 5E62F8524B40668332E21D3B = {isa = PBXFileReference; lastKnownFileType = file.ogg; name = Lukasz1.ogg; path = ../../BinaryData/Lukasz1.ogg; sourceTree = "SOURCE_ROOT"; }; + 6202FD43099568E7AB1B805F = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_graphics"; path = "../../../../modules/juce_graphics"; sourceTree = "SOURCE_ROOT"; }; + 64DD6AE69EB5316BEA083A9D = {isa = PBXFileReference; lastKnownFileType = file.ogg; name = JB2.ogg; path = ../../BinaryData/JB2.ogg; sourceTree = "SOURCE_ROOT"; }; + 6537E22F60C3F6FFA2391865 = {isa = PBXFileReference; lastKnownFileType = image.png; name = Robot.png; path = ../../BinaryData/Robot.png; sourceTree = "SOURCE_ROOT"; }; + 6B9587B1406F5042B0ABC1CB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_data_structures.mm"; path = "../../JuceLibraryCode/include_juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; }; + 6F2272438E33C7E072BA0BA8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_utils.mm"; path = "../../JuceLibraryCode/include_juce_audio_utils.mm"; sourceTree = "SOURCE_ROOT"; }; + 6FBFCD65B9E3CA89AA4BFDF5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_events.mm"; path = "../../JuceLibraryCode/include_juce_events.mm"; sourceTree = "SOURCE_ROOT"; }; + 70767D204F190AA56BF906C3 = {isa = PBXFileReference; lastKnownFileType = file.ogg; name = Jules2.ogg; path = ../../BinaryData/Jules2.ogg; sourceTree = "SOURCE_ROOT"; }; + 7CB77C168D78801873E39FE1 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; + 82FE6A23D19A19BA7C4A43CB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_basics.mm"; path = "../../JuceLibraryCode/include_juce_audio_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + 84DCEE0A9F3795D5E84D821A = {isa = PBXFileReference; lastKnownFileType = file.ogg; name = Lukasz2.ogg; path = ../../BinaryData/Lukasz2.ogg; sourceTree = "SOURCE_ROOT"; }; + 87D637BFFB93EE48CD922830 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = VoicePurchases.h; path = ../../Source/VoicePurchases.h; sourceTree = "SOURCE_ROOT"; }; + 88B38420E0024014CFED52E7 = {isa = PBXFileReference; lastKnownFileType = file.ogg; name = Lukasz0.ogg; path = ../../BinaryData/Lukasz0.ogg; sourceTree = "SOURCE_ROOT"; }; + 8957C2F43247B9144CF301F1 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 922399FE8A625331D62BA759 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_core.mm"; path = "../../JuceLibraryCode/include_juce_core.mm"; sourceTree = "SOURCE_ROOT"; }; + 960A987552BB992A4ACE9343 = {isa = PBXFileReference; lastKnownFileType = file.ogg; name = Jules1.ogg; path = ../../BinaryData/Jules1.ogg; sourceTree = "SOURCE_ROOT"; }; + 96B420D57D39896A9FE74F13 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; + 9B24CF95A37A8867952EDB4E = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_events"; path = "../../../../modules/juce_events"; sourceTree = "SOURCE_ROOT"; }; + 9F50A7605CBBC9AD62EDD580 = {isa = PBXFileReference; lastKnownFileType = file.ogg; name = Ed0.ogg; path = ../../BinaryData/Ed0.ogg; sourceTree = "SOURCE_ROOT"; }; + A71F05529C7705869EE8B57D = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_data_structures"; path = "../../../../modules/juce_data_structures"; sourceTree = "SOURCE_ROOT"; }; + A7A4F41C64D34868A5B7A66C = {isa = PBXFileReference; lastKnownFileType = image.png; name = Lukasz.png; path = ../../BinaryData/Lukasz.png; sourceTree = "SOURCE_ROOT"; }; + A7B1E98E73BC27CCDAF8F48C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_formats.mm"; path = "../../JuceLibraryCode/include_juce_audio_formats.mm"; sourceTree = "SOURCE_ROOT"; }; + A93B7E8919F407B0602C83BD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_devices.mm"; path = "../../JuceLibraryCode/include_juce_audio_devices.mm"; sourceTree = "SOURCE_ROOT"; }; + B112609CE6C6DF5DA8DFB65B = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_formats"; path = "../../../../modules/juce_audio_formats"; sourceTree = "SOURCE_ROOT"; }; + B4BD924C5F40ECDA9EEA22F1 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = System/Library/Frameworks/DiscRecording.framework; sourceTree = SDKROOT; }; + B66E23275DDD9CB2882ABD01 = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info-App.plist"; path = "Info-App.plist"; sourceTree = "SOURCE_ROOT"; }; + BB9B6A4E376A5CD956B89BFA = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; + C2072E1F3C9AC3DD2CD065F8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = "SOURCE_ROOT"; }; + D36D604996EBE9DBD43F006D = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_gui_basics"; path = "../../../../modules/juce_gui_basics"; sourceTree = "SOURCE_ROOT"; }; + D48B97F38822222FC9DF44C7 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_gui_extra"; path = "../../../../modules/juce_gui_extra"; sourceTree = "SOURCE_ROOT"; }; + D5326805024D38B403ACDA89 = {isa = PBXFileReference; lastKnownFileType = file.ogg; name = JB1.ogg; path = ../../BinaryData/JB1.ogg; sourceTree = "SOURCE_ROOT"; }; + DAABDCED79C1DA90F45253B8 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; }; + DAB9EF1E63F8B6E3A9B67A01 = {isa = PBXFileReference; lastKnownFileType = file.ogg; name = Ed2.ogg; path = ../../BinaryData/Ed2.ogg; sourceTree = "SOURCE_ROOT"; }; + E29DEC5953790CE5925E1BF6 = {isa = PBXFileReference; lastKnownFileType = file.ogg; name = Fabian1.ogg; path = ../../BinaryData/Fabian1.ogg; sourceTree = "SOURCE_ROOT"; }; + E634897A1E06D58E68CBAD42 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + E72CE518332596C4088E985B = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; }; + E76836FA95D832310B1A256A = {isa = PBXFileReference; lastKnownFileType = file.ogg; name = Ed1.ogg; path = ../../BinaryData/Ed1.ogg; sourceTree = "SOURCE_ROOT"; }; + E861C138EAF628A85D2C597D = {isa = PBXFileReference; lastKnownFileType = file.ogg; name = Robot0.ogg; path = ../../BinaryData/Robot0.ogg; sourceTree = "SOURCE_ROOT"; }; + EA57F29A17BA53F3B98F354D = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; + EB3A7BAD7BD17CDAF11B8A98 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_product_unlocking.mm"; path = "../../JuceLibraryCode/include_juce_product_unlocking.mm"; sourceTree = "SOURCE_ROOT"; }; + F0FA1D5DABC016AC66E8E31C = {isa = PBXFileReference; lastKnownFileType = file.ogg; name = Robot2.ogg; path = ../../BinaryData/Robot2.ogg; sourceTree = "SOURCE_ROOT"; }; + F16BB9EBC88E4F2402B60EBE = {isa = PBXFileReference; lastKnownFileType = file.ogg; name = Fabian2.ogg; path = ../../BinaryData/Fabian2.ogg; sourceTree = "SOURCE_ROOT"; }; + F8B125275656888272484BEB = {isa = PBXFileReference; lastKnownFileType = file.nib; name = RecentFilesMenuTemplate.nib; path = RecentFilesMenuTemplate.nib; sourceTree = "SOURCE_ROOT"; }; + FB752F7255B584C0FBC9108B = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_devices"; path = "../../../../modules/juce_audio_devices"; sourceTree = "SOURCE_ROOT"; }; + 1733F11019B9698B7A406FCD = {isa = PBXGroup; children = ( + 2349B2122D748B3358DCC7EA, + 9F50A7605CBBC9AD62EDD580, + E76836FA95D832310B1A256A, + DAB9EF1E63F8B6E3A9B67A01, + 3E9A311D6029635960FD7109, + 5C6062C42FF3E8E5EADED099, + E29DEC5953790CE5925E1BF6, + F16BB9EBC88E4F2402B60EBE, + 0B3C52762E6929BA3FF3FA19, + 333CD6A31EF548252810DCDB, + 07903D8D0E7DAF213BE4B607, + D5326805024D38B403ACDA89, + 64DD6AE69EB5316BEA083A9D, + 57EB8C4280FD3E03B228989F, + 4E09F23D0B6777A1AD2D329B, + 960A987552BB992A4ACE9343, + 70767D204F190AA56BF906C3, + A7A4F41C64D34868A5B7A66C, + 88B38420E0024014CFED52E7, + 5E62F8524B40668332E21D3B, + 84DCEE0A9F3795D5E84D821A, + 6537E22F60C3F6FFA2391865, + E861C138EAF628A85D2C597D, + 1565D6212A01131DEA4DD68A, + F0FA1D5DABC016AC66E8E31C, ); name = BinaryData; sourceTree = ""; }; + 2E731E58B44243EAC5C5D67B = {isa = PBXGroup; children = ( + 1B61114AFEF256BE10C36841, + 87D637BFFB93EE48CD922830, ); name = Source; sourceTree = ""; }; + 7C599D511E005209E1713518 = {isa = PBXGroup; children = ( + 1733F11019B9698B7A406FCD, + 2E731E58B44243EAC5C5D67B, ); name = InAppPurchase; sourceTree = ""; }; + B6180F72F9E0768FB82BF2B2 = {isa = PBXGroup; children = ( + 2EE7B36A322D1293E1913FA5, + FB752F7255B584C0FBC9108B, + B112609CE6C6DF5DA8DFB65B, + 24A647AAF2C1B9E9D49A397E, + 41495B9D10DF575B58D2662A, + 037DF81E06D4C726436E06E7, + 5C5CD63DA48EA80376F4BBB9, + A71F05529C7705869EE8B57D, + 9B24CF95A37A8867952EDB4E, + 6202FD43099568E7AB1B805F, + D36D604996EBE9DBD43F006D, + D48B97F38822222FC9DF44C7, + 4494523DBD5B3FCFF3ACF24B, + 4D70B451CC1D72B6928BEB4F, ); name = "Juce Modules"; sourceTree = ""; }; + 6EACB3EC79D33C0CE3E0BBF1 = {isa = PBXGroup; children = ( + 4CA763A807E91FB34E04A578, + 3AAEACB2C6425AAF3380FEEE, + 444B2A9037AAEB6207DEE548, + 82FE6A23D19A19BA7C4A43CB, + A93B7E8919F407B0602C83BD, + A7B1E98E73BC27CCDAF8F48C, + 21A96BA34502EF50486E97C8, + 6F2272438E33C7E072BA0BA8, + 922399FE8A625331D62BA759, + 423D71BF264E8D8B19DC5734, + 6B9587B1406F5042B0ABC1CB, + 6FBFCD65B9E3CA89AA4BFDF5, + 35939652CFD6D9754EFF2646, + 108C71ACE959D006C3763F3F, + 29BCE81FB2C2599D9844C8D1, + 4DAF89A65452144F9A049377, + EB3A7BAD7BD17CDAF11B8A98, + C2072E1F3C9AC3DD2CD065F8, ); name = "Juce Library Code"; sourceTree = ""; }; + D060F46D4F56F04B3D5A2BBD = {isa = PBXGroup; children = ( + B66E23275DDD9CB2882ABD01, + F8B125275656888272484BEB, ); name = Resources; sourceTree = ""; }; + C7C777CEE4FC39660EB66626 = {isa = PBXGroup; children = ( + 96B420D57D39896A9FE74F13, + 3F5FED00A5AA2B9207A6B6EB, + 7CB77C168D78801873E39FE1, + E634897A1E06D58E68CBAD42, + BB9B6A4E376A5CD956B89BFA, + DAABDCED79C1DA90F45253B8, + B4BD924C5F40ECDA9EEA22F1, + EA57F29A17BA53F3B98F354D, + 058701048E13EF5EF22D6086, + 8957C2F43247B9144CF301F1, + E72CE518332596C4088E985B, + 5AD36663640FF2DB6330F64F, ); name = Frameworks; sourceTree = ""; }; + 900D03824CF464BB54B9685F = {isa = PBXGroup; children = ( + 2F3D7DB7AC87E3233938D392, ); name = Products; sourceTree = ""; }; + 45141DDCB203B1BF5610629C = {isa = PBXGroup; children = ( + 7C599D511E005209E1713518, + B6180F72F9E0768FB82BF2B2, + 6EACB3EC79D33C0CE3E0BBF1, + D060F46D4F56F04B3D5A2BBD, + C7C777CEE4FC39660EB66626, + 900D03824CF464BB54B9685F, ); name = Source; sourceTree = ""; }; + 778EF27AF9FB3E5240D77692 = {isa = XCBuildConfiguration; buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++11"; + CLANG_LINK_OBJC_RUNTIME = NO; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_DEBUG=1", + "DEBUG=1", + "JUCE_IN_APP_PURCHASES=1", + "JUCER_XCODE_MAC_F6D2F4CF=1", + "JUCE_APP_VERSION=0.0.2", + "JUCE_APP_VERSION_HEX=0x2", + "JucePlugin_Build_VST=0", + "JucePlugin_Build_VST3=0", + "JucePlugin_Build_AU=0", + "JucePlugin_Build_AUv3=0", + "JucePlugin_Build_RTAS=0", + "JucePlugin_Build_AAX=0", + "JucePlugin_Build_Standalone=0", ); + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)"); + INFOPLIST_FILE = Info-App.plist; + INFOPLIST_PREPROCESS = NO; + INSTALL_PATH = "$(HOME)/Applications"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + PRODUCT_BUNDLE_IDENTIFIER = com.roli.juceInAppPurchaseSample; + SDKROOT_ppc = macosx10.5; + USE_HEADERMAP = NO; }; name = Debug; }; + 6CE1C17A2BFC39735C8B8537 = {isa = XCBuildConfiguration; buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++11"; + CLANG_LINK_OBJC_RUNTIME = NO; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; + DEAD_CODE_STRIPPING = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_NDEBUG=1", + "NDEBUG=1", + "JUCE_IN_APP_PURCHASES=1", + "JUCER_XCODE_MAC_F6D2F4CF=1", + "JUCE_APP_VERSION=0.0.2", + "JUCE_APP_VERSION_HEX=0x2", + "JucePlugin_Build_VST=0", + "JucePlugin_Build_VST3=0", + "JucePlugin_Build_AU=0", + "JucePlugin_Build_AUv3=0", + "JucePlugin_Build_RTAS=0", + "JucePlugin_Build_AAX=0", + "JucePlugin_Build_Standalone=0", ); + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)"); + INFOPLIST_FILE = Info-App.plist; + INFOPLIST_PREPROCESS = NO; + INSTALL_PATH = "$(HOME)/Applications"; + LLVM_LTO = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + PRODUCT_BUNDLE_IDENTIFIER = com.roli.juceInAppPurchaseSample; + SDKROOT_ppc = macosx10.5; + USE_HEADERMAP = NO; }; name = Release; }; + E458961FBB0DE8F9BE66FB25 = {isa = XCBuildConfiguration; buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + DEBUG_INFORMATION_FORMAT = "dwarf"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = c11; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_MODEL_TUNING = G5; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; + GCC_WARN_MISSING_PARENTHESES = YES; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "InAppPurchase"; + WARNING_CFLAGS = -Wreorder; + ZERO_LINK = NO; }; name = Debug; }; + 023E2B3DC1FEA4C5B7B846ED = {isa = XCBuildConfiguration; buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + DEBUG_INFORMATION_FORMAT = "dwarf"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = c11; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_MODEL_TUNING = G5; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; + GCC_WARN_MISSING_PARENTHESES = YES; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PRODUCT_NAME = "InAppPurchase"; + WARNING_CFLAGS = -Wreorder; + ZERO_LINK = NO; }; name = Release; }; + F458607921F5CC819DC6B674 = {isa = PBXTargetDependency; target = A76C77BF453794B916526154; }; + A70E95856B781E1B86D0B31E = {isa = XCConfigurationList; buildConfigurations = ( + E458961FBB0DE8F9BE66FB25, + 023E2B3DC1FEA4C5B7B846ED, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + AA20EBD7BC2BF8173AF79546 = {isa = XCConfigurationList; buildConfigurations = ( + 778EF27AF9FB3E5240D77692, + 6CE1C17A2BFC39735C8B8537, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + BFF2EB37A2D5F01B426D07EA = {isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 976E2B3CD2B8C6D0403B38CE, ); runOnlyForDeploymentPostprocessing = 0; }; + 1C07E2DC3F7DE233F9641F84 = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + A1170A64AF41A2EA28250A37, + 3C366B944B17251B52026A9E, + 58A4E8E701EDD136EFC22BAC, + 31AE5142EFE8C3D72E554D83, + 2126275CC1CF354DDBB4CED3, + 100EFE7F47BA02D35EBC12D6, + C886CC36B0F2FD37AE231386, + 6060C39637B8013E95E6E3AC, + BB99CF11C127FAC73A8DA02D, + 0681D2F0BBC50CAFD367C06E, + 096E437B4858B0435AE86EE4, + 902D58B26B8B4D8F2C5FF25E, + 48F361EE100F303F67117073, + AACCFB6729157D490B1022FC, + 2FDF2759D0CB5E446A76B070, + 47C1FFB191DEB35D259A41D6, ); runOnlyForDeploymentPostprocessing = 0; }; + B50D9D46D6C2BE3393758F4F = {isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + BEC03CE64FD176FB6422EBC3, + 2BC2CFD40409659CD7E21571, + C33FDCF9731616BF0C9112DA, + 965A8751A797656DB20610C3, + FBB095BD17B4F71818F6CB8A, + 8F09175E78801A7BEC436C82, + 7BE02CD2C77166E21908B09C, + 9B8E08DABECD0D5F99D7EFF2, + 5BB107ACD85B15140C1147FF, + B78CB6417449BA02D4DA2068, + 0F590D6038AA475993311AE5, + 6B45EE9984A422448A884669, ); runOnlyForDeploymentPostprocessing = 0; }; + A76C77BF453794B916526154 = {isa = PBXNativeTarget; buildConfigurationList = AA20EBD7BC2BF8173AF79546; buildPhases = ( + BFF2EB37A2D5F01B426D07EA, + 1C07E2DC3F7DE233F9641F84, + B50D9D46D6C2BE3393758F4F, ); buildRules = ( ); dependencies = ( ); name = "InAppPurchase - App"; productName = InAppPurchase; productReference = 2F3D7DB7AC87E3233938D392; productType = "com.apple.product-type.application"; }; + 66C8FC6F4B36193FCAB3E896 = {isa = PBXProject; buildConfigurationList = A70E95856B781E1B86D0B31E; attributes = { LastUpgradeCheck = 0830; TargetAttributes = { A76C77BF453794B916526154 = { SystemCapabilities = {com.apple.ApplicationGroups.iOS = { enabled = 0; }; com.apple.InAppPurchase = { enabled = 1; }; com.apple.InterAppAudio = { enabled = 0; }; com.apple.Push = { enabled = 0; }; com.apple.Sandbox = { enabled = 0; }; }; }; }; }; compatibilityVersion = "Xcode 3.2"; hasScannedForEncodings = 0; mainGroup = 45141DDCB203B1BF5610629C; projectDirPath = ""; projectRoot = ""; targets = (A76C77BF453794B916526154); }; + }; + rootObject = 66C8FC6F4B36193FCAB3E896; +} diff --git a/examples/InAppPurchase/Builds/MacOSX/Info-App.plist b/examples/InAppPurchase/Builds/MacOSX/Info-App.plist new file mode 100644 index 0000000000..a3180ca2f5 --- /dev/null +++ b/examples/InAppPurchase/Builds/MacOSX/Info-App.plist @@ -0,0 +1,29 @@ + + + + + + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.roli.juceInAppPurchaseSample + CFBundleName + InAppPurchase + CFBundleDisplayName + InAppPurchase + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleShortVersionString + 0.0.2 + CFBundleVersion + 0.0.2 + NSHumanReadableCopyright + ROLI Ltd. + NSHighResolutionCapable + + + diff --git a/examples/InAppPurchase/Builds/MacOSX/RecentFilesMenuTemplate.nib b/examples/InAppPurchase/Builds/MacOSX/RecentFilesMenuTemplate.nib new file mode 100644 index 0000000000000000000000000000000000000000..cec7f7c72bb7b287e0d493d53b0c487866ed6038 GIT binary patch literal 2842 zcmai03v3kE6}|7xy!Xa&z`M5b4;%lM&tmWg|D6Ew7aQ2M@%n>tur*!}uy{Yt&e%Yj z!V5{9M2(VAB|&M`7EBWqMJYm*Qk147ZPe1JqQtSlrHBH7I0T_IjZ#F@)_t?%Ee=It zN7~t$ckeyto_pVY+c)U<=|*AUI3U0vfeZvFDn(`M9m85!_l1J%9ihIhn%B^~9BSCR z#V203IgHR?JfM+%hit2XfdZM33l3Ne`LGO1p%PYu3*68FouI-XJOW|Z2HRl=JO&&d zhbQ3$coFu%%kV0U!U6axya8{)&*3Qi0*=GG@E)9mKfr1D5GLTya1k!SWw;8Tz^8Bv z#i9%}4`re(l#OywE^?sxXaQP?79l5EjPlSDRDhPXJAy-g|6d>m?t@skA7;U9hyxqg zAs!MS5#~S=Btr_MLK@74bjW~=UYpJB>G0{kKEKxK3-*V$=^NdiW-IkI+77+L?P(2# zjEBWbU%%d=`iC^V!{PO-y1v1BXIcrL+E6ek^b*qPy|%dj#jrejZK-Zgwb!fZ0?Ft1 z89S!ULt$Z^e8-xJWJdjeuiG3r;V~TZa^A$tIOC;!6>sE?VWu%!dWA5EgB)G6@Q+_0~^K?-8y;x)BOkDvSy{=lWhr{ZQ15gGP z;OrD+%}2|n3LfAkKZ6HhIjn${@DNl(4b(y%)I$TTf<|cK_woDrQXa<_@>HJA=kaWw z%k#LC7w~0KMb-)xV!x@vI5dlFT3{Wtf(P25U5Mt=fYA2|)`3%3tXY&QT zh|lV(cB#IgX%)?M5LB%O3Eae3g&<9@V7f2dxg3SVLi^yav z41ga35QI>#&F=Pya@RjH7ukjfz9|JYZG%QTR?|*H}#w^&f>t!FfCQP8jBMcrs6j zn3_={EIo#5XjYir@PtUpTru??h27vh2TuvHM(&X7X(3q6Hza#rv}1K-s|kTTLwx}e zgwGX~pUzw)oz~Xi^J_i2wP+bveH1D9I{3aQ_wzhMR5UGG#l2kF54C*W-6{M)P^c3m zZdYwT&k|jhZYeGBGP|1xwP04O=GB769k93i>@@*=5ccyN0X?5*M#0}S!RvYM-CCt? z2Ivt187Zv*bZn^gYic;l6tLHp)N5AK#I6f@hlC!6ZZ23#AA?^`_tPjG1LxgPW;W!B z88R+vtMB(2XYZ)UOzYpzuwLBJ5DEuW<6a1Vn&Gpgt;45nyO+n=86No^)}a12R)3vg zU)a{D`3Jj&LNm9nIVG=%nNTdYQ$r|dxYVH7W?@UQ3YZ)<2a#2vD)`JCKuO|SK7B<; zkoBA-1~C?h))gH=))S7#_?nj-vc-uQ-!{nby+&CcRH0dsNN6^SLpEeb@hAZ$qB$rD zC8HFSiqggI%~8 zx8N?k2?wx_AHzHGF8mDMi+_w?$A|D?d*2`4pWg6Sed~ARjY?$q3ud*Mq zAF-dX{p<~N5j6 literal 0 HcmV?d00001 diff --git a/examples/InAppPurchase/Builds/iOS/InAppPurchase/Images.xcassets/AppIcon.appiconset/Icon-AppStore-1024.png b/examples/InAppPurchase/Builds/iOS/InAppPurchase/Images.xcassets/AppIcon.appiconset/Icon-AppStore-1024.png new file mode 100644 index 0000000000000000000000000000000000000000..8317c956f5a7302f23551427b89c32be72be8734 GIT binary patch literal 80633 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 P00000NkvXXu0mjfg!Jtq literal 0 HcmV?d00001 diff --git a/examples/InAppPurchase/Builds/iOS/InAppPurchase/Images.xcassets/AppIcon.appiconset/Icon-Notification-20@3x.png b/examples/InAppPurchase/Builds/iOS/InAppPurchase/Images.xcassets/AppIcon.appiconset/Icon-Notification-20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..824798e565fe3e69a40882f1b730d9e3a0d5e6e7 GIT binary patch literal 4787 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 DCj3cI literal 0 HcmV?d00001 diff --git a/examples/InAppPurchase/Builds/iOS/InAppPurchase/Images.xcassets/AppIcon.appiconset/Icon-Notifications-20.png b/examples/InAppPurchase/Builds/iOS/InAppPurchase/Images.xcassets/AppIcon.appiconset/Icon-Notifications-20.png new file mode 100644 index 0000000000000000000000000000000000000000..3d2b013aa68e492afc03cda76b75ad75b2785cad GIT binary patch literal 948 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 P00000NkvXXu0mjfg!Jtq literal 0 HcmV?d00001 diff --git a/examples/InAppPurchase/Builds/iOS/Info-App.plist b/examples/InAppPurchase/Builds/iOS/Info-App.plist index c21fabe3c1..8b1bf5d59f 100644 --- a/examples/InAppPurchase/Builds/iOS/Info-App.plist +++ b/examples/InAppPurchase/Builds/iOS/Info-App.plist @@ -10,7 +10,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.juceInAppPurchaseSample CFBundleName InAppPurchase CFBundleDisplayName diff --git a/examples/MPETest/Builds/LinuxMakefile/Makefile b/examples/MPETest/Builds/LinuxMakefile/Makefile index 0365ec7573..004c895f37 100644 --- a/examples/MPETest/Builds/LinuxMakefile/Makefile +++ b/examples/MPETest/Builds/LinuxMakefile/Makefile @@ -38,8 +38,8 @@ ifeq ($(CONFIG),Debug) JUCE_TARGET_APP := MPETest JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -lGL -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -lGL -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif @@ -59,8 +59,8 @@ ifeq ($(CONFIG),Release) JUCE_TARGET_APP := MPETest JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -lGL -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -fvisibility=hidden -lGL -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif diff --git a/examples/MPETest/Builds/MacOSX/Info-App.plist b/examples/MPETest/Builds/MacOSX/Info-App.plist index ec5d8dbe9f..a07c9aeabd 100644 --- a/examples/MPETest/Builds/MacOSX/Info-App.plist +++ b/examples/MPETest/Builds/MacOSX/Info-App.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.MPETest CFBundleName MPETest CFBundleDisplayName diff --git a/examples/MPETest/Builds/VisualStudio2015/MPETest_App.vcxproj b/examples/MPETest/Builds/VisualStudio2015/MPETest_App.vcxproj index ef5f26b7b7..75eafae860 100644 --- a/examples/MPETest/Builds/VisualStudio2015/MPETest_App.vcxproj +++ b/examples/MPETest/Builds/VisualStudio2015/MPETest_App.vcxproj @@ -1669,6 +1669,9 @@ true + + true + true @@ -1678,9 +1681,15 @@ true + + true + true + + true + true @@ -2339,6 +2348,7 @@ + diff --git a/examples/MPETest/Builds/VisualStudio2015/MPETest_App.vcxproj.filters b/examples/MPETest/Builds/VisualStudio2015/MPETest_App.vcxproj.filters index 6eb9e33570..c0f7cf54e2 100644 --- a/examples/MPETest/Builds/VisualStudio2015/MPETest_App.vcxproj.filters +++ b/examples/MPETest/Builds/VisualStudio2015/MPETest_App.vcxproj.filters @@ -1993,6 +1993,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2002,9 +2005,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3870,6 +3879,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/MPETest/Builds/VisualStudio2017/MPETest_App.vcxproj b/examples/MPETest/Builds/VisualStudio2017/MPETest_App.vcxproj index 053b6aad90..f3d6a2ad37 100644 --- a/examples/MPETest/Builds/VisualStudio2017/MPETest_App.vcxproj +++ b/examples/MPETest/Builds/VisualStudio2017/MPETest_App.vcxproj @@ -1669,6 +1669,9 @@ true + + true + true @@ -1678,9 +1681,15 @@ true + + true + true + + true + true @@ -2339,6 +2348,7 @@ + diff --git a/examples/MPETest/Builds/VisualStudio2017/MPETest_App.vcxproj.filters b/examples/MPETest/Builds/VisualStudio2017/MPETest_App.vcxproj.filters index 726794a5dc..77cdf0fb89 100644 --- a/examples/MPETest/Builds/VisualStudio2017/MPETest_App.vcxproj.filters +++ b/examples/MPETest/Builds/VisualStudio2017/MPETest_App.vcxproj.filters @@ -1993,6 +1993,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2002,9 +2005,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3870,6 +3879,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/MidiTest/Builds/Android/app/CMakeLists.txt b/examples/MidiTest/Builds/Android/app/CMakeLists.txt index 943deeb482..99d9f5ca76 100644 --- a/examples/MidiTest/Builds/Android/app/CMakeLists.txt +++ b/examples/MidiTest/Builds/Android/app/CMakeLists.txt @@ -8,7 +8,7 @@ SET(BINARY_NAME "juce_jni") add_library("cpufeatures" STATIC "${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c") set_source_files_properties("${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c" PROPERTIES COMPILE_FLAGS "-Wno-sign-conversion -Wno-gnu-statement-expression") -add_definitions("-DJUCE_ANDROID=1" "-DJUCE_ANDROID_API_VERSION=23" "-DJUCE_ANDROID_ACTIVITY_CLASSNAME=com_yourcompany_miditest_MidiTest" "-DJUCE_ANDROID_ACTIVITY_CLASSPATH=\"com/yourcompany/miditest/MidiTest\"" "-DJUCE_ANDROID_GL_ES_VERSION_3_0=1" "-DJUCER_ANDROIDSTUDIO_7F0E4A25=1" "-DJUCE_APP_VERSION=1.0.0" "-DJUCE_APP_VERSION_HEX=0x10000") +add_definitions("-DJUCE_ANDROID=1" "-DJUCE_ANDROID_API_VERSION=23" "-DJUCE_ANDROID_ACTIVITY_CLASSNAME=com_yourcompany_miditest_MidiTest" "-DJUCE_ANDROID_ACTIVITY_CLASSPATH=\"com/yourcompany/miditest/MidiTest\"" "-DJUCE_PUSH_NOTIFICATIONS=1" "-DJUCE_ANDROID_GL_ES_VERSION_3_0=1" "-DJUCER_ANDROIDSTUDIO_7F0E4A25=1" "-DJUCE_APP_VERSION=1.0.0" "-DJUCE_APP_VERSION_HEX=0x10000") include_directories( AFTER "../../../JuceLibraryCode" @@ -16,6 +16,8 @@ include_directories( AFTER "${ANDROID_NDK}/sources/android/cpufeatures" ) +enable_language(ASM) + IF(JUCE_BUILD_CONFIGFURATION MATCHES "DEBUG") add_definitions("-DDEBUG=1" "-D_DEBUG=1") ELSEIF(JUCE_BUILD_CONFIGFURATION MATCHES "RELEASE") @@ -1133,6 +1135,8 @@ add_library( ${BINARY_NAME} "../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h" "../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp" "../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h" + "../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.cpp" + "../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.h" "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp" "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h" "../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp" @@ -1140,7 +1144,9 @@ add_library( ${BINARY_NAME} "../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp" "../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h" "../../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h" + "../../../../../modules/juce_gui_extra/native/juce_android_PushNotifications.cpp" "../../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp" + "../../../../../modules/juce_gui_extra/native/juce_ios_PushNotifications.cpp" "../../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm" "../../../../../modules/juce_gui_extra/native/juce_linux_X11_SystemTrayIcon.cpp" "../../../../../modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp" @@ -2274,6 +2280,8 @@ set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_Liv set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) @@ -2281,7 +2289,9 @@ set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_Spl set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_android_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_ios_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_linux_X11_SystemTrayIcon.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) diff --git a/examples/MidiTest/Builds/Android/app/build.gradle b/examples/MidiTest/Builds/Android/app/build.gradle index e37aceea7b..84c1f8de9e 100644 --- a/examples/MidiTest/Builds/Android/app/build.gradle +++ b/examples/MidiTest/Builds/Android/app/build.gradle @@ -84,5 +84,6 @@ repositories { dependencies { } + } diff --git a/examples/MidiTest/Builds/Android/app/src/main/AndroidManifest.xml b/examples/MidiTest/Builds/Android/app/src/main/AndroidManifest.xml index 7cbe5937ac..94e2e8b24e 100644 --- a/examples/MidiTest/Builds/Android/app/src/main/AndroidManifest.xml +++ b/examples/MidiTest/Builds/Android/app/src/main/AndroidManifest.xml @@ -11,7 +11,7 @@ + android:screenOrientation="unspecified" android:launchMode="singleTask"> diff --git a/examples/MidiTest/Builds/Android/app/src/main/java/com/yourcompany/miditest/MidiTest.java b/examples/MidiTest/Builds/Android/app/src/main/java/com/yourcompany/miditest/MidiTest.java index b590e2dff4..1b63100e6d 100644 --- a/examples/MidiTest/Builds/Android/app/src/main/java/com/yourcompany/miditest/MidiTest.java +++ b/examples/MidiTest/Builds/Android/app/src/main/java/com/yourcompany/miditest/MidiTest.java @@ -1241,6 +1241,7 @@ public class MidiTest extends Activity getApplicationInfo().dataDir); } + //============================================================================== private void hideActionBar() { // get "getActionBar" method @@ -1312,6 +1313,7 @@ public class MidiTest extends Activity private native void resumeApp(); private native void setScreenSize (int screenWidth, int screenHeight, int dpi); private native void appActivityResult (int requestCode, int resultCode, Intent data); + private native void appNewIntent (Intent intent); //============================================================================== private ViewHolder viewHolder; @@ -2379,6 +2381,15 @@ public class MidiTest extends Activity appActivityResult (requestCode, resultCode, data); } + @Override + protected void onNewIntent (Intent intent) + { + super.onNewIntent(intent); + setIntent(intent); + + appNewIntent (intent); + } + //============================================================================== public final Typeface getTypeFaceFromAsset (String assetName) { diff --git a/examples/MidiTest/Builds/LinuxMakefile/Makefile b/examples/MidiTest/Builds/LinuxMakefile/Makefile index 8ff6c002cf..e08a7beaec 100644 --- a/examples/MidiTest/Builds/LinuxMakefile/Makefile +++ b/examples/MidiTest/Builds/LinuxMakefile/Makefile @@ -38,8 +38,8 @@ ifeq ($(CONFIG),Debug) JUCE_TARGET_APP := MidiTest JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif @@ -59,8 +59,8 @@ ifeq ($(CONFIG),Release) JUCE_TARGET_APP := MidiTest JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -fvisibility=hidden -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif diff --git a/examples/MidiTest/Builds/MacOSX/Info-App.plist b/examples/MidiTest/Builds/MacOSX/Info-App.plist index 02a97a5368..147bb69bae 100644 --- a/examples/MidiTest/Builds/MacOSX/Info-App.plist +++ b/examples/MidiTest/Builds/MacOSX/Info-App.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.MidiTest CFBundleName MidiTest CFBundleDisplayName diff --git a/examples/MidiTest/Builds/VisualStudio2015/MidiTest_App.vcxproj b/examples/MidiTest/Builds/VisualStudio2015/MidiTest_App.vcxproj index ea7caf47b4..244f32f007 100644 --- a/examples/MidiTest/Builds/VisualStudio2015/MidiTest_App.vcxproj +++ b/examples/MidiTest/Builds/VisualStudio2015/MidiTest_App.vcxproj @@ -1649,6 +1649,9 @@ true + + true + true @@ -1658,9 +1661,15 @@ true + + true + true + + true + true @@ -2265,6 +2274,7 @@ + diff --git a/examples/MidiTest/Builds/VisualStudio2015/MidiTest_App.vcxproj.filters b/examples/MidiTest/Builds/VisualStudio2015/MidiTest_App.vcxproj.filters index 11eac3b928..8accedbc74 100644 --- a/examples/MidiTest/Builds/VisualStudio2015/MidiTest_App.vcxproj.filters +++ b/examples/MidiTest/Builds/VisualStudio2015/MidiTest_App.vcxproj.filters @@ -1936,6 +1936,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1945,9 +1948,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3723,6 +3732,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/MidiTest/Builds/VisualStudio2017/MidiTest_App.vcxproj b/examples/MidiTest/Builds/VisualStudio2017/MidiTest_App.vcxproj index da6bebc0b3..67054ae5c9 100644 --- a/examples/MidiTest/Builds/VisualStudio2017/MidiTest_App.vcxproj +++ b/examples/MidiTest/Builds/VisualStudio2017/MidiTest_App.vcxproj @@ -1649,6 +1649,9 @@ true + + true + true @@ -1658,9 +1661,15 @@ true + + true + true + + true + true @@ -2265,6 +2274,7 @@ + diff --git a/examples/MidiTest/Builds/VisualStudio2017/MidiTest_App.vcxproj.filters b/examples/MidiTest/Builds/VisualStudio2017/MidiTest_App.vcxproj.filters index a94a4ef26a..019f46d463 100644 --- a/examples/MidiTest/Builds/VisualStudio2017/MidiTest_App.vcxproj.filters +++ b/examples/MidiTest/Builds/VisualStudio2017/MidiTest_App.vcxproj.filters @@ -1936,6 +1936,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1945,9 +1948,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3723,6 +3732,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/MidiTest/Builds/iOS/Info-App.plist b/examples/MidiTest/Builds/iOS/Info-App.plist index 2c00fd11f4..13d7da4f16 100644 --- a/examples/MidiTest/Builds/iOS/Info-App.plist +++ b/examples/MidiTest/Builds/iOS/Info-App.plist @@ -10,7 +10,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.MidiTest CFBundleName MidiTest CFBundleDisplayName diff --git a/examples/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt b/examples/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt index 6a6b905bf8..2df00b80a2 100644 --- a/examples/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt +++ b/examples/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt @@ -8,7 +8,7 @@ SET(BINARY_NAME "juce_jni") add_library("cpufeatures" STATIC "${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c") set_source_files_properties("${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c" PROPERTIES COMPILE_FLAGS "-Wno-sign-conversion -Wno-gnu-statement-expression") -add_definitions("-DJUCE_ANDROID=1" "-DJUCE_ANDROID_API_VERSION=10" "-DJUCE_ANDROID_ACTIVITY_CLASSNAME=com_juce_networkgraphicsdemo_JUCENetworkGraphicsDemo" "-DJUCE_ANDROID_ACTIVITY_CLASSPATH=\"com/juce/networkgraphicsdemo/JUCENetworkGraphicsDemo\"" "-DJUCER_ANDROIDSTUDIO_7F0E4A25=1" "-DJUCE_APP_VERSION=1.0.0" "-DJUCE_APP_VERSION_HEX=0x10000") +add_definitions("-DJUCE_ANDROID=1" "-DJUCE_ANDROID_API_VERSION=10" "-DJUCE_ANDROID_ACTIVITY_CLASSNAME=com_juce_networkgraphicsdemo_JUCENetworkGraphicsDemo" "-DJUCE_ANDROID_ACTIVITY_CLASSPATH=\"com/juce/networkgraphicsdemo/JUCENetworkGraphicsDemo\"" "-DJUCE_PUSH_NOTIFICATIONS=1" "-DJUCER_ANDROIDSTUDIO_7F0E4A25=1" "-DJUCE_APP_VERSION=1.0.0" "-DJUCE_APP_VERSION_HEX=0x10000") include_directories( AFTER "../../../JuceLibraryCode" @@ -16,6 +16,8 @@ include_directories( AFTER "${ANDROID_NDK}/sources/android/cpufeatures" ) +enable_language(ASM) + IF(JUCE_BUILD_CONFIGFURATION MATCHES "DEBUG") add_definitions("-DJUCE_DEBUG=0" "-DDEBUG=1" "-D_DEBUG=1") ELSEIF(JUCE_BUILD_CONFIGFURATION MATCHES "RELEASE") @@ -1151,6 +1153,8 @@ add_library( ${BINARY_NAME} "../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h" "../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp" "../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h" + "../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.cpp" + "../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.h" "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp" "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h" "../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp" @@ -1158,7 +1162,9 @@ add_library( ${BINARY_NAME} "../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp" "../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h" "../../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h" + "../../../../../modules/juce_gui_extra/native/juce_android_PushNotifications.cpp" "../../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp" + "../../../../../modules/juce_gui_extra/native/juce_ios_PushNotifications.cpp" "../../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm" "../../../../../modules/juce_gui_extra/native/juce_linux_X11_SystemTrayIcon.cpp" "../../../../../modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp" @@ -2367,6 +2373,8 @@ set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_Liv set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) @@ -2374,7 +2382,9 @@ set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_Spl set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_android_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_ios_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_linux_X11_SystemTrayIcon.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) diff --git a/examples/NetworkGraphicsDemo/Builds/Android/app/build.gradle b/examples/NetworkGraphicsDemo/Builds/Android/app/build.gradle index 8080db73ba..fec0e1f4f2 100644 --- a/examples/NetworkGraphicsDemo/Builds/Android/app/build.gradle +++ b/examples/NetworkGraphicsDemo/Builds/Android/app/build.gradle @@ -84,5 +84,6 @@ repositories { dependencies { } + } diff --git a/examples/NetworkGraphicsDemo/Builds/Android/app/src/main/AndroidManifest.xml b/examples/NetworkGraphicsDemo/Builds/Android/app/src/main/AndroidManifest.xml index a6517c4684..1fbb144a9f 100644 --- a/examples/NetworkGraphicsDemo/Builds/Android/app/src/main/AndroidManifest.xml +++ b/examples/NetworkGraphicsDemo/Builds/Android/app/src/main/AndroidManifest.xml @@ -13,7 +13,7 @@ + android:screenOrientation="unspecified" android:launchMode="singleTask"> diff --git a/examples/NetworkGraphicsDemo/Builds/Android/app/src/main/java/com/juce/networkgraphicsdemo/JUCENetworkGraphicsDemo.java b/examples/NetworkGraphicsDemo/Builds/Android/app/src/main/java/com/juce/networkgraphicsdemo/JUCENetworkGraphicsDemo.java index e44aa20b1b..b46f89cb19 100644 --- a/examples/NetworkGraphicsDemo/Builds/Android/app/src/main/java/com/juce/networkgraphicsdemo/JUCENetworkGraphicsDemo.java +++ b/examples/NetworkGraphicsDemo/Builds/Android/app/src/main/java/com/juce/networkgraphicsdemo/JUCENetworkGraphicsDemo.java @@ -312,6 +312,7 @@ public class JUCENetworkGraphicsDemo extends Activity getApplicationInfo().dataDir); } + //============================================================================== private void hideActionBar() { // get "getActionBar" method @@ -383,6 +384,7 @@ public class JUCENetworkGraphicsDemo extends Activity private native void resumeApp(); private native void setScreenSize (int screenWidth, int screenHeight, int dpi); private native void appActivityResult (int requestCode, int resultCode, Intent data); + private native void appNewIntent (Intent intent); //============================================================================== private ViewHolder viewHolder; @@ -1450,6 +1452,15 @@ public class JUCENetworkGraphicsDemo extends Activity appActivityResult (requestCode, resultCode, data); } + @Override + protected void onNewIntent (Intent intent) + { + super.onNewIntent(intent); + setIntent(intent); + + appNewIntent (intent); + } + //============================================================================== public final Typeface getTypeFaceFromAsset (String assetName) { diff --git a/examples/NetworkGraphicsDemo/Builds/LinuxMakefile/Makefile b/examples/NetworkGraphicsDemo/Builds/LinuxMakefile/Makefile index b538d36160..d27dc957d2 100644 --- a/examples/NetworkGraphicsDemo/Builds/LinuxMakefile/Makefile +++ b/examples/NetworkGraphicsDemo/Builds/LinuxMakefile/Makefile @@ -38,8 +38,8 @@ ifeq ($(CONFIG),Debug) JUCE_TARGET_APP := JUCE\ Network\ Graphics\ Demo JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -lGL -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -lGL -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif @@ -59,8 +59,8 @@ ifeq ($(CONFIG),Release) JUCE_TARGET_APP := JUCE\ Network\ Graphics\ Demo JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -lGL -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -fvisibility=hidden -lGL -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif diff --git a/examples/NetworkGraphicsDemo/Builds/MacOSX/Info-App.plist b/examples/NetworkGraphicsDemo/Builds/MacOSX/Info-App.plist index dfa0f1f188..00936921c4 100644 --- a/examples/NetworkGraphicsDemo/Builds/MacOSX/Info-App.plist +++ b/examples/NetworkGraphicsDemo/Builds/MacOSX/Info-App.plist @@ -8,7 +8,7 @@ CFBundleIconFile Icon.icns CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.juce.NetworkGraphicsDemo CFBundleName JUCE Network Graphics Demo CFBundleDisplayName diff --git a/examples/NetworkGraphicsDemo/Builds/VisualStudio2013/JUCE Network Graphics Demo_App.vcxproj b/examples/NetworkGraphicsDemo/Builds/VisualStudio2013/JUCE Network Graphics Demo_App.vcxproj index 913991216a..5c44aa4dfa 100644 --- a/examples/NetworkGraphicsDemo/Builds/VisualStudio2013/JUCE Network Graphics Demo_App.vcxproj +++ b/examples/NetworkGraphicsDemo/Builds/VisualStudio2013/JUCE Network Graphics Demo_App.vcxproj @@ -1669,6 +1669,9 @@ true + + true + true @@ -1678,9 +1681,15 @@ true + + true + true + + true + true @@ -2356,6 +2365,7 @@ + diff --git a/examples/NetworkGraphicsDemo/Builds/VisualStudio2013/JUCE Network Graphics Demo_App.vcxproj.filters b/examples/NetworkGraphicsDemo/Builds/VisualStudio2013/JUCE Network Graphics Demo_App.vcxproj.filters index af181cb69f..b571390122 100644 --- a/examples/NetworkGraphicsDemo/Builds/VisualStudio2013/JUCE Network Graphics Demo_App.vcxproj.filters +++ b/examples/NetworkGraphicsDemo/Builds/VisualStudio2013/JUCE Network Graphics Demo_App.vcxproj.filters @@ -1987,6 +1987,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1996,9 +1999,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3876,6 +3885,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/NetworkGraphicsDemo/Builds/VisualStudio2017/JUCE Network Graphics Demo_App.vcxproj b/examples/NetworkGraphicsDemo/Builds/VisualStudio2017/JUCE Network Graphics Demo_App.vcxproj index 5de2d12911..845d463c7c 100644 --- a/examples/NetworkGraphicsDemo/Builds/VisualStudio2017/JUCE Network Graphics Demo_App.vcxproj +++ b/examples/NetworkGraphicsDemo/Builds/VisualStudio2017/JUCE Network Graphics Demo_App.vcxproj @@ -1669,6 +1669,9 @@ true + + true + true @@ -1678,9 +1681,15 @@ true + + true + true + + true + true @@ -2356,6 +2365,7 @@ + diff --git a/examples/NetworkGraphicsDemo/Builds/VisualStudio2017/JUCE Network Graphics Demo_App.vcxproj.filters b/examples/NetworkGraphicsDemo/Builds/VisualStudio2017/JUCE Network Graphics Demo_App.vcxproj.filters index 12d612816b..06405074e7 100644 --- a/examples/NetworkGraphicsDemo/Builds/VisualStudio2017/JUCE Network Graphics Demo_App.vcxproj.filters +++ b/examples/NetworkGraphicsDemo/Builds/VisualStudio2017/JUCE Network Graphics Demo_App.vcxproj.filters @@ -1987,6 +1987,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1996,9 +1999,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3876,6 +3885,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/NetworkGraphicsDemo/Builds/iOS/Info-App.plist b/examples/NetworkGraphicsDemo/Builds/iOS/Info-App.plist index 559cb82b76..cf4135c879 100644 --- a/examples/NetworkGraphicsDemo/Builds/iOS/Info-App.plist +++ b/examples/NetworkGraphicsDemo/Builds/iOS/Info-App.plist @@ -10,7 +10,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.juce.NetworkGraphicsDemo CFBundleName JUCE Network Graphics Demo CFBundleDisplayName diff --git a/examples/NetworkGraphicsDemo/Builds/iOS/JUCE Network Graphics Demo/Images.xcassets/AppIcon.appiconset/Icon-AppStore-1024.png b/examples/NetworkGraphicsDemo/Builds/iOS/JUCE Network Graphics Demo/Images.xcassets/AppIcon.appiconset/Icon-AppStore-1024.png new file mode 100644 index 0000000000000000000000000000000000000000..fd20188c7cf33809fa4d1445933c010dcf7a821d GIT binary patch literal 50668 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 literal 0 HcmV?d00001 diff --git a/examples/NetworkGraphicsDemo/Builds/iOS/JUCE Network Graphics Demo/Images.xcassets/AppIcon.appiconset/Icon-Notification-20@2x.png b/examples/NetworkGraphicsDemo/Builds/iOS/JUCE Network Graphics Demo/Images.xcassets/AppIcon.appiconset/Icon-Notification-20@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f673561b35ed83f6a898a064327a18e0f68bbb9b GIT binary patch literal 2452 zcmV;F32XL=P)^p;8OQ(kUFS_E%S^%~B!Q?QNF+!ES&9jXL&73R3T=v> zsvNB>2C3Gzw)PZHD}Lzd(b{T@!62x0X(=9&Z~~eb44Wm;L&742B#Jf(Ofn2JnaM2g za&JEbLc&ajQLLYQKE3CCmixQ+xzF8z@8tS~T#xhWcgt+Vi~=T*98i)j3M3u?G|Ku3 zB@V_|hZfM9UoCHNd~1L!k1UEKPBotsxMxIBm@Dxz5jhzaITZ;~G62Afz3*4%BF>z9H=G|n1WeTh&8xq812%I>~ zUZ)y-ng^~>4_YrCMPp|T^Q!KX)S%U(#&3M-uHB(;3XrU-x99Pk^jxZvHvf){1;n1U z6kNXx^ulM*x{ku=X$1@RA#Uz(L1ZA%{2LI#3@#}TLdtY-3Atc$DjK@B<3M*U>-C?n zr^I-os-*5D2-tN2R@RmlLgBYhvCU4oC-+e(Iz{NvX6RkbV0r*xSK=$P9|JK1!4uC8 zYk~+0c*|{&Z(f4{Ct+**1{^;Bv5WeRimHWm4bj@?qbXO{l`R())3zl!D-xEBy&t4? z4}u5&3Zu6Tpjw!{m^}kT0`#7J!xdBm_5T<8`38tYz->3)j|4eIY3o1s<0<#u)P3ZQ z_M;;)a3lODm9?dXk|e)!|Ae1Q_N*n)j&Dcs$m^i~i_!WNRhW7aYR6`1pTC9T%*A-{ zmR}39D89V#O10vjt*qDa7pQ0J$DW0wHB4#4+Uv_Pv9E zdozkg&%v~Gy9GS^)7skk^3@)~)jzBj_rs}i8T0SSU5nu19q{da0|0^MXh-r7)&YmA zp|v-DEj%%;1XAAP@Vj1s>fZ~1f#c#)F|HD4`&#Gp(#}T!{CTL)un}B&WKkS1aI5YZ zy?~fPI{FX%}@VfV&E+e;;sZbqRXkgNX!D zl(CR7o~)?cQ*0g)kT}(RvzRo=p0yO-+P}c?Ubv!U41typ&{tOt(~K1m$4*DAb5cm1 z0V(fs1blBJ@=GzeWigYn6eA&GL)sv3J{ z7$7mDK;mU$HQ5kq`}eRNB0@;`|FaXGn&)9ETnjO0c9?~jRsuQyDfm4b5%TT?qV8x6 zdY}nbQyL^r24@lrE^7v>m$+-CCi73IY1if51iE~$8?j{JxK($6Fh-jjP zK84wu1esUh<-Iv!fS@GZBBw&&L{Psc20#oJ4hTU~`I7)M0Ky=TngRdCzg;Sb7(-Dn zc)}x9Nr$uFksbyp3MBsWdCvO4^U$4N#2g$TfT4p($|dd)1XBS7)2%T_;DsyzfLTli z&vWr%fJ5t<_+=1R!ZqgM5a9@5TnRv#gl_MYnB4&&F-}5?H1N$B8?3rPKuu@;UTq+? zuAlu5)E#4*0Vt(KkY`PUq3X~%4m?M2*3pNyE_ci^B$3DR(mePy4=826FhD|y!yW8} zPBn0e=GXuUfikBMO67xSdTl?_CuZUFsAM#BT)>k>Hv$0KyWKI3q$Kd5%z!g+4g_TI z4l|e+##o0+L-1)Hh!e-h)N6Ux?MV35qd2;~1sxxs0%Ht}0q=k6z#sR0j_=))f$X%z zm|~?REAVL^gp42w4w8ApNO}*S4wxCF#JZvdmWqf7Uw|#fF4w1nse6@ z2EeBp0DzOO!+5v7%FtBf-VJl>S|Zs;z84d)s)cn8s-~@e?bAPKja@aExMV5{md$`E zafIb32C*n29-DOoemW}~`_I*4)5-OQs;g_N=hf{R=?Nt2%fgX2+K(38n|%?Uwr+} z#$YV%e&uI^%00zqEg()6WNy7A%0&_YtlnZyFZBZpF!e)%M97_^^Y;0ajQxaOgI>v!^P%l`m9yYd8% S)PAG@0000c3})099-ga{s> z2oeMdfVc*8V6N}`y7LDhnlwQY1R?*C@~fJvIl5lI-@NYEuV42Ee~|ybMf|?|>)P2R zI}#lN;K=w9-My__0s8l5z=x%{YiE~H6V8NOsbWYKM$4e*setA8g)Bq*0ZJvW=%TWQ zq4G#Ghj6oANu`s?c(!|6xA$S#wWPq?w{MqY8+u~+y+*B7lQ2Yw(0a8-vQ}1?sUqh02bhvg7D{5}X3Eq7}2I6NJE< zeh-yC4n_cB$C3UjM4$#oSd8U|8O$8#Wa=>e)4fa=CQmA@e(7n|{q+62UqdV|&@Br1 zuXo-Prrdr4!+63re4AI5uQ%6JZf04mgK{&DPLJS?9YZD0pfcxCxhZr$1#S@;Zz8ni zt6&=B-}#TI%==*Y5mpT0t3U>7k>OU1*v$}ZBzUdX*;+smTXR{^w zy&pXIV){b|{=&~bR_BizUjiPl2-Y;*TmK0<%GXn6SEG}IID-f9#!sNq!{|a9^yTp; zvh8VvZIgZV(RnPA2rGsR)?-9hVkYi@@N&kB6C6z*WZ$`;GnN|}L8+bE;UB*Fz)M5d zW501dji21}K${&9UlT$+u_C^<>W|z0k~Ni^h`Ivj*e*&(et|dKi%JiJTVVd>RbzKN zgfJwfGdsEbKiA+D(1kHn_B3Al7?h@nL{?H4TSZfJ1?kdcWTG&-3PUul`~330p6{KU zTyo$i_dL*M3jJRY;*ky2_eMU|_63?F?TGXJ6yN$T?$BGP%z04GHFepm9!40(6@V`i z?V?LbRQ5C~eH1HDO-0!nnxi*UQbpfzcAyPG)4I0Ud4j4y9o}dkg*TqUOAdltT!<>*I)FbARYDgh@RGgAU?b632aS>Cc-pnjWcph) zy5_b=Ti-hP!-3SbRLN^K`0Jhbg#A(DO9Jt!4b}ICwl+ORxxX3^xM$x+Wyj~8r%Ntc zp^M{qQ*Q!L=BwmmOLvKeVS zQ4y?e*xLLVYJv@v2Hqz9;{U`MI*d`-M&RBrBkbT3V$CnY2;l4Z56H4k+)_XJ>3_y4 z^pFVDv9q8&ye8?5KFlq5lCMpzU6<3k=TG+>?J$#cW9LZKzUOX)6Ze* z6gS0hqqAa@A&?&zadBVQ&aQc#IWKT|V6w&&YD?5t-oCc-4yvpw@;%SvjGO@V+x%S@ zXGp#9j}-b3VAQO}ciU%?k?JLa7D#_JcI)S7VM~X|O??BcE>5l#Zs`=o>@F&O6|Ak? zOgvE8DiB+1FU5bEjjUkPXwwJ9D%c324qbDi!??>e?&*W4#N#><*QtbcD ztf$vLij3CYAhbXRYO$Ihn}h8omwX20UB1+6HG@-l3+0@kC3-U}%WgqR<386gZk^A| zmjRD$=!prTHbv}MTU)G?ax+fh=xcbBXRlzK#!HWp+4~)e{Rc3rSL0j#DU4YCBB2E` zSdZ28Y0Sh%9H*Cj>iZ~nlq(fRlsk%(`!#VZLR+kps2y+Cn$7XVSp1s6_`OCUxVtXY zB3q&>@g{~So$W&v=Zyh#%o;B_O!l>ZnH}EMtFc!-j1gTN5n3R*M*v~9T#WxB;L&Q0t}vmo)~22*FU1r|0YJw8tl$bAft8HfELI= z9aiHX&%wS&A@dVFXK+EV0NTsol}=$&q&C=0)L$M!&^a~}j$9Ggl`19#ol#$$sz3v7 zas)3qd`V=!F6a}p(7rW~TqSzXMq{hF3$tp|ENuG6c%{<|hMg6K=Z&J=QL2Lt#O!i} z5S=RI#x8DkiMx?1tTEcdR*VXN4c_Q+y!0X}Djz_<{wxTAf5q+igrxZP4`*}li(!2g z*sY(%sN8_#9HNl^5uP)2ov?G=x|1mPJQe;zomP?zMr7Y}LSc`{%bW@X5VU`h*J%A=ja;(*~o^v>-0XNo6#Fl*Nm zxclED{82Ci_&fg-M&fo{r;pt9ckrCEi-w);uYlHhq%a6u5p2^ga|=3r@rL5Uo35Q* z(()T2)3hzW5dgrfU4dD>>;r9!dufH2I#2qS-=K8vII`*{Fl-PeM%ijSZ;;&7Qz&<2 z4tA0K0EX3qX}1I5H-cEwmckIxC+pT-NI)(O>5fE)NXfVT5_zF+>}$Oh`%k})F6GcS zy64p(LuCl#qEfA}Fs&6tYQBDBx&e>~89)d>0H(ANNUVV6uefuWfP=H&Uub_X@W$^d z5rB!n5BkQBf5beSGmVL(%9lVlNCbwImn;TaX)$#sbK#o{z(=}|=tSHr8h(X4SC=Xs zIzsm8A5c1c4Ac#HSO{b+LfQ7OVBN9`Va;~yD$RH*&z`r>kT1E5*Uv0)A{J!*$|~wB z!noQ&qj2(0fuZCD<1ftN?rq)5MP*&(I0bKZ`{f)xfzy9-*1JM1?j;lPP)p?ej-@<?bp)VJPQj$vD%<@;I_AcA4UZ z!kYCpgg^Hv<{cXtJ~qlb&+aFm%w1?QnJe+%UL9cXsVNfi5Vy8f5exYi4ehrL0zQ+h zlV--rptKqi(#&1l=2BqcW)YmoIw>X#qnOo|7?q0%C_-R1)DnFBlNfhwWcb*5dVkVG zc06-Q@YBF(w#fh3KgiyJDH8D@Yg#KQTO@SIZxIPtOclOj7+2FiS$~-P%6*UZw~SD zK$1i}#Og&r3jyJPMI>l5mOn?TG>P)WVXeg_wdzYqlF4{hOZqaU>FJT&AWqQ4Y->T5 zU9;T#TiAwLf?W?|-m!^u$HqAF!n>q~lk>t}41Ib!$G3ZiczIxo%0)o?EQ9ihAH!4( z&zvS*N@j%=hZ}swOUg8t0C#We_Ozo19na|m%sV%6 z?)W&zb{!&hZVIigy@qQIr;<7T_uFUZhW9M=Lg#ce=%YFwWU?^A$jl%`r`U&313T{9 zcgcEp*;sX92&G>=mp!cqGsiKS>#=-53z1}6`{cVw+8?sL7SH9C|Pfclj%NE#i=0_`$w~pscQo75IdCR$al5&_MDjR zWgvYNW5qIjn{Pu#LYH+W%c6vz{2bO@n;7XIbYbdb@5Fw_ zy>S8${}Er0Wzbhs|Kj+fgVcb`KLEd@!IJmH5Fm* zSXGB@{Wc#L0^$)r9gXEom(J5W`5UGRV}nZTUmc?`Z<%#o;O=eRo|`jY(c0V9H}#f# zG$sx{5IO zt!cnCX3Y-RCbulB#P8P}pMIC#iT%n`>Q^#vzP#^ug4G9d#j~Y@KkUz~`;+Bag?ICK z;ap==w4JKf)tJro$Z&|rlb^%hcq?Q5qx|}*JrvUU1%ur5;95M}%Rj1`9QZC+3G%YTJ^+iH@76TJ5IUs257KviUck}0};`Gun#8p%)-4{~Qm z9W7N6CJH0GG}O)L%+Q#E=Mwu~+{;yp*jG=X1llTy@1xbuqf>8Zb`N!vERLb)^bPKR zA17a0Qn0H@-t~C?=okPR&2(v!J!gN)dlLs{l-577h5y?-c3izibj_Uczd!h5T08s$ zn&*ErvOBl?%#WEaP5_#k&ISVIA%y(!@2E;4NQ7+eY%T*JRhnY&*`M^A z`}hBJ-_NgEKwr=ukDh-ynO^t!@;+hGbSBf^lJ{n;>R=<)4fT}Omy;dO;N(jvXJPg0 z>z%`4+vMh|FkksdEBCimFi{v`_fR+c&OKkyTEC44Pjk$J_p`t-G%nq!tYfv(UFb+S(&55tt~9HVvfvB9>tji&fCP zs-1XKC8ll8UMqCHS&z>XK5qV3x1cPOXL>F_vyuYJ0v0P1A?|Ih;PbcD^U00`T29hC zxu54xeV0?IBV$_Y=Nw1vczWyZ{_A15E?|IzKO9JHe!TtH${>?-((#k&!?mf>q!b2} z*HqKEs*Q@41ffKPKrDn6w2_9KU7wYvtf_+K_je#IgEt0~OywMcwn% zX|JSfbuACwlpr3O;r;X>ULV=TzH|Rar3w>03jUWZ{D1$=kL?=0Ui%jxZMGx7c;^Ej z5r*C-r2Ke1P}#boY%R-Uois;QQ0cEj=QP=|G&2(!^3yrof2-}*;;s}H3{<+JghnOmi4SHI?C>**IZ@jqoTG4pvf#>9Jc0G`A zEphR1U z!!xIJsyH>IJa4Z;za;bK%TGPD>pVB`$iR|a5Rb=`^(MxxTBzHFly_UwULEzvBQd+2 zur+(u6SAUnCjzrOA7}1@_{>}lD(j?3m!?P;li8wM>_h8U6>>k0ey7G?IQzSM+r`L| zE}&gIyNtMhEG`3qMj>@8T6ZGEY6Q!rkWIE>msy4_#oY3*@o4bv8KIc)tFZP&&?`D&X^5!p^9KM5C8wZ@ zPTC6E8DZ$0MrP%VnW_q9GfUyk`Q-Qe7|(X(_IvMEVMOiwr=2kUz-f a^8WzCRjx#`v6e{y00001UKK2pfr^(w9j0AiWQ zyabF0A;U#?k2|v=aA2a#$ZG38?x?mN-bR^tbFu&}y9q>{M7}qY=y3@l z@wBV^YG_^X!@FLjLgDUAv(J(R4daS+T-ZdFpt8#)D?4P3;cDHRWO+aQwJ zuaTF8l58E50|8|R0NPn_QmH$?H|b2zAhF}MvMVNjn}BYY9ncV@;$xsy+sZPGYBMU- zoW(W@1wHGYB~4}uB%%VDWy@z~)Fa!$U|FHV!@ygJr*mbQt@WI|UE1B_mIiL_osR_` zn=_ufB|(a3p*b-G-*J3 zF?<_|r8t7IGW-Z3BQ z8+g>4blBcZ;0@ezo!LL0mcf-S#nWE~&Q2AM_hWWOKw=GSHF{|#fSs*cTz+_RCMpI` z$)hShxVo=~0?|;{`RT!_O^2FM+uFD;_=<(Y`@3{FH$5~R4E@!0X8-tN@vQ9kQ@cIQnF(-Nhw_H&%cxpAaCRi++&&HU7(S8ET z&Z#*I07TMDeo4ZJGK1mb%>Gw7JyzQ3vCEBOEb002ovPDHLkV1g%7 B$tnN< literal 0 HcmV?d00001 diff --git a/examples/NetworkGraphicsDemo/Builds/iOS/JUCE Network Graphics Demo/Images.xcassets/AppIcon.appiconset/Icon-Notifications-20@2x.png b/examples/NetworkGraphicsDemo/Builds/iOS/JUCE Network Graphics Demo/Images.xcassets/AppIcon.appiconset/Icon-Notifications-20@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f673561b35ed83f6a898a064327a18e0f68bbb9b GIT binary patch literal 2452 zcmV;F32XL=P)^p;8OQ(kUFS_E%S^%~B!Q?QNF+!ES&9jXL&73R3T=v> zsvNB>2C3Gzw)PZHD}Lzd(b{T@!62x0X(=9&Z~~eb44Wm;L&742B#Jf(Ofn2JnaM2g za&JEbLc&ajQLLYQKE3CCmixQ+xzF8z@8tS~T#xhWcgt+Vi~=T*98i)j3M3u?G|Ku3 zB@V_|hZfM9UoCHNd~1L!k1UEKPBotsxMxIBm@Dxz5jhzaITZ;~G62Afz3*4%BF>z9H=G|n1WeTh&8xq812%I>~ zUZ)y-ng^~>4_YrCMPp|T^Q!KX)S%U(#&3M-uHB(;3XrU-x99Pk^jxZvHvf){1;n1U z6kNXx^ulM*x{ku=X$1@RA#Uz(L1ZA%{2LI#3@#}TLdtY-3Atc$DjK@B<3M*U>-C?n zr^I-os-*5D2-tN2R@RmlLgBYhvCU4oC-+e(Iz{NvX6RkbV0r*xSK=$P9|JK1!4uC8 zYk~+0c*|{&Z(f4{Ct+**1{^;Bv5WeRimHWm4bj@?qbXO{l`R())3zl!D-xEBy&t4? z4}u5&3Zu6Tpjw!{m^}kT0`#7J!xdBm_5T<8`38tYz->3)j|4eIY3o1s<0<#u)P3ZQ z_M;;)a3lODm9?dXk|e)!|Ae1Q_N*n)j&Dcs$m^i~i_!WNRhW7aYR6`1pTC9T%*A-{ zmR}39D89V#O10vjt*qDa7pQ0J$DW0wHB4#4+Uv_Pv9E zdozkg&%v~Gy9GS^)7skk^3@)~)jzBj_rs}i8T0SSU5nu19q{da0|0^MXh-r7)&YmA zp|v-DEj%%;1XAAP@Vj1s>fZ~1f#c#)F|HD4`&#Gp(#}T!{CTL)un}B&WKkS1aI5YZ zy?~fPI{FX%}@VfV&E+e;;sZbqRXkgNX!D zl(CR7o~)?cQ*0g)kT}(RvzRo=p0yO-+P}c?Ubv!U41typ&{tOt(~K1m$4*DAb5cm1 z0V(fs1blBJ@=GzeWigYn6eA&GL)sv3J{ z7$7mDK;mU$HQ5kq`}eRNB0@;`|FaXGn&)9ETnjO0c9?~jRsuQyDfm4b5%TT?qV8x6 zdY}nbQyL^r24@lrE^7v>m$+-CCi73IY1if51iE~$8?j{JxK($6Fh-jjP zK84wu1esUh<-Iv!fS@GZBBw&&L{Psc20#oJ4hTU~`I7)M0Ky=TngRdCzg;Sb7(-Dn zc)}x9Nr$uFksbyp3MBsWdCvO4^U$4N#2g$TfT4p($|dd)1XBS7)2%T_;DsyzfLTli z&vWr%fJ5t<_+=1R!ZqgM5a9@5TnRv#gl_MYnB4&&F-}5?H1N$B8?3rPKuu@;UTq+? zuAlu5)E#4*0Vt(KkY`PUq3X~%4m?M2*3pNyE_ci^B$3DR(mePy4=826FhD|y!yW8} zPBn0e=GXuUfikBMO67xSdTl?_CuZUFsAM#BT)>k>Hv$0KyWKI3q$Kd5%z!g+4g_TI z4l|e+##o0+L-1)Hh!e-h)N6Ux?MV35qd2;~1sxxs0%Ht}0q=k6z#sR0j_=))f$X%z zm|~?REAVL^gp42w4w8ApNO}*S4wxCF#JZvdmWqf7Uw|#fF4w1nse6@ z2EeBp0DzOO!+5v7%FtBf-VJl>S|Zs;z84d)s)cn8s-~@e?bAPKja@aExMV5{md$`E zafIb32C*n29-DOoemW}~`_I*4)5-OQs;g_N=hf{R=?Nt2%fgX2+K(38n|%?Uwr+} z#$YV%e&uI^%00zqEg()6WNy7A%0&_YtlnZyFZBZpF!e)%M97_^^Y;0ajQxaOgI>v!^P%l`m9yYd8% S)PAG@0000CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.OSCMonitor CFBundleName OSCMonitor CFBundleDisplayName diff --git a/examples/OSCMonitor/Builds/VisualStudio2015/OSCMonitor_App.vcxproj b/examples/OSCMonitor/Builds/VisualStudio2015/OSCMonitor_App.vcxproj index eecea1d7a4..63f1c98214 100644 --- a/examples/OSCMonitor/Builds/VisualStudio2015/OSCMonitor_App.vcxproj +++ b/examples/OSCMonitor/Builds/VisualStudio2015/OSCMonitor_App.vcxproj @@ -1621,6 +1621,9 @@ true + + true + true @@ -1630,9 +1633,15 @@ true + + true + true + + true + true @@ -2301,6 +2310,7 @@ + diff --git a/examples/OSCMonitor/Builds/VisualStudio2015/OSCMonitor_App.vcxproj.filters b/examples/OSCMonitor/Builds/VisualStudio2015/OSCMonitor_App.vcxproj.filters index 87ee46d5ce..b093ff6dc4 100644 --- a/examples/OSCMonitor/Builds/VisualStudio2015/OSCMonitor_App.vcxproj.filters +++ b/examples/OSCMonitor/Builds/VisualStudio2015/OSCMonitor_App.vcxproj.filters @@ -1921,6 +1921,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1930,9 +1933,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3774,6 +3783,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/OSCMonitor/Builds/VisualStudio2017/OSCMonitor_App.vcxproj b/examples/OSCMonitor/Builds/VisualStudio2017/OSCMonitor_App.vcxproj index 1dcd730819..e42fb1d7bf 100644 --- a/examples/OSCMonitor/Builds/VisualStudio2017/OSCMonitor_App.vcxproj +++ b/examples/OSCMonitor/Builds/VisualStudio2017/OSCMonitor_App.vcxproj @@ -1621,6 +1621,9 @@ true + + true + true @@ -1630,9 +1633,15 @@ true + + true + true + + true + true @@ -2301,6 +2310,7 @@ + diff --git a/examples/OSCMonitor/Builds/VisualStudio2017/OSCMonitor_App.vcxproj.filters b/examples/OSCMonitor/Builds/VisualStudio2017/OSCMonitor_App.vcxproj.filters index c9af59eca6..519d2d6fc4 100644 --- a/examples/OSCMonitor/Builds/VisualStudio2017/OSCMonitor_App.vcxproj.filters +++ b/examples/OSCMonitor/Builds/VisualStudio2017/OSCMonitor_App.vcxproj.filters @@ -1921,6 +1921,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1930,9 +1933,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3774,6 +3783,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/OSCReceiver/Builds/Android/app/CMakeLists.txt b/examples/OSCReceiver/Builds/Android/app/CMakeLists.txt index cb0f2fca8d..04427c6c97 100644 --- a/examples/OSCReceiver/Builds/Android/app/CMakeLists.txt +++ b/examples/OSCReceiver/Builds/Android/app/CMakeLists.txt @@ -8,7 +8,7 @@ SET(BINARY_NAME "juce_jni") add_library("cpufeatures" STATIC "${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c") set_source_files_properties("${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c" PROPERTIES COMPILE_FLAGS "-Wno-sign-conversion -Wno-gnu-statement-expression") -add_definitions("-DJUCE_ANDROID=1" "-DJUCE_ANDROID_API_VERSION=10" "-DJUCE_ANDROID_ACTIVITY_CLASSNAME=com_yourcompany_oscreceiver_OSCReceiver" "-DJUCE_ANDROID_ACTIVITY_CLASSPATH=\"com/yourcompany/oscreceiver/OSCReceiver\"" "-DJUCER_ANDROIDSTUDIO_7F0E4A25=1" "-DJUCE_APP_VERSION=1.0.0" "-DJUCE_APP_VERSION_HEX=0x10000") +add_definitions("-DJUCE_ANDROID=1" "-DJUCE_ANDROID_API_VERSION=10" "-DJUCE_ANDROID_ACTIVITY_CLASSNAME=com_yourcompany_oscreceiver_OSCReceiver" "-DJUCE_ANDROID_ACTIVITY_CLASSPATH=\"com/yourcompany/oscreceiver/OSCReceiver\"" "-DJUCE_PUSH_NOTIFICATIONS=1" "-DJUCER_ANDROIDSTUDIO_7F0E4A25=1" "-DJUCE_APP_VERSION=1.0.0" "-DJUCE_APP_VERSION_HEX=0x10000") include_directories( AFTER "../../../JuceLibraryCode" @@ -16,6 +16,8 @@ include_directories( AFTER "${ANDROID_NDK}/sources/android/cpufeatures" ) +enable_language(ASM) + IF(JUCE_BUILD_CONFIGFURATION MATCHES "DEBUG") add_definitions("-DDEBUG=1" "-D_DEBUG=1") ELSEIF(JUCE_BUILD_CONFIGFURATION MATCHES "RELEASE") @@ -803,6 +805,8 @@ add_library( ${BINARY_NAME} "../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h" "../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp" "../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h" + "../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.cpp" + "../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.h" "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp" "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h" "../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp" @@ -810,7 +814,9 @@ add_library( ${BINARY_NAME} "../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp" "../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h" "../../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h" + "../../../../../modules/juce_gui_extra/native/juce_android_PushNotifications.cpp" "../../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp" + "../../../../../modules/juce_gui_extra/native/juce_ios_PushNotifications.cpp" "../../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm" "../../../../../modules/juce_gui_extra/native/juce_linux_X11_SystemTrayIcon.cpp" "../../../../../modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp" @@ -1630,6 +1636,8 @@ set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_Liv set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) @@ -1637,7 +1645,9 @@ set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_Spl set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_android_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_ios_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_linux_X11_SystemTrayIcon.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) diff --git a/examples/OSCReceiver/Builds/Android/app/build.gradle b/examples/OSCReceiver/Builds/Android/app/build.gradle index f3abcb4e93..cb59dfb30f 100644 --- a/examples/OSCReceiver/Builds/Android/app/build.gradle +++ b/examples/OSCReceiver/Builds/Android/app/build.gradle @@ -84,5 +84,6 @@ repositories { dependencies { } + } diff --git a/examples/OSCReceiver/Builds/Android/app/src/main/AndroidManifest.xml b/examples/OSCReceiver/Builds/Android/app/src/main/AndroidManifest.xml index 9d68a6ee01..69997407a1 100644 --- a/examples/OSCReceiver/Builds/Android/app/src/main/AndroidManifest.xml +++ b/examples/OSCReceiver/Builds/Android/app/src/main/AndroidManifest.xml @@ -9,7 +9,7 @@ + android:screenOrientation="unspecified" android:launchMode="singleTask"> diff --git a/examples/OSCReceiver/Builds/Android/app/src/main/java/com/yourcompany/oscreceiver/OSCReceiver.java b/examples/OSCReceiver/Builds/Android/app/src/main/java/com/yourcompany/oscreceiver/OSCReceiver.java index 7a5f09fa7e..4318245ee5 100644 --- a/examples/OSCReceiver/Builds/Android/app/src/main/java/com/yourcompany/oscreceiver/OSCReceiver.java +++ b/examples/OSCReceiver/Builds/Android/app/src/main/java/com/yourcompany/oscreceiver/OSCReceiver.java @@ -312,6 +312,7 @@ public class OSCReceiver extends Activity getApplicationInfo().dataDir); } + //============================================================================== private void hideActionBar() { // get "getActionBar" method @@ -383,6 +384,7 @@ public class OSCReceiver extends Activity private native void resumeApp(); private native void setScreenSize (int screenWidth, int screenHeight, int dpi); private native void appActivityResult (int requestCode, int resultCode, Intent data); + private native void appNewIntent (Intent intent); //============================================================================== private ViewHolder viewHolder; @@ -1450,6 +1452,15 @@ public class OSCReceiver extends Activity appActivityResult (requestCode, resultCode, data); } + @Override + protected void onNewIntent (Intent intent) + { + super.onNewIntent(intent); + setIntent(intent); + + appNewIntent (intent); + } + //============================================================================== public final Typeface getTypeFaceFromAsset (String assetName) { diff --git a/examples/OSCReceiver/Builds/LinuxMakefile/Makefile b/examples/OSCReceiver/Builds/LinuxMakefile/Makefile index 607202ba0b..3853005906 100644 --- a/examples/OSCReceiver/Builds/LinuxMakefile/Makefile +++ b/examples/OSCReceiver/Builds/LinuxMakefile/Makefile @@ -38,8 +38,8 @@ ifeq ($(CONFIG),Debug) JUCE_TARGET_APP := OSCReceiver JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif @@ -59,8 +59,8 @@ ifeq ($(CONFIG),Release) JUCE_TARGET_APP := OSCReceiver JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -fvisibility=hidden -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif diff --git a/examples/OSCReceiver/Builds/MacOSX/Info-App.plist b/examples/OSCReceiver/Builds/MacOSX/Info-App.plist index 402b3d8eba..60a0691472 100644 --- a/examples/OSCReceiver/Builds/MacOSX/Info-App.plist +++ b/examples/OSCReceiver/Builds/MacOSX/Info-App.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.OSCReceiver CFBundleName OSCReceiver CFBundleDisplayName diff --git a/examples/OSCReceiver/Builds/VisualStudio2015/OSCReceiver_App.vcxproj b/examples/OSCReceiver/Builds/VisualStudio2015/OSCReceiver_App.vcxproj index c4bdfcd9b1..0f8d906b38 100644 --- a/examples/OSCReceiver/Builds/VisualStudio2015/OSCReceiver_App.vcxproj +++ b/examples/OSCReceiver/Builds/VisualStudio2015/OSCReceiver_App.vcxproj @@ -1249,6 +1249,9 @@ true + + true + true @@ -1258,9 +1261,15 @@ true + + true + true + + true + true @@ -1705,6 +1714,7 @@ + diff --git a/examples/OSCReceiver/Builds/VisualStudio2015/OSCReceiver_App.vcxproj.filters b/examples/OSCReceiver/Builds/VisualStudio2015/OSCReceiver_App.vcxproj.filters index a5d30265f5..64aa19d925 100644 --- a/examples/OSCReceiver/Builds/VisualStudio2015/OSCReceiver_App.vcxproj.filters +++ b/examples/OSCReceiver/Builds/VisualStudio2015/OSCReceiver_App.vcxproj.filters @@ -1396,6 +1396,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1405,9 +1408,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -2649,6 +2658,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/OSCReceiver/Builds/VisualStudio2017/OSCReceiver_App.vcxproj b/examples/OSCReceiver/Builds/VisualStudio2017/OSCReceiver_App.vcxproj index a23c8b7927..445b66a591 100644 --- a/examples/OSCReceiver/Builds/VisualStudio2017/OSCReceiver_App.vcxproj +++ b/examples/OSCReceiver/Builds/VisualStudio2017/OSCReceiver_App.vcxproj @@ -1249,6 +1249,9 @@ true + + true + true @@ -1258,9 +1261,15 @@ true + + true + true + + true + true @@ -1705,6 +1714,7 @@ + diff --git a/examples/OSCReceiver/Builds/VisualStudio2017/OSCReceiver_App.vcxproj.filters b/examples/OSCReceiver/Builds/VisualStudio2017/OSCReceiver_App.vcxproj.filters index 53fc37b87b..b25821c222 100644 --- a/examples/OSCReceiver/Builds/VisualStudio2017/OSCReceiver_App.vcxproj.filters +++ b/examples/OSCReceiver/Builds/VisualStudio2017/OSCReceiver_App.vcxproj.filters @@ -1396,6 +1396,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1405,9 +1408,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -2649,6 +2658,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/OSCReceiver/Builds/iOS/Info-App.plist b/examples/OSCReceiver/Builds/iOS/Info-App.plist index c1aa700c43..53f8609b3b 100644 --- a/examples/OSCReceiver/Builds/iOS/Info-App.plist +++ b/examples/OSCReceiver/Builds/iOS/Info-App.plist @@ -10,7 +10,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.OSCReceiver CFBundleName OSCReceiver CFBundleDisplayName diff --git a/examples/OSCSender/Builds/Android/app/CMakeLists.txt b/examples/OSCSender/Builds/Android/app/CMakeLists.txt index 208214c74c..e969323173 100644 --- a/examples/OSCSender/Builds/Android/app/CMakeLists.txt +++ b/examples/OSCSender/Builds/Android/app/CMakeLists.txt @@ -8,7 +8,7 @@ SET(BINARY_NAME "juce_jni") add_library("cpufeatures" STATIC "${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c") set_source_files_properties("${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c" PROPERTIES COMPILE_FLAGS "-Wno-sign-conversion -Wno-gnu-statement-expression") -add_definitions("-DJUCE_ANDROID=1" "-DJUCE_ANDROID_API_VERSION=10" "-DJUCE_ANDROID_ACTIVITY_CLASSNAME=com_yourcompany_oscsender_OSCSender" "-DJUCE_ANDROID_ACTIVITY_CLASSPATH=\"com/yourcompany/oscsender/OSCSender\"" "-DJUCER_ANDROIDSTUDIO_7F0E4A25=1" "-DJUCE_APP_VERSION=1.0.0" "-DJUCE_APP_VERSION_HEX=0x10000") +add_definitions("-DJUCE_ANDROID=1" "-DJUCE_ANDROID_API_VERSION=10" "-DJUCE_ANDROID_ACTIVITY_CLASSNAME=com_yourcompany_oscsender_OSCSender" "-DJUCE_ANDROID_ACTIVITY_CLASSPATH=\"com/yourcompany/oscsender/OSCSender\"" "-DJUCE_PUSH_NOTIFICATIONS=1" "-DJUCER_ANDROIDSTUDIO_7F0E4A25=1" "-DJUCE_APP_VERSION=1.0.0" "-DJUCE_APP_VERSION_HEX=0x10000") include_directories( AFTER "../../../JuceLibraryCode" @@ -16,6 +16,8 @@ include_directories( AFTER "${ANDROID_NDK}/sources/android/cpufeatures" ) +enable_language(ASM) + IF(JUCE_BUILD_CONFIGFURATION MATCHES "DEBUG") add_definitions("-DDEBUG=1" "-D_DEBUG=1") ELSEIF(JUCE_BUILD_CONFIGFURATION MATCHES "RELEASE") diff --git a/examples/OSCSender/Builds/Android/app/build.gradle b/examples/OSCSender/Builds/Android/app/build.gradle index 8e47a3bf00..6d11a9218c 100644 --- a/examples/OSCSender/Builds/Android/app/build.gradle +++ b/examples/OSCSender/Builds/Android/app/build.gradle @@ -84,5 +84,6 @@ repositories { dependencies { } + } diff --git a/examples/OSCSender/Builds/Android/app/src/main/AndroidManifest.xml b/examples/OSCSender/Builds/Android/app/src/main/AndroidManifest.xml index ceeb4c12f6..f0a9b0910d 100644 --- a/examples/OSCSender/Builds/Android/app/src/main/AndroidManifest.xml +++ b/examples/OSCSender/Builds/Android/app/src/main/AndroidManifest.xml @@ -9,7 +9,7 @@ + android:screenOrientation="unspecified" android:launchMode="singleTask"> diff --git a/examples/OSCSender/Builds/Android/app/src/main/java/com/yourcompany/oscsender/OSCSender.java b/examples/OSCSender/Builds/Android/app/src/main/java/com/yourcompany/oscsender/OSCSender.java index f74a013c41..b30e46b333 100644 --- a/examples/OSCSender/Builds/Android/app/src/main/java/com/yourcompany/oscsender/OSCSender.java +++ b/examples/OSCSender/Builds/Android/app/src/main/java/com/yourcompany/oscsender/OSCSender.java @@ -312,6 +312,7 @@ public class OSCSender extends Activity getApplicationInfo().dataDir); } + //============================================================================== private void hideActionBar() { // get "getActionBar" method @@ -383,6 +384,7 @@ public class OSCSender extends Activity private native void resumeApp(); private native void setScreenSize (int screenWidth, int screenHeight, int dpi); private native void appActivityResult (int requestCode, int resultCode, Intent data); + private native void appNewIntent (Intent intent); //============================================================================== private ViewHolder viewHolder; @@ -1450,6 +1452,15 @@ public class OSCSender extends Activity appActivityResult (requestCode, resultCode, data); } + @Override + protected void onNewIntent (Intent intent) + { + super.onNewIntent(intent); + setIntent(intent); + + appNewIntent (intent); + } + //============================================================================== public final Typeface getTypeFaceFromAsset (String assetName) { diff --git a/examples/OSCSender/Builds/LinuxMakefile/Makefile b/examples/OSCSender/Builds/LinuxMakefile/Makefile index bfcf0bffe1..c024824ddc 100644 --- a/examples/OSCSender/Builds/LinuxMakefile/Makefile +++ b/examples/OSCSender/Builds/LinuxMakefile/Makefile @@ -38,8 +38,8 @@ ifeq ($(CONFIG),Debug) JUCE_TARGET_APP := OSCSender JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif @@ -59,8 +59,8 @@ ifeq ($(CONFIG),Release) JUCE_TARGET_APP := OSCSender JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama) -fvisibility=hidden -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif diff --git a/examples/OSCSender/Builds/MacOSX/Info-App.plist b/examples/OSCSender/Builds/MacOSX/Info-App.plist index 6f7a4ef55e..aa3b883380 100644 --- a/examples/OSCSender/Builds/MacOSX/Info-App.plist +++ b/examples/OSCSender/Builds/MacOSX/Info-App.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.OSCSender CFBundleName OSCSender CFBundleDisplayName diff --git a/examples/OSCSender/Builds/iOS/Info-App.plist b/examples/OSCSender/Builds/iOS/Info-App.plist index 6ba6bc8cd8..d13ff17015 100644 --- a/examples/OSCSender/Builds/iOS/Info-App.plist +++ b/examples/OSCSender/Builds/iOS/Info-App.plist @@ -10,7 +10,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.OSCSender CFBundleName OSCSender CFBundleDisplayName diff --git a/examples/OpenGLAppExample/Builds/MacOSX/Info-App.plist b/examples/OpenGLAppExample/Builds/MacOSX/Info-App.plist index f07f4662fb..6c275d69bf 100644 --- a/examples/OpenGLAppExample/Builds/MacOSX/Info-App.plist +++ b/examples/OpenGLAppExample/Builds/MacOSX/Info-App.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.OpenGLAppExample CFBundleName OpenGLAppExample CFBundleDisplayName diff --git a/examples/OpenGLAppExample/Builds/VisualStudio2017/OpenGLAppExample_App.vcxproj b/examples/OpenGLAppExample/Builds/VisualStudio2017/OpenGLAppExample_App.vcxproj index c3429872a5..36778b2c30 100644 --- a/examples/OpenGLAppExample/Builds/VisualStudio2017/OpenGLAppExample_App.vcxproj +++ b/examples/OpenGLAppExample/Builds/VisualStudio2017/OpenGLAppExample_App.vcxproj @@ -1622,6 +1622,9 @@ true + + true + true @@ -1631,9 +1634,15 @@ true + + true + true + + true + true @@ -2274,6 +2283,7 @@ + diff --git a/examples/OpenGLAppExample/Builds/VisualStudio2017/OpenGLAppExample_App.vcxproj.filters b/examples/OpenGLAppExample/Builds/VisualStudio2017/OpenGLAppExample_App.vcxproj.filters index 107de0f029..06c59a5032 100644 --- a/examples/OpenGLAppExample/Builds/VisualStudio2017/OpenGLAppExample_App.vcxproj.filters +++ b/examples/OpenGLAppExample/Builds/VisualStudio2017/OpenGLAppExample_App.vcxproj.filters @@ -1921,6 +1921,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1930,9 +1933,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3744,6 +3753,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/OpenGLAppExample/Builds/iOS/Info-App.plist b/examples/OpenGLAppExample/Builds/iOS/Info-App.plist index 46280fb250..57cca82d08 100644 --- a/examples/OpenGLAppExample/Builds/iOS/Info-App.plist +++ b/examples/OpenGLAppExample/Builds/iOS/Info-App.plist @@ -10,7 +10,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.OpenGLAppExample CFBundleName OpenGLAppExample CFBundleDisplayName diff --git a/examples/PluckedStringsDemo/Builds/MacOSX/Info-App.plist b/examples/PluckedStringsDemo/Builds/MacOSX/Info-App.plist index 6c46bed28c..4e18d96572 100644 --- a/examples/PluckedStringsDemo/Builds/MacOSX/Info-App.plist +++ b/examples/PluckedStringsDemo/Builds/MacOSX/Info-App.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.PluckedStringsDemo CFBundleName PluckedStringsDemo CFBundleDisplayName diff --git a/examples/PluckedStringsDemo/Builds/VisualStudio2013/PluckedStringsDemo_App.vcxproj b/examples/PluckedStringsDemo/Builds/VisualStudio2013/PluckedStringsDemo_App.vcxproj index 7cbd0b220a..53fe24f0ed 100644 --- a/examples/PluckedStringsDemo/Builds/VisualStudio2013/PluckedStringsDemo_App.vcxproj +++ b/examples/PluckedStringsDemo/Builds/VisualStudio2013/PluckedStringsDemo_App.vcxproj @@ -1648,6 +1648,9 @@ true + + true + true @@ -1657,9 +1660,15 @@ true + + true + true + + true + true @@ -2266,6 +2275,7 @@ + diff --git a/examples/PluckedStringsDemo/Builds/VisualStudio2013/PluckedStringsDemo_App.vcxproj.filters b/examples/PluckedStringsDemo/Builds/VisualStudio2013/PluckedStringsDemo_App.vcxproj.filters index 7285c1a0a6..ca2e8a094e 100644 --- a/examples/PluckedStringsDemo/Builds/VisualStudio2013/PluckedStringsDemo_App.vcxproj.filters +++ b/examples/PluckedStringsDemo/Builds/VisualStudio2013/PluckedStringsDemo_App.vcxproj.filters @@ -1933,6 +1933,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1942,9 +1945,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3726,6 +3735,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/PluckedStringsDemo/Builds/VisualStudio2017/PluckedStringsDemo_App.vcxproj b/examples/PluckedStringsDemo/Builds/VisualStudio2017/PluckedStringsDemo_App.vcxproj index 8e4d297cc4..0be075ed5b 100644 --- a/examples/PluckedStringsDemo/Builds/VisualStudio2017/PluckedStringsDemo_App.vcxproj +++ b/examples/PluckedStringsDemo/Builds/VisualStudio2017/PluckedStringsDemo_App.vcxproj @@ -1648,6 +1648,9 @@ true + + true + true @@ -1657,9 +1660,15 @@ true + + true + true + + true + true @@ -2266,6 +2275,7 @@ + diff --git a/examples/PluckedStringsDemo/Builds/VisualStudio2017/PluckedStringsDemo_App.vcxproj.filters b/examples/PluckedStringsDemo/Builds/VisualStudio2017/PluckedStringsDemo_App.vcxproj.filters index 21e9deb3f2..842349cc50 100644 --- a/examples/PluckedStringsDemo/Builds/VisualStudio2017/PluckedStringsDemo_App.vcxproj.filters +++ b/examples/PluckedStringsDemo/Builds/VisualStudio2017/PluckedStringsDemo_App.vcxproj.filters @@ -1933,6 +1933,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1942,9 +1945,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3726,6 +3735,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/PlugInSamples/Arpeggiator/Builds/MacOSX/Info-AU.plist b/examples/PlugInSamples/Arpeggiator/Builds/MacOSX/Info-AU.plist index 3e571482cf..248033bb1f 100644 --- a/examples/PlugInSamples/Arpeggiator/Builds/MacOSX/Info-AU.plist +++ b/examples/PlugInSamples/Arpeggiator/Builds/MacOSX/Info-AU.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.Arpeggiator CFBundleName Arpeggiator CFBundleDisplayName diff --git a/examples/PlugInSamples/Arpeggiator/Builds/MacOSX/Info-VST.plist b/examples/PlugInSamples/Arpeggiator/Builds/MacOSX/Info-VST.plist index 0198096a5e..4187f300d6 100644 --- a/examples/PlugInSamples/Arpeggiator/Builds/MacOSX/Info-VST.plist +++ b/examples/PlugInSamples/Arpeggiator/Builds/MacOSX/Info-VST.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.Arpeggiator CFBundleName Arpeggiator CFBundleDisplayName diff --git a/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2015/Arpeggiator_SharedCode.vcxproj b/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2015/Arpeggiator_SharedCode.vcxproj index 21ef9f0e12..f8cba1dfff 100644 --- a/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2015/Arpeggiator_SharedCode.vcxproj +++ b/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2015/Arpeggiator_SharedCode.vcxproj @@ -1699,6 +1699,9 @@ true + + true + true @@ -1708,9 +1711,15 @@ true + + true + true + + true + true @@ -2396,6 +2405,7 @@ + diff --git a/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2015/Arpeggiator_SharedCode.vcxproj.filters b/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2015/Arpeggiator_SharedCode.vcxproj.filters index 84542798e9..7a97f0190b 100644 --- a/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2015/Arpeggiator_SharedCode.vcxproj.filters +++ b/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2015/Arpeggiator_SharedCode.vcxproj.filters @@ -2011,6 +2011,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2020,9 +2023,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3969,6 +3978,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2017/Arpeggiator_SharedCode.vcxproj b/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2017/Arpeggiator_SharedCode.vcxproj index f9c4638a40..d3dfde9f4c 100644 --- a/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2017/Arpeggiator_SharedCode.vcxproj +++ b/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2017/Arpeggiator_SharedCode.vcxproj @@ -1693,6 +1693,9 @@ true + + true + true @@ -1702,9 +1705,15 @@ true + + true + true + + true + true @@ -2390,6 +2399,7 @@ + diff --git a/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2017/Arpeggiator_SharedCode.vcxproj.filters b/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2017/Arpeggiator_SharedCode.vcxproj.filters index 17d37ad339..b104478222 100644 --- a/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2017/Arpeggiator_SharedCode.vcxproj.filters +++ b/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2017/Arpeggiator_SharedCode.vcxproj.filters @@ -2011,6 +2011,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2020,9 +2023,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3969,6 +3978,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/PlugInSamples/GainPlugIn/Builds/MacOSX/Info-AU.plist b/examples/PlugInSamples/GainPlugIn/Builds/MacOSX/Info-AU.plist index c0032e2308..86a220415a 100644 --- a/examples/PlugInSamples/GainPlugIn/Builds/MacOSX/Info-AU.plist +++ b/examples/PlugInSamples/GainPlugIn/Builds/MacOSX/Info-AU.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.GainPlugIn CFBundleName GainPlugIn CFBundleDisplayName diff --git a/examples/PlugInSamples/GainPlugIn/Builds/MacOSX/Info-VST.plist b/examples/PlugInSamples/GainPlugIn/Builds/MacOSX/Info-VST.plist index 6094d2600e..c84708bd12 100644 --- a/examples/PlugInSamples/GainPlugIn/Builds/MacOSX/Info-VST.plist +++ b/examples/PlugInSamples/GainPlugIn/Builds/MacOSX/Info-VST.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.GainPlugIn CFBundleName GainPlugIn CFBundleDisplayName diff --git a/examples/PlugInSamples/GainPlugIn/Builds/MacOSX/Info-VST3.plist b/examples/PlugInSamples/GainPlugIn/Builds/MacOSX/Info-VST3.plist index 6094d2600e..c84708bd12 100644 --- a/examples/PlugInSamples/GainPlugIn/Builds/MacOSX/Info-VST3.plist +++ b/examples/PlugInSamples/GainPlugIn/Builds/MacOSX/Info-VST3.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.GainPlugIn CFBundleName GainPlugIn CFBundleDisplayName diff --git a/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2015/GainPlugIn_SharedCode.vcxproj b/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2015/GainPlugIn_SharedCode.vcxproj index 32de67a978..86a9adad83 100644 --- a/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2015/GainPlugIn_SharedCode.vcxproj +++ b/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2015/GainPlugIn_SharedCode.vcxproj @@ -1699,6 +1699,9 @@ true + + true + true @@ -1708,9 +1711,15 @@ true + + true + true + + true + true @@ -2396,6 +2405,7 @@ + diff --git a/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2015/GainPlugIn_SharedCode.vcxproj.filters b/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2015/GainPlugIn_SharedCode.vcxproj.filters index a9b799d587..b4009b0a63 100644 --- a/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2015/GainPlugIn_SharedCode.vcxproj.filters +++ b/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2015/GainPlugIn_SharedCode.vcxproj.filters @@ -2011,6 +2011,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2020,9 +2023,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3969,6 +3978,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2017/GainPlugIn_SharedCode.vcxproj b/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2017/GainPlugIn_SharedCode.vcxproj index ecdc93eba3..cdabbfd282 100644 --- a/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2017/GainPlugIn_SharedCode.vcxproj +++ b/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2017/GainPlugIn_SharedCode.vcxproj @@ -1693,6 +1693,9 @@ true + + true + true @@ -1702,9 +1705,15 @@ true + + true + true + + true + true @@ -2390,6 +2399,7 @@ + diff --git a/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2017/GainPlugIn_SharedCode.vcxproj.filters b/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2017/GainPlugIn_SharedCode.vcxproj.filters index a333e3f721..b46ac29193 100644 --- a/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2017/GainPlugIn_SharedCode.vcxproj.filters +++ b/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2017/GainPlugIn_SharedCode.vcxproj.filters @@ -2011,6 +2011,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2020,9 +2023,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3969,6 +3978,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/PlugInSamples/InterAppAudioEffect/Builds/iOS/Info-Standalone_Plugin.plist b/examples/PlugInSamples/InterAppAudioEffect/Builds/iOS/Info-Standalone_Plugin.plist index 89f52de629..ad6b738d7a 100644 --- a/examples/PlugInSamples/InterAppAudioEffect/Builds/iOS/Info-Standalone_Plugin.plist +++ b/examples/PlugInSamples/InterAppAudioEffect/Builds/iOS/Info-Standalone_Plugin.plist @@ -12,7 +12,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.InterAppAudioEffect CFBundleName InterAppAudioEffect CFBundleDisplayName diff --git a/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/Info-AAX.plist b/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/Info-AAX.plist index e8e12278c1..46777f2e97 100644 --- a/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/Info-AAX.plist +++ b/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/Info-AAX.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.MultiOutSynth CFBundleName MultiOutSynth CFBundleDisplayName diff --git a/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/Info-AU.plist b/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/Info-AU.plist index de5f84d378..e53655acd6 100644 --- a/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/Info-AU.plist +++ b/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/Info-AU.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.MultiOutSynth CFBundleName MultiOutSynth CFBundleDisplayName diff --git a/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/Info-VST.plist b/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/Info-VST.plist index f7dc1aec09..0d4841d9a5 100644 --- a/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/Info-VST.plist +++ b/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/Info-VST.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.MultiOutSynth CFBundleName MultiOutSynth CFBundleDisplayName diff --git a/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/Info-VST3.plist b/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/Info-VST3.plist index f7dc1aec09..0d4841d9a5 100644 --- a/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/Info-VST3.plist +++ b/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/Info-VST3.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.MultiOutSynth CFBundleName MultiOutSynth CFBundleDisplayName diff --git a/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2015/MultiOutSynth_SharedCode.vcxproj b/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2015/MultiOutSynth_SharedCode.vcxproj index ef1b47eae3..f2e99ba689 100644 --- a/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2015/MultiOutSynth_SharedCode.vcxproj +++ b/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2015/MultiOutSynth_SharedCode.vcxproj @@ -1699,6 +1699,9 @@ true + + true + true @@ -1708,9 +1711,15 @@ true + + true + true + + true + true @@ -2397,6 +2406,7 @@ + diff --git a/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2015/MultiOutSynth_SharedCode.vcxproj.filters b/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2015/MultiOutSynth_SharedCode.vcxproj.filters index d220a84072..d94d233adc 100644 --- a/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2015/MultiOutSynth_SharedCode.vcxproj.filters +++ b/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2015/MultiOutSynth_SharedCode.vcxproj.filters @@ -2014,6 +2014,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2023,9 +2026,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3975,6 +3984,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2017/MultiOutSynth_SharedCode.vcxproj b/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2017/MultiOutSynth_SharedCode.vcxproj index a02d096dd6..0239676f36 100644 --- a/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2017/MultiOutSynth_SharedCode.vcxproj +++ b/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2017/MultiOutSynth_SharedCode.vcxproj @@ -1693,6 +1693,9 @@ true + + true + true @@ -1702,9 +1705,15 @@ true + + true + true + + true + true @@ -2391,6 +2400,7 @@ + diff --git a/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2017/MultiOutSynth_SharedCode.vcxproj.filters b/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2017/MultiOutSynth_SharedCode.vcxproj.filters index d5a913295d..375ec22b18 100644 --- a/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2017/MultiOutSynth_SharedCode.vcxproj.filters +++ b/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2017/MultiOutSynth_SharedCode.vcxproj.filters @@ -2014,6 +2014,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2023,9 +2026,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3975,6 +3984,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/PlugInSamples/NoiseGate/Builds/MacOSX/Info-AAX.plist b/examples/PlugInSamples/NoiseGate/Builds/MacOSX/Info-AAX.plist index fe57df513a..1e24ff5fc6 100644 --- a/examples/PlugInSamples/NoiseGate/Builds/MacOSX/Info-AAX.plist +++ b/examples/PlugInSamples/NoiseGate/Builds/MacOSX/Info-AAX.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.NoiseGate CFBundleName NoiseGate CFBundleDisplayName diff --git a/examples/PlugInSamples/NoiseGate/Builds/MacOSX/Info-AU.plist b/examples/PlugInSamples/NoiseGate/Builds/MacOSX/Info-AU.plist index 172c54269c..2a09326109 100644 --- a/examples/PlugInSamples/NoiseGate/Builds/MacOSX/Info-AU.plist +++ b/examples/PlugInSamples/NoiseGate/Builds/MacOSX/Info-AU.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.NoiseGate CFBundleName NoiseGate CFBundleDisplayName diff --git a/examples/PlugInSamples/NoiseGate/Builds/MacOSX/Info-VST.plist b/examples/PlugInSamples/NoiseGate/Builds/MacOSX/Info-VST.plist index 7356377ca8..834a19e871 100644 --- a/examples/PlugInSamples/NoiseGate/Builds/MacOSX/Info-VST.plist +++ b/examples/PlugInSamples/NoiseGate/Builds/MacOSX/Info-VST.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.NoiseGate CFBundleName NoiseGate CFBundleDisplayName diff --git a/examples/PlugInSamples/NoiseGate/Builds/MacOSX/Info-VST3.plist b/examples/PlugInSamples/NoiseGate/Builds/MacOSX/Info-VST3.plist index 7356377ca8..834a19e871 100644 --- a/examples/PlugInSamples/NoiseGate/Builds/MacOSX/Info-VST3.plist +++ b/examples/PlugInSamples/NoiseGate/Builds/MacOSX/Info-VST3.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.NoiseGate CFBundleName NoiseGate CFBundleDisplayName diff --git a/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2015/NoiseGate_SharedCode.vcxproj b/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2015/NoiseGate_SharedCode.vcxproj index 66b07ddbd8..00e1030966 100644 --- a/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2015/NoiseGate_SharedCode.vcxproj +++ b/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2015/NoiseGate_SharedCode.vcxproj @@ -1699,6 +1699,9 @@ true + + true + true @@ -1708,9 +1711,15 @@ true + + true + true + + true + true @@ -2396,6 +2405,7 @@ + diff --git a/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2015/NoiseGate_SharedCode.vcxproj.filters b/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2015/NoiseGate_SharedCode.vcxproj.filters index 98d0f400bf..efc990bd57 100644 --- a/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2015/NoiseGate_SharedCode.vcxproj.filters +++ b/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2015/NoiseGate_SharedCode.vcxproj.filters @@ -2011,6 +2011,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2020,9 +2023,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3969,6 +3978,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2017/NoiseGate_SharedCode.vcxproj b/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2017/NoiseGate_SharedCode.vcxproj index 12889d122a..5e2877996e 100644 --- a/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2017/NoiseGate_SharedCode.vcxproj +++ b/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2017/NoiseGate_SharedCode.vcxproj @@ -1693,6 +1693,9 @@ true + + true + true @@ -1702,9 +1705,15 @@ true + + true + true + + true + true @@ -2390,6 +2399,7 @@ + diff --git a/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2017/NoiseGate_SharedCode.vcxproj.filters b/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2017/NoiseGate_SharedCode.vcxproj.filters index 65ab205f51..45adbb981a 100644 --- a/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2017/NoiseGate_SharedCode.vcxproj.filters +++ b/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2017/NoiseGate_SharedCode.vcxproj.filters @@ -2011,6 +2011,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2020,9 +2023,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3969,6 +3978,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/PlugInSamples/Surround/Builds/LinuxMakefile/Makefile b/examples/PlugInSamples/Surround/Builds/LinuxMakefile/Makefile index 98eb6928db..8b8f5d0c91 100644 --- a/examples/PlugInSamples/Surround/Builds/LinuxMakefile/Makefile +++ b/examples/PlugInSamples/Surround/Builds/LinuxMakefile/Makefile @@ -44,8 +44,8 @@ ifeq ($(CONFIG),Debug) JUCE_TARGET_SHARED_CODE := Surround.a JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -fPIC -g -ggdb -O0 -Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -lGL -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -lGL -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif @@ -71,8 +71,8 @@ ifeq ($(CONFIG),Release) JUCE_TARGET_SHARED_CODE := Surround.a JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -fPIC -O3 -Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -lGL -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -fvisibility=hidden -lGL -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif diff --git a/examples/PlugInSamples/Surround/Builds/MacOSX/Info-AAX.plist b/examples/PlugInSamples/Surround/Builds/MacOSX/Info-AAX.plist index 6005db0b13..1a3be54286 100644 --- a/examples/PlugInSamples/Surround/Builds/MacOSX/Info-AAX.plist +++ b/examples/PlugInSamples/Surround/Builds/MacOSX/Info-AAX.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.Surround CFBundleName Surround CFBundleDisplayName diff --git a/examples/PlugInSamples/Surround/Builds/MacOSX/Info-AU.plist b/examples/PlugInSamples/Surround/Builds/MacOSX/Info-AU.plist index 82db395131..9cc15666e7 100644 --- a/examples/PlugInSamples/Surround/Builds/MacOSX/Info-AU.plist +++ b/examples/PlugInSamples/Surround/Builds/MacOSX/Info-AU.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.Surround CFBundleName Surround CFBundleDisplayName diff --git a/examples/PlugInSamples/Surround/Builds/MacOSX/Info-VST.plist b/examples/PlugInSamples/Surround/Builds/MacOSX/Info-VST.plist index 48ab10cae8..7521e82d41 100644 --- a/examples/PlugInSamples/Surround/Builds/MacOSX/Info-VST.plist +++ b/examples/PlugInSamples/Surround/Builds/MacOSX/Info-VST.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.Surround CFBundleName Surround CFBundleDisplayName diff --git a/examples/PlugInSamples/Surround/Builds/MacOSX/Info-VST3.plist b/examples/PlugInSamples/Surround/Builds/MacOSX/Info-VST3.plist index 48ab10cae8..7521e82d41 100644 --- a/examples/PlugInSamples/Surround/Builds/MacOSX/Info-VST3.plist +++ b/examples/PlugInSamples/Surround/Builds/MacOSX/Info-VST3.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.Surround CFBundleName Surround CFBundleDisplayName diff --git a/examples/PlugInSamples/Surround/Builds/VisualStudio2015/Surround_SharedCode.vcxproj b/examples/PlugInSamples/Surround/Builds/VisualStudio2015/Surround_SharedCode.vcxproj index 5caf622df9..9f6e918be6 100644 --- a/examples/PlugInSamples/Surround/Builds/VisualStudio2015/Surround_SharedCode.vcxproj +++ b/examples/PlugInSamples/Surround/Builds/VisualStudio2015/Surround_SharedCode.vcxproj @@ -1693,6 +1693,9 @@ true + + true + true @@ -1702,9 +1705,15 @@ true + + true + true + + true + true @@ -2391,6 +2400,7 @@ + diff --git a/examples/PlugInSamples/Surround/Builds/VisualStudio2015/Surround_SharedCode.vcxproj.filters b/examples/PlugInSamples/Surround/Builds/VisualStudio2015/Surround_SharedCode.vcxproj.filters index e0b7c25052..b60239b86f 100644 --- a/examples/PlugInSamples/Surround/Builds/VisualStudio2015/Surround_SharedCode.vcxproj.filters +++ b/examples/PlugInSamples/Surround/Builds/VisualStudio2015/Surround_SharedCode.vcxproj.filters @@ -2011,6 +2011,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2020,9 +2023,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3972,6 +3981,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/PlugInSamples/Surround/Builds/VisualStudio2017/Surround_SharedCode.vcxproj b/examples/PlugInSamples/Surround/Builds/VisualStudio2017/Surround_SharedCode.vcxproj index f058c61c3e..215304b546 100644 --- a/examples/PlugInSamples/Surround/Builds/VisualStudio2017/Surround_SharedCode.vcxproj +++ b/examples/PlugInSamples/Surround/Builds/VisualStudio2017/Surround_SharedCode.vcxproj @@ -1693,6 +1693,9 @@ true + + true + true @@ -1702,9 +1705,15 @@ true + + true + true + + true + true @@ -2391,6 +2400,7 @@ + diff --git a/examples/PlugInSamples/Surround/Builds/VisualStudio2017/Surround_SharedCode.vcxproj.filters b/examples/PlugInSamples/Surround/Builds/VisualStudio2017/Surround_SharedCode.vcxproj.filters index f946f07964..1a55903cc7 100644 --- a/examples/PlugInSamples/Surround/Builds/VisualStudio2017/Surround_SharedCode.vcxproj.filters +++ b/examples/PlugInSamples/Surround/Builds/VisualStudio2017/Surround_SharedCode.vcxproj.filters @@ -2011,6 +2011,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2020,9 +2023,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3972,6 +3981,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/PushNotificationsDemo/Builds/Android/app/CMakeLists.txt b/examples/PushNotificationsDemo/Builds/Android/app/CMakeLists.txt new file mode 100644 index 0000000000..63d03b5d44 --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/Android/app/CMakeLists.txt @@ -0,0 +1,2397 @@ +# Automatically generated makefile, created by the Projucer +# Don't edit this file! Your changes will be overwritten when you re-save the Projucer project! + +cmake_minimum_required(VERSION 3.4.1) + +SET(BINARY_NAME "juce_jni") + +add_library("cpufeatures" STATIC "${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c") +set_source_files_properties("${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c" PROPERTIES COMPILE_FLAGS "-Wno-sign-conversion -Wno-gnu-statement-expression") + +add_definitions("-DJUCE_ANDROID=1" "-DJUCE_ANDROID_API_VERSION=26" "-DJUCE_ANDROID_ACTIVITY_CLASSNAME=com_juce_pushnotificationsdemo_PushNotificationsDemo" "-DJUCE_ANDROID_ACTIVITY_CLASSPATH=\"com/juce/pushnotificationsdemo/PushNotificationsDemo\"" "-DJUCE_PUSH_NOTIFICATIONS=1" "-DJUCE_FIREBASE_INSTANCE_ID_SERVICE_CLASSNAME=com_juce_pushnotificationsdemo_JuceFirebaseInstanceIdService" "-DJUCE_FIREBASE_MESSAGING_SERVICE_CLASSNAME=com_juce_pushnotificationsdemo_JuceFirebaseMessagingService" "-DJUCE_ANDROID_GL_ES_VERSION_3_0=1" "-DJUCER_ANDROIDSTUDIO_7F0E4A25=1" "-DJUCE_APP_VERSION=1.0.0" "-DJUCE_APP_VERSION_HEX=0x10000") + +include_directories( AFTER + "../../../JuceLibraryCode" + "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules" + "${ANDROID_NDK}/sources/android/cpufeatures" +) + +enable_language(ASM) + +IF(JUCE_BUILD_CONFIGFURATION MATCHES "DEBUG") + add_definitions("-DDEBUG=1" "-D_DEBUG=1") +ELSEIF(JUCE_BUILD_CONFIGFURATION MATCHES "RELEASE") + add_definitions("-DNDEBUG=1") +ELSE(JUCE_BUILD_CONFIGFURATION MATCHES "DEBUG") + MESSAGE( FATAL_ERROR "No matching build-configuration found." ) +ENDIF(JUCE_BUILD_CONFIGFURATION MATCHES "DEBUG") + +add_library( ${BINARY_NAME} + + SHARED + + "../../../BinaryResources/images/ic_stat_name.png" + "../../../BinaryResources/images/ic_stat_name2.png" + "../../../BinaryResources/images/ic_stat_name3.png" + "../../../BinaryResources/images/ic_stat_name4.png" + "../../../BinaryResources/images/ic_stat_name5.png" + "../../../BinaryResources/images/ic_stat_name6.png" + "../../../BinaryResources/images/ic_stat_name7.png" + "../../../BinaryResources/images/ic_stat_name8.png" + "../../../BinaryResources/images/ic_stat_name9.png" + "../../../BinaryResources/images/ic_stat_name10.png" + "../../../BinaryResources/sounds/demonstrative.caf" + "../../../BinaryResources/sounds/demonstrative.mp3" + "../../../BinaryResources/sounds/isntit.caf" + "../../../BinaryResources/sounds/isntit.mp3" + "../../../BinaryResources/sounds/jinglebellssms.caf" + "../../../BinaryResources/sounds/jinglebellssms.mp3" + "../../../BinaryResources/sounds/served.caf" + "../../../BinaryResources/sounds/served.mp3" + "../../../BinaryResources/sounds/solemn.caf" + "../../../BinaryResources/sounds/solemn.mp3" + "../../../Source/MainComponent.cpp" + "../../../Source/MainComponent.h" + "../../../Source/Main.cpp" + "../../../../../modules/juce_audio_basics/audio_play_head/juce_AudioPlayHead.h" + "../../../../../modules/juce_audio_basics/buffers/juce_AudioChannelSet.cpp" + "../../../../../modules/juce_audio_basics/buffers/juce_AudioChannelSet.h" + "../../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.cpp" + "../../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.h" + "../../../../../modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h" + "../../../../../modules/juce_audio_basics/buffers/juce_FloatVectorOperations.cpp" + "../../../../../modules/juce_audio_basics/buffers/juce_FloatVectorOperations.h" + "../../../../../modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.cpp" + "../../../../../modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.h" + "../../../../../modules/juce_audio_basics/effects/juce_Decibels.h" + "../../../../../modules/juce_audio_basics/effects/juce_IIRFilter.cpp" + "../../../../../modules/juce_audio_basics/effects/juce_IIRFilter.h" + "../../../../../modules/juce_audio_basics/effects/juce_LagrangeInterpolator.cpp" + "../../../../../modules/juce_audio_basics/effects/juce_LagrangeInterpolator.h" + "../../../../../modules/juce_audio_basics/effects/juce_LinearSmoothedValue.h" + "../../../../../modules/juce_audio_basics/effects/juce_Reverb.h" + "../../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.cpp" + "../../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.h" + "../../../../../modules/juce_audio_basics/midi/juce_MidiFile.cpp" + "../../../../../modules/juce_audio_basics/midi/juce_MidiFile.h" + "../../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.cpp" + "../../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.h" + "../../../../../modules/juce_audio_basics/midi/juce_MidiMessage.cpp" + "../../../../../modules/juce_audio_basics/midi/juce_MidiMessage.h" + "../../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.cpp" + "../../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.h" + "../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.cpp" + "../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.h" + "../../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.cpp" + "../../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.h" + "../../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.cpp" + "../../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.h" + "../../../../../modules/juce_audio_basics/mpe/juce_MPENote.cpp" + "../../../../../modules/juce_audio_basics/mpe/juce_MPENote.h" + "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiser.cpp" + "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiser.h" + "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.cpp" + "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.h" + "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.cpp" + "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.h" + "../../../../../modules/juce_audio_basics/mpe/juce_MPEValue.cpp" + "../../../../../modules/juce_audio_basics/mpe/juce_MPEValue.h" + "../../../../../modules/juce_audio_basics/mpe/juce_MPEZone.cpp" + "../../../../../modules/juce_audio_basics/mpe/juce_MPEZone.h" + "../../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.cpp" + "../../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.h" + "../../../../../modules/juce_audio_basics/native/juce_mac_CoreAudioLayouts.h" + "../../../../../modules/juce_audio_basics/sources/juce_AudioSource.h" + "../../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp" + "../../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.h" + "../../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.cpp" + "../../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.h" + "../../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.cpp" + "../../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.h" + "../../../../../modules/juce_audio_basics/sources/juce_MemoryAudioSource.cpp" + "../../../../../modules/juce_audio_basics/sources/juce_MemoryAudioSource.h" + "../../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.cpp" + "../../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.h" + "../../../../../modules/juce_audio_basics/sources/juce_PositionableAudioSource.h" + "../../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp" + "../../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.h" + "../../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.cpp" + "../../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.h" + "../../../../../modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.cpp" + "../../../../../modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.h" + "../../../../../modules/juce_audio_basics/synthesisers/juce_Synthesiser.cpp" + "../../../../../modules/juce_audio_basics/synthesisers/juce_Synthesiser.h" + "../../../../../modules/juce_audio_basics/juce_audio_basics.cpp" + "../../../../../modules/juce_audio_basics/juce_audio_basics.mm" + "../../../../../modules/juce_audio_basics/juce_audio_basics.h" + "../../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp" + "../../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h" + "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.cpp" + "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.h" + "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.cpp" + "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.h" + "../../../../../modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h" + "../../../../../modules/juce_audio_devices/midi_io/juce_MidiInput.h" + "../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp" + "../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.h" + "../../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.cpp" + "../../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.h" + "../../../../../modules/juce_audio_devices/native/juce_android_Audio.cpp" + "../../../../../modules/juce_audio_devices/native/juce_android_Midi.cpp" + "../../../../../modules/juce_audio_devices/native/juce_android_OpenSL.cpp" + "../../../../../modules/juce_audio_devices/native/juce_ios_Audio.cpp" + "../../../../../modules/juce_audio_devices/native/juce_ios_Audio.h" + "../../../../../modules/juce_audio_devices/native/juce_linux_ALSA.cpp" + "../../../../../modules/juce_audio_devices/native/juce_linux_JackAudio.cpp" + "../../../../../modules/juce_audio_devices/native/juce_linux_Midi.cpp" + "../../../../../modules/juce_audio_devices/native/juce_mac_CoreAudio.cpp" + "../../../../../modules/juce_audio_devices/native/juce_mac_CoreMidi.cpp" + "../../../../../modules/juce_audio_devices/native/juce_MidiDataConcatenator.h" + "../../../../../modules/juce_audio_devices/native/juce_win32_ASIO.cpp" + "../../../../../modules/juce_audio_devices/native/juce_win32_DirectSound.cpp" + "../../../../../modules/juce_audio_devices/native/juce_win32_Midi.cpp" + "../../../../../modules/juce_audio_devices/native/juce_win32_WASAPI.cpp" + "../../../../../modules/juce_audio_devices/sources/juce_AudioSourcePlayer.cpp" + "../../../../../modules/juce_audio_devices/sources/juce_AudioSourcePlayer.h" + "../../../../../modules/juce_audio_devices/sources/juce_AudioTransportSource.cpp" + "../../../../../modules/juce_audio_devices/sources/juce_AudioTransportSource.h" + "../../../../../modules/juce_audio_devices/juce_audio_devices.cpp" + "../../../../../modules/juce_audio_devices/juce_audio_devices.mm" + "../../../../../modules/juce_audio_devices/juce_audio_devices.h" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/all.h" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/bitmath.h" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/bitreader.h" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/bitwriter.h" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/cpu.h" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/crc.h" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/fixed.h" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/float.h" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/format.h" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/lpc.h" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/md5.h" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/memory.h" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/metadata.h" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/stream_encoder.h" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/stream_encoder_framing.h" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/window.h" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/protected/all.h" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/protected/stream_decoder.h" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/protected/stream_encoder.h" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitmath.c" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitreader.c" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitwriter.c" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/cpu.c" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/crc.c" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/fixed.c" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/float.c" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/format.c" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/lpc_flac.c" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/md5.c" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/memory.c" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/stream_decoder.c" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/stream_encoder.c" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/stream_encoder_framing.c" + "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/window_flac.c" + "../../../../../modules/juce_audio_formats/codecs/flac/all.h" + "../../../../../modules/juce_audio_formats/codecs/flac/alloc.h" + "../../../../../modules/juce_audio_formats/codecs/flac/assert.h" + "../../../../../modules/juce_audio_formats/codecs/flac/callback.h" + "../../../../../modules/juce_audio_formats/codecs/flac/compat.h" + "../../../../../modules/juce_audio_formats/codecs/flac/endswap.h" + "../../../../../modules/juce_audio_formats/codecs/flac/export.h" + "../../../../../modules/juce_audio_formats/codecs/flac/Flac Licence.txt" + "../../../../../modules/juce_audio_formats/codecs/flac/format.h" + "../../../../../modules/juce_audio_formats/codecs/flac/metadata.h" + "../../../../../modules/juce_audio_formats/codecs/flac/ordinals.h" + "../../../../../modules/juce_audio_formats/codecs/flac/stream_decoder.h" + "../../../../../modules/juce_audio_formats/codecs/flac/stream_encoder.h" + "../../../../../modules/juce_audio_formats/codecs/flac/win_utf8_io.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/coupled/res_books_51.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/coupled/res_books_stereo.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/floor/floor_books.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/uncoupled/res_books_uncoupled.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/floor_all.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_8.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_11.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_16.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_44.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_8.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_16.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_44.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_44p51.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_44u.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_8.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_11.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_16.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_22.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_32.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_44.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_44p51.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_44u.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_X.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/analysis.c" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/backends.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/bitrate.c" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/bitrate.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/block.c" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codebook.c" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codebook.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codec_internal.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/envelope.c" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/envelope.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/floor0.c" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/floor1.c" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/highlevel.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/info.c" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lookup.c" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lookup.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lookup_data.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lpc.c" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lpc.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lsp.c" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lsp.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mapping0.c" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/masking.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mdct.c" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mdct.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/misc.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/os.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/psy.c" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/psy.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/registry.c" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/registry.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/res0.c" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/scales.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/sharedbook.c" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/smallft.c" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/smallft.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/synthesis.c" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/vorbisenc.c" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/vorbisfile.c" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/window.c" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/window.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/bitwise.c" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/codec.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/config_types.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/framing.c" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/Ogg Vorbis Licence.txt" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/ogg.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/os_types.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/vorbisenc.h" + "../../../../../modules/juce_audio_formats/codecs/oggvorbis/vorbisfile.h" + "../../../../../modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp" + "../../../../../modules/juce_audio_formats/codecs/juce_AiffAudioFormat.h" + "../../../../../modules/juce_audio_formats/codecs/juce_CoreAudioFormat.cpp" + "../../../../../modules/juce_audio_formats/codecs/juce_CoreAudioFormat.h" + "../../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp" + "../../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.h" + "../../../../../modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.cpp" + "../../../../../modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.h" + "../../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.cpp" + "../../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.h" + "../../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp" + "../../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.h" + "../../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp" + "../../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.h" + "../../../../../modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.cpp" + "../../../../../modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.h" + "../../../../../modules/juce_audio_formats/format/juce_AudioFormat.cpp" + "../../../../../modules/juce_audio_formats/format/juce_AudioFormat.h" + "../../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.cpp" + "../../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.h" + "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.cpp" + "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.h" + "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.cpp" + "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.h" + "../../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.cpp" + "../../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.h" + "../../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.cpp" + "../../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.h" + "../../../../../modules/juce_audio_formats/format/juce_BufferingAudioFormatReader.cpp" + "../../../../../modules/juce_audio_formats/format/juce_BufferingAudioFormatReader.h" + "../../../../../modules/juce_audio_formats/format/juce_MemoryMappedAudioFormatReader.h" + "../../../../../modules/juce_audio_formats/sampler/juce_Sampler.cpp" + "../../../../../modules/juce_audio_formats/sampler/juce_Sampler.h" + "../../../../../modules/juce_audio_formats/juce_audio_formats.cpp" + "../../../../../modules/juce_audio_formats/juce_audio_formats.mm" + "../../../../../modules/juce_audio_formats/juce_audio_formats.h" + "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.cpp" + "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.h" + "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.cpp" + "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.h" + "../../../../../modules/juce_audio_processors/format_types/juce_AU_Shared.h" + "../../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.h" + "../../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm" + "../../../../../modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp" + "../../../../../modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.h" + "../../../../../modules/juce_audio_processors/format_types/juce_VST3Common.h" + "../../../../../modules/juce_audio_processors/format_types/juce_VST3Headers.h" + "../../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp" + "../../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.h" + "../../../../../modules/juce_audio_processors/format_types/juce_VSTCommon.h" + "../../../../../modules/juce_audio_processors/format_types/juce_VSTInterface.h" + "../../../../../modules/juce_audio_processors/format_types/juce_VSTMidiEventList.h" + "../../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp" + "../../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.h" + "../../../../../modules/juce_audio_processors/processors/juce_AudioPluginInstance.h" + "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.cpp" + "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.h" + "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp" + "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h" + "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp" + "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h" + "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorListener.h" + "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorParameter.h" + "../../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.cpp" + "../../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.h" + "../../../../../modules/juce_audio_processors/processors/juce_PluginDescription.cpp" + "../../../../../modules/juce_audio_processors/processors/juce_PluginDescription.h" + "../../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.cpp" + "../../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.h" + "../../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.cpp" + "../../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.h" + "../../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp" + "../../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.h" + "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterBool.h" + "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterChoice.h" + "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterFloat.h" + "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterInt.h" + "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorParameters.cpp" + "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorParameterWithID.h" + "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp" + "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h" + "../../../../../modules/juce_audio_processors/juce_audio_processors.cpp" + "../../../../../modules/juce_audio_processors/juce_audio_processors.mm" + "../../../../../modules/juce_audio_processors/juce_audio_processors.h" + "../../../../../modules/juce_core/containers/juce_AbstractFifo.cpp" + "../../../../../modules/juce_core/containers/juce_AbstractFifo.h" + "../../../../../modules/juce_core/containers/juce_Array.h" + "../../../../../modules/juce_core/containers/juce_ArrayAllocationBase.h" + "../../../../../modules/juce_core/containers/juce_DynamicObject.cpp" + "../../../../../modules/juce_core/containers/juce_DynamicObject.h" + "../../../../../modules/juce_core/containers/juce_ElementComparator.h" + "../../../../../modules/juce_core/containers/juce_HashMap.h" + "../../../../../modules/juce_core/containers/juce_HashMap_test.cpp" + "../../../../../modules/juce_core/containers/juce_LinkedListPointer.h" + "../../../../../modules/juce_core/containers/juce_ListenerList.cpp" + "../../../../../modules/juce_core/containers/juce_ListenerList.h" + "../../../../../modules/juce_core/containers/juce_NamedValueSet.cpp" + "../../../../../modules/juce_core/containers/juce_NamedValueSet.h" + "../../../../../modules/juce_core/containers/juce_OwnedArray.h" + "../../../../../modules/juce_core/containers/juce_PropertySet.cpp" + "../../../../../modules/juce_core/containers/juce_PropertySet.h" + "../../../../../modules/juce_core/containers/juce_ReferenceCountedArray.h" + "../../../../../modules/juce_core/containers/juce_ScopedValueSetter.h" + "../../../../../modules/juce_core/containers/juce_SortedSet.h" + "../../../../../modules/juce_core/containers/juce_SparseSet.h" + "../../../../../modules/juce_core/containers/juce_Variant.cpp" + "../../../../../modules/juce_core/containers/juce_Variant.h" + "../../../../../modules/juce_core/files/juce_DirectoryIterator.cpp" + "../../../../../modules/juce_core/files/juce_DirectoryIterator.h" + "../../../../../modules/juce_core/files/juce_File.cpp" + "../../../../../modules/juce_core/files/juce_File.h" + "../../../../../modules/juce_core/files/juce_FileFilter.cpp" + "../../../../../modules/juce_core/files/juce_FileFilter.h" + "../../../../../modules/juce_core/files/juce_FileInputStream.cpp" + "../../../../../modules/juce_core/files/juce_FileInputStream.h" + "../../../../../modules/juce_core/files/juce_FileOutputStream.cpp" + "../../../../../modules/juce_core/files/juce_FileOutputStream.h" + "../../../../../modules/juce_core/files/juce_FileSearchPath.cpp" + "../../../../../modules/juce_core/files/juce_FileSearchPath.h" + "../../../../../modules/juce_core/files/juce_MemoryMappedFile.h" + "../../../../../modules/juce_core/files/juce_TemporaryFile.cpp" + "../../../../../modules/juce_core/files/juce_TemporaryFile.h" + "../../../../../modules/juce_core/files/juce_WildcardFileFilter.cpp" + "../../../../../modules/juce_core/files/juce_WildcardFileFilter.h" + "../../../../../modules/juce_core/javascript/juce_Javascript.cpp" + "../../../../../modules/juce_core/javascript/juce_Javascript.h" + "../../../../../modules/juce_core/javascript/juce_JSON.cpp" + "../../../../../modules/juce_core/javascript/juce_JSON.h" + "../../../../../modules/juce_core/logging/juce_FileLogger.cpp" + "../../../../../modules/juce_core/logging/juce_FileLogger.h" + "../../../../../modules/juce_core/logging/juce_Logger.cpp" + "../../../../../modules/juce_core/logging/juce_Logger.h" + "../../../../../modules/juce_core/maths/juce_BigInteger.cpp" + "../../../../../modules/juce_core/maths/juce_BigInteger.h" + "../../../../../modules/juce_core/maths/juce_Expression.cpp" + "../../../../../modules/juce_core/maths/juce_Expression.h" + "../../../../../modules/juce_core/maths/juce_MathsFunctions.h" + "../../../../../modules/juce_core/maths/juce_NormalisableRange.h" + "../../../../../modules/juce_core/maths/juce_Random.cpp" + "../../../../../modules/juce_core/maths/juce_Random.h" + "../../../../../modules/juce_core/maths/juce_Range.h" + "../../../../../modules/juce_core/maths/juce_StatisticsAccumulator.h" + "../../../../../modules/juce_core/memory/juce_Atomic.h" + "../../../../../modules/juce_core/memory/juce_ByteOrder.h" + "../../../../../modules/juce_core/memory/juce_ContainerDeletePolicy.h" + "../../../../../modules/juce_core/memory/juce_HeapBlock.h" + "../../../../../modules/juce_core/memory/juce_LeakedObjectDetector.h" + "../../../../../modules/juce_core/memory/juce_Memory.h" + "../../../../../modules/juce_core/memory/juce_MemoryBlock.cpp" + "../../../../../modules/juce_core/memory/juce_MemoryBlock.h" + "../../../../../modules/juce_core/memory/juce_OptionalScopedPointer.h" + "../../../../../modules/juce_core/memory/juce_ReferenceCountedObject.h" + "../../../../../modules/juce_core/memory/juce_ScopedPointer.h" + "../../../../../modules/juce_core/memory/juce_SharedResourcePointer.h" + "../../../../../modules/juce_core/memory/juce_Singleton.h" + "../../../../../modules/juce_core/memory/juce_WeakReference.h" + "../../../../../modules/juce_core/misc/juce_Result.cpp" + "../../../../../modules/juce_core/misc/juce_Result.h" + "../../../../../modules/juce_core/misc/juce_RuntimePermissions.cpp" + "../../../../../modules/juce_core/misc/juce_RuntimePermissions.h" + "../../../../../modules/juce_core/misc/juce_StdFunctionCompat.cpp" + "../../../../../modules/juce_core/misc/juce_StdFunctionCompat.h" + "../../../../../modules/juce_core/misc/juce_Uuid.cpp" + "../../../../../modules/juce_core/misc/juce_Uuid.h" + "../../../../../modules/juce_core/misc/juce_WindowsRegistry.h" + "../../../../../modules/juce_core/native/juce_android_Files.cpp" + "../../../../../modules/juce_core/native/juce_android_JNIHelpers.h" + "../../../../../modules/juce_core/native/juce_android_Misc.cpp" + "../../../../../modules/juce_core/native/juce_android_Network.cpp" + "../../../../../modules/juce_core/native/juce_android_RuntimePermissions.cpp" + "../../../../../modules/juce_core/native/juce_android_SystemStats.cpp" + "../../../../../modules/juce_core/native/juce_android_Threads.cpp" + "../../../../../modules/juce_core/native/juce_BasicNativeHeaders.h" + "../../../../../modules/juce_core/native/juce_curl_Network.cpp" + "../../../../../modules/juce_core/native/juce_linux_CommonFile.cpp" + "../../../../../modules/juce_core/native/juce_linux_Files.cpp" + "../../../../../modules/juce_core/native/juce_linux_Network.cpp" + "../../../../../modules/juce_core/native/juce_linux_SystemStats.cpp" + "../../../../../modules/juce_core/native/juce_linux_Threads.cpp" + "../../../../../modules/juce_core/native/juce_mac_ClangBugWorkaround.h" + "../../../../../modules/juce_core/native/juce_mac_Files.mm" + "../../../../../modules/juce_core/native/juce_mac_Network.mm" + "../../../../../modules/juce_core/native/juce_mac_Strings.mm" + "../../../../../modules/juce_core/native/juce_mac_SystemStats.mm" + "../../../../../modules/juce_core/native/juce_mac_Threads.mm" + "../../../../../modules/juce_core/native/juce_osx_ObjCHelpers.h" + "../../../../../modules/juce_core/native/juce_posix_NamedPipe.cpp" + "../../../../../modules/juce_core/native/juce_posix_SharedCode.h" + "../../../../../modules/juce_core/native/juce_win32_ComSmartPtr.h" + "../../../../../modules/juce_core/native/juce_win32_Files.cpp" + "../../../../../modules/juce_core/native/juce_win32_Network.cpp" + "../../../../../modules/juce_core/native/juce_win32_Registry.cpp" + "../../../../../modules/juce_core/native/juce_win32_SystemStats.cpp" + "../../../../../modules/juce_core/native/juce_win32_Threads.cpp" + "../../../../../modules/juce_core/network/juce_IPAddress.cpp" + "../../../../../modules/juce_core/network/juce_IPAddress.h" + "../../../../../modules/juce_core/network/juce_MACAddress.cpp" + "../../../../../modules/juce_core/network/juce_MACAddress.h" + "../../../../../modules/juce_core/network/juce_NamedPipe.cpp" + "../../../../../modules/juce_core/network/juce_NamedPipe.h" + "../../../../../modules/juce_core/network/juce_Socket.cpp" + "../../../../../modules/juce_core/network/juce_Socket.h" + "../../../../../modules/juce_core/network/juce_URL.cpp" + "../../../../../modules/juce_core/network/juce_URL.h" + "../../../../../modules/juce_core/network/juce_WebInputStream.cpp" + "../../../../../modules/juce_core/network/juce_WebInputStream.h" + "../../../../../modules/juce_core/streams/juce_BufferedInputStream.cpp" + "../../../../../modules/juce_core/streams/juce_BufferedInputStream.h" + "../../../../../modules/juce_core/streams/juce_FileInputSource.cpp" + "../../../../../modules/juce_core/streams/juce_FileInputSource.h" + "../../../../../modules/juce_core/streams/juce_InputSource.h" + "../../../../../modules/juce_core/streams/juce_InputStream.cpp" + "../../../../../modules/juce_core/streams/juce_InputStream.h" + "../../../../../modules/juce_core/streams/juce_MemoryInputStream.cpp" + "../../../../../modules/juce_core/streams/juce_MemoryInputStream.h" + "../../../../../modules/juce_core/streams/juce_MemoryOutputStream.cpp" + "../../../../../modules/juce_core/streams/juce_MemoryOutputStream.h" + "../../../../../modules/juce_core/streams/juce_OutputStream.cpp" + "../../../../../modules/juce_core/streams/juce_OutputStream.h" + "../../../../../modules/juce_core/streams/juce_SubregionStream.cpp" + "../../../../../modules/juce_core/streams/juce_SubregionStream.h" + "../../../../../modules/juce_core/system/juce_CompilerSupport.h" + "../../../../../modules/juce_core/system/juce_PlatformDefs.h" + "../../../../../modules/juce_core/system/juce_StandardHeader.h" + "../../../../../modules/juce_core/system/juce_SystemStats.cpp" + "../../../../../modules/juce_core/system/juce_SystemStats.h" + "../../../../../modules/juce_core/system/juce_TargetPlatform.h" + "../../../../../modules/juce_core/text/juce_Base64.cpp" + "../../../../../modules/juce_core/text/juce_Base64.h" + "../../../../../modules/juce_core/text/juce_CharacterFunctions.cpp" + "../../../../../modules/juce_core/text/juce_CharacterFunctions.h" + "../../../../../modules/juce_core/text/juce_CharPointer_ASCII.h" + "../../../../../modules/juce_core/text/juce_CharPointer_UTF8.h" + "../../../../../modules/juce_core/text/juce_CharPointer_UTF16.h" + "../../../../../modules/juce_core/text/juce_CharPointer_UTF32.h" + "../../../../../modules/juce_core/text/juce_Identifier.cpp" + "../../../../../modules/juce_core/text/juce_Identifier.h" + "../../../../../modules/juce_core/text/juce_LocalisedStrings.cpp" + "../../../../../modules/juce_core/text/juce_LocalisedStrings.h" + "../../../../../modules/juce_core/text/juce_NewLine.h" + "../../../../../modules/juce_core/text/juce_String.cpp" + "../../../../../modules/juce_core/text/juce_String.h" + "../../../../../modules/juce_core/text/juce_StringArray.cpp" + "../../../../../modules/juce_core/text/juce_StringArray.h" + "../../../../../modules/juce_core/text/juce_StringPairArray.cpp" + "../../../../../modules/juce_core/text/juce_StringPairArray.h" + "../../../../../modules/juce_core/text/juce_StringPool.cpp" + "../../../../../modules/juce_core/text/juce_StringPool.h" + "../../../../../modules/juce_core/text/juce_StringRef.h" + "../../../../../modules/juce_core/text/juce_TextDiff.cpp" + "../../../../../modules/juce_core/text/juce_TextDiff.h" + "../../../../../modules/juce_core/threads/juce_ChildProcess.cpp" + "../../../../../modules/juce_core/threads/juce_ChildProcess.h" + "../../../../../modules/juce_core/threads/juce_CriticalSection.h" + "../../../../../modules/juce_core/threads/juce_DynamicLibrary.h" + "../../../../../modules/juce_core/threads/juce_HighResolutionTimer.cpp" + "../../../../../modules/juce_core/threads/juce_HighResolutionTimer.h" + "../../../../../modules/juce_core/threads/juce_InterProcessLock.h" + "../../../../../modules/juce_core/threads/juce_Process.h" + "../../../../../modules/juce_core/threads/juce_ReadWriteLock.cpp" + "../../../../../modules/juce_core/threads/juce_ReadWriteLock.h" + "../../../../../modules/juce_core/threads/juce_ScopedLock.h" + "../../../../../modules/juce_core/threads/juce_ScopedReadLock.h" + "../../../../../modules/juce_core/threads/juce_ScopedWriteLock.h" + "../../../../../modules/juce_core/threads/juce_SpinLock.h" + "../../../../../modules/juce_core/threads/juce_Thread.cpp" + "../../../../../modules/juce_core/threads/juce_Thread.h" + "../../../../../modules/juce_core/threads/juce_ThreadLocalValue.h" + "../../../../../modules/juce_core/threads/juce_ThreadPool.cpp" + "../../../../../modules/juce_core/threads/juce_ThreadPool.h" + "../../../../../modules/juce_core/threads/juce_TimeSliceThread.cpp" + "../../../../../modules/juce_core/threads/juce_TimeSliceThread.h" + "../../../../../modules/juce_core/threads/juce_WaitableEvent.h" + "../../../../../modules/juce_core/time/juce_PerformanceCounter.cpp" + "../../../../../modules/juce_core/time/juce_PerformanceCounter.h" + "../../../../../modules/juce_core/time/juce_RelativeTime.cpp" + "../../../../../modules/juce_core/time/juce_RelativeTime.h" + "../../../../../modules/juce_core/time/juce_Time.cpp" + "../../../../../modules/juce_core/time/juce_Time.h" + "../../../../../modules/juce_core/unit_tests/juce_UnitTest.cpp" + "../../../../../modules/juce_core/unit_tests/juce_UnitTest.h" + "../../../../../modules/juce_core/xml/juce_XmlDocument.cpp" + "../../../../../modules/juce_core/xml/juce_XmlDocument.h" + "../../../../../modules/juce_core/xml/juce_XmlElement.cpp" + "../../../../../modules/juce_core/xml/juce_XmlElement.h" + "../../../../../modules/juce_core/zip/zlib/adler32.c" + "../../../../../modules/juce_core/zip/zlib/compress.c" + "../../../../../modules/juce_core/zip/zlib/crc32.c" + "../../../../../modules/juce_core/zip/zlib/crc32.h" + "../../../../../modules/juce_core/zip/zlib/deflate.c" + "../../../../../modules/juce_core/zip/zlib/deflate.h" + "../../../../../modules/juce_core/zip/zlib/infback.c" + "../../../../../modules/juce_core/zip/zlib/inffast.c" + "../../../../../modules/juce_core/zip/zlib/inffast.h" + "../../../../../modules/juce_core/zip/zlib/inffixed.h" + "../../../../../modules/juce_core/zip/zlib/inflate.c" + "../../../../../modules/juce_core/zip/zlib/inflate.h" + "../../../../../modules/juce_core/zip/zlib/inftrees.c" + "../../../../../modules/juce_core/zip/zlib/inftrees.h" + "../../../../../modules/juce_core/zip/zlib/trees.c" + "../../../../../modules/juce_core/zip/zlib/trees.h" + "../../../../../modules/juce_core/zip/zlib/uncompr.c" + "../../../../../modules/juce_core/zip/zlib/zconf.h" + "../../../../../modules/juce_core/zip/zlib/zconf.in.h" + "../../../../../modules/juce_core/zip/zlib/zlib.h" + "../../../../../modules/juce_core/zip/zlib/zutil.c" + "../../../../../modules/juce_core/zip/zlib/zutil.h" + "../../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.cpp" + "../../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.h" + "../../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.cpp" + "../../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.h" + "../../../../../modules/juce_core/zip/juce_ZipFile.cpp" + "../../../../../modules/juce_core/zip/juce_ZipFile.h" + "../../../../../modules/juce_core/juce_core.cpp" + "../../../../../modules/juce_core/juce_core.mm" + "../../../../../modules/juce_core/juce_core.h" + "../../../../../modules/juce_cryptography/encryption/juce_BlowFish.cpp" + "../../../../../modules/juce_cryptography/encryption/juce_BlowFish.h" + "../../../../../modules/juce_cryptography/encryption/juce_Primes.cpp" + "../../../../../modules/juce_cryptography/encryption/juce_Primes.h" + "../../../../../modules/juce_cryptography/encryption/juce_RSAKey.cpp" + "../../../../../modules/juce_cryptography/encryption/juce_RSAKey.h" + "../../../../../modules/juce_cryptography/hashing/juce_MD5.cpp" + "../../../../../modules/juce_cryptography/hashing/juce_MD5.h" + "../../../../../modules/juce_cryptography/hashing/juce_SHA256.cpp" + "../../../../../modules/juce_cryptography/hashing/juce_SHA256.h" + "../../../../../modules/juce_cryptography/hashing/juce_Whirlpool.cpp" + "../../../../../modules/juce_cryptography/hashing/juce_Whirlpool.h" + "../../../../../modules/juce_cryptography/juce_cryptography.cpp" + "../../../../../modules/juce_cryptography/juce_cryptography.mm" + "../../../../../modules/juce_cryptography/juce_cryptography.h" + "../../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.cpp" + "../../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.h" + "../../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.cpp" + "../../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.h" + "../../../../../modules/juce_data_structures/undomanager/juce_UndoableAction.h" + "../../../../../modules/juce_data_structures/undomanager/juce_UndoManager.cpp" + "../../../../../modules/juce_data_structures/undomanager/juce_UndoManager.h" + "../../../../../modules/juce_data_structures/values/juce_CachedValue.cpp" + "../../../../../modules/juce_data_structures/values/juce_CachedValue.h" + "../../../../../modules/juce_data_structures/values/juce_Value.cpp" + "../../../../../modules/juce_data_structures/values/juce_Value.h" + "../../../../../modules/juce_data_structures/values/juce_ValueTree.cpp" + "../../../../../modules/juce_data_structures/values/juce_ValueTree.h" + "../../../../../modules/juce_data_structures/values/juce_ValueTreeSynchroniser.cpp" + "../../../../../modules/juce_data_structures/values/juce_ValueTreeSynchroniser.h" + "../../../../../modules/juce_data_structures/juce_data_structures.cpp" + "../../../../../modules/juce_data_structures/juce_data_structures.mm" + "../../../../../modules/juce_data_structures/juce_data_structures.h" + "../../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.cpp" + "../../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.h" + "../../../../../modules/juce_events/broadcasters/juce_ActionListener.h" + "../../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.cpp" + "../../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.h" + "../../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.cpp" + "../../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.h" + "../../../../../modules/juce_events/broadcasters/juce_ChangeListener.h" + "../../../../../modules/juce_events/interprocess/juce_ConnectedChildProcess.cpp" + "../../../../../modules/juce_events/interprocess/juce_ConnectedChildProcess.h" + "../../../../../modules/juce_events/interprocess/juce_InterprocessConnection.cpp" + "../../../../../modules/juce_events/interprocess/juce_InterprocessConnection.h" + "../../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.cpp" + "../../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.h" + "../../../../../modules/juce_events/messages/juce_ApplicationBase.cpp" + "../../../../../modules/juce_events/messages/juce_ApplicationBase.h" + "../../../../../modules/juce_events/messages/juce_CallbackMessage.h" + "../../../../../modules/juce_events/messages/juce_DeletedAtShutdown.cpp" + "../../../../../modules/juce_events/messages/juce_DeletedAtShutdown.h" + "../../../../../modules/juce_events/messages/juce_Initialisation.h" + "../../../../../modules/juce_events/messages/juce_Message.h" + "../../../../../modules/juce_events/messages/juce_MessageListener.cpp" + "../../../../../modules/juce_events/messages/juce_MessageListener.h" + "../../../../../modules/juce_events/messages/juce_MessageManager.cpp" + "../../../../../modules/juce_events/messages/juce_MessageManager.h" + "../../../../../modules/juce_events/messages/juce_MountedVolumeListChangeDetector.h" + "../../../../../modules/juce_events/messages/juce_NotificationType.h" + "../../../../../modules/juce_events/native/juce_android_Messaging.cpp" + "../../../../../modules/juce_events/native/juce_ios_MessageManager.mm" + "../../../../../modules/juce_events/native/juce_linux_EventLoop.h" + "../../../../../modules/juce_events/native/juce_linux_Messaging.cpp" + "../../../../../modules/juce_events/native/juce_mac_MessageManager.mm" + "../../../../../modules/juce_events/native/juce_osx_MessageQueue.h" + "../../../../../modules/juce_events/native/juce_win32_HiddenMessageWindow.h" + "../../../../../modules/juce_events/native/juce_win32_Messaging.cpp" + "../../../../../modules/juce_events/native/juce_win32_WinRTWrapper.cpp" + "../../../../../modules/juce_events/native/juce_win32_WinRTWrapper.h" + "../../../../../modules/juce_events/timers/juce_MultiTimer.cpp" + "../../../../../modules/juce_events/timers/juce_MultiTimer.h" + "../../../../../modules/juce_events/timers/juce_Timer.cpp" + "../../../../../modules/juce_events/timers/juce_Timer.h" + "../../../../../modules/juce_events/juce_events.cpp" + "../../../../../modules/juce_events/juce_events.mm" + "../../../../../modules/juce_events/juce_events.h" + "../../../../../modules/juce_graphics/colour/juce_Colour.cpp" + "../../../../../modules/juce_graphics/colour/juce_Colour.h" + "../../../../../modules/juce_graphics/colour/juce_ColourGradient.cpp" + "../../../../../modules/juce_graphics/colour/juce_ColourGradient.h" + "../../../../../modules/juce_graphics/colour/juce_Colours.cpp" + "../../../../../modules/juce_graphics/colour/juce_Colours.h" + "../../../../../modules/juce_graphics/colour/juce_FillType.cpp" + "../../../../../modules/juce_graphics/colour/juce_FillType.h" + "../../../../../modules/juce_graphics/colour/juce_PixelFormats.h" + "../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.cpp" + "../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.h" + "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h" + "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp" + "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h" + "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp" + "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h" + "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.cpp" + "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h" + "../../../../../modules/juce_graphics/effects/juce_GlowEffect.cpp" + "../../../../../modules/juce_graphics/effects/juce_GlowEffect.h" + "../../../../../modules/juce_graphics/effects/juce_ImageEffectFilter.h" + "../../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp" + "../../../../../modules/juce_graphics/fonts/juce_AttributedString.h" + "../../../../../modules/juce_graphics/fonts/juce_CustomTypeface.cpp" + "../../../../../modules/juce_graphics/fonts/juce_CustomTypeface.h" + "../../../../../modules/juce_graphics/fonts/juce_Font.cpp" + "../../../../../modules/juce_graphics/fonts/juce_Font.h" + "../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.cpp" + "../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h" + "../../../../../modules/juce_graphics/fonts/juce_TextLayout.cpp" + "../../../../../modules/juce_graphics/fonts/juce_TextLayout.h" + "../../../../../modules/juce_graphics/fonts/juce_Typeface.cpp" + "../../../../../modules/juce_graphics/fonts/juce_Typeface.h" + "../../../../../modules/juce_graphics/geometry/juce_AffineTransform.cpp" + "../../../../../modules/juce_graphics/geometry/juce_AffineTransform.h" + "../../../../../modules/juce_graphics/geometry/juce_BorderSize.h" + "../../../../../modules/juce_graphics/geometry/juce_EdgeTable.cpp" + "../../../../../modules/juce_graphics/geometry/juce_EdgeTable.h" + "../../../../../modules/juce_graphics/geometry/juce_Line.h" + "../../../../../modules/juce_graphics/geometry/juce_Path.cpp" + "../../../../../modules/juce_graphics/geometry/juce_Path.h" + "../../../../../modules/juce_graphics/geometry/juce_PathIterator.cpp" + "../../../../../modules/juce_graphics/geometry/juce_PathIterator.h" + "../../../../../modules/juce_graphics/geometry/juce_PathStrokeType.cpp" + "../../../../../modules/juce_graphics/geometry/juce_PathStrokeType.h" + "../../../../../modules/juce_graphics/geometry/juce_Point.h" + "../../../../../modules/juce_graphics/geometry/juce_Rectangle.h" + "../../../../../modules/juce_graphics/geometry/juce_RectangleList.h" + "../../../../../modules/juce_graphics/image_formats/jpglib/cderror.h" + "../../../../../modules/juce_graphics/image_formats/jpglib/changes to libjpeg for JUCE.txt" + "../../../../../modules/juce_graphics/image_formats/jpglib/jcapimin.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jcapistd.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jccoefct.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jccolor.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jcdctmgr.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jchuff.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jchuff.h" + "../../../../../modules/juce_graphics/image_formats/jpglib/jcinit.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jcmainct.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jcmarker.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jcmaster.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jcomapi.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jconfig.h" + "../../../../../modules/juce_graphics/image_formats/jpglib/jcparam.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jcphuff.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jcprepct.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jcsample.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jctrans.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jdapimin.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jdapistd.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jdatasrc.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jdcoefct.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jdcolor.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jdct.h" + "../../../../../modules/juce_graphics/image_formats/jpglib/jddctmgr.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jdhuff.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jdhuff.h" + "../../../../../modules/juce_graphics/image_formats/jpglib/jdinput.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jdmainct.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jdmarker.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jdmaster.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jdmerge.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jdphuff.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jdpostct.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jdsample.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jdtrans.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jerror.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jerror.h" + "../../../../../modules/juce_graphics/image_formats/jpglib/jfdctflt.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jfdctfst.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jfdctint.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jidctflt.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jidctfst.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jidctint.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jidctred.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jinclude.h" + "../../../../../modules/juce_graphics/image_formats/jpglib/jmemmgr.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jmemnobs.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jmemsys.h" + "../../../../../modules/juce_graphics/image_formats/jpglib/jmorecfg.h" + "../../../../../modules/juce_graphics/image_formats/jpglib/jpegint.h" + "../../../../../modules/juce_graphics/image_formats/jpglib/jpeglib.h" + "../../../../../modules/juce_graphics/image_formats/jpglib/jquant1.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jquant2.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jutils.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/jversion.h" + "../../../../../modules/juce_graphics/image_formats/jpglib/transupp.c" + "../../../../../modules/juce_graphics/image_formats/jpglib/transupp.h" + "../../../../../modules/juce_graphics/image_formats/pnglib/libpng_readme.txt" + "../../../../../modules/juce_graphics/image_formats/pnglib/png.c" + "../../../../../modules/juce_graphics/image_formats/pnglib/png.h" + "../../../../../modules/juce_graphics/image_formats/pnglib/pngconf.h" + "../../../../../modules/juce_graphics/image_formats/pnglib/pngerror.c" + "../../../../../modules/juce_graphics/image_formats/pnglib/pngget.c" + "../../../../../modules/juce_graphics/image_formats/pnglib/pnginfo.h" + "../../../../../modules/juce_graphics/image_formats/pnglib/pngmem.c" + "../../../../../modules/juce_graphics/image_formats/pnglib/pngpread.c" + "../../../../../modules/juce_graphics/image_formats/pnglib/pngpriv.h" + "../../../../../modules/juce_graphics/image_formats/pnglib/pngread.c" + "../../../../../modules/juce_graphics/image_formats/pnglib/pngrio.c" + "../../../../../modules/juce_graphics/image_formats/pnglib/pngrtran.c" + "../../../../../modules/juce_graphics/image_formats/pnglib/pngrutil.c" + "../../../../../modules/juce_graphics/image_formats/pnglib/pngset.c" + "../../../../../modules/juce_graphics/image_formats/pnglib/pngstruct.h" + "../../../../../modules/juce_graphics/image_formats/pnglib/pngtrans.c" + "../../../../../modules/juce_graphics/image_formats/pnglib/pngwio.c" + "../../../../../modules/juce_graphics/image_formats/pnglib/pngwrite.c" + "../../../../../modules/juce_graphics/image_formats/pnglib/pngwtran.c" + "../../../../../modules/juce_graphics/image_formats/pnglib/pngwutil.c" + "../../../../../modules/juce_graphics/image_formats/juce_GIFLoader.cpp" + "../../../../../modules/juce_graphics/image_formats/juce_JPEGLoader.cpp" + "../../../../../modules/juce_graphics/image_formats/juce_PNGLoader.cpp" + "../../../../../modules/juce_graphics/images/juce_Image.cpp" + "../../../../../modules/juce_graphics/images/juce_Image.h" + "../../../../../modules/juce_graphics/images/juce_ImageCache.cpp" + "../../../../../modules/juce_graphics/images/juce_ImageCache.h" + "../../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.cpp" + "../../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.h" + "../../../../../modules/juce_graphics/images/juce_ImageFileFormat.cpp" + "../../../../../modules/juce_graphics/images/juce_ImageFileFormat.h" + "../../../../../modules/juce_graphics/native/juce_android_Fonts.cpp" + "../../../../../modules/juce_graphics/native/juce_android_GraphicsContext.cpp" + "../../../../../modules/juce_graphics/native/juce_android_IconHelpers.cpp" + "../../../../../modules/juce_graphics/native/juce_freetype_Fonts.cpp" + "../../../../../modules/juce_graphics/native/juce_linux_Fonts.cpp" + "../../../../../modules/juce_graphics/native/juce_linux_IconHelpers.cpp" + "../../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.h" + "../../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm" + "../../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsHelpers.h" + "../../../../../modules/juce_graphics/native/juce_mac_Fonts.mm" + "../../../../../modules/juce_graphics/native/juce_mac_IconHelpers.cpp" + "../../../../../modules/juce_graphics/native/juce_RenderingHelpers.h" + "../../../../../modules/juce_graphics/native/juce_win32_Direct2DGraphicsContext.cpp" + "../../../../../modules/juce_graphics/native/juce_win32_Direct2DGraphicsContext.h" + "../../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeface.cpp" + "../../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeLayout.cpp" + "../../../../../modules/juce_graphics/native/juce_win32_Fonts.cpp" + "../../../../../modules/juce_graphics/native/juce_win32_IconHelpers.cpp" + "../../../../../modules/juce_graphics/placement/juce_Justification.h" + "../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.cpp" + "../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.h" + "../../../../../modules/juce_graphics/juce_graphics.cpp" + "../../../../../modules/juce_graphics/juce_graphics.mm" + "../../../../../modules/juce_graphics/juce_graphics.h" + "../../../../../modules/juce_gui_basics/application/juce_Application.cpp" + "../../../../../modules/juce_gui_basics/application/juce_Application.h" + "../../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.cpp" + "../../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.h" + "../../../../../modules/juce_gui_basics/buttons/juce_Button.cpp" + "../../../../../modules/juce_gui_basics/buttons/juce_Button.h" + "../../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.cpp" + "../../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.h" + "../../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp" + "../../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.h" + "../../../../../modules/juce_gui_basics/buttons/juce_ImageButton.cpp" + "../../../../../modules/juce_gui_basics/buttons/juce_ImageButton.h" + "../../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.cpp" + "../../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.h" + "../../../../../modules/juce_gui_basics/buttons/juce_TextButton.cpp" + "../../../../../modules/juce_gui_basics/buttons/juce_TextButton.h" + "../../../../../modules/juce_gui_basics/buttons/juce_ToggleButton.cpp" + "../../../../../modules/juce_gui_basics/buttons/juce_ToggleButton.h" + "../../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.cpp" + "../../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.h" + "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandID.h" + "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.cpp" + "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.h" + "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.cpp" + "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.h" + "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.cpp" + "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h" + "../../../../../modules/juce_gui_basics/commands/juce_KeyPressMappingSet.cpp" + "../../../../../modules/juce_gui_basics/commands/juce_KeyPressMappingSet.h" + "../../../../../modules/juce_gui_basics/components/juce_CachedComponentImage.h" + "../../../../../modules/juce_gui_basics/components/juce_Component.cpp" + "../../../../../modules/juce_gui_basics/components/juce_Component.h" + "../../../../../modules/juce_gui_basics/components/juce_ComponentListener.cpp" + "../../../../../modules/juce_gui_basics/components/juce_ComponentListener.h" + "../../../../../modules/juce_gui_basics/components/juce_Desktop.cpp" + "../../../../../modules/juce_gui_basics/components/juce_Desktop.h" + "../../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.cpp" + "../../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.h" + "../../../../../modules/juce_gui_basics/drawables/juce_Drawable.cpp" + "../../../../../modules/juce_gui_basics/drawables/juce_Drawable.h" + "../../../../../modules/juce_gui_basics/drawables/juce_DrawableComposite.cpp" + "../../../../../modules/juce_gui_basics/drawables/juce_DrawableComposite.h" + "../../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.cpp" + "../../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.h" + "../../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.cpp" + "../../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.h" + "../../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.cpp" + "../../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.h" + "../../../../../modules/juce_gui_basics/drawables/juce_DrawableShape.cpp" + "../../../../../modules/juce_gui_basics/drawables/juce_DrawableShape.h" + "../../../../../modules/juce_gui_basics/drawables/juce_DrawableText.cpp" + "../../../../../modules/juce_gui_basics/drawables/juce_DrawableText.h" + "../../../../../modules/juce_gui_basics/drawables/juce_SVGParser.cpp" + "../../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.cpp" + "../../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.h" + "../../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.cpp" + "../../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.h" + "../../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.cpp" + "../../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.h" + "../../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserListener.h" + "../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.cpp" + "../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.h" + "../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.cpp" + "../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.h" + "../../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.cpp" + "../../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.h" + "../../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.cpp" + "../../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h" + "../../../../../modules/juce_gui_basics/filebrowser/juce_FilePreviewComponent.h" + "../../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.cpp" + "../../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.h" + "../../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.cpp" + "../../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.h" + "../../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp" + "../../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.h" + "../../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp" + "../../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.h" + "../../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.cpp" + "../../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.h" + "../../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.cpp" + "../../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.h" + "../../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.cpp" + "../../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.h" + "../../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.cpp" + "../../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.h" + "../../../../../modules/juce_gui_basics/keyboard/juce_SystemClipboard.h" + "../../../../../modules/juce_gui_basics/keyboard/juce_TextEditorKeyMapper.h" + "../../../../../modules/juce_gui_basics/keyboard/juce_TextInputTarget.h" + "../../../../../modules/juce_gui_basics/layout/juce_AnimatedPosition.h" + "../../../../../modules/juce_gui_basics/layout/juce_AnimatedPositionBehaviours.h" + "../../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.cpp" + "../../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.h" + "../../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp" + "../../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.h" + "../../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.cpp" + "../../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.h" + "../../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.cpp" + "../../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.h" + "../../../../../modules/juce_gui_basics/layout/juce_ConcertinaPanel.cpp" + "../../../../../modules/juce_gui_basics/layout/juce_ConcertinaPanel.h" + "../../../../../modules/juce_gui_basics/layout/juce_FlexBox.cpp" + "../../../../../modules/juce_gui_basics/layout/juce_FlexBox.h" + "../../../../../modules/juce_gui_basics/layout/juce_FlexItem.h" + "../../../../../modules/juce_gui_basics/layout/juce_Grid.cpp" + "../../../../../modules/juce_gui_basics/layout/juce_Grid.h" + "../../../../../modules/juce_gui_basics/layout/juce_GridItem.cpp" + "../../../../../modules/juce_gui_basics/layout/juce_GridItem.h" + "../../../../../modules/juce_gui_basics/layout/juce_GridUnitTests.cpp" + "../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.cpp" + "../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.h" + "../../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.cpp" + "../../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.h" + "../../../../../modules/juce_gui_basics/layout/juce_ResizableBorderComponent.cpp" + "../../../../../modules/juce_gui_basics/layout/juce_ResizableBorderComponent.h" + "../../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.cpp" + "../../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.h" + "../../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.cpp" + "../../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.h" + "../../../../../modules/juce_gui_basics/layout/juce_ScrollBar.cpp" + "../../../../../modules/juce_gui_basics/layout/juce_ScrollBar.h" + "../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.cpp" + "../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.h" + "../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.cpp" + "../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.h" + "../../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.cpp" + "../../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.h" + "../../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.cpp" + "../../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.h" + "../../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.cpp" + "../../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.h" + "../../../../../modules/juce_gui_basics/layout/juce_Viewport.cpp" + "../../../../../modules/juce_gui_basics/layout/juce_Viewport.h" + "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp" + "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.h" + "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.cpp" + "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.h" + "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.cpp" + "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.h" + "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.cpp" + "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.h" + "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.cpp" + "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.h" + "../../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.cpp" + "../../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.h" + "../../../../../modules/juce_gui_basics/menus/juce_MenuBarModel.cpp" + "../../../../../modules/juce_gui_basics/menus/juce_MenuBarModel.h" + "../../../../../modules/juce_gui_basics/menus/juce_PopupMenu.cpp" + "../../../../../modules/juce_gui_basics/menus/juce_PopupMenu.h" + "../../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.cpp" + "../../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.h" + "../../../../../modules/juce_gui_basics/misc/juce_DropShadower.cpp" + "../../../../../modules/juce_gui_basics/misc/juce_DropShadower.h" + "../../../../../modules/juce_gui_basics/misc/juce_JUCESplashScreen.cpp" + "../../../../../modules/juce_gui_basics/misc/juce_JUCESplashScreen.h" + "../../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.cpp" + "../../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.h" + "../../../../../modules/juce_gui_basics/mouse/juce_DragAndDropContainer.cpp" + "../../../../../modules/juce_gui_basics/mouse/juce_DragAndDropContainer.h" + "../../../../../modules/juce_gui_basics/mouse/juce_DragAndDropTarget.h" + "../../../../../modules/juce_gui_basics/mouse/juce_FileDragAndDropTarget.h" + "../../../../../modules/juce_gui_basics/mouse/juce_LassoComponent.h" + "../../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.cpp" + "../../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.h" + "../../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.cpp" + "../../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.h" + "../../../../../modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.cpp" + "../../../../../modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.h" + "../../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp" + "../../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.h" + "../../../../../modules/juce_gui_basics/mouse/juce_MouseListener.cpp" + "../../../../../modules/juce_gui_basics/mouse/juce_MouseListener.h" + "../../../../../modules/juce_gui_basics/mouse/juce_SelectedItemSet.h" + "../../../../../modules/juce_gui_basics/mouse/juce_TextDragAndDropTarget.h" + "../../../../../modules/juce_gui_basics/mouse/juce_TooltipClient.h" + "../../../../../modules/juce_gui_basics/native/juce_android_FileChooser.cpp" + "../../../../../modules/juce_gui_basics/native/juce_android_Windowing.cpp" + "../../../../../modules/juce_gui_basics/native/juce_ios_UIViewComponentPeer.mm" + "../../../../../modules/juce_gui_basics/native/juce_ios_Windowing.mm" + "../../../../../modules/juce_gui_basics/native/juce_linux_FileChooser.cpp" + "../../../../../modules/juce_gui_basics/native/juce_linux_X11.cpp" + "../../../../../modules/juce_gui_basics/native/juce_linux_X11.h" + "../../../../../modules/juce_gui_basics/native/juce_linux_X11_Clipboard.cpp" + "../../../../../modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp" + "../../../../../modules/juce_gui_basics/native/juce_mac_FileChooser.mm" + "../../../../../modules/juce_gui_basics/native/juce_mac_MainMenu.mm" + "../../../../../modules/juce_gui_basics/native/juce_mac_MouseCursor.mm" + "../../../../../modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm" + "../../../../../modules/juce_gui_basics/native/juce_mac_Windowing.mm" + "../../../../../modules/juce_gui_basics/native/juce_MultiTouchMapper.h" + "../../../../../modules/juce_gui_basics/native/juce_win32_DragAndDrop.cpp" + "../../../../../modules/juce_gui_basics/native/juce_win32_FileChooser.cpp" + "../../../../../modules/juce_gui_basics/native/juce_win32_Windowing.cpp" + "../../../../../modules/juce_gui_basics/positioning/juce_MarkerList.cpp" + "../../../../../modules/juce_gui_basics/positioning/juce_MarkerList.h" + "../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.cpp" + "../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.h" + "../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.cpp" + "../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.h" + "../../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.cpp" + "../../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.h" + "../../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.cpp" + "../../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.h" + "../../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.cpp" + "../../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.h" + "../../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.cpp" + "../../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.h" + "../../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.cpp" + "../../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.h" + "../../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.cpp" + "../../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.h" + "../../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.cpp" + "../../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.h" + "../../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.cpp" + "../../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.h" + "../../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.cpp" + "../../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.h" + "../../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.cpp" + "../../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.h" + "../../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.cpp" + "../../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.h" + "../../../../../modules/juce_gui_basics/widgets/juce_ComboBox.cpp" + "../../../../../modules/juce_gui_basics/widgets/juce_ComboBox.h" + "../../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.cpp" + "../../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.h" + "../../../../../modules/juce_gui_basics/widgets/juce_Label.cpp" + "../../../../../modules/juce_gui_basics/widgets/juce_Label.h" + "../../../../../modules/juce_gui_basics/widgets/juce_ListBox.cpp" + "../../../../../modules/juce_gui_basics/widgets/juce_ListBox.h" + "../../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.cpp" + "../../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.h" + "../../../../../modules/juce_gui_basics/widgets/juce_Slider.cpp" + "../../../../../modules/juce_gui_basics/widgets/juce_Slider.h" + "../../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.cpp" + "../../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.h" + "../../../../../modules/juce_gui_basics/widgets/juce_TableListBox.cpp" + "../../../../../modules/juce_gui_basics/widgets/juce_TableListBox.h" + "../../../../../modules/juce_gui_basics/widgets/juce_TextEditor.cpp" + "../../../../../modules/juce_gui_basics/widgets/juce_TextEditor.h" + "../../../../../modules/juce_gui_basics/widgets/juce_Toolbar.cpp" + "../../../../../modules/juce_gui_basics/widgets/juce_Toolbar.h" + "../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.cpp" + "../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.h" + "../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemFactory.h" + "../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.cpp" + "../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.h" + "../../../../../modules/juce_gui_basics/widgets/juce_TreeView.cpp" + "../../../../../modules/juce_gui_basics/widgets/juce_TreeView.h" + "../../../../../modules/juce_gui_basics/windows/juce_AlertWindow.cpp" + "../../../../../modules/juce_gui_basics/windows/juce_AlertWindow.h" + "../../../../../modules/juce_gui_basics/windows/juce_CallOutBox.cpp" + "../../../../../modules/juce_gui_basics/windows/juce_CallOutBox.h" + "../../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.cpp" + "../../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.h" + "../../../../../modules/juce_gui_basics/windows/juce_DialogWindow.cpp" + "../../../../../modules/juce_gui_basics/windows/juce_DialogWindow.h" + "../../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.cpp" + "../../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.h" + "../../../../../modules/juce_gui_basics/windows/juce_NativeMessageBox.h" + "../../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.cpp" + "../../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.h" + "../../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.cpp" + "../../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.h" + "../../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.cpp" + "../../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.h" + "../../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.cpp" + "../../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.h" + "../../../../../modules/juce_gui_basics/juce_gui_basics.cpp" + "../../../../../modules/juce_gui_basics/juce_gui_basics.mm" + "../../../../../modules/juce_gui_basics/juce_gui_basics.h" + "../../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.cpp" + "../../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.h" + "../../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp" + "../../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.h" + "../../../../../modules/juce_gui_extra/code_editor/juce_CodeTokeniser.h" + "../../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.cpp" + "../../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.h" + "../../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniserFunctions.h" + "../../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.cpp" + "../../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.h" + "../../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.cpp" + "../../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.h" + "../../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.cpp" + "../../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.h" + "../../../../../modules/juce_gui_extra/embedding/juce_ActiveXControlComponent.h" + "../../../../../modules/juce_gui_extra/embedding/juce_NSViewComponent.h" + "../../../../../modules/juce_gui_extra/embedding/juce_UIViewComponent.h" + "../../../../../modules/juce_gui_extra/embedding/juce_XEmbedComponent.h" + "../../../../../modules/juce_gui_extra/misc/juce_AnimatedAppComponent.cpp" + "../../../../../modules/juce_gui_extra/misc/juce_AnimatedAppComponent.h" + "../../../../../modules/juce_gui_extra/misc/juce_AppleRemote.h" + "../../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.cpp" + "../../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.h" + "../../../../../modules/juce_gui_extra/misc/juce_ColourSelector.cpp" + "../../../../../modules/juce_gui_extra/misc/juce_ColourSelector.h" + "../../../../../modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.cpp" + "../../../../../modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.h" + "../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.cpp" + "../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h" + "../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp" + "../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h" + "../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.cpp" + "../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.h" + "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp" + "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h" + "../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp" + "../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.h" + "../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp" + "../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h" + "../../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h" + "../../../../../modules/juce_gui_extra/native/juce_android_PushNotifications.cpp" + "../../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp" + "../../../../../modules/juce_gui_extra/native/juce_ios_PushNotifications.cpp" + "../../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm" + "../../../../../modules/juce_gui_extra/native/juce_linux_X11_SystemTrayIcon.cpp" + "../../../../../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_SystemTrayIcon.cpp" + "../../../../../modules/juce_gui_extra/native/juce_mac_WebBrowserComponent.mm" + "../../../../../modules/juce_gui_extra/native/juce_win32_ActiveXComponent.cpp" + "../../../../../modules/juce_gui_extra/native/juce_win32_SystemTrayIcon.cpp" + "../../../../../modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp" + "../../../../../modules/juce_gui_extra/juce_gui_extra.cpp" + "../../../../../modules/juce_gui_extra/juce_gui_extra.mm" + "../../../../../modules/juce_gui_extra/juce_gui_extra.h" + "../../../../../modules/juce_opengl/geometry/juce_Draggable3DOrientation.h" + "../../../../../modules/juce_opengl/geometry/juce_Matrix3D.h" + "../../../../../modules/juce_opengl/geometry/juce_Quaternion.h" + "../../../../../modules/juce_opengl/geometry/juce_Vector3D.h" + "../../../../../modules/juce_opengl/native/juce_MissingGLDefinitions.h" + "../../../../../modules/juce_opengl/native/juce_OpenGL_android.h" + "../../../../../modules/juce_opengl/native/juce_OpenGL_ios.h" + "../../../../../modules/juce_opengl/native/juce_OpenGL_linux_X11.h" + "../../../../../modules/juce_opengl/native/juce_OpenGL_osx.h" + "../../../../../modules/juce_opengl/native/juce_OpenGL_win32.h" + "../../../../../modules/juce_opengl/native/juce_OpenGLExtensions.h" + "../../../../../modules/juce_opengl/opengl/juce_OpenGLContext.cpp" + "../../../../../modules/juce_opengl/opengl/juce_OpenGLContext.h" + "../../../../../modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp" + "../../../../../modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.h" + "../../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp" + "../../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.h" + "../../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp" + "../../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.h" + "../../../../../modules/juce_opengl/opengl/juce_OpenGLImage.cpp" + "../../../../../modules/juce_opengl/opengl/juce_OpenGLImage.h" + "../../../../../modules/juce_opengl/opengl/juce_OpenGLPixelFormat.cpp" + "../../../../../modules/juce_opengl/opengl/juce_OpenGLPixelFormat.h" + "../../../../../modules/juce_opengl/opengl/juce_OpenGLRenderer.h" + "../../../../../modules/juce_opengl/opengl/juce_OpenGLShaderProgram.cpp" + "../../../../../modules/juce_opengl/opengl/juce_OpenGLShaderProgram.h" + "../../../../../modules/juce_opengl/opengl/juce_OpenGLTexture.cpp" + "../../../../../modules/juce_opengl/opengl/juce_OpenGLTexture.h" + "../../../../../modules/juce_opengl/utils/juce_OpenGLAppComponent.cpp" + "../../../../../modules/juce_opengl/utils/juce_OpenGLAppComponent.h" + "../../../../../modules/juce_opengl/juce_opengl.cpp" + "../../../../../modules/juce_opengl/juce_opengl.mm" + "../../../../../modules/juce_opengl/juce_opengl.h" + "../../../JuceLibraryCode/AppConfig.h" + "../../../JuceLibraryCode/BinaryData.cpp" + "../../../JuceLibraryCode/BinaryData.h" + "../../../JuceLibraryCode/include_juce_audio_basics.cpp" + "../../../JuceLibraryCode/include_juce_audio_devices.cpp" + "../../../JuceLibraryCode/include_juce_audio_formats.cpp" + "../../../JuceLibraryCode/include_juce_audio_processors.cpp" + "../../../JuceLibraryCode/include_juce_core.cpp" + "../../../JuceLibraryCode/include_juce_cryptography.cpp" + "../../../JuceLibraryCode/include_juce_data_structures.cpp" + "../../../JuceLibraryCode/include_juce_events.cpp" + "../../../JuceLibraryCode/include_juce_graphics.cpp" + "../../../JuceLibraryCode/include_juce_gui_basics.cpp" + "../../../JuceLibraryCode/include_juce_gui_extra.cpp" + "../../../JuceLibraryCode/include_juce_opengl.cpp" + "../../../JuceLibraryCode/JuceHeader.h" +) + +set_source_files_properties("../../../BinaryResources/images/ic_stat_name.png" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../BinaryResources/images/ic_stat_name2.png" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../BinaryResources/images/ic_stat_name3.png" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../BinaryResources/images/ic_stat_name4.png" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../BinaryResources/images/ic_stat_name5.png" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../BinaryResources/images/ic_stat_name6.png" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../BinaryResources/images/ic_stat_name7.png" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../BinaryResources/images/ic_stat_name8.png" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../BinaryResources/images/ic_stat_name9.png" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../BinaryResources/images/ic_stat_name10.png" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../BinaryResources/sounds/demonstrative.caf" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../BinaryResources/sounds/demonstrative.mp3" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../BinaryResources/sounds/isntit.caf" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../BinaryResources/sounds/isntit.mp3" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../BinaryResources/sounds/jinglebellssms.caf" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../BinaryResources/sounds/jinglebellssms.mp3" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../BinaryResources/sounds/served.caf" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../BinaryResources/sounds/served.mp3" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../BinaryResources/sounds/solemn.caf" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../BinaryResources/sounds/solemn.mp3" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../Source/MainComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/audio_play_head/juce_AudioPlayHead.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/buffers/juce_AudioChannelSet.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/buffers/juce_AudioChannelSet.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/buffers/juce_FloatVectorOperations.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/buffers/juce_FloatVectorOperations.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/effects/juce_Decibels.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/effects/juce_IIRFilter.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/effects/juce_IIRFilter.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/effects/juce_LagrangeInterpolator.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/effects/juce_LagrangeInterpolator.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/effects/juce_LinearSmoothedValue.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/effects/juce_Reverb.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/midi/juce_MidiFile.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/midi/juce_MidiFile.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/midi/juce_MidiMessage.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/midi/juce_MidiMessage.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/mpe/juce_MPENote.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/mpe/juce_MPENote.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiser.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiser.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/mpe/juce_MPEValue.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/mpe/juce_MPEValue.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/mpe/juce_MPEZone.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/mpe/juce_MPEZone.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/native/juce_mac_CoreAudioLayouts.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/sources/juce_AudioSource.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/sources/juce_MemoryAudioSource.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/sources/juce_MemoryAudioSource.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/sources/juce_PositionableAudioSource.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/synthesisers/juce_Synthesiser.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/synthesisers/juce_Synthesiser.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/juce_audio_basics.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/juce_audio_basics.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_basics/juce_audio_basics.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/midi_io/juce_MidiInput.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/native/juce_android_Audio.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/native/juce_android_Midi.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/native/juce_android_OpenSL.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/native/juce_ios_Audio.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/native/juce_ios_Audio.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/native/juce_linux_ALSA.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/native/juce_linux_JackAudio.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/native/juce_linux_Midi.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/native/juce_mac_CoreAudio.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/native/juce_mac_CoreMidi.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/native/juce_MidiDataConcatenator.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/native/juce_win32_ASIO.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/native/juce_win32_DirectSound.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/native/juce_win32_Midi.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/native/juce_win32_WASAPI.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/sources/juce_AudioSourcePlayer.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/sources/juce_AudioSourcePlayer.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/sources/juce_AudioTransportSource.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/sources/juce_AudioTransportSource.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/juce_audio_devices.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/juce_audio_devices.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_devices/juce_audio_devices.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/all.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/bitmath.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/bitreader.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/bitwriter.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/cpu.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/crc.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/fixed.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/float.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/format.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/lpc.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/md5.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/memory.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/metadata.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/stream_encoder.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/stream_encoder_framing.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/window.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/protected/all.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/protected/stream_decoder.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/protected/stream_encoder.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitmath.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitreader.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitwriter.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/cpu.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/crc.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/fixed.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/float.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/format.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/lpc_flac.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/md5.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/memory.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/stream_decoder.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/stream_encoder.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/stream_encoder_framing.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/window_flac.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/all.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/alloc.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/assert.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/callback.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/compat.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/endswap.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/export.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/Flac Licence.txt" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/format.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/metadata.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/ordinals.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/stream_decoder.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/stream_encoder.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/flac/win_utf8_io.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/coupled/res_books_51.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/coupled/res_books_stereo.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/floor/floor_books.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/uncoupled/res_books_uncoupled.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/floor_all.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_8.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_11.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_16.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_44.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_8.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_16.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_44.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_44p51.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_44u.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_8.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_11.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_16.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_22.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_32.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_44.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_44p51.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_44u.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_X.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/analysis.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/backends.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/bitrate.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/bitrate.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/block.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codebook.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codebook.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codec_internal.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/envelope.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/envelope.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/floor0.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/floor1.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/highlevel.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/info.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lookup.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lookup.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lookup_data.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lpc.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lpc.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lsp.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lsp.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mapping0.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/masking.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mdct.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mdct.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/misc.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/os.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/psy.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/psy.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/registry.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/registry.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/res0.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/scales.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/sharedbook.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/smallft.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/smallft.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/synthesis.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/vorbisenc.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/vorbisfile.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/window.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/window.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/bitwise.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/codec.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/config_types.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/framing.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/Ogg Vorbis Licence.txt" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/ogg.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/os_types.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/vorbisenc.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/oggvorbis/vorbisfile.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/juce_AiffAudioFormat.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/juce_CoreAudioFormat.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/juce_CoreAudioFormat.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/format/juce_AudioFormat.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/format/juce_AudioFormat.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/format/juce_BufferingAudioFormatReader.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/format/juce_BufferingAudioFormatReader.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/format/juce_MemoryMappedAudioFormatReader.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/sampler/juce_Sampler.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/sampler/juce_Sampler.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/juce_audio_formats.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/juce_audio_formats.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_formats/juce_audio_formats.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/format_types/juce_AU_Shared.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/format_types/juce_VST3Common.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/format_types/juce_VST3Headers.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/format_types/juce_VSTCommon.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/format_types/juce_VSTInterface.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/format_types/juce_VSTMidiEventList.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/processors/juce_AudioPluginInstance.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorListener.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorParameter.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/processors/juce_PluginDescription.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/processors/juce_PluginDescription.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterBool.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterChoice.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterFloat.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterInt.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorParameters.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorParameterWithID.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/juce_audio_processors.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/juce_audio_processors.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_audio_processors/juce_audio_processors.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/containers/juce_AbstractFifo.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/containers/juce_AbstractFifo.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/containers/juce_Array.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/containers/juce_ArrayAllocationBase.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/containers/juce_DynamicObject.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/containers/juce_DynamicObject.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/containers/juce_ElementComparator.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/containers/juce_HashMap.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/containers/juce_HashMap_test.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/containers/juce_LinkedListPointer.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/containers/juce_ListenerList.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/containers/juce_ListenerList.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/containers/juce_NamedValueSet.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/containers/juce_NamedValueSet.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/containers/juce_OwnedArray.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/containers/juce_PropertySet.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/containers/juce_PropertySet.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/containers/juce_ReferenceCountedArray.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/containers/juce_ScopedValueSetter.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/containers/juce_SortedSet.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/containers/juce_SparseSet.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/containers/juce_Variant.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/containers/juce_Variant.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/files/juce_DirectoryIterator.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/files/juce_DirectoryIterator.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/files/juce_File.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/files/juce_File.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/files/juce_FileFilter.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/files/juce_FileFilter.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/files/juce_FileInputStream.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/files/juce_FileInputStream.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/files/juce_FileOutputStream.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/files/juce_FileOutputStream.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/files/juce_FileSearchPath.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/files/juce_FileSearchPath.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/files/juce_MemoryMappedFile.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/files/juce_TemporaryFile.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/files/juce_TemporaryFile.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/files/juce_WildcardFileFilter.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/files/juce_WildcardFileFilter.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/javascript/juce_Javascript.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/javascript/juce_Javascript.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/javascript/juce_JSON.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/javascript/juce_JSON.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/logging/juce_FileLogger.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/logging/juce_FileLogger.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/logging/juce_Logger.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/logging/juce_Logger.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/maths/juce_BigInteger.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/maths/juce_BigInteger.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/maths/juce_Expression.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/maths/juce_Expression.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/maths/juce_MathsFunctions.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/maths/juce_NormalisableRange.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/maths/juce_Random.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/maths/juce_Random.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/maths/juce_Range.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/maths/juce_StatisticsAccumulator.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/memory/juce_Atomic.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/memory/juce_ByteOrder.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/memory/juce_ContainerDeletePolicy.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/memory/juce_HeapBlock.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/memory/juce_LeakedObjectDetector.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/memory/juce_Memory.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/memory/juce_MemoryBlock.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/memory/juce_MemoryBlock.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/memory/juce_OptionalScopedPointer.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/memory/juce_ReferenceCountedObject.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/memory/juce_ScopedPointer.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/memory/juce_SharedResourcePointer.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/memory/juce_Singleton.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/memory/juce_WeakReference.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/misc/juce_Result.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/misc/juce_Result.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/misc/juce_RuntimePermissions.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/misc/juce_RuntimePermissions.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/misc/juce_StdFunctionCompat.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/misc/juce_StdFunctionCompat.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/misc/juce_Uuid.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/misc/juce_Uuid.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/misc/juce_WindowsRegistry.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_android_Files.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_android_JNIHelpers.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_android_Misc.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_android_Network.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_android_RuntimePermissions.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_android_SystemStats.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_android_Threads.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_BasicNativeHeaders.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_curl_Network.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_linux_CommonFile.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_linux_Files.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_linux_Network.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_linux_SystemStats.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_linux_Threads.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_mac_ClangBugWorkaround.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_mac_Files.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_mac_Network.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_mac_Strings.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_mac_SystemStats.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_mac_Threads.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_osx_ObjCHelpers.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_posix_NamedPipe.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_posix_SharedCode.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_win32_ComSmartPtr.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_win32_Files.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_win32_Network.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_win32_Registry.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_win32_SystemStats.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/native/juce_win32_Threads.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/network/juce_IPAddress.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/network/juce_IPAddress.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/network/juce_MACAddress.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/network/juce_MACAddress.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/network/juce_NamedPipe.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/network/juce_NamedPipe.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/network/juce_Socket.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/network/juce_Socket.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/network/juce_URL.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/network/juce_URL.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/network/juce_WebInputStream.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/network/juce_WebInputStream.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/streams/juce_BufferedInputStream.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/streams/juce_BufferedInputStream.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/streams/juce_FileInputSource.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/streams/juce_FileInputSource.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/streams/juce_InputSource.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/streams/juce_InputStream.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/streams/juce_InputStream.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/streams/juce_MemoryInputStream.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/streams/juce_MemoryInputStream.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/streams/juce_MemoryOutputStream.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/streams/juce_MemoryOutputStream.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/streams/juce_OutputStream.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/streams/juce_OutputStream.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/streams/juce_SubregionStream.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/streams/juce_SubregionStream.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/system/juce_CompilerSupport.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/system/juce_PlatformDefs.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/system/juce_StandardHeader.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/system/juce_SystemStats.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/system/juce_SystemStats.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/system/juce_TargetPlatform.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/text/juce_Base64.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/text/juce_Base64.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/text/juce_CharacterFunctions.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/text/juce_CharacterFunctions.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/text/juce_CharPointer_ASCII.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/text/juce_CharPointer_UTF8.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/text/juce_CharPointer_UTF16.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/text/juce_CharPointer_UTF32.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/text/juce_Identifier.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/text/juce_Identifier.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/text/juce_LocalisedStrings.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/text/juce_LocalisedStrings.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/text/juce_NewLine.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/text/juce_String.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/text/juce_String.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/text/juce_StringArray.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/text/juce_StringArray.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/text/juce_StringPairArray.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/text/juce_StringPairArray.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/text/juce_StringPool.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/text/juce_StringPool.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/text/juce_StringRef.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/text/juce_TextDiff.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/text/juce_TextDiff.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/threads/juce_ChildProcess.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/threads/juce_ChildProcess.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/threads/juce_CriticalSection.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/threads/juce_DynamicLibrary.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/threads/juce_HighResolutionTimer.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/threads/juce_HighResolutionTimer.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/threads/juce_InterProcessLock.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/threads/juce_Process.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/threads/juce_ReadWriteLock.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/threads/juce_ReadWriteLock.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/threads/juce_ScopedLock.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/threads/juce_ScopedReadLock.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/threads/juce_ScopedWriteLock.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/threads/juce_SpinLock.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/threads/juce_Thread.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/threads/juce_Thread.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/threads/juce_ThreadLocalValue.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/threads/juce_ThreadPool.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/threads/juce_ThreadPool.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/threads/juce_TimeSliceThread.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/threads/juce_TimeSliceThread.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/threads/juce_WaitableEvent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/time/juce_PerformanceCounter.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/time/juce_PerformanceCounter.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/time/juce_RelativeTime.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/time/juce_RelativeTime.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/time/juce_Time.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/time/juce_Time.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/unit_tests/juce_UnitTest.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/unit_tests/juce_UnitTest.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/xml/juce_XmlDocument.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/xml/juce_XmlDocument.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/xml/juce_XmlElement.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/xml/juce_XmlElement.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/zlib/adler32.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/zlib/compress.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/zlib/crc32.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/zlib/crc32.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/zlib/deflate.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/zlib/deflate.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/zlib/infback.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/zlib/inffast.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/zlib/inffast.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/zlib/inffixed.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/zlib/inflate.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/zlib/inflate.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/zlib/inftrees.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/zlib/inftrees.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/zlib/trees.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/zlib/trees.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/zlib/uncompr.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/zlib/zconf.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/zlib/zconf.in.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/zlib/zlib.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/zlib/zutil.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/zlib/zutil.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/juce_ZipFile.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/zip/juce_ZipFile.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/juce_core.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/juce_core.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_core/juce_core.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_cryptography/encryption/juce_BlowFish.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_cryptography/encryption/juce_BlowFish.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_cryptography/encryption/juce_Primes.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_cryptography/encryption/juce_Primes.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_cryptography/encryption/juce_RSAKey.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_cryptography/encryption/juce_RSAKey.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_cryptography/hashing/juce_MD5.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_cryptography/hashing/juce_MD5.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_cryptography/hashing/juce_SHA256.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_cryptography/hashing/juce_SHA256.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_cryptography/hashing/juce_Whirlpool.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_cryptography/hashing/juce_Whirlpool.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_cryptography/juce_cryptography.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_cryptography/juce_cryptography.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_cryptography/juce_cryptography.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_data_structures/undomanager/juce_UndoableAction.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_data_structures/undomanager/juce_UndoManager.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_data_structures/undomanager/juce_UndoManager.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_data_structures/values/juce_CachedValue.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_data_structures/values/juce_CachedValue.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_data_structures/values/juce_Value.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_data_structures/values/juce_Value.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_data_structures/values/juce_ValueTree.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_data_structures/values/juce_ValueTree.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_data_structures/values/juce_ValueTreeSynchroniser.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_data_structures/values/juce_ValueTreeSynchroniser.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_data_structures/juce_data_structures.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_data_structures/juce_data_structures.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_data_structures/juce_data_structures.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/broadcasters/juce_ActionListener.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/broadcasters/juce_ChangeListener.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/interprocess/juce_ConnectedChildProcess.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/interprocess/juce_ConnectedChildProcess.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/interprocess/juce_InterprocessConnection.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/interprocess/juce_InterprocessConnection.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/messages/juce_ApplicationBase.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/messages/juce_ApplicationBase.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/messages/juce_CallbackMessage.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/messages/juce_DeletedAtShutdown.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/messages/juce_DeletedAtShutdown.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/messages/juce_Initialisation.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/messages/juce_Message.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/messages/juce_MessageListener.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/messages/juce_MessageListener.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/messages/juce_MessageManager.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/messages/juce_MessageManager.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/messages/juce_MountedVolumeListChangeDetector.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/messages/juce_NotificationType.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/native/juce_android_Messaging.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/native/juce_ios_MessageManager.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/native/juce_linux_EventLoop.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/native/juce_linux_Messaging.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/native/juce_mac_MessageManager.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/native/juce_osx_MessageQueue.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/native/juce_win32_HiddenMessageWindow.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/native/juce_win32_Messaging.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/native/juce_win32_WinRTWrapper.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/native/juce_win32_WinRTWrapper.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/timers/juce_MultiTimer.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/timers/juce_MultiTimer.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/timers/juce_Timer.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/timers/juce_Timer.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/juce_events.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/juce_events.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_events/juce_events.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/colour/juce_Colour.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/colour/juce_Colour.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/colour/juce_ColourGradient.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/colour/juce_ColourGradient.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/colour/juce_Colours.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/colour/juce_Colours.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/colour/juce_FillType.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/colour/juce_FillType.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/colour/juce_PixelFormats.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/effects/juce_GlowEffect.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/effects/juce_GlowEffect.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/effects/juce_ImageEffectFilter.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/fonts/juce_AttributedString.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/fonts/juce_CustomTypeface.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/fonts/juce_CustomTypeface.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/fonts/juce_Font.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/fonts/juce_Font.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/fonts/juce_TextLayout.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/fonts/juce_TextLayout.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/fonts/juce_Typeface.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/fonts/juce_Typeface.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/geometry/juce_AffineTransform.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/geometry/juce_AffineTransform.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/geometry/juce_BorderSize.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/geometry/juce_EdgeTable.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/geometry/juce_EdgeTable.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/geometry/juce_Line.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/geometry/juce_Path.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/geometry/juce_Path.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/geometry/juce_PathIterator.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/geometry/juce_PathIterator.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/geometry/juce_PathStrokeType.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/geometry/juce_PathStrokeType.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/geometry/juce_Point.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/geometry/juce_Rectangle.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/geometry/juce_RectangleList.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/cderror.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/changes to libjpeg for JUCE.txt" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jcapimin.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jcapistd.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jccoefct.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jccolor.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jcdctmgr.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jchuff.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jchuff.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jcinit.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jcmainct.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jcmarker.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jcmaster.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jcomapi.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jconfig.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jcparam.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jcphuff.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jcprepct.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jcsample.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jctrans.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jdapimin.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jdapistd.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jdatasrc.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jdcoefct.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jdcolor.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jdct.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jddctmgr.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jdhuff.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jdhuff.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jdinput.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jdmainct.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jdmarker.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jdmaster.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jdmerge.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jdphuff.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jdpostct.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jdsample.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jdtrans.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jerror.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jerror.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jfdctflt.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jfdctfst.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jfdctint.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jidctflt.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jidctfst.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jidctint.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jidctred.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jinclude.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jmemmgr.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jmemnobs.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jmemsys.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jmorecfg.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jpegint.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jpeglib.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jquant1.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jquant2.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jutils.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/jversion.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/transupp.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/jpglib/transupp.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/pnglib/libpng_readme.txt" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/pnglib/png.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/pnglib/png.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/pnglib/pngconf.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/pnglib/pngerror.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/pnglib/pngget.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/pnglib/pnginfo.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/pnglib/pngmem.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/pnglib/pngpread.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/pnglib/pngpriv.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/pnglib/pngread.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/pnglib/pngrio.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/pnglib/pngrtran.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/pnglib/pngrutil.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/pnglib/pngset.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/pnglib/pngstruct.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/pnglib/pngtrans.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/pnglib/pngwio.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/pnglib/pngwrite.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/pnglib/pngwtran.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/pnglib/pngwutil.c" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/juce_GIFLoader.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/juce_JPEGLoader.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/image_formats/juce_PNGLoader.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/images/juce_Image.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/images/juce_Image.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/images/juce_ImageCache.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/images/juce_ImageCache.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/images/juce_ImageFileFormat.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/images/juce_ImageFileFormat.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/native/juce_android_Fonts.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/native/juce_android_GraphicsContext.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/native/juce_android_IconHelpers.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/native/juce_freetype_Fonts.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/native/juce_linux_Fonts.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/native/juce_linux_IconHelpers.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsHelpers.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/native/juce_mac_Fonts.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/native/juce_mac_IconHelpers.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/native/juce_RenderingHelpers.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/native/juce_win32_Direct2DGraphicsContext.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/native/juce_win32_Direct2DGraphicsContext.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeface.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeLayout.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/native/juce_win32_Fonts.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/native/juce_win32_IconHelpers.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/placement/juce_Justification.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/juce_graphics.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/juce_graphics.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_graphics/juce_graphics.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/application/juce_Application.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/application/juce_Application.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/buttons/juce_Button.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/buttons/juce_Button.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/buttons/juce_ImageButton.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/buttons/juce_ImageButton.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/buttons/juce_TextButton.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/buttons/juce_TextButton.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/buttons/juce_ToggleButton.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/buttons/juce_ToggleButton.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandID.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/commands/juce_KeyPressMappingSet.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/commands/juce_KeyPressMappingSet.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/components/juce_CachedComponentImage.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/components/juce_Component.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/components/juce_Component.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/components/juce_ComponentListener.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/components/juce_ComponentListener.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/components/juce_Desktop.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/components/juce_Desktop.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/drawables/juce_Drawable.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/drawables/juce_Drawable.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/drawables/juce_DrawableComposite.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/drawables/juce_DrawableComposite.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/drawables/juce_DrawableShape.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/drawables/juce_DrawableShape.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/drawables/juce_DrawableText.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/drawables/juce_DrawableText.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/drawables/juce_SVGParser.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserListener.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/filebrowser/juce_FilePreviewComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/keyboard/juce_SystemClipboard.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/keyboard/juce_TextEditorKeyMapper.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/keyboard/juce_TextInputTarget.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_AnimatedPosition.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_AnimatedPositionBehaviours.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_ConcertinaPanel.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_ConcertinaPanel.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_FlexBox.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_FlexBox.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_FlexItem.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_Grid.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_Grid.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_GridItem.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_GridItem.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_GridUnitTests.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_ResizableBorderComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_ResizableBorderComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_ScrollBar.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_ScrollBar.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_Viewport.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/layout/juce_Viewport.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/menus/juce_MenuBarModel.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/menus/juce_MenuBarModel.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/menus/juce_PopupMenu.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/menus/juce_PopupMenu.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/misc/juce_DropShadower.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/misc/juce_DropShadower.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/misc/juce_JUCESplashScreen.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/misc/juce_JUCESplashScreen.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/mouse/juce_DragAndDropContainer.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/mouse/juce_DragAndDropContainer.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/mouse/juce_DragAndDropTarget.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/mouse/juce_FileDragAndDropTarget.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/mouse/juce_LassoComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/mouse/juce_MouseListener.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/mouse/juce_MouseListener.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/mouse/juce_SelectedItemSet.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/mouse/juce_TextDragAndDropTarget.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/mouse/juce_TooltipClient.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/native/juce_android_FileChooser.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/native/juce_android_Windowing.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/native/juce_ios_UIViewComponentPeer.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/native/juce_ios_Windowing.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/native/juce_linux_FileChooser.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/native/juce_linux_X11.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/native/juce_linux_X11.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/native/juce_linux_X11_Clipboard.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/native/juce_mac_FileChooser.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/native/juce_mac_MainMenu.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/native/juce_mac_MouseCursor.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/native/juce_mac_Windowing.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/native/juce_MultiTouchMapper.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/native/juce_win32_DragAndDrop.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/native/juce_win32_FileChooser.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/native/juce_win32_Windowing.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/positioning/juce_MarkerList.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/positioning/juce_MarkerList.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_ComboBox.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_ComboBox.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_Label.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_Label.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_ListBox.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_ListBox.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_Slider.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_Slider.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_TableListBox.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_TableListBox.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_TextEditor.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_TextEditor.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_Toolbar.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_Toolbar.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemFactory.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_TreeView.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/widgets/juce_TreeView.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/windows/juce_AlertWindow.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/windows/juce_AlertWindow.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/windows/juce_CallOutBox.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/windows/juce_CallOutBox.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/windows/juce_DialogWindow.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/windows/juce_DialogWindow.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/windows/juce_NativeMessageBox.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/juce_gui_basics.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/juce_gui_basics.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_basics/juce_gui_basics.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/code_editor/juce_CodeTokeniser.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniserFunctions.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/embedding/juce_ActiveXControlComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/embedding/juce_NSViewComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/embedding/juce_UIViewComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/embedding/juce_XEmbedComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_AnimatedAppComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_AnimatedAppComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_AppleRemote.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_ColourSelector.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_ColourSelector.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_android_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_ios_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_linux_X11_SystemTrayIcon.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +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_SystemTrayIcon.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_mac_WebBrowserComponent.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_win32_ActiveXComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_win32_SystemTrayIcon.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/juce_gui_extra.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/juce_gui_extra.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/juce_gui_extra.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/geometry/juce_Draggable3DOrientation.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/geometry/juce_Matrix3D.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/geometry/juce_Quaternion.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/geometry/juce_Vector3D.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/native/juce_MissingGLDefinitions.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/native/juce_OpenGL_android.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/native/juce_OpenGL_ios.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/native/juce_OpenGL_linux_X11.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/native/juce_OpenGL_osx.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/native/juce_OpenGL_win32.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/native/juce_OpenGLExtensions.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/opengl/juce_OpenGLContext.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/opengl/juce_OpenGLContext.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/opengl/juce_OpenGLImage.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/opengl/juce_OpenGLImage.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/opengl/juce_OpenGLPixelFormat.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/opengl/juce_OpenGLPixelFormat.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/opengl/juce_OpenGLRenderer.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/opengl/juce_OpenGLShaderProgram.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/opengl/juce_OpenGLShaderProgram.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/opengl/juce_OpenGLTexture.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/opengl/juce_OpenGLTexture.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/utils/juce_OpenGLAppComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/utils/juce_OpenGLAppComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/juce_opengl.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/juce_opengl.mm" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_opengl/juce_opengl.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../JuceLibraryCode/AppConfig.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../JuceLibraryCode/BinaryData.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../JuceLibraryCode/JuceHeader.h" PROPERTIES HEADER_FILE_ONLY TRUE) + +find_library(log "log") +find_library(android "android") +find_library(glesv3 "GLESv3") +find_library(egl "EGL") + +target_link_libraries( ${BINARY_NAME} + + ${log} + ${android} + ${glesv3} + ${egl} + "cpufeatures" +) diff --git a/examples/PushNotificationsDemo/Builds/Android/app/build.gradle b/examples/PushNotificationsDemo/Builds/Android/app/build.gradle new file mode 100644 index 0000000000..1e8f3c1eab --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/Android/app/build.gradle @@ -0,0 +1,92 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 26 + buildToolsVersion "26.0.0" + externalNativeBuild { + cmake { + path "CMakeLists.txt" + } + } + signingConfigs { + juceSigning { + storeFile file("${System.properties['user.home']}${File.separator}.android${File.separator}debug.keystore") + storePassword "android" + keyAlias "androiddebugkey" + keyPassword "android" + storeType "jks" + } + } + + defaultConfig { + applicationId "com.juce.pushnotificationsdemo" + minSdkVersion 26 + targetSdkVersion 26 + externalNativeBuild { + cmake { + arguments "-DANDROID_TOOLCHAIN=clang", "-DANDROID_PLATFORM=android-26", "-DANDROID_STL=c++_static", "-DANDROID_CPP_FEATURES=exceptions rtti", "-DANDROID_ARM_MODE=arm", "-DANDROID_ARM_NEON=TRUE" + cFlags "-fsigned-char", "-pedantic", "-Werror", "-Wall", "-Wshadow", "-Wno-missing-field-initializers", "-Wshadow", "-Wshorten-64-to-32", "-Wstrict-aliasing", "-Wuninitialized", "-Wunused-parameter", "-Wconversion", "-Wsign-compare", "-Wint-conversion", "-Woverloaded-virtual", "-Wreorder", "-Wconstant-conversion", "-Wsign-conversion", "-F../../../../3rd_party/FacebookSDKs-iOS-4", "-F../../../../3rd_party/Firebase_ios_sdk/Analytics", "-F../../../../3rd_party/Firebase_ios_sdk/Messaging" + cppFlags "-fsigned-char", "-std=c++11", "-pedantic", "-Werror", "-Wall", "-Wshadow", "-Wno-missing-field-initializers", "-Wshadow", "-Wshorten-64-to-32", "-Wstrict-aliasing", "-Wuninitialized", "-Wunused-parameter", "-Wconversion", "-Wsign-compare", "-Wint-conversion", "-Woverloaded-virtual", "-Wreorder", "-Wconstant-conversion", "-Wsign-conversion", "-F../../../../3rd_party/FacebookSDKs-iOS-4", "-F../../../../3rd_party/Firebase_ios_sdk/Analytics", "-F../../../../3rd_party/Firebase_ios_sdk/Messaging" + } + } + } + + buildTypes { + debug { + initWith debug + debuggable true + jniDebuggable true + signingConfig signingConfigs.juceSigning + } + release { + initWith release + debuggable false + jniDebuggable false + signingConfig signingConfigs.juceSigning + } + } + + productFlavors { + debug_ { + ndk { + abiFilters "armeabi", "x86" + } + externalNativeBuild { + cmake { + arguments "-DJUCE_BUILD_CONFIGFURATION=DEBUG", "-DCMAKE_CXX_FLAGS_DEBUG=-O0", "-DCMAKE_C_FLAGS_DEBUG=-O0" + } + } + } + release_ { + externalNativeBuild { + cmake { + arguments "-DJUCE_BUILD_CONFIGFURATION=RELEASE", "-DCMAKE_CXX_FLAGS_RELEASE=-O3", "-DCMAKE_C_FLAGS_RELEASE=-O3" + } + } + } + } + + variantFilter { variant -> + def names = variant.flavors*.name + if (names.contains ("debug_") + && variant.buildType.name != "debug") { + setIgnore(true) + } + if (names.contains ("release_") + && variant.buildType.name != "release") { + setIgnore(true) + } + } + +repositories { +} + +dependencies { + 'com.google.firebase:firebase-core:11.4.0' + compile 'com.google.firebase:firebase-messaging:11.4.0' +} + +apply plugin: 'com.google.gms.google-services' + +} + diff --git a/examples/PushNotificationsDemo/Builds/Android/app/google-services.json b/examples/PushNotificationsDemo/Builds/Android/app/google-services.json new file mode 100644 index 0000000000..9d83a3dca5 --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/Android/app/google-services.json @@ -0,0 +1,42 @@ +{ + "project_info": { + "project_number": "3137221487", + "firebase_url": "https://pushnotificationsdemo-1c714.firebaseio.com", + "project_id": "pushnotificationsdemo-1c714", + "storage_bucket": "pushnotificationsdemo-1c714.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:3137221487:android:8fdcd861a33b035c", + "android_client_info": { + "package_name": "com.juce.pushnotificationsdemo" + } + }, + "oauth_client": [ + { + "client_id": "3137221487-uftk61ukltbi07dmejslgt0d6qnml0oo.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyDPpqphjiEEYI3sJGptrebN5Z52GkOG4Wo" + } + ], + "services": { + "analytics_service": { + "status": 1 + }, + "appinvite_service": { + "status": 1, + "other_platform_oauth_client": [] + }, + "ads_service": { + "status": 2 + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/demonstrative.mp3 b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/demonstrative.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..45439d2cafb5d7ce6304f7987ccd58fd2d123b46 GIT binary patch literal 127059 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≷!Qn&2- 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 literal 0 HcmV?d00001 diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name.png b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name.png new file mode 100644 index 0000000000000000000000000000000000000000..84d0e8dceaeff3c06523001c76e27e7ed4e6d59f GIT binary patch literal 351 zcmV-l0igbgP)PxT9|Q40AZ`L;6-o@ZfEtPq`~l)wK+H#~;n6_+^FQ(6 z3J^;XYq%2-|Nc)pI0wX>NapAP@nIm|jchmv5a0h#K4?TT%LXd;71@HM|CE6bK+J>B zf~|Nop9kVXAnpX>FL>1XWr503HkK@mcT{ho(hn34s%j1^rMpazNYw z#MQ+3;4TnzA*u5tOxXMs2mh}(epGahvTP_x8=I2nlJku6B3bt(dd?E?xd zXht$i2Z(n9@h0?Oav?J(UqFs0Ld8WK5dR{<@M}OULu!F%4K2j*fxkdJ7l`@EEwY(G xITMr*fcPp9zX9TBKzsyO%kk002ovPDHLkV1f{VN<=E)@wijssP@gkGC&z!l>nY$)QF+=hog%=)B z!UGw%NM4k29ZbwQXZw9MyH=}hW*_@(`|Mg@eKF1QegEJ3zO~j~E0$%g((6rluwV`iP&RGC83ER99C|Mc555;@w~x8yf}W z9o5(p8boDf<#Yty8bNFVPmKgZn*lDJD9gBcD2zfjjfSAlQ&_@`TP$5{{19EO;M7$)StiAN- z;WQTZT!i$E2H+T#DAwBvfQy+rWmnbK)+QSo8WQ|{zt?}q?lKP{FTISFg$u-0+;&`Y zQi845|?1KJ8092h0>^;+q;2i0S|j#x|`ApYh3l z+Gm3r5FY|yaZmtkqbtdga`MSqkPksW?Nh1(Q09k0Zo_gCljn_^lkcXJerDtfqHV|7 z@|uG_OAvip&54Hdeh#LGTCf8_1JLtF)tu~Rcl|7?S86bV?+6-zgK)Q2^(TG+UaG+e z9{4*Cd;cyqCoT2V55NNr;NX9#z!44Lo}UGEnNMZgaat%IGyv-7Q-z%yE7ZW>q9V|Y@W zc3P2<3k|`pssQql#Vzf)$2Jt;CvsCu1L8zkS=oh5KAq$d^rs5Jmiilry`$|)GFBj{ z!XrM=9Y9_%rh-3L%XLz2Q~FqeU}4|Rc#EWQ&74qL zS{g@8$_+%G3k3#|DPR)%7zN^{ysd@;A*}+$4#d276X?Z<+v%FzyTg2)o=tDZ5cKsQ zA^PR>!3x{tNfAN&@ay;&j{u)aN=ovrY%}TW;^N{wT5JQp4YyrfAPcN0n2Y!U0M}Si zF-`mre4P~~Q^XI_Hk+)d*|7LuEZ9OTiiYqZe5(~zWA>x_Uv7*UGiJ<~F=NKE-2MO_ W<{M-x#}{`10000m3^a literal 0 HcmV?d00001 diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name2.png b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name2.png new file mode 100644 index 0000000000000000000000000000000000000000..9971da9b43d95be520a5f5a76d151ab8cfa9153d GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjlRaG=Ln>}1CoEw9@&EsRMuGXP zkMte>Om*Thddws6S~;4*XwIz%JeyeKGZGGpr*QAPbf9VdlBf@I9h(>aP}bF{Xj<~` z=L*&v2fPDrwLLQ5vZ3MG%8qAZJbyj@vFdI<=X6sg^26L~g&&&P#P%%T%3Ay}a)VUI z@(G>l%!PUan;&mlFi|Y@8UHNFz7$7gUG2YFZ40>=(i6naWy)S~1Uiqw)78&qol`;+ E0JQ2-kN^Mx literal 0 HcmV?d00001 diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name3.png b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name3.png new file mode 100644 index 0000000000000000000000000000000000000000..17bfe3ac7c401d05299bf24209346a16e53c5ff0 GIT binary patch literal 292 zcmV+<0o(qGP)!&dsRw=oaTc-#&!7^!fOs2)co)>H z$H*3ZfC}| qY=IjP-v{EKRKlP*b72?-!~g&o5?G(;eA#~h0000uS)s^+TcLuWUOR!yZHR zY(*BtX2D7%F%=;GO^i!{SP@GcV6~tcNsI}I-w|N}D9o9V^ws0D-~kY80Wlj8SCJ4z zWl%jj(436Z0ucBM^)|_o3dH{i#Q{~pfLU-0h$oVXZxLg`N(zdJRY>OiLoZ3+0`YSo n4xzw;aHtt?F-p`?fC~Ts^saU(@mUo700000NkvXXu0mjfMqY?l literal 0 HcmV?d00001 diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name5.png b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name5.png new file mode 100644 index 0000000000000000000000000000000000000000..e6219d5c1bc81b487342cba90237294a64b04532 GIT binary patch literal 337 zcmV-X0j~auP)*|NjNFG&~=O|IyTNApTDa!}DN=3nE7n zEO3D8IZlk?4yfX}Bv>$+lt@;EW*`u@#3J8>L(e^;k||U}7t}>Bf!G2~4g?yp=;0wH zC$jpA}gW0h!6?`yD-R$A|XsFf(jxqLhK?a2!bMLqnOZ9N5_2`$L2!mqA+NM zx+)cug7Bt=%B$ryU*6u(a}-d)YP<2)3gP)ixv@W zZEZU}9#1Fy-rCx#Ax>*-Y}D%O>$SSNx>?HK4Gj&m`&(LCG|ruX0~k74Q&Y3T7V#pS zs`iO!5msAUtGV57!xU4^&COyaKv&LVba^U=iWlKiA|f8q;V8zXYZ!S$%xy^(Ps?*i z^iC?CsPItAP{Y74a-2@e{P6jF`3#$HlE`ZD^U1K9p-4_kO;D9BOui9Gz@$q$>2MGe zS1mC?<+Et*r&NibXJQ%?#j*5p&K*WZzfS)DXzrlH;aJFo?Usp_O7S`wPGgA5j%I*` z#IG;ce;JrNi1>r7-$6UX3#IFH|DhBzk^#=~hg=iTtG}2EythldPAVLvkVSDDkntxK zsIIQIo!lp$MKdt}TucOJ9}&3dX*!4(GOmN%tv4AqzzVRQi93-l281l**9;rr@_Nq^SMzbik89GC$qR3r!>sYaHt`8<&`4@*HN!05iXblQk2Zg87jq z9P?@!$Df;tjkqAIVoqpG1p7nI3y7;>lLj8dx^t3nzscA#4+;$#kT#e}fbom53^0_k z%o?BrhYT5zf6OG{u6@D4i_jV?4TJ>-hD{o{7b`X*_L()n;!DEYbySuxWvOt)M4TD^}*^mK*cugjeDt(5z;Z`8b-H_)Mld;E%k!i>P6Rp&&0ckaf ze)1IQV|$b_e*oc^89GDqSe`)KfpA)hT|n$TI?20B?gJaRXwqylp@@}FDMESqmzzu? z@#JnE&H&x^%R9PG^8I<3ElA#%(~rj>8hbW&@8|eiubD!0{9CtWFG_`sbydop)^%|AXppOz5); zOW|7D^2G-6GZhsTC6;{HB3K^5MxmBMmRb6BuDrZ_J3&WMAYA60J1O5sola-2tV~H1 zKLO7r^~Vq9!zz+=!f7kTQHSKRHocLZODPo}!KFKwBGr{T8>Q=(j{gZ% z+BB_#spi!4!w-ik&HUdanF~=$Boc{4B9TZW68%)IR_n0S>Ga#}_9Lw0XyhBfy>7Rg zmJ8;+*z0ejAIdHOO8_n% z$Jw7XHeOe30O+`9+xDEPjSawW*#|)Jmd$1jMZ1Q@~B>2!M6U*f+3FoA8{vg5xtavWKfwP%dk`rM;@0YKrcxj)2BD**iP z$z*an)*ra>EDd23@FbN=#e3ve0PqPP0>CSL0DxckSpW(j`xiD$2>#A;H~5R(AggeJlp^P002ovPDHLkV1gb=>8bz# literal 0 HcmV?d00001 diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name8.png b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name8.png new file mode 100644 index 0000000000000000000000000000000000000000..3e32721c448527d9c9b2cd71f00ce6bb86bbf413 GIT binary patch literal 928 zcmV;R17G}!P)U_jlNMK@MZ3$3O_TgP+4n=-`s>C5juy$4Qc-kZ7aoSC_I=A|BwKp+qZ z1OkCTAQ1d-7#$tmo6Tmg4Gj&gvm1kb5obJ;$+S0BJRZ0?l}f#f$KxuUPEX)_n~fN4 z?8_L4HEAbCO$dj>XCjfv*H|n@6SoHk2iN~?U$$i*_C<_2%tTj9mJv*xgn)U=#GR3m zkqv+9!!~Sdi7!EXXG?PdquB)`bJ1v&Chi4;!HvIa%X@6Ywh;dXJm!dmhKWv?C{Y;J z^Zi63v8l2Rukjw+pzUXj{1Hc0C73wQQMG2`0TbO!dS0`{&xS&w!;UPi9951kg`zw@ z8XFtiLh^4d9!3u}sx+aZp(%9+Q@M1%o-Zu^XS-a=G08-rn9- zmEt=P_!TO|_hd4uY9Xr&M!8G~E>nN!y;|c_BL<}az5BHIUBkn}pRj(H9^`aVD>Q!q zcY5%V;qT34%Zp5_z^}fE$0U7-u)UTlRMkKr5Kx*BW6OXU zqY7W*fk$iI3#iSEizV1_15@C6zKqmkCvK*J5*Pxv*7GdX3b9^BoC(`dsC;7Hzw zzE7~u4>a<9psE2pwCMNym8Km7KA&$#KA&IN=ocDlGqu*uK(inQoNC~$c@YVD9q+iO zok(gkwIY#Ud+_nFzrSB;>a)8ONo}T94E|jj=rJ$4iP!?pmH)AUGC1Kv12>m`FyL7Q z7cPP?z-e&Cp`6BGKL;;x;5`C?Kp+qZ1OkDe7W@FnnRpFMsldko0000P)D`4fe}FjL2yZ&^8JtwMcZB7lUb@p>ch)Srt5dTSN*DfRU3v59XfRA(4j+z4jnpl z{BOY++f*)>&sD3{2bD^tB?$|)TI~#R=~)1hZxxG0mdRvTI-Qn+Y&Oe?1GtoXB9Bo& zNy*7%QVHa8ITCTgvjC``Q-!>VLZNWS6ZuA?F$LTFOe7M_L_8ip6^q3VjuIe!p638g z-@#+6tAJ9ebdgU4+8dfgeTLuf-;BOHJQvvLtQY${a=u`oMEstIYe!J_(C`R()nEXwpHPtUNIf0%V_$)(hhT zOzyV^eZd47OVCp>#+AGYHvwOO+jvTGeBKBCjDXY%Fi(9(B9R$<|GFUoxWQd)?zZzw zSvVX%OzZIw$uH4qjPDb3bPB&O^eW&DipPZAdW>twheW=M5kKNk$R=^UZ7Tpt%nFRc zRZ&qvn-_L@ed3v@PmuN7<=F~A)jRESv-v>_z@W{#94{|;7JxE6?NZjC4_W}0#HTJB zy6c_=VB)-LHk(@<-dY@`+A#zHUF`FH4zGG9@C4p@7C;1Xz-eNeJ!v6-08eLW2>v&p z{Cli?`z!~oZP+r*(S)@XfTfYyfvOx5KjDTI;3mDTLkG*0nVAR5B4{3vlI!KR*Nwz9}F;%nyHN1P!VR2oUq5;~Kn_1QzkbO9Fil1Oic~W95k7 piz>}ehYlS&bm-8bLx+wrj=$$ij=H!(Cuslx002ovPDHLkV1mG8m`nfw literal 0 HcmV?d00001 diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/isntit.mp3 b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/isntit.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..7b777e33f8e54a4d090c5f74539e6024c7ef1416 GIT binary patch literal 11284 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 a3~;B$i1vMg(u#xs@0R@kv;Uu-!2bgABjBF^ literal 0 HcmV?d00001 diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/jinglebellssms.mp3 b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/jinglebellssms.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..f4e4adca3f11b4e9aaeeaf6835a0dd4f3e4c1016 GIT binary patch literal 24116 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 QgdYBHHvIp!|Hn7*U&Bv^tpET3 literal 0 HcmV?d00001 diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/solemn.mp3 b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/solemn.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..907f6a40448a45fa1ffd222c58364845ea6a474a GIT binary patch literal 75650 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 Ma{o0V|J&~W5B*Co>i_@% literal 0 HcmV?d00001 diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/values/string.xml b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/values/string.xml new file mode 100644 index 0000000000..f560318461 --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/values/string.xml @@ -0,0 +1,5 @@ + + + + PushNotificationsDemo + diff --git a/examples/PushNotificationsDemo/Builds/Android/build.gradle b/examples/PushNotificationsDemo/Builds/Android/build.gradle new file mode 100644 index 0000000000..9e9971f90f --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/Android/build.gradle @@ -0,0 +1,18 @@ +buildscript { + repositories { + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:2.3.3' + classpath 'com.google.gms:google-services:3.1.0' + } +} + +allprojects { + repositories { + jcenter() + maven { + url "https://maven.google.com" + } + } +} diff --git a/examples/PushNotificationsDemo/Builds/Android/gradle/wrapper/LICENSE-for-gradlewrapper.txt b/examples/PushNotificationsDemo/Builds/Android/gradle/wrapper/LICENSE-for-gradlewrapper.txt new file mode 100644 index 0000000000..e06d208186 --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/Android/gradle/wrapper/LICENSE-for-gradlewrapper.txt @@ -0,0 +1,202 @@ +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/examples/PushNotificationsDemo/Builds/Android/gradle/wrapper/gradle-wrapper.jar b/examples/PushNotificationsDemo/Builds/Android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..13372aef5e24af05341d49695ee84e5f9b594659 GIT binary patch literal 53636 zcmafaW0a=B^559DjdyHo$F^PVt zzd|cWgMz^T0YO0lQ8%TE1O06v|NZl~LH{LLQ58WtNjWhFP#}eWVO&eiP!jmdp!%24 z{&z-MK{-h=QDqf+S+Pgi=_wg$I{F28X*%lJ>A7Yl#$}fMhymMu?R9TEB?#6@|Q^e^AHhxcRL$z1gsc`-Q`3j+eYAd<4@z^{+?JM8bmu zSVlrVZ5-)SzLn&LU9GhXYG{{I+u(+6ES+tAtQUanYC0^6kWkks8cG;C&r1KGs)Cq}WZSd3k1c?lkzwLySimkP5z)T2Ox3pNs;PdQ=8JPDkT7#0L!cV? zzn${PZs;o7UjcCVd&DCDpFJvjI=h(KDmdByJuDYXQ|G@u4^Kf?7YkE67fWM97kj6F z973tGtv!k$k{<>jd~D&c(x5hVbJa`bILdy(00%lY5}HZ2N>)a|))3UZ&fUa5@uB`H z+LrYm@~t?g`9~@dFzW5l>=p0hG%rv0>(S}jEzqQg6-jImG%Pr%HPtqIV_Ym6yRydW z4L+)NhcyYp*g#vLH{1lK-hQQSScfvNiNx|?nSn-?cc8}-9~Z_0oxlr~(b^EiD`Mx< zlOLK)MH?nl4dD|hx!jBCIku-lI(&v~bCU#!L7d0{)h z;k4y^X+=#XarKzK*)lv0d6?kE1< zmCG^yDYrSwrKIn04tG)>>10%+ zEKzs$S*Zrl+GeE55f)QjY$ zD5hi~J17k;4VSF_`{lPFwf^Qroqg%kqM+Pdn%h#oOPIsOIwu?JR717atg~!)*CgXk zERAW?c}(66rnI+LqM^l7BW|9dH~5g1(_w$;+AAzSYlqop*=u5}=g^e0xjlWy0cUIT7{Fs2Xqx*8% zW71JB%hk%aV-wjNE0*$;E-S9hRx5|`L2JXxz4TX3nf8fMAn|523ssV;2&145zh{$V z#4lt)vL2%DCZUgDSq>)ei2I`*aeNXHXL1TB zC8I4!uq=YYVjAdcCjcf4XgK2_$y5mgsCdcn2U!VPljXHco>+%`)6W=gzJk0$e%m$xWUCs&Ju-nUJjyQ04QF_moED2(y6q4l+~fo845xm zE5Esx?~o#$;rzpCUk2^2$c3EBRNY?wO(F3Pb+<;qfq;JhMFuSYSxiMejBQ+l8(C-- zz?Xufw@7{qvh$;QM0*9tiO$nW(L>83egxc=1@=9Z3)G^+*JX-z92F((wYiK>f;6 zkc&L6k4Ua~FFp`x7EF;ef{hb*n8kx#LU|6{5n=A55R4Ik#sX{-nuQ}m7e<{pXq~8#$`~6| zi{+MIgsBRR-o{>)CE8t0Bq$|SF`M0$$7-{JqwFI1)M^!GMwq5RAWMP!o6G~%EG>$S zYDS?ux;VHhRSm*b^^JukYPVb?t0O%^&s(E7Rb#TnsWGS2#FdTRj_SR~YGjkaRFDI=d)+bw$rD;_!7&P2WEmn zIqdERAbL&7`iA^d?8thJ{(=)v>DgTF7rK-rck({PpYY$7uNY$9-Z< ze4=??I#p;$*+-Tm!q8z}k^%-gTm59^3$*ByyroqUe02Dne4?Fc%JlO>*f9Zj{++!^ zBz0FxuS&7X52o6-^CYq>jkXa?EEIfh?xdBPAkgpWpb9Tam^SXoFb3IRfLwanWfskJ zIbfU-rJ1zPmOV)|%;&NSWIEbbwj}5DIuN}!m7v4($I{Rh@<~-sK{fT|Wh?<|;)-Z; zwP{t@{uTsmnO@5ZY82lzwl4jeZ*zsZ7w%a+VtQXkigW$zN$QZnKw4F`RG`=@eWowO zFJ6RC4e>Y7Nu*J?E1*4*U0x^>GK$>O1S~gkA)`wU2isq^0nDb`);Q(FY<8V6^2R%= zDY}j+?mSj{bz2>F;^6S=OLqiHBy~7h4VVscgR#GILP!zkn68S^c04ZL3e$lnSU_(F zZm3e`1~?eu1>ys#R6>Gu$`rWZJG&#dsZ?^)4)v(?{NPt+_^Ak>Ap6828Cv^B84fa4 z_`l$0SSqkBU}`f*H#<14a)khT1Z5Z8;=ga^45{l8y*m|3Z60vgb^3TnuUKaa+zP;m zS`za@C#Y;-LOm&pW||G!wzr+}T~Q9v4U4ufu*fLJC=PajN?zN=?v^8TY}wrEeUygdgwr z7szml+(Bar;w*c^!5txLGKWZftqbZP`o;Kr1)zI}0Kb8yr?p6ZivtYL_KA<+9)XFE z=pLS5U&476PKY2aKEZh}%|Vb%!us(^qf)bKdF7x_v|Qz8lO7Ro>;#mxG0gqMaTudL zi2W!_#3@INslT}1DFJ`TsPvRBBGsODklX0`p-M6Mrgn~6&fF`kdj4K0I$<2Hp(YIA z)fFdgR&=qTl#sEFj6IHzEr1sYM6 zNfi!V!biByA&vAnZd;e_UfGg_={}Tj0MRt3SG%BQYnX$jndLG6>ssgIV{T3#=;RI% zE}b!9z#fek19#&nFgC->@!IJ*Fe8K$ZOLmg|6(g}ccsSBpc`)3;Ar8;3_k`FQ#N9&1tm>c|2mzG!!uWvelm zJj|oDZ6-m(^|dn3em(BF&3n12=hdtlb@%!vGuL*h`CXF?^=IHU%Q8;g8vABm=U!vX zT%Ma6gpKQC2c;@wH+A{)q+?dAuhetSxBDui+Z;S~6%oQq*IwSMu-UhMDy{pP z-#GB-a0`0+cJ%dZ7v0)3zfW$eV>w*mgU4Cma{P$DY3|w364n$B%cf()fZ;`VIiK_O zQ|q|(55+F$H(?opzr%r)BJLy6M&7Oq8KCsh`pA5^ohB@CDlMKoDVo5gO&{0k)R0b(UOfd>-(GZGeF}y?QI_T+GzdY$G{l!l% zHyToqa-x&X4;^(-56Lg$?(KYkgJn9W=w##)&CECqIxLe@+)2RhO*-Inpb7zd8txFG6mY8E?N8JP!kRt_7-&X{5P?$LAbafb$+hkA*_MfarZxf zXLpXmndnV3ubbXe*SYsx=eeuBKcDZI0bg&LL-a8f9>T(?VyrpC6;T{)Z{&|D5a`Aa zjP&lP)D)^YYWHbjYB6ArVs+4xvrUd1@f;;>*l zZH``*BxW+>Dd$be{`<&GN(w+m3B?~3Jjz}gB8^|!>pyZo;#0SOqWem%xeltYZ}KxOp&dS=bg|4 zY-^F~fv8v}u<7kvaZH`M$fBeltAglH@-SQres30fHC%9spF8Ld%4mjZJDeGNJR8+* zl&3Yo$|JYr2zi9deF2jzEC) zl+?io*GUGRp;^z+4?8gOFA>n;h%TJC#-st7#r&-JVeFM57P7rn{&k*z@+Y5 zc2sui8(gFATezp|Te|1-Q*e|Xi+__8bh$>%3|xNc2kAwTM!;;|KF6cS)X3SaO8^z8 zs5jV(s(4_NhWBSSJ}qUzjuYMKlkjbJS!7_)wwVsK^qDzHx1u*sC@C1ERqC#l%a zk>z>m@sZK{#GmsB_NkEM$$q@kBrgq%=NRBhL#hjDQHrI7(XPgFvP&~ZBJ@r58nLme zK4tD}Nz6xrbvbD6DaDC9E_82T{(WRQBpFc+Zb&W~jHf1MiBEqd57}Tpo8tOXj@LcF zwN8L-s}UO8%6piEtTrj@4bLH!mGpl5mH(UJR1r9bBOrSt0tSJDQ9oIjcW#elyMAxl7W^V(>8M~ss0^>OKvf{&oUG@uW{f^PtV#JDOx^APQKm& z{*Ysrz&ugt4PBUX@KERQbycxP%D+ApR%6jCx7%1RG2YpIa0~tqS6Xw6k#UN$b`^l6d$!I z*>%#Eg=n#VqWnW~MurJLK|hOQPTSy7G@29g@|g;mXC%MF1O7IAS8J^Q6D&Ra!h^+L&(IBYg2WWzZjT-rUsJMFh@E)g)YPW_)W9GF3 zMZz4RK;qcjpnat&J;|MShuPc4qAc)A| zVB?h~3TX+k#Cmry90=kdDoPYbhzs#z96}#M=Q0nC{`s{3ZLU)c(mqQQX;l~1$nf^c zFRQ~}0_!cM2;Pr6q_(>VqoW0;9=ZW)KSgV-c_-XdzEapeLySavTs5-PBsl-n3l;1jD z9^$^xR_QKDUYoeqva|O-+8@+e??(pRg@V|=WtkY!_IwTN~ z9Rd&##eWt_1w$7LL1$-ETciKFyHnNPjd9hHzgJh$J(D@3oYz}}jVNPjH!viX0g|Y9 zDD`Zjd6+o+dbAbUA( zEqA9mSoX5p|9sDVaRBFx_8)Ra4HD#xDB(fa4O8_J2`h#j17tSZOd3%}q8*176Y#ak zC?V8Ol<*X{Q?9j{Ys4Bc#sq!H;^HU$&F_`q2%`^=9DP9YV-A!ZeQ@#p=#ArloIgUH%Y-s>G!%V3aoXaY=f<UBrJTN+*8_lMX$yC=Vq+ zrjLn-pO%+VIvb~>k%`$^aJ1SevcPUo;V{CUqF>>+$c(MXxU12mxqyFAP>ki{5#;Q0 zx7Hh2zZdZzoxPY^YqI*Vgr)ip0xnpQJ+~R*UyFi9RbFd?<_l8GH@}gGmdB)~V7vHg z>Cjy78TQTDwh~+$u$|K3if-^4uY^|JQ+rLVX=u7~bLY29{lr>jWV7QCO5D0I>_1?; zx>*PxE4|wC?#;!#cK|6ivMzJ({k3bT_L3dHY#h7M!ChyTT`P#%3b=k}P(;QYTdrbe z+e{f@we?3$66%02q8p3;^th;9@y2vqt@LRz!DO(WMIk?#Pba85D!n=Ao$5NW0QVgS zoW)fa45>RkjU?H2SZ^#``zs6dG@QWj;MO4k6tIp8ZPminF`rY31dzv^e-3W`ZgN#7 z)N^%Rx?jX&?!5v`hb0-$22Fl&UBV?~cV*{hPG6%ml{k;m+a-D^XOF6DxPd$3;2VVY zT)E%m#ZrF=D=84$l}71DK3Vq^?N4``cdWn3 zqV=mX1(s`eCCj~#Nw4XMGW9tK>$?=cd$ule0Ir8UYzhi?%_u0S?c&j7)-~4LdolkgP^CUeE<2`3m)I^b ztV`K0k$OS^-GK0M0cNTLR22Y_eeT{<;G(+51Xx}b6f!kD&E4; z&Op8;?O<4D$t8PB4#=cWV9Q*i4U+8Bjlj!y4`j)^RNU#<5La6|fa4wLD!b6?RrBsF z@R8Nc^aO8ty7qzlOLRL|RUC-Bt-9>-g`2;@jfNhWAYciF{df9$n#a~28+x~@x0IWM zld=J%YjoKm%6Ea>iF){z#|~fo_w#=&&HRogJmXJDjCp&##oVvMn9iB~gyBlNO3B5f zXgp_1I~^`A0z_~oAa_YBbNZbDsnxLTy0@kkH!=(xt8|{$y<+|(wSZW7@)#|fs_?gU5-o%vpsQPRjIxq;AED^oG%4S%`WR}2(*!84Pe8Jw(snJ zq~#T7+m|w#acH1o%e<+f;!C|*&_!lL*^zRS`;E}AHh%cj1yR&3Grv&0I9k9v0*w8^ zXHEyRyCB`pDBRAxl;ockOh6$|7i$kzCBW$}wGUc|2bo3`x*7>B@eI=-7lKvI)P=gQ zf_GuA+36kQb$&{ZH)6o^x}wS}S^d&Xmftj%nIU=>&j@0?z8V3PLb1JXgHLq)^cTvB zFO6(yj1fl1Bap^}?hh<>j?Jv>RJdK{YpGjHxnY%d8x>A{k+(18J|R}%mAqq9Uzm8^Us#Ir_q^w9-S?W07YRD`w%D(n;|8N%_^RO`zp4 z@`zMAs>*x0keyE)$dJ8hR37_&MsSUMlGC*=7|wUehhKO)C85qoU}j>VVklO^TxK?! zO!RG~y4lv#W=Jr%B#sqc;HjhN={wx761vA3_$S>{j+r?{5=n3le|WLJ(2y_r>{)F_ z=v8Eo&xFR~wkw5v-{+9^JQukxf8*CXDWX*ZzjPVDc>S72uxAcY+(jtg3ns_5R zRYl2pz`B)h+e=|7SfiAAP;A zk0tR)3u1qy0{+?bQOa17SpBRZ5LRHz(TQ@L0%n5xJ21ri>^X420II1?5^FN3&bV?( zCeA)d9!3FAhep;p3?wLPs`>b5Cd}N!;}y`Hq3ppDs0+><{2ey0yq8o7m-4|oaMsWf zsLrG*aMh91drd-_QdX6t&I}t2!`-7$DCR`W2yoV%bcugue)@!SXM}fJOfG(bQQh++ zjAtF~zO#pFz})d8h)1=uhigDuFy`n*sbxZ$BA^Bt=Jdm}_KB6sCvY(T!MQnqO;TJs zVD{*F(FW=+v`6t^6{z<3-fx#|Ze~#h+ymBL^^GKS%Ve<)sP^<4*y_Y${06eD zH_n?Ani5Gs4&1z)UCL-uBvq(8)i!E@T_*0Sp5{Ddlpgke^_$gukJc_f9e=0Rfpta@ ze5~~aJBNK&OJSw!(rDRAHV0d+eW#1?PFbr==uG-$_fu8`!DWqQD~ef-Gx*ZmZx33_ zb0+I(0!hIK>r9_S5A*UwgRBKSd6!ieiYJHRigU@cogJ~FvJHY^DSysg)ac=7#wDBf zNLl!E$AiUMZC%%i5@g$WsN+sMSoUADKZ}-Pb`{7{S>3U%ry~?GVX!BDar2dJHLY|g zTJRo#Bs|u#8ke<3ohL2EFI*n6adobnYG?F3-#7eZZQO{#rmM8*PFycBR^UZKJWr(a z8cex$DPOx_PL^TO<%+f^L6#tdB8S^y#+fb|acQfD(9WgA+cb15L+LUdHKv)wE6={i zX^iY3N#U7QahohDP{g`IHS?D00eJC9DIx0V&nq!1T* z4$Bb?trvEG9JixrrNRKcjX)?KWR#Y(dh#re_<y*=5!J+-Wwb*D>jKXgr5L8_b6pvSAn3RIvI5oj!XF^m?otNA=t^dg z#V=L0@W)n?4Y@}49}YxQS=v5GsIF3%Cp#fFYm0Bm<}ey& zOfWB^vS8ye?n;%yD%NF8DvOpZqlB++#4KnUj>3%*S(c#yACIU>TyBG!GQl7{b8j#V z;lS})mrRtT!IRh2B-*T58%9;!X}W^mg;K&fb7?2#JH>JpCZV5jbDfOgOlc@wNLfHN z8O92GeBRjCP6Q9^Euw-*i&Wu=$>$;8Cktx52b{&Y^Ise-R1gTKRB9m0*Gze>$k?$N zua_0Hmbcj8qQy{ZyJ%`6v6F+yBGm>chZxCGpeL@os+v&5LON7;$tb~MQAbSZKG$k z8w`Mzn=cX4Hf~09q8_|3C7KnoM1^ZGU}#=vn1?1^Kc-eWv4x^T<|i9bCu;+lTQKr- zRwbRK!&XrWRoO7Kw!$zNQb#cJ1`iugR(f_vgmu!O)6tFH-0fOSBk6$^y+R07&&B!(V#ZV)CX42( zTC(jF&b@xu40fyb1=_2;Q|uPso&Gv9OSM1HR{iGPi@JUvmYM;rkv#JiJZ5-EFA%Lu zf;wAmbyclUM*D7>^nPatbGr%2aR5j55qSR$hR`c?d+z z`qko8Yn%vg)p=H`1o?=b9K0%Blx62gSy)q*8jWPyFmtA2a+E??&P~mT@cBdCsvFw4 zg{xaEyVZ|laq!sqN}mWq^*89$e6%sb6Thof;ml_G#Q6_0-zwf80?O}D0;La25A0C+ z3)w-xesp6?LlzF4V%yA9Ryl_Kq*wMk4eu&)Tqe#tmQJtwq`gI^7FXpToum5HP3@;N zpe4Y!wv5uMHUu`zbdtLys5)(l^C(hFKJ(T)z*PC>7f6ZRR1C#ao;R&_8&&a3)JLh* zOFKz5#F)hJqVAvcR#1)*AWPGmlEKw$sQd)YWdAs_W-ojA?Lm#wCd}uF0^X=?AA#ki zWG6oDQZJ5Tvifdz4xKWfK&_s`V*bM7SVc^=w7-m}jW6U1lQEv_JsW6W(| zkKf>qn^G!EWn~|7{G-&t0C6C%4)N{WRK_PM>4sW8^dDkFM|p&*aBuN%fg(I z^M-49vnMd%=04N95VO+?d#el>LEo^tvnQsMop70lNqq@%cTlht?e+B5L1L9R4R(_6 z!3dCLeGXb+_LiACNiqa^nOELJj%q&F^S+XbmdP}`KAep%TDop{Pz;UDc#P&LtMPgH zy+)P1jdgZQUuwLhV<89V{3*=Iu?u#v;v)LtxoOwV(}0UD@$NCzd=id{UuDdedeEp| z`%Q|Y<6T?kI)P|8c!K0Za&jxPhMSS!T`wlQNlkE(2B*>m{D#`hYYD>cgvsKrlcOcs7;SnVCeBiK6Wfho@*Ym9 zr0zNfrr}0%aOkHd)d%V^OFMI~MJp+Vg-^1HPru3Wvac@-QjLX9Dx}FL(l>Z;CkSvC zOR1MK%T1Edv2(b9$ttz!E7{x4{+uSVGz`uH&)gG`$)Vv0^E#b&JSZp#V)b6~$RWwe zzC3FzI`&`EDK@aKfeqQ4M(IEzDd~DS>GB$~ip2n!S%6sR&7QQ*=Mr(v*v-&07CO%# zMBTaD8-EgW#C6qFPPG1Ph^|0AFs;I+s|+A@WU}%@WbPI$S0+qFR^$gim+Fejs2f!$ z@Xdlb_K1BI;iiOUj`j+gOD%mjq^S~J0cZZwuqfzNH9}|(vvI6VO+9ZDA_(=EAo;( zKKzm`k!s!_sYCGOm)93Skaz+GF7eY@Ra8J$C)`X)`aPKym?7D^SI}Mnef4C@SgIEB z>nONSFl$qd;0gSZhNcRlq9VVHPkbakHlZ1gJ1y9W+@!V$TLpdsbKR-VwZrsSM^wLr zL9ob&JG)QDTaf&R^cnm5T5#*J3(pSpjM5~S1 z@V#E2syvK6wb?&h?{E)CoI~9uA(hST7hx4_6M(7!|BW3TR_9Q zLS{+uPoNgw(aK^?=1rFcDO?xPEk5Sm=|pW%-G2O>YWS^(RT)5EQ2GSl75`b}vRcD2 z|HX(x0#Qv+07*O|vMIV(0?KGjOny#Wa~C8Q(kF^IR8u|hyyfwD&>4lW=)Pa311caC zUk3aLCkAFkcidp@C%vNVLNUa#1ZnA~ZCLrLNp1b8(ndgB(0zy{Mw2M@QXXC{hTxr7 zbipeHI-U$#Kr>H4}+cu$#2fG6DgyWgq{O#8aa)4PoJ^;1z7b6t&zt zPei^>F1%8pcB#1`z`?f0EAe8A2C|}TRhzs*-vN^jf(XNoPN!tONWG=abD^=Lm9D?4 zbq4b(in{eZehKC0lF}`*7CTzAvu(K!eAwDNC#MlL2~&gyFKkhMIF=32gMFLvKsbLY z1d$)VSzc^K&!k#2Q?(f>pXn){C+g?vhQ0ijV^Z}p5#BGrGb%6n>IH-)SA$O)*z3lJ z1rtFlovL`cC*RaVG!p!4qMB+-f5j^1)ALf4Z;2X&ul&L!?`9Vdp@d(%(>O=7ZBV;l z?bbmyPen>!P{TJhSYPmLs759b1Ni1`d$0?&>OhxxqaU|}-?Z2c+}jgZ&vCSaCivx| z-&1gw2Lr<;U-_xzlg}Fa_3NE?o}R-ZRX->__}L$%2ySyiPegbnM{UuADqwDR{C2oS zPuo88%DNfl4xBogn((9j{;*YGE0>2YoL?LrH=o^SaAcgO39Ew|vZ0tyOXb509#6{7 z0<}CptRX5(Z4*}8CqCgpT@HY3Q)CvRz_YE;nf6ZFwEje^;Hkj0b1ESI*8Z@(RQrW4 z35D5;S73>-W$S@|+M~A(vYvX(yvLN(35THo!yT=vw@d(=q8m+sJyZMB7T&>QJ=jkwQVQ07*Am^T980rldC)j}}zf!gq7_z4dZ zHwHB94%D-EB<-^W@9;u|(=X33c(G>q;Tfq1F~-Lltp|+uwVzg?e$M96ndY{Lcou%w zWRkjeE`G*i)Bm*|_7bi+=MPm8by_};`=pG!DSGBP6y}zvV^+#BYx{<>p0DO{j@)(S zxcE`o+gZf8EPv1g3E1c3LIbw+`rO3N+Auz}vn~)cCm^DlEi#|Az$b z2}Pqf#=rxd!W*6HijC|u-4b~jtuQS>7uu{>wm)PY6^S5eo=?M>;tK`=DKXuArZvaU zHk(G??qjKYS9G6Du)#fn+ob=}C1Hj9d?V$_=J41ljM$CaA^xh^XrV-jzi7TR-{{9V zZZI0;aQ9YNEc`q=Xvz;@q$eqL<}+L(>HR$JA4mB6~g*YRSnpo zTofY;u7F~{1Pl=pdsDQx8Gg#|@BdoWo~J~j%DfVlT~JaC)he>he6`C`&@@#?;e(9( zgKcmoidHU$;pi{;VXyE~4>0{kJ>K3Uy6`s*1S--*mM&NY)*eOyy!7?9&osK*AQ~vi z{4qIQs)s#eN6j&0S()cD&aCtV;r>ykvAzd4O-fG^4Bmx2A2U7-kZR5{Qp-R^i4H2yfwC7?9(r3=?oH(~JR4=QMls>auMv*>^^!$}{}R z;#(gP+O;kn4G|totqZGdB~`9yzShMze{+$$?9%LJi>4YIsaPMwiJ{`gocu0U}$Q$vI5oeyKrgzz>!gI+XFt!#n z7vs9Pn`{{5w-@}FJZn?!%EQV!PdA3hw%Xa2#-;X4*B4?`WM;4@bj`R-yoAs_t4!!` zEaY5OrYi`3u3rXdY$2jZdZvufgFwVna?!>#t#DKAD2;U zqpqktqJ)8EPY*w~yj7r~#bNk|PDM>ZS?5F7T5aPFVZrqeX~5_1*zTQ%;xUHe#li?s zJ*5XZVERVfRjwX^s=0<%nXhULK+MdibMjzt%J7#fuh?NXyJ^pqpfG$PFmG!h*opyi zmMONjJY#%dkdRHm$l!DLeBm#_0YCq|x17c1fYJ#5YMpsjrFKyU=y>g5QcTgbDm28X zYL1RK)sn1@XtkGR;tNb}(kg#9L=jNSbJizqAgV-TtK2#?LZXrCIz({ zO^R|`ZDu(d@E7vE}df5`a zNIQRp&mDFbgyDKtyl@J|GcR9!h+_a$za$fnO5Ai9{)d7m@?@qk(RjHwXD}JbKRn|u z=Hy^z2vZ<1Mf{5ihhi9Y9GEG74Wvka;%G61WB*y7;&L>k99;IEH;d8-IR6KV{~(LZ zN7@V~f)+yg7&K~uLvG9MAY+{o+|JX?yf7h9FT%7ZrW7!RekjwgAA4jU$U#>_!ZC|c zA9%tc9nq|>2N1rg9uw-Qc89V}I5Y`vuJ(y`Ibc_?D>lPF0>d_mB@~pU`~)uWP48cT@fTxkWSw{aR!`K{v)v zpN?vQZZNPgs3ki9h{An4&Cap-c5sJ!LVLtRd=GOZ^bUpyDZHm6T|t#218}ZA zx*=~9PO>5IGaBD^XX-_2t7?7@WN7VfI^^#Csdz9&{1r z9y<9R?BT~-V8+W3kzWWQ^)ZSI+R zt^Lg`iN$Z~a27)sC_03jrD-%@{ArCPY#Pc*u|j7rE%}jF$LvO4vyvAw3bdL_mg&ei zXys_i=Q!UoF^Xp6^2h5o&%cQ@@)$J4l`AG09G6Uj<~A~!xG>KjKSyTX)zH*EdHMK0 zo;AV-D+bqWhtD-!^+`$*P0B`HokilLd1EuuwhJ?%3wJ~VXIjIE3tj653PExvIVhE& zFMYsI(OX-Q&W$}9gad^PUGuKElCvXxU_s*kx%dH)Bi&$*Q(+9j>(Q>7K1A#|8 zY!G!p0kW29rP*BNHe_wH49bF{K7tymi}Q!Vc_Ox2XjwtpM2SYo7n>?_sB=$c8O5^? z6as!fE9B48FcE`(ruNXP%rAZlDXrFTC7^aoXEX41k)tIq)6kJ*(sr$xVqsh_m3^?? zOR#{GJIr6E0Sz{-( z-R?4asj|!GVl0SEagNH-t|{s06Q3eG{kZOoPHL&Hs0gUkPc&SMY=&{C0&HDI)EHx9 zm#ySWluxwp+b~+K#VG%21%F65tyrt9RTPR$eG0afer6D`M zTW=y!@y6yi#I5V#!I|8IqU=@IfZo!@9*P+f{yLxGu$1MZ%xRY(gRQ2qH@9eMK0`Z> zgO`4DHfFEN8@m@dxYuljsmVv}c4SID+8{kr>d_dLzF$g>urGy9g+=`xAfTkVtz56G zrKNsP$yrDyP=kIqPN9~rVmC-wH672NF7xU>~j5M06Xr&>UJBmOV z%7Ie2d=K=u^D`~i3(U7x?n=h!SCSD1`aFe-sY<*oh+=;B>UVFBOHsF=(Xr(Cai{dL z4S7Y>PHdfG9Iav5FtKzx&UCgg)|DRLvq7!0*9VD`e6``Pgc z1O!qSaNeBBZnDXClh(Dq@XAk?Bd6+_rsFt`5(E+V2c)!Mx4X z47X+QCB4B7$B=Fw1Z1vnHg;x9oDV1YQJAR6Q3}_}BXTFg$A$E!oGG%`Rc()-Ysc%w za(yEn0fw~AaEFr}Rxi;if?Gv)&g~21UzXU9osI9{rNfH$gPTTk#^B|irEc<8W+|9$ zc~R${X2)N!npz1DFVa%nEW)cgPq`MSs)_I*Xwo<+ZK-2^hD(Mc8rF1+2v7&qV;5SET-ygMLNFsb~#u+LpD$uLR1o!ha67gPV5Q{v#PZK5X zUT4aZ{o}&*q7rs)v%*fDTl%}VFX?Oi{i+oKVUBqbi8w#FI%_5;6`?(yc&(Fed4Quy8xsswG+o&R zO1#lUiA%!}61s3jR7;+iO$;1YN;_*yUnJK=$PT_}Q%&0T@2i$ zwGC@ZE^A62YeOS9DU9me5#`(wv24fK=C)N$>!!6V#6rX3xiHehfdvwWJ>_fwz9l)o`Vw9yi z0p5BgvIM5o_ zgo-xaAkS_mya8FXo1Ke4;U*7TGSfm0!fb4{E5Ar8T3p!Z@4;FYT8m=d`C@4-LM121 z?6W@9d@52vxUT-6K_;1!SE%FZHcm0U$SsC%QB zxkTrfH;#Y7OYPy!nt|k^Lgz}uYudos9wI^8x>Y{fTzv9gfTVXN2xH`;Er=rTeAO1x znaaJOR-I)qwD4z%&dDjY)@s`LLSd#FoD!?NY~9#wQRTHpD7Vyyq?tKUHKv6^VE93U zt_&ePH+LM-+9w-_9rvc|>B!oT>_L59nipM-@ITy|x=P%Ezu@Y?N!?jpwP%lm;0V5p z?-$)m84(|7vxV<6f%rK3!(R7>^!EuvA&j@jdTI+5S1E{(a*wvsV}_)HDR&8iuc#>+ zMr^2z*@GTnfDW-QS38OJPR3h6U&mA;vA6Pr)MoT7%NvA`%a&JPi|K8NP$b1QY#WdMt8-CDA zyL0UXNpZ?x=tj~LeM0wk<0Dlvn$rtjd$36`+mlf6;Q}K2{%?%EQ+#FJy6v5cS+Q-~ ztk||Iwr$(CZQHi38QZF;lFFBNt+mg2*V_AhzkM<8#>E_S^xj8%T5tXTytD6f)vePG z^B0Ne-*6Pqg+rVW?%FGHLhl^ycQM-dhNCr)tGC|XyES*NK%*4AnZ!V+Zu?x zV2a82fs8?o?X} zjC1`&uo1Ti*gaP@E43NageV^$Xue3%es2pOrLdgznZ!_a{*`tfA+vnUv;^Ebi3cc$?-kh76PqA zMpL!y(V=4BGPQSU)78q~N}_@xY5S>BavY3Sez-+%b*m0v*tOz6zub9%*~%-B)lb}t zy1UgzupFgf?XyMa+j}Yu>102tP$^S9f7;b7N&8?_lYG$okIC`h2QCT_)HxG1V4Uv{xdA4k3-FVY)d}`cmkePsLScG&~@wE?ix2<(G7h zQ7&jBQ}Kx9mm<0frw#BDYR7_HvY7En#z?&*FurzdDNdfF znCL1U3#iO`BnfPyM@>;#m2Lw9cGn;(5*QN9$zd4P68ji$X?^=qHraP~Nk@JX6}S>2 zhJz4MVTib`OlEAqt!UYobU0-0r*`=03)&q7ubQXrt|t?^U^Z#MEZV?VEin3Nv1~?U zuwwSeR10BrNZ@*h7M)aTxG`D(By$(ZP#UmBGf}duX zhx;7y1x@j2t5sS#QjbEPIj95hV8*7uF6c}~NBl5|hgbB(}M3vnt zu_^>@s*Bd>w;{6v53iF5q7Em>8n&m&MXL#ilSzuC6HTzzi-V#lWoX zBOSBYm|ti@bXb9HZ~}=dlV+F?nYo3?YaV2=N@AI5T5LWWZzwvnFa%w%C<$wBkc@&3 zyUE^8xu<=k!KX<}XJYo8L5NLySP)cF392GK97(ylPS+&b}$M$Y+1VDrJa`GG7+%ToAsh z5NEB9oVv>as?i7f^o>0XCd%2wIaNRyejlFws`bXG$Mhmb6S&shdZKo;p&~b4wv$ z?2ZoM$la+_?cynm&~jEi6bnD;zSx<0BuCSDHGSssT7Qctf`0U!GDwG=+^|-a5%8Ty z&Q!%m%geLjBT*#}t zv1wDzuC)_WK1E|H?NZ&-xr5OX(ukXMYM~_2c;K}219agkgBte_#f+b9Al8XjL-p}1 z8deBZFjplH85+Fa5Q$MbL>AfKPxj?6Bib2pevGxIGAG=vr;IuuC%sq9x{g4L$?Bw+ zvoo`E)3#bpJ{Ij>Yn0I>R&&5B$&M|r&zxh+q>*QPaxi2{lp?omkCo~7ibow#@{0P> z&XBocU8KAP3hNPKEMksQ^90zB1&&b1Me>?maT}4xv7QHA@Nbvt-iWy7+yPFa9G0DP zP82ooqy_ku{UPv$YF0kFrrx3L=FI|AjG7*(paRLM0k1J>3oPxU0Zd+4&vIMW>h4O5G zej2N$(e|2Re z@8xQ|uUvbA8QVXGjZ{Uiolxb7c7C^nW`P(m*Jkqn)qdI0xTa#fcK7SLp)<86(c`A3 zFNB4y#NHe$wYc7V)|=uiW8gS{1WMaJhDj4xYhld;zJip&uJ{Jg3R`n+jywDc*=>bW zEqw(_+j%8LMRrH~+M*$V$xn9x9P&zt^evq$P`aSf-51`ZOKm(35OEUMlO^$>%@b?a z>qXny!8eV7cI)cb0lu+dwzGH(Drx1-g+uDX;Oy$cs+gz~?LWif;#!+IvPR6fa&@Gj zwz!Vw9@-Jm1QtYT?I@JQf%`=$^I%0NK9CJ75gA}ff@?I*xUD7!x*qcyTX5X+pS zAVy4{51-dHKs*OroaTy;U?zpFS;bKV7wb}8v+Q#z<^$%NXN(_hG}*9E_DhrRd7Jqp zr}2jKH{avzrpXj?cW{17{kgKql+R(Ew55YiKK7=8nkzp7Sx<956tRa(|yvHlW zNO7|;GvR(1q}GrTY@uC&ow0me|8wE(PzOd}Y=T+Ih8@c2&~6(nzQrK??I7DbOguA9GUoz3ASU%BFCc8LBsslu|nl>q8Ag(jA9vkQ`q2amJ5FfA7GoCdsLW znuok(diRhuN+)A&`rH{$(HXWyG2TLXhVDo4xu?}k2cH7QsoS>sPV)ylb45Zt&_+1& zT)Yzh#FHRZ-z_Q^8~IZ+G~+qSw-D<{0NZ5!J1%rAc`B23T98TMh9ylkzdk^O?W`@C??Z5U9#vi0d<(`?9fQvNN^ji;&r}geU zSbKR5Mv$&u8d|iB^qiLaZQ#@)%kx1N;Og8Js>HQD3W4~pI(l>KiHpAv&-Ev45z(vYK<>p6 z6#pU(@rUu{i9UngMhU&FI5yeRub4#u=9H+N>L@t}djC(Schr;gc90n%)qH{$l0L4T z;=R%r>CuxH!O@+eBR`rBLrT0vnP^sJ^+qE^C8ZY0-@te3SjnJ)d(~HcnQw@`|qAp|Trrs^E*n zY1!(LgVJfL?@N+u{*!Q97N{Uu)ZvaN>hsM~J?*Qvqv;sLnXHjKrtG&x)7tk?8%AHI zo5eI#`qV1{HmUf-Fucg1xn?Kw;(!%pdQ)ai43J3NP4{%x1D zI0#GZh8tjRy+2{m$HyI(iEwK30a4I36cSht3MM85UqccyUq6$j5K>|w$O3>`Ds;`0736+M@q(9$(`C6QZQ-vAKjIXKR(NAH88 zwfM6_nGWlhpy!_o56^BU``%TQ%tD4hs2^<2pLypjAZ;W9xAQRfF_;T9W-uidv{`B z{)0udL1~tMg}a!hzVM0a_$RbuQk|EG&(z*{nZXD3hf;BJe4YxX8pKX7VaIjjDP%sk zU5iOkhzZ&%?A@YfaJ8l&H;it@;u>AIB`TkglVuy>h;vjtq~o`5NfvR!ZfL8qS#LL` zD!nYHGzZ|}BcCf8s>b=5nZRYV{)KK#7$I06s<;RyYC3<~`mob_t2IfR*dkFJyL?FU zvuo-EE4U(-le)zdgtW#AVA~zjx*^80kd3A#?vI63pLnW2{j*=#UG}ISD>=ZGA$H&` z?Nd8&11*4`%MQlM64wfK`{O*ad5}vk4{Gy}F98xIAsmjp*9P=a^yBHBjF2*Iibo2H zGJAMFDjZcVd%6bZ`dz;I@F55VCn{~RKUqD#V_d{gc|Z|`RstPw$>Wu+;SY%yf1rI=>51Oolm>cnjOWHm?ydcgGs_kPUu=?ZKtQS> zKtLS-v$OMWXO>B%Z4LFUgw4MqA?60o{}-^6tf(c0{Y3|yF##+)RoXYVY-lyPhgn{1 z>}yF0Ab}D#1*746QAj5c%66>7CCWs8O7_d&=Ktu!SK(m}StvvBT1$8QP3O2a*^BNA z)HPhmIi*((2`?w}IE6Fo-SwzI_F~OC7OR}guyY!bOQfpNRg3iMvsFPYb9-;dT6T%R zhLwIjgiE^-9_4F3eMHZ3LI%bbOmWVe{SONpujQ;3C+58=Be4@yJK>3&@O>YaSdrevAdCLMe_tL zl8@F}{Oc!aXO5!t!|`I zdC`k$5z9Yf%RYJp2|k*DK1W@AN23W%SD0EdUV^6~6bPp_HZi0@dku_^N--oZv}wZA zH?Bf`knx%oKB36^L;P%|pf#}Tp(icw=0(2N4aL_Ea=9DMtF})2ay68V{*KfE{O=xL zf}tcfCL|D$6g&_R;r~1m{+)sutQPKzVv6Zw(%8w&4aeiy(qct1x38kiqgk!0^^X3IzI2ia zxI|Q)qJNEf{=I$RnS0`SGMVg~>kHQB@~&iT7+eR!Ilo1ZrDc3TVW)CvFFjHK4K}Kh z)dxbw7X%-9Ol&Y4NQE~bX6z+BGOEIIfJ~KfD}f4spk(m62#u%k<+iD^`AqIhWxtKGIm)l$7=L`=VU0Bz3-cLvy&xdHDe-_d3%*C|Q&&_-n;B`87X zDBt3O?Wo-Hg6*i?f`G}5zvM?OzQjkB8uJhzj3N;TM5dSM$C@~gGU7nt-XX_W(p0IA6$~^cP*IAnA<=@HVqNz=Dp#Rcj9_6*8o|*^YseK_4d&mBY*Y&q z8gtl;(5%~3Ehpz)bLX%)7|h4tAwx}1+8CBtu9f5%^SE<&4%~9EVn4*_!r}+{^2;} zwz}#@Iw?&|8F2LdXUIjh@kg3QH69tqxR_FzA;zVpY=E zcHnWh(3j3UXeD=4m_@)Ea4m#r?axC&X%#wC8FpJPDYR~@65T?pXuWdPzEqXP>|L`S zKYFF0I~%I>SFWF|&sDsRdXf$-TVGSoWTx7>7mtCVUrQNVjZ#;Krobgh76tiP*0(5A zs#<7EJ#J`Xhp*IXB+p5{b&X3GXi#b*u~peAD9vr0*Vd&mvMY^zxTD=e(`}ybDt=BC(4q)CIdp>aK z0c?i@vFWjcbK>oH&V_1m_EuZ;KjZSiW^i30U` zGLK{%1o9TGm8@gy+Rl=-5&z`~Un@l*2ne3e9B+>wKyxuoUa1qhf?-Pi= zZLCD-b7*(ybv6uh4b`s&Ol3hX2ZE<}N@iC+h&{J5U|U{u$XK0AJz)!TSX6lrkG?ris;y{s zv`B5Rq(~G58?KlDZ!o9q5t%^E4`+=ku_h@~w**@jHV-+cBW-`H9HS@o?YUUkKJ;AeCMz^f@FgrRi@?NvO3|J zBM^>4Z}}!vzNum!R~o0)rszHG(eeq!#C^wggTgne^2xc9nIanR$pH1*O;V>3&#PNa z7yoo?%T(?m-x_ow+M0Bk!@ow>A=skt&~xK=a(GEGIWo4AW09{U%(;CYLiQIY$bl3M zxC_FGKY%J`&oTS{R8MHVe{vghGEshWi!(EK*DWmoOv|(Ff#(bZ-<~{rc|a%}Q4-;w z{2gca97m~Nj@Nl{d)P`J__#Zgvc@)q_(yfrF2yHs6RU8UXxcU(T257}E#E_A}%2_IW?%O+7v((|iQ{H<|$S7w?;7J;iwD>xbZc$=l*(bzRXc~edIirlU0T&0E_EXfS5%yA zs0y|Sp&i`0zf;VLN=%hmo9!aoLGP<*Z7E8GT}%)cLFs(KHScNBco(uTubbxCOD_%P zD7XlHivrSWLth7jf4QR9`jFNk-7i%v4*4fC*A=;$Dm@Z^OK|rAw>*CI%E z3%14h-)|Q%_$wi9=p!;+cQ*N1(47<49TyB&B*bm_m$rs+*ztWStR~>b zE@V06;x19Y_A85N;R+?e?zMTIqdB1R8>(!4_S!Fh={DGqYvA0e-P~2DaRpCYf4$-Q z*&}6D!N_@s`$W(|!DOv%>R0n;?#(HgaI$KpHYpnbj~I5eeI(u4CS7OJajF%iKz)*V zt@8=9)tD1ML_CrdXQ81bETBeW!IEy7mu4*bnU--kK;KfgZ>oO>f)Sz~UK1AW#ZQ_ic&!ce~@(m2HT@xEh5u%{t}EOn8ET#*U~PfiIh2QgpT z%gJU6!sR2rA94u@xj3%Q`n@d}^iMH#X>&Bax+f4cG7E{g{vlJQ!f9T5wA6T`CgB%6 z-9aRjn$BmH=)}?xWm9bf`Yj-f;%XKRp@&7?L^k?OT_oZXASIqbQ#eztkW=tmRF$~% z6(&9wJuC-BlGrR*(LQKx8}jaE5t`aaz#Xb;(TBK98RJBjiqbZFyRNTOPA;fG$;~e` zsd6SBii3^(1Y`6^#>kJ77xF{PAfDkyevgox`qW`nz1F`&w*DH5Oh1idOTLES>DToi z8Qs4|?%#%>yuQO1#{R!-+2AOFznWo)e3~_D!nhoDgjovB%A8< zt%c^KlBL$cDPu!Cc`NLc_8>f?)!FGV7yudL$bKj!h;eOGkd;P~sr6>r6TlO{Wp1%xep8r1W{`<4am^(U} z+nCDP{Z*I?IGBE&*KjiaR}dpvM{ZFMW%P5Ft)u$FD373r2|cNsz%b0uk1T+mQI@4& zFF*~xDxDRew1Bol-*q>F{Xw8BUO;>|0KXf`lv7IUh%GgeLUzR|_r(TXZTbfXFE0oc zmGMwzNFgkdg><=+3MnncRD^O`m=SxJ6?}NZ8BR)=ag^b4Eiu<_bN&i0wUaCGi60W6 z%iMl&`h8G)y`gfrVw$={cZ)H4KSQO`UV#!@@cDx*hChXJB7zY18EsIo1)tw0k+8u; zg(6qLysbxVbLFbkYqKbEuc3KxTE+%j5&k>zHB8_FuDcOO3}FS|eTxoUh2~|Bh?pD| zsmg(EtMh`@s;`(r!%^xxDt(5wawK+*jLl>_Z3shaB~vdkJ!V3RnShluzmwn7>PHai z3avc`)jZSAvTVC6{2~^CaX49GXMtd|sbi*swkgoyLr=&yp!ASd^mIC^D;a|<=3pSt zM&0u%#%DGzlF4JpMDs~#kU;UCtyW+d3JwNiu`Uc7Yi6%2gfvP_pz8I{Q<#25DjM_D z(>8yI^s@_tG@c=cPoZImW1CO~`>l>rs=i4BFMZT`vq5bMOe!H@8q@sEZX<-kiY&@u3g1YFc zc@)@OF;K-JjI(eLs~hy8qOa9H1zb!3GslI!nH2DhP=p*NLHeh^9WF?4Iakt+b( z-4!;Q-8c|AX>t+5I64EKpDj4l2x*!_REy9L_9F~i{)1?o#Ws{YG#*}lg_zktt#ZlN zmoNsGm7$AXLink`GWtY*TZEH!J9Qv+A1y|@>?&(pb(6XW#ZF*}x*{60%wnt{n8Icp zq-Kb($kh6v_voqvA`8rq!cgyu;GaWZ>C2t6G5wk! zcKTlw=>KX3ldU}a1%XESW71))Z=HW%sMj2znJ;fdN${00DGGO}d+QsTQ=f;BeZ`eC~0-*|gn$9G#`#0YbT(>O(k&!?2jI z&oi9&3n6Vz<4RGR}h*1ggr#&0f%Op(6{h>EEVFNJ0C>I~~SmvqG+{RXDrexBz zw;bR@$Wi`HQ3e*eU@Cr-4Z7g`1R}>3-Qej(#Dmy|CuFc{Pg83Jv(pOMs$t(9vVJQJ zXqn2Ol^MW;DXq!qM$55vZ{JRqg!Q1^Qdn&FIug%O3=PUr~Q`UJuZ zc`_bE6i^Cp_(fka&A)MsPukiMyjG$((zE$!u>wyAe`gf-1Qf}WFfi1Y{^ zdCTTrxqpQE#2BYWEBnTr)u-qGSVRMV7HTC(x zb(0FjYH~nW07F|{@oy)rlK6CCCgyX?cB;19Z(bCP5>lwN0UBF}Ia|L0$oGHl-oSTZ zr;(u7nDjSA03v~XoF@ULya8|dzH<2G=n9A)AIkQKF0mn?!BU(ipengAE}6r`CE!jd z=EcX8exgDZZQ~~fgxR-2yF;l|kAfnjhz|i_o~cYRdhnE~1yZ{s zG!kZJ<-OVnO{s3bOJK<)`O;rk>=^Sj3M76Nqkj<_@Jjw~iOkWUCL+*Z?+_Jvdb!0cUBy=(5W9H-r4I zxAFts>~r)B>KXdQANyaeKvFheZMgoq4EVV0|^NR@>ea* zh%<78{}wsdL|9N1!jCN-)wH4SDhl$MN^f_3&qo?>Bz#?c{ne*P1+1 z!a`(2Bxy`S^(cw^dv{$cT^wEQ5;+MBctgPfM9kIQGFUKI#>ZfW9(8~Ey-8`OR_XoT zflW^mFO?AwFWx9mW2-@LrY~I1{dlX~jBMt!3?5goHeg#o0lKgQ+eZcIheq@A&dD}GY&1c%hsgo?z zH>-hNgF?Jk*F0UOZ*bs+MXO(dLZ|jzKu5xV1v#!RD+jRrHdQ z>>b){U(I@i6~4kZXn$rk?8j(eVKYJ2&k7Uc`u01>B&G@c`P#t#x@>Q$N$1aT514fK zA_H8j)UKen{k^ehe%nbTw}<JV6xN_|| z(bd-%aL}b z3VITE`N~@WlS+cV>C9TU;YfsU3;`+@hJSbG6aGvis{Gs%2K|($)(_VfpHB|DG8Nje+0tCNW%_cu3hk0F)~{-% zW{2xSu@)Xnc`Dc%AOH)+LT97ImFR*WekSnJ3OYIs#ijP4TD`K&7NZKsfZ;76k@VD3py?pSw~~r^VV$Z zuUl9lF4H2(Qga0EP_==vQ@f!FLC+Y74*s`Ogq|^!?RRt&9e9A&?Tdu=8SOva$dqgYU$zkKD3m>I=`nhx-+M;-leZgt z8TeyQFy`jtUg4Ih^JCUcq+g_qs?LXSxF#t+?1Jsr8c1PB#V+f6aOx@;ThTIR4AyF5 z3m$Rq(6R}U2S}~Bn^M0P&Aaux%D@ijl0kCCF48t)+Y`u>g?|ibOAJoQGML@;tn{%3IEMaD(@`{7ByXQ`PmDeK*;W?| zI8%%P8%9)9{9DL-zKbDQ*%@Cl>Q)_M6vCs~5rb(oTD%vH@o?Gk?UoRD=C-M|w~&vb z{n-B9>t0EORXd-VfYC>sNv5vOF_Wo5V)(Oa%<~f|EU7=npanpVX^SxPW;C!hMf#kq z*vGNI-!9&y!|>Zj0V<~)zDu=JqlQu+ii387D-_U>WI_`3pDuHg{%N5yzU zEulPN)%3&{PX|hv*rc&NKe(bJLhH=GPuLk5pSo9J(M9J3v)FxCo65T%9x<)x+&4Rr2#nu2?~Glz|{28OV6 z)H^`XkUL|MG-$XE=M4*fIPmeR2wFWd>5o*)(gG^Y>!P4(f z68RkX0cRBOFc@`W-IA(q@p@m>*2q-`LfujOJ8-h$OgHte;KY4vZKTxO95;wh#2ZDL zKi8aHkz2l54lZd81t`yY$Tq_Q2_JZ1d(65apMg}vqwx=ceNOWjFB)6m3Q!edw2<{O z4J6+Un(E8jxs-L-K_XM_VWahy zE+9fm_ZaxjNi{fI_AqLKqhc4IkqQ4`Ut$=0L)nzlQw^%i?bP~znsbMY3f}*nPWqQZ zz_CQDpZ?Npn_pEr`~SX1`OoSkS;bmzQ69y|W_4bH3&U3F7EBlx+t%2R02VRJ01cfX zo$$^ObDHK%bHQaOcMpCq@@Jp8!OLYVQO+itW1ZxlkmoG#3FmD4b61mZjn4H|pSmYi2YE;I#@jtq8Mhjdgl!6({gUsQA>IRXb#AyWVt7b=(HWGUj;wd!S+q z4S+H|y<$yPrrrTqQHsa}H`#eJFV2H5Dd2FqFMA%mwd`4hMK4722|78d(XV}rz^-GV(k zqsQ>JWy~cg_hbp0=~V3&TnniMQ}t#INg!o2lN#H4_gx8Tn~Gu&*ZF8#kkM*5gvPu^ zw?!M^05{7q&uthxOn?%#%RA_%y~1IWly7&_-sV!D=Kw3DP+W)>YYRiAqw^d7vG_Q%v;tRbE1pOBHc)c&_5=@wo4CJTJ1DeZErEvP5J(kc^GnGYX z|LqQjTkM{^gO2cO#-(g!7^di@$J0ibC(vsnVkHt3osnWL8?-;R1BW40q5Tmu_9L-s z7fNF5fiuS-%B%F$;D97N-I@!~c+J>nv%mzQ5vs?1MgR@XD*Gv`A{s8 z5Cr>z5j?|sb>n=c*xSKHpdy667QZT?$j^Doa%#m4ggM@4t5Oe%iW z@w~j_B>GJJkO+6dVHD#CkbC(=VMN8nDkz%44SK62N(ZM#AsNz1KW~3(i=)O;q5JrK z?vAVuL}Rme)OGQuLn8{3+V352UvEBV^>|-TAAa1l-T)oiYYD&}Kyxw73shz?Bn})7 z_a_CIPYK(zMp(i+tRLjy4dV#CBf3s@bdmwXo`Y)dRq9r9-c@^2S*YoNOmAX%@OYJOXs zT*->in!8Ca_$W8zMBb04@|Y)|>WZ)-QGO&S7Zga1(1#VR&)X+MD{LEPc%EJCXIMtr z1X@}oNU;_(dfQ_|kI-iUSTKiVzcy+zr72kq)TIp(GkgVyd%{8@^)$%G)pA@^Mfj71FG%d?sf(2Vm>k%X^RS`}v0LmwIQ7!_7cy$Q8pT?X1VWecA_W68u==HbrU& z@&L6pM0@8ZHL?k{6+&ewAj%grb6y@0$3oamTvXsjGmPL_$~OpIyIq%b$(uI1VKo zk_@{r>1p84UK3}B>@d?xUZ}dJk>uEd+-QhwFQ`U?rA=jj+$w8sD#{492P}~R#%z%0 z5dlltiAaiPKv9fhjmuy{*m!C22$;>#85EduvdSrFES{QO$bHpa7E@&{bWb@<7VhTF zXCFS_wB>7*MjJ3$_i4^A2XfF2t7`LOr3B@??OOUk=4fKkaHne4RhI~Lm$JrHfUU*h zgD9G66;_F?3>0W{pW2A^DR7Bq`ZUiSc${S8EM>%gFIqAw0du4~kU#vuCb=$I_PQv? zZfEY7X6c{jJZ@nF&T>4oyy(Zr_XqnMq)ZtGPASbr?IhZOnL|JKY()`eo=P5UK9(P-@ zOJKFogtk|pscVD+#$7KZs^K5l4gC}*CTd0neZ8L(^&1*bPrCp23%{VNp`4Ld*)Fly z)b|zb*bCzp?&X3_=qLT&0J+=p01&}9*xbk~^hd^@mV!Ha`1H+M&60QH2c|!Ty`RepK|H|Moc5MquD z=&$Ne3%WX+|7?iiR8=7*LW9O3{O%Z6U6`VekeF8lGr5vd)rsZu@X#5!^G1;nV60cz zW?9%HgD}1G{E(YvcLcIMQR65BP50)a;WI*tjRzL7diqRqh$3>OK{06VyC=pj6OiardshTnYfve5U>Tln@y{DC99f!B4> zCrZa$B;IjDrg}*D5l=CrW|wdzENw{q?oIj!Px^7DnqAsU7_=AzXxoA;4(YvN5^9ag zwEd4-HOlO~R0~zk>!4|_Z&&q}agLD`Nx!%9RLC#7fK=w06e zOK<>|#@|e2zjwZ5aB>DJ%#P>k4s0+xHJs@jROvoDQfSoE84l8{9y%5^POiP+?yq0> z7+Ymbld(s-4p5vykK@g<{X*!DZt1QWXKGmj${`@_R~=a!qPzB357nWW^KmhV!^G3i zsYN{2_@gtzsZH*FY!}}vNDnqq>kc(+7wK}M4V*O!M&GQ|uj>+8!Q8Ja+j3f*MzwcI z^s4FXGC=LZ?il4D+Y^f89wh!d7EU-5dZ}}>_PO}jXRQ@q^CjK-{KVnmFd_f&IDKmx zZ5;PDLF%_O);<4t`WSMN;Ec^;I#wU?Z?_R|Jg`#wbq;UM#50f@7F?b7ySi-$C-N;% zqXowTcT@=|@~*a)dkZ836R=H+m6|fynm#0Y{KVyYU=_*NHO1{=Eo{^L@wWr7 zjz9GOu8Fd&v}a4d+}@J^9=!dJRsCO@=>K6UCM)Xv6};tb)M#{(k!i}_0Rjq z2kb7wPcNgov%%q#(1cLykjrxAg)By+3QueBR>Wsep&rWQHq1wE!JP+L;q+mXts{j@ zOY@t9BFmofApO0k@iBFPeKsV3X=|=_t65QyohXMSfMRr7Jyf8~ogPVmJwbr@`nmml zov*NCf;*mT(5s4K=~xtYy8SzE66W#tW4X#RnN%<8FGCT{z#jRKy@Cy|!yR`7dsJ}R z!eZzPCF+^b0qwg(mE=M#V;Ud9)2QL~ z-r-2%0dbya)%ui_>e6>O3-}4+Q!D+MU-9HL2tH)O`cMC1^=rA=q$Pcc;Zel@@ss|K zH*WMdS^O`5Uv1qNTMhM(=;qjhaJ|ZC41i2!kt4;JGlXQ$tvvF8Oa^C@(q6(&6B^l) zNG{GaX?`qROHwL-F1WZDEF;C6Inuv~1&ZuP3j53547P38tr|iPH#3&hN*g0R^H;#) znft`cw0+^Lwe{!^kQat+xjf_$SZ05OD6~U`6njelvd+4pLZU(0ykS5&S$)u?gm!;} z+gJ8g12b1D4^2HH!?AHFAjDAP^q)Juw|hZfIv{3Ryn%4B^-rqIF2 zeWk^za4fq#@;re{z4_O|Zj&Zn{2WsyI^1%NW=2qA^iMH>u>@;GAYI>Bk~u0wWQrz* zdEf)7_pSYMg;_9^qrCzvv{FZYwgXK}6e6ceOH+i&+O=x&{7aRI(oz3NHc;UAxMJE2 zDb0QeNpm$TDcshGWs!Zy!shR$lC_Yh-PkQ`{V~z!AvUoRr&BAGS#_*ZygwI2-)6+a zq|?A;+-7f0Dk4uuht z6sWPGl&Q$bev1b6%aheld88yMmBp2j=z*egn1aAWd?zN=yEtRDGRW&nmv#%OQwuJ; zqKZ`L4DsqJwU{&2V9f>2`1QP7U}`6)$qxTNEi`4xn!HzIY?hDnnJZw+mFnVSry=bLH7ar+M(e9h?GiwnOM?9ZJcTJ08)T1-+J#cr&uHhXkiJ~}&(}wvzCo33 zLd_<%rRFQ3d5fzKYQy41<`HKk#$yn$Q+Fx-?{3h72XZrr*uN!5QjRon-qZh9-uZ$rWEKZ z!dJMP`hprNS{pzqO`Qhx`oXGd{4Uy0&RDwJ`hqLw4v5k#MOjvyt}IkLW{nNau8~XM z&XKeoVYreO=$E%z^WMd>J%tCdJx5-h+8tiawu2;s& zD7l`HV!v@vcX*qM(}KvZ#%0VBIbd)NClLBu-m2Scx1H`jyLYce;2z;;eo;ckYlU53 z9JcQS+CvCwj*yxM+e*1Vk6}+qIik2VzvUuJyWyO}piM1rEk%IvS;dsXOIR!#9S;G@ zPcz^%QTf9D<2~VA5L@Z@FGQqwyx~Mc-QFzT4Em?7u`OU!PB=MD8jx%J{<`tH$Kcxz zjIvb$x|`s!-^^Zw{hGV>rg&zb;=m?XYAU0LFw+uyp8v@Y)zmjj&Ib7Y1@r4`cfrS%cVxJiw`;*BwIU*6QVsBBL;~nw4`ZFqs z1YSgLVy=rvA&GQB4MDG+j^)X1N=T;Ty2lE-`zrg(dNq?=Q`nCM*o8~A2V~UPArX<| zF;e$5B0hPSo56=ePVy{nah#?e-Yi3g*z6iYJ#BFJ-5f0KlQ-PRiuGwe29fyk1T6>& zeo2lvb%h9Vzi&^QcVNp}J!x&ubtw5fKa|n2XSMlg#=G*6F|;p)%SpN~l8BaMREDQN z-c9O}?%U1p-ej%hzIDB!W_{`9lS}_U==fdYpAil1E3MQOFW^u#B)Cs zTE3|YB0bKpXuDKR9z&{4gNO3VHDLB!xxPES+)yaJxo<|}&bl`F21};xsQnc!*FPZA zSct2IU3gEu@WQKmY-vA5>MV?7W|{$rAEj4<8`*i)<%fj*gDz2=ApqZ&MP&0UmO1?q!GN=di+n(#bB_mHa z(H-rIOJqamMfwB%?di!TrN=x~0jOJtvb0e9uu$ZCVj(gJyK}Fa5F2S?VE30P{#n3eMy!-v7e8viCooW9cfQx%xyPNL*eDKL zB=X@jxulpkLfnar7D2EeP*0L7c9urDz{XdV;@tO;u`7DlN7#~ zAKA~uM2u8_<5FLkd}OzD9K zO5&hbK8yakUXn8r*H9RE zO9Gsipa2()=&x=1mnQtNP#4m%GXThu8Ccqx*qb;S{5}>bU*V5{SY~(Hb={cyTeaTM zMEaKedtJf^NnJrwQ^Bd57vSlJ3l@$^0QpX@_1>h^+js8QVpwOiIMOiSC_>3@dt*&| zV?0jRdlgn|FIYam0s)a@5?0kf7A|GD|dRnP1=B!{ldr;N5s)}MJ=i4XEqlC}w)LEJ}7f9~c!?It(s zu>b=YBlFRi(H-%8A!@Vr{mndRJ z_jx*?BQpK>qh`2+3cBJhx;>yXPjv>dQ0m+nd4nl(L;GmF-?XzlMK zP(Xeyh7mFlP#=J%i~L{o)*sG7H5g~bnL2Hn3y!!r5YiYRzgNTvgL<(*g5IB*gcajK z86X3LoW*5heFmkIQ-I_@I_7b!Xq#O;IzOv(TK#(4gd)rmCbv5YfA4koRfLydaIXUU z8(q?)EWy!sjsn-oyUC&uwJqEXdlM}#tmD~*Ztav=mTQyrw0^F=1I5lj*}GSQTQOW{ z=O12;?fJfXxy`)ItiDB@0sk43AZo_sRn*jc#S|(2*%tH84d|UTYN!O4R(G6-CM}84 zpiyYJ^wl|w@!*t)dwn0XJv2kuHgbfNL$U6)O-k*~7pQ?y=sQJdKk5x`1>PEAxjIWn z{H$)fZH4S}%?xzAy1om0^`Q$^?QEL}*ZVQK)NLgmnJ`(we z21c23X1&=^>k;UF-}7}@nzUf5HSLUcOYW&gsqUrj7%d$)+d8ZWwTZq)tOgc%fz95+ zl%sdl)|l|jXfqIcjKTFrX74Rbq1}osA~fXPSPE?XO=__@`7k4Taa!sHE8v-zfx(AM zXT_(7u;&_?4ZIh%45x>p!(I&xV|IE**qbqCRGD5aqLpCRvrNy@uT?iYo-FPpu`t}J zSTZ}MDrud+`#^14r`A%UoMvN;raizytxMBV$~~y3i0#m}0F}Dj_fBIz+)1RWdnctP z>^O^vd0E+jS+$V~*`mZWER~L^q?i-6RPxxufWdrW=%prbCYT{5>Vgu%vPB)~NN*2L zB?xQg2K@+Xy=sPh$%10LH!39p&SJG+3^i*lFLn=uY8Io6AXRZf;p~v@1(hWsFzeKzx99_{w>r;cypkPVJCKtLGK>?-K0GE zGH>$g?u`)U_%0|f#!;+E>?v>qghuBwYZxZ*Q*EE|P|__G+OzC-Z+}CS(XK^t!TMoT zc+QU|1C_PGiVp&_^wMxfmMAuJDQ%1p4O|x5DljN6+MJiO%8s{^ts8$uh5`N~qK46c`3WY#hRH$QI@*i1OB7qBIN*S2gK#uVd{ zik+wwQ{D)g{XTGjKV1m#kYhmK#?uy)g@idi&^8mX)Ms`^=hQGY)j|LuFr8SJGZjr| zzZf{hxYg)-I^G|*#dT9Jj)+wMfz-l7ixjmwHK9L4aPdXyD-QCW!2|Jn(<3$pq-BM; zs(6}egHAL?8l?f}2FJSkP`N%hdAeBiD{3qVlghzJe5s9ZUMd`;KURm_eFaK?d&+TyC88v zCv2R(Qg~0VS?+p+l1e(aVq`($>|0b{{tPNbi} zaZDffTZ7N|t2D5DBv~aX#X+yGagWs1JRsqbr4L8a`B`m) z1p9?T`|*8ZXHS7YD8{P1Dk`EGM`2Yjsy0=7M&U6^VO30`Gx!ZkUoqmc3oUbd&)V*iD08>dk=#G!*cs~^tOw^s8YQqYJ z!5=-4ZB7rW4mQF&YZw>T_in-c9`0NqQ_5Q}fq|)%HECgBd5KIo`miEcJ>~a1e2B@) zL_rqoQ;1MowD34e6#_U+>D`WcnG5<2Q6cnt4Iv@NC$*M+i3!c?6hqPJLsB|SJ~xo! zm>!N;b0E{RX{d*in3&0w!cmB&TBNEjhxdg!fo+}iGE*BWV%x*46rT@+cXU;leofWy zxst{S8m!_#hIhbV7wfWN#th8OI5EUr3IR_GOIzBgGW1u4J*TQxtT7PXp#U#EagTV* zehVkBFF06`@5bh!t%L)-)`p|d7D|^kED7fsht#SN7*3`MKZX};Jh0~nCREL_BGqNR zxpJ4`V{%>CAqEE#Dt95u=;Un8wLhrac$fao`XlNsOH%&Ey2tK&vAcriS1kXnntDuttcN{%YJz@!$T zD&v6ZQ>zS1`o!qT=JK-Y+^i~bZkVJpN8%<4>HbuG($h9LP;{3DJF_Jcl8CA5M~<3s^!$Sg62zLEnJtZ z0`)jwK75Il6)9XLf(64~`778D6-#Ie1IR2Ffu+_Oty%$8u+bP$?803V5W6%(+iZzp zp5<&sBV&%CJcXUIATUakP1czt$&0x$lyoLH!ueNaIpvtO z*eCijxOv^-D?JaLzH<3yhOfDENi@q#4w(#tl-19(&Yc2K%S8Y&r{3~-)P17sC1{rQ zOy>IZ6%814_UoEi+w9a4XyGXF66{rgE~UT)oT4x zg9oIx@|{KL#VpTyE=6WK@Sbd9RKEEY)5W{-%0F^6(QMuT$RQRZ&yqfyF*Z$f8>{iT zq(;UzB-Ltv;VHvh4y%YvG^UEkvpe9ugiT97ErbY0ErCEOWs4J=kflA!*Q}gMbEP`N zY#L`x9a?E)*~B~t+7c8eR}VY`t}J;EWuJ-6&}SHnNZ8i0PZT^ahA@@HXk?c0{)6rC zP}I}_KK7MjXqn1E19gOwWvJ3i9>FNxN67o?lZy4H?n}%j|Dq$p%TFLUPJBD;R|*0O z3pLw^?*$9Ax!xy<&fO@;E2w$9nMez{5JdFO^q)B0OmGwkxxaDsEU+5C#g+?Ln-Vg@ z-=z4O*#*VJa*nujGnGfK#?`a|xfZsuiO+R}7y(d60@!WUIEUt>K+KTI&I z9YQ6#hVCo}0^*>yr-#Lisq6R?uI=Ms!J7}qm@B}Zu zp%f-~1Cf!-5S0xXl`oqq&fS=tt0`%dDWI&6pW(s zJXtYiY&~t>k5I0RK3sN;#8?#xO+*FeK#=C^%{Y>{k{~bXz%(H;)V5)DZRk~(_d0b6 zV!x54fwkl`1y;%U;n|E#^Vx(RGnuN|T$oJ^R%ZmI{8(9>U-K^QpDcT?Bb@|J0NAfvHtL#wP ziYupr2E5=_KS{U@;kyW7oy*+UTOiF*e+EhYqVcV^wx~5}49tBNSUHLH1=x}6L2Fl^4X4633$k!ZHZTL50Vq+a5+ z<}uglXQ<{x&6ey)-lq6;4KLHbR)_;Oo^FodsYSw3M-)FbLaBcPI=-ao+|))T2ksKb z{c%Fu`HR1dqNw8%>e0>HI2E_zNH1$+4RWfk}p-h(W@)7LC zwVnUO17y+~kw35CxVtokT44iF$l8XxYuetp)1Br${@lb(Q^e|q*5%7JNxp5B{r<09 z-~8o#rI1(Qb9FhW-igcsC6npf5j`-v!nCrAcVx5+S&_V2D>MOWp6cV$~Olhp2`F^Td{WV`2k4J`djb#M>5D#k&5XkMu*FiO(uP{SNX@(=)|Wm`@b> z_D<~{ip6@uyd7e3Rn+qM80@}Cl35~^)7XN?D{=B-4@gO4mY%`z!kMIZizhGtCH-*7 z{a%uB4usaUoJwbkVVj%8o!K^>W=(ZzRDA&kISY?`^0YHKe!()(*w@{w7o5lHd3(Us zUm-K=z&rEbOe$ackQ3XH=An;Qyug2g&vqf;zsRBldxA+=vNGoM$Zo9yT?Bn?`Hkiq z&h@Ss--~+=YOe@~JlC`CdSHy zcO`;bgMASYi6`WSw#Z|A;wQgH@>+I3OT6(*JgZZ_XQ!LrBJfVW2RK%#02|@V|H4&8DqslU6Zj(x!tM{h zRawG+Vy63_8gP#G!Eq>qKf(C&!^G$01~baLLk#)ov-Pqx~Du>%LHMv?=WBx2p2eV zbj5fjTBhwo&zeD=l1*o}Zs%SMxEi9yokhbHhY4N!XV?t8}?!?42E-B^Rh&ABFxovs*HeQ5{{*)SrnJ%e{){Z_#JH+jvwF7>Jo zE+qzWrugBwVOZou~oFa(wc7?`wNde>~HcC@>fA^o>ll?~aj-e|Ju z+iJzZg0y1@eQ4}rm`+@hH(|=gW^;>n>ydn!8%B4t7WL)R-D>mMw<7Wz6>ulFnM7QA ze2HEqaE4O6jpVq&ol3O$46r+DW@%glD8Kp*tFY#8oiSyMi#yEpVIw3#t?pXG?+H>v z$pUwT@0ri)_Bt+H(^uzp6qx!P(AdAI_Q?b`>0J?aAKTPt>73uL2(WXws9+T|%U)Jq zP?Oy;y6?{%J>}?ZmfcnyIQHh_jL;oD$`U#!v@Bf{5%^F`UiOX%)<0DqQ^nqA5Ac!< z1DPO5C>W0%m?MN*x(k>lDT4W3;tPi=&yM#Wjwc5IFNiLkQf`7GN+J*MbB4q~HVePM zeDj8YyA*btY&n!M9$tuOxG0)2um))hsVsY+(p~JnDaT7x(s2If0H_iRSju7!z7p|8 zzI`NV!1hHWX3m)?t68k6yNKvop{Z>kl)f5GV(~1InT4%9IxqhDX-rgj)Y|NYq_NTlZgz-)=Y$=x9L7|k0=m@6WQ<4&r=BX@pW25NtCI+N{e&`RGSpR zeb^`@FHm5?pWseZ6V08{R(ki}--13S2op~9Kzz;#cPgL}Tmrqd+gs(fJLTCM8#&|S z^L+7PbAhltJDyyxAVxqf(2h!RGC3$;hX@YNz@&JRw!m5?Q)|-tZ8u0D$4we+QytG^ zj0U_@+N|OJlBHdWPN!K={a$R1Zi{2%5QD}s&s-Xn1tY1cwh)8VW z$pjq>8sj4)?76EJs6bA0E&pfr^Vq`&Xc;Tl2T!fm+MV%!H|i0o;7A=zE?dl)-Iz#P zSY7QRV`qRc6b&rON`BValC01zSLQpVemH5y%FxK8m^PeNN(Hf1(%C}KPfC*L?Nm!nMW0@J3(J=mYq3DPk;TMs%h`-amWbc%7{1Lg3$ z^e=btuqch-lydbtLvazh+fx?87Q7!YRT(=-Vx;hO)?o@f1($e5B?JB9jcRd;zM;iE zu?3EqyK`@_5Smr#^a`C#M>sRwq2^|ym)X*r;0v6AM`Zz1aK94@9Ti)Lixun2N!e-A z>w#}xPxVd9AfaF$XTTff?+#D(xwOpjZj9-&SU%7Z-E2-VF-n#xnPeQH*67J=j>TL# z<v}>AiTXrQ(fYa%82%qlH=L z6Fg8@r4p+BeTZ!5cZlu$iR?EJpYuTx>cJ~{{B7KODY#o*2seq=p2U0Rh;3mX^9sza zk^R_l7jzL5BXWlrVkhh!+LQ-Nc0I`6l1mWkp~inn)HQWqMTWl4G-TBLglR~n&6J?4 z7J)IO{wkrtT!Csntw3H$Mnj>@;QbrxC&Shqn^VVu$Ls*_c~TTY~fri6fO-=eJsC*8(3(H zSyO>=B;G`qA398OvCHRvf3mabrPZaaLhn*+jeA`qI!gP&i8Zs!*bBqMXDJpSZG$N) zx0rDLvcO>EoqCTR)|n7eOp-jmd>`#w`6`;+9+hihW2WnKVPQ20LR94h+(p)R$Y!Q zj_3ZEY+e@NH0f6VjLND)sh+Cvfo3CpcXw?`$@a^@CyLrAKIpjL8G z`;cDLqvK=ER)$q)+6vMKlxn!!SzWl>Ib9Ys9L)L0IWr*Ox;Rk#(Dpqf;wapY_EYL8 zKFrV)Q8BBKO4$r2hON%g=r@lPE;kBUVYVG`uxx~QI>9>MCXw_5vnmDsm|^KRny929 zeKx>F(LDs#K4FGU*k3~GX`A!)l8&|tyan-rBHBm6XaB5hc5sGKWwibAD7&3M-gh1n z2?eI7E2u{(^z#W~wU~dHSfy|m)%PY454NBxED)y-T3AO`CLQxklcC1I@Y`v4~SEI#Cm> z-cjqK6I?mypZapi$ZK;y&G+|#D=woItrajg69VRD+Fu8*UxG6KdfFmFLE}HvBJ~Y) zC&c-hr~;H2Idnsz7_F~MKpBZldh)>itc1AL0>4knbVy#%pUB&9vqL1Kg*^aU`k#(p z=A%lur(|$GWSqILaWZ#2xj(&lheSiA|N6DOG?A|$!aYM)?oME6ngnfLw0CA79WA+y zhUeLbMw*VB?drVE_D~3DWVaD>8x?_q>f!6;)i3@W<=kBZBSE=uIU60SW)qct?AdM zXgti8&O=}QNd|u%Fpxr172Kc`sX^@fm>Fxl8fbFalJYci_GGoIzU*~U*I!QLz? z4NYk^=JXBS*Uph@51da-v;%?))cB^(ps}y8yChu7CzyC9SX{jAq13zdnqRHRvc{ha zcPmgCUqAJ^1RChMCCz;ZN*ap{JPoE<1#8nNObDbAt6Jr}Crq#xGkK@w2mLhIUecvy z#?s~?J()H*?w9K`_;S+8TNVkHSk}#yvn+|~jcB|he}OY(zH|7%EK%-Tq=)18730)v zM3f|=oFugXq3Lqn={L!wx|u(ycZf(Te11c3?^8~aF; zNMC)gi?nQ#S$s{46yImv_7@4_qu|XXEza~);h&cr*~dO@#$LtKZa@@r$8PD^jz{D6 zk~5;IJBuQjsKk+8i0wzLJ2=toMw4@rw7(|6`7*e|V(5-#ZzRirtkXBO1oshQ&0>z&HAtSF8+871e|ni4gLs#`3v7gnG#^F zDv!w100_HwtU}B2T!+v_YDR@-9VmoGW+a76oo4yy)o`MY(a^GcIvXW+4)t{lK}I-& zl-C=(w_1Z}tsSFjFd z3iZjkO6xnjLV3!EE?ex9rb1Zxm)O-CnWPat4vw08!GtcQ3lHD+ySRB*3zQu-at$rj zzBn`S?5h=JlLXX8)~Jp%1~YS6>M8c-Mv~E%s7_RcvIYjc-ia`3r>dvjxZ6=?6=#OM zfsv}?hGnMMdi9C`J9+g)5`M9+S79ug=!xE_XcHdWnIRr&hq$!X7aX5kJV8Q(6Lq?|AE8N2H z37j{DPDY^Jw!J>~>Mwaja$g%q1sYfH4bUJFOR`x=pZQ@O(-4b#5=_Vm(0xe!LW>YF zO4w`2C|Cu%^C9q9B>NjFD{+qt)cY3~(09ma%mp3%cjFsj0_93oVHC3)AsbBPuQNBO z`+zffU~AgGrE0K{NVR}@oxB4&XWt&pJ-mq!JLhFWbnXf~H%uU?6N zWJ7oa@``Vi$pMWM#7N9=sX1%Y+1qTGnr_G&h3YfnkHPKG}p>i{fAG+(klE z(g~u_rJXF48l1D?;;>e}Ra{P$>{o`jR_!s{hV1Wk`vURz`W2c$-#r9GM7jgs2>um~ zouGlCm92rOiLITzf`jgl`v2qYw^!Lh0YwFHO1|3Krp8ztE}?#2+>c)yQlNw%5e6w5 zIm9BKZN5Q9b!tX`Zo$0RD~B)VscWp(FR|!a!{|Q$={;ZWl%10vBzfgWn}WBe!%cug z^G%;J-L4<6&aCKx@@(Grsf}dh8fuGT+TmhhA)_16uB!t{HIAK!B-7fJLe9fsF)4G- zf>(~ⅅ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 H-+%o-(+5aQ literal 0 HcmV?d00001 diff --git a/examples/PushNotificationsDemo/Builds/Android/gradle/wrapper/gradle-wrapper.properties b/examples/PushNotificationsDemo/Builds/Android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000000..69aae7dc33 --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/Android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1 @@ +distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip \ No newline at end of file diff --git a/examples/PushNotificationsDemo/Builds/Android/gradlew b/examples/PushNotificationsDemo/Builds/Android/gradlew new file mode 100755 index 0000000000..9d82f78915 --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/Android/gradlew @@ -0,0 +1,160 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/examples/PushNotificationsDemo/Builds/Android/gradlew.bat b/examples/PushNotificationsDemo/Builds/Android/gradlew.bat new file mode 100644 index 0000000000..aec99730b4 --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/Android/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/examples/PushNotificationsDemo/Builds/Android/settings.gradle b/examples/PushNotificationsDemo/Builds/Android/settings.gradle new file mode 100644 index 0000000000..9d495b34f8 --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/Android/settings.gradle @@ -0,0 +1 @@ +include ':app' \ No newline at end of file diff --git a/examples/PushNotificationsDemo/Builds/MacOSX/Info-App.plist b/examples/PushNotificationsDemo/Builds/MacOSX/Info-App.plist new file mode 100644 index 0000000000..26499e7482 --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/MacOSX/Info-App.plist @@ -0,0 +1,29 @@ + + + + + + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.juce.pushnotificationsdemo + CFBundleName + PushNotificationsDemo + CFBundleDisplayName + PushNotificationsDemo + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0.0 + CFBundleVersion + 1.0.0 + NSHumanReadableCopyright + + NSHighResolutionCapable + + + diff --git a/examples/PushNotificationsDemo/Builds/MacOSX/PushNotificationsDemo.xcodeproj/project.pbxproj b/examples/PushNotificationsDemo/Builds/MacOSX/PushNotificationsDemo.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..e737de155d --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/MacOSX/PushNotificationsDemo.xcodeproj/project.pbxproj @@ -0,0 +1,365 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + + C921649E28A39F47A2131F2E = {isa = PBXBuildFile; fileRef = 49780B4714C19DCE9EC9012D; }; + 34EE0B8CF9995CA19FDEEE60 = {isa = PBXBuildFile; fileRef = A0C9BB332EF3D0DAA0E68C08; }; + 5869259CA6CA640D13C2AFBA = {isa = PBXBuildFile; fileRef = 830CAE3F1BF4FBE401B6236A; }; + 596320A493EF45D8E9C0BCCC = {isa = PBXBuildFile; fileRef = FF718AB44CA06784A8810B3F; }; + 6B7D8497E64906D8BF2DD683 = {isa = PBXBuildFile; fileRef = CFF938668A52AE8FAABFE68C; }; + 143B4E6E3009432CF049EDE8 = {isa = PBXBuildFile; fileRef = B8D5B4A343EE9B1F17F6C6E8; }; + 91FB13E966DF491DAB11AE54 = {isa = PBXBuildFile; fileRef = E377874A0AFBAC8A5CB14A77; }; + 94572AE40BC380A407F2627A = {isa = PBXBuildFile; fileRef = 0ABFD8A12B88F16087326449; }; + 5828F459B222CF017CA53F25 = {isa = PBXBuildFile; fileRef = 765BD0BF6AD72D52E9656BC7; }; + 10C3B856F0D4727BB7387C6A = {isa = PBXBuildFile; fileRef = DD592EABB0FDAB7BA403EDCE; }; + 58542FCF8254F07FE05E31C8 = {isa = PBXBuildFile; fileRef = 2BA73CC97A03437656C4EDB9; }; + 774839FE80F5050E6835287F = {isa = PBXBuildFile; fileRef = B5CF9CD728BD0EF98CC19BCF; }; + E817D42312FA199D7906FBA7 = {isa = PBXBuildFile; fileRef = 97EBB6E78389113E73BE2E48; }; + C16F77E9A844E3F54E58C7CE = {isa = PBXBuildFile; fileRef = 8A45EABA916468AEC4217F96; }; + 789C7E0D1F98CA772665224B = {isa = PBXBuildFile; fileRef = D5203E6BEF873044EDF49889; }; + 1ABDA00E39256D95F567DE24 = {isa = PBXBuildFile; fileRef = DA954271B6AF22DF2E42C1CF; }; + 640E464F8F7A99291A59E9E4 = {isa = PBXBuildFile; fileRef = ED02484856FCE411F2090344; }; + 27DBD59E885960F57DE8D0E5 = {isa = PBXBuildFile; fileRef = 3B41FFC4B5899EDF5451E4DC; }; + 47E2D004742D7AFCE682E43B = {isa = PBXBuildFile; fileRef = 4EB0FDA59721EACF842A2552; }; + A5F4F720A25A241E3862F7E1 = {isa = PBXBuildFile; fileRef = 97545FB08B2E6F79B7ECB317; }; + 65FB9FA7E1FCA9FD26C3FE87 = {isa = PBXBuildFile; fileRef = 91E5D02DE1129EB2EC05AD58; }; + CE5354C2549476DBEE923DB9 = {isa = PBXBuildFile; fileRef = 51A4FBFA2B7A8EDFCC62DF86; }; + 2E0D13E47B337A3953D6A6C4 = {isa = PBXBuildFile; fileRef = 7BC02EF15EB86D9294BA7F76; }; + CE45AE0507E736C8D6FF714D = {isa = PBXBuildFile; fileRef = A9539DBF3196B98719E70DDD; }; + C2FAF2517D1E72E5845C41EE = {isa = PBXBuildFile; fileRef = 6CBBDDB070B21E4ADFAFD5BC; }; + 74206515E531A8102DD54372 = {isa = PBXBuildFile; fileRef = A6B86B1E4B10BBCB4BF75940; }; + F290DEE99F8CBB252BD0A7BA = {isa = PBXBuildFile; fileRef = 77FB742FA07952CFC8E4B0F5; }; + 0ABFD8A12B88F16087326449 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; + 102B36EA7AC3746B5E84E068 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_core"; path = "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules/juce_core"; sourceTree = ""; }; + 10D03A256EC6085DCD2216F1 = {isa = PBXFileReference; lastKnownFileType = file.caf; name = jinglebellssms.caf; path = ../../BinaryResources/sounds/jinglebellssms.caf; sourceTree = "SOURCE_ROOT"; }; + 1234504682C839042EC61D74 = {isa = PBXFileReference; lastKnownFileType = file.mp3; name = jinglebellssms.mp3; path = ../../BinaryResources/sounds/jinglebellssms.mp3; sourceTree = "SOURCE_ROOT"; }; + 134C4BD598CDA85DCB423805 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_data_structures"; path = "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules/juce_data_structures"; sourceTree = ""; }; + 1886DBBA7D4477749D1B6F76 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_formats"; path = "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules/juce_audio_formats"; sourceTree = ""; }; + 1BE8D44C41B29E18591F7D9D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = "SOURCE_ROOT"; }; + 2169DB193542BF35A37F349E = {isa = PBXFileReference; lastKnownFileType = file.caf; name = solemn.caf; path = ../../BinaryResources/sounds/solemn.caf; sourceTree = "SOURCE_ROOT"; }; + 2AA0C6B6C6686CCEC27CCE85 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_events"; path = "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules/juce_events"; sourceTree = ""; }; + 2BA73CC97A03437656C4EDB9 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; + 3B41FFC4B5899EDF5451E4DC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_formats.mm"; path = "../../JuceLibraryCode/include_juce_audio_formats.mm"; sourceTree = "SOURCE_ROOT"; }; + 3E046B8B36D60BED94360571 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_gui_extra"; path = "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules/juce_gui_extra"; sourceTree = ""; }; + 44B0BF1C182BC54A14F1F917 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BinaryData.h; path = ../../JuceLibraryCode/BinaryData.h; sourceTree = "SOURCE_ROOT"; }; + 464BAC92EDDF4C9B13697FCA = {isa = PBXFileReference; lastKnownFileType = image.png; name = "ic_stat_name6.png"; path = "../../BinaryResources/images/ic_stat_name6.png"; sourceTree = "SOURCE_ROOT"; }; + 49780B4714C19DCE9EC9012D = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PushNotificationsDemo.app; sourceTree = "BUILT_PRODUCTS_DIR"; }; + 4EB0FDA59721EACF842A2552 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_processors.mm"; path = "../../JuceLibraryCode/include_juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; }; + 51A4FBFA2B7A8EDFCC62DF86 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_data_structures.mm"; path = "../../JuceLibraryCode/include_juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; }; + 5329D92C95DE2EB7D29BE3BB = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_opengl"; path = "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules/juce_opengl"; sourceTree = ""; }; + 54C886FCA813EDBACCCE5907 = {isa = PBXFileReference; lastKnownFileType = file.caf; name = isntit.caf; path = ../../BinaryResources/sounds/isntit.caf; sourceTree = "SOURCE_ROOT"; }; + 579C20B8F73AF4168863FEE3 = {isa = PBXFileReference; lastKnownFileType = file.mp3; name = demonstrative.mp3; path = ../../BinaryResources/sounds/demonstrative.mp3; sourceTree = "SOURCE_ROOT"; }; + 57A33A5BD8F149F888B584AF = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_devices"; path = "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules/juce_audio_devices"; sourceTree = ""; }; + 5B3AFFE9CA16894F60B339BA = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_graphics"; path = "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules/juce_graphics"; sourceTree = ""; }; + 64A3BA42A06D01692582FAB9 = {isa = PBXFileReference; lastKnownFileType = image.png; name = "ic_stat_name9.png"; path = "../../BinaryResources/images/ic_stat_name9.png"; sourceTree = "SOURCE_ROOT"; }; + 6AEFAE68CD83E50219BC0448 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = "SOURCE_ROOT"; }; + 6CBBDDB070B21E4ADFAFD5BC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_gui_basics.mm"; path = "../../JuceLibraryCode/include_juce_gui_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + 6E27F5E0C53E7859B6E0AD84 = {isa = PBXFileReference; lastKnownFileType = image.png; name = "ic_stat_name8.png"; path = "../../BinaryResources/images/ic_stat_name8.png"; sourceTree = "SOURCE_ROOT"; }; + 765BD0BF6AD72D52E9656BC7 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; + 772C295C37006CD319B34B32 = {isa = PBXFileReference; lastKnownFileType = image.png; name = "ic_stat_name5.png"; path = "../../BinaryResources/images/ic_stat_name5.png"; sourceTree = "SOURCE_ROOT"; }; + 77FB742FA07952CFC8E4B0F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_opengl.mm"; path = "../../JuceLibraryCode/include_juce_opengl.mm"; sourceTree = "SOURCE_ROOT"; }; + 7BC02EF15EB86D9294BA7F76 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_events.mm"; path = "../../JuceLibraryCode/include_juce_events.mm"; sourceTree = "SOURCE_ROOT"; }; + 7BF1E114F639F9BE68770228 = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info-App.plist"; path = "Info-App.plist"; sourceTree = "SOURCE_ROOT"; }; + 830CAE3F1BF4FBE401B6236A = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 84CFB624424D9C970DC45AB0 = {isa = PBXFileReference; lastKnownFileType = file.mp3; name = solemn.mp3; path = ../../BinaryResources/sounds/solemn.mp3; sourceTree = "SOURCE_ROOT"; }; + 88F4EA23272E37A952767AC6 = {isa = PBXFileReference; lastKnownFileType = image.png; name = "ic_stat_name10.png"; path = "../../BinaryResources/images/ic_stat_name10.png"; sourceTree = "SOURCE_ROOT"; }; + 8A45EABA916468AEC4217F96 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = Main.cpp; path = ../../Source/Main.cpp; sourceTree = "SOURCE_ROOT"; }; + 91E5D02DE1129EB2EC05AD58 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_cryptography.mm"; path = "../../JuceLibraryCode/include_juce_cryptography.mm"; sourceTree = "SOURCE_ROOT"; }; + 97545FB08B2E6F79B7ECB317 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_core.mm"; path = "../../JuceLibraryCode/include_juce_core.mm"; sourceTree = "SOURCE_ROOT"; }; + 97EBB6E78389113E73BE2E48 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MainComponent.cpp; path = ../../Source/MainComponent.cpp; sourceTree = "SOURCE_ROOT"; }; + 983BD05F7BE942E7B8EEFE21 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_gui_basics"; path = "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules/juce_gui_basics"; sourceTree = ""; }; + 9F5A0EB28E3146AB04C4C1B8 = {isa = PBXFileReference; lastKnownFileType = file.mp3; name = served.mp3; path = ../../BinaryResources/sounds/served.mp3; sourceTree = "SOURCE_ROOT"; }; + A0C9BB332EF3D0DAA0E68C08 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; + A0EC76B3C576CF1CCD060A24 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MainComponent.h; path = ../../Source/MainComponent.h; sourceTree = "SOURCE_ROOT"; }; + A6B86B1E4B10BBCB4BF75940 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_gui_extra.mm"; path = "../../JuceLibraryCode/include_juce_gui_extra.mm"; sourceTree = "SOURCE_ROOT"; }; + A9539DBF3196B98719E70DDD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_graphics.mm"; path = "../../JuceLibraryCode/include_juce_graphics.mm"; sourceTree = "SOURCE_ROOT"; }; + B1409B35E01D4EDF63103089 = {isa = PBXFileReference; lastKnownFileType = image.png; name = "ic_stat_name3.png"; path = "../../BinaryResources/images/ic_stat_name3.png"; sourceTree = "SOURCE_ROOT"; }; + B24252FBEF889F570B4D903C = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_processors"; path = "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules/juce_audio_processors"; sourceTree = ""; }; + B41416ED658D3176A48CA7A4 = {isa = PBXFileReference; lastKnownFileType = file.mp3; name = isntit.mp3; path = ../../BinaryResources/sounds/isntit.mp3; sourceTree = "SOURCE_ROOT"; }; + B4BAF22F832D6087073F6A94 = {isa = PBXFileReference; lastKnownFileType = file.caf; name = demonstrative.caf; path = ../../BinaryResources/sounds/demonstrative.caf; sourceTree = "SOURCE_ROOT"; }; + B5CF9CD728BD0EF98CC19BCF = {isa = PBXFileReference; lastKnownFileType = file.nib; name = RecentFilesMenuTemplate.nib; path = RecentFilesMenuTemplate.nib; sourceTree = "SOURCE_ROOT"; }; + B8D5B4A343EE9B1F17F6C6E8 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; + BBA8FEF2E59BCF98020B407B = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_cryptography"; path = "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules/juce_cryptography"; sourceTree = ""; }; + C44E1B6CD18C2A26FB8912A2 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_basics"; path = "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules/juce_audio_basics"; sourceTree = ""; }; + C7D481DB8CAD9B796584D884 = {isa = PBXFileReference; lastKnownFileType = image.png; name = "ic_stat_name.png"; path = "../../BinaryResources/images/ic_stat_name.png"; sourceTree = "SOURCE_ROOT"; }; + C99B706BE72C70269D5E215B = {isa = PBXFileReference; lastKnownFileType = image.png; name = "ic_stat_name4.png"; path = "../../BinaryResources/images/ic_stat_name4.png"; sourceTree = "SOURCE_ROOT"; }; + CD620A300FB068C981C81F09 = {isa = PBXFileReference; lastKnownFileType = image.png; name = "ic_stat_name7.png"; path = "../../BinaryResources/images/ic_stat_name7.png"; sourceTree = "SOURCE_ROOT"; }; + CFF938668A52AE8FAABFE68C = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + D5203E6BEF873044EDF49889 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = BinaryData.cpp; path = ../../JuceLibraryCode/BinaryData.cpp; sourceTree = "SOURCE_ROOT"; }; + D7533B7BA364BACBDA73DFCB = {isa = PBXFileReference; lastKnownFileType = file.caf; name = served.caf; path = ../../BinaryResources/sounds/served.caf; sourceTree = "SOURCE_ROOT"; }; + DA954271B6AF22DF2E42C1CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_basics.mm"; path = "../../JuceLibraryCode/include_juce_audio_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + DD592EABB0FDAB7BA403EDCE = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + E377874A0AFBAC8A5CB14A77 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; }; + ED02484856FCE411F2090344 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_devices.mm"; path = "../../JuceLibraryCode/include_juce_audio_devices.mm"; sourceTree = "SOURCE_ROOT"; }; + FC2793967496BC1D63E59AA9 = {isa = PBXFileReference; lastKnownFileType = image.png; name = "ic_stat_name2.png"; path = "../../BinaryResources/images/ic_stat_name2.png"; sourceTree = "SOURCE_ROOT"; }; + FF718AB44CA06784A8810B3F = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; + C4050F35253CCCAE0668059F = {isa = PBXGroup; children = ( + C7D481DB8CAD9B796584D884, + FC2793967496BC1D63E59AA9, + B1409B35E01D4EDF63103089, + C99B706BE72C70269D5E215B, + 772C295C37006CD319B34B32, + 464BAC92EDDF4C9B13697FCA, + CD620A300FB068C981C81F09, + 6E27F5E0C53E7859B6E0AD84, + 64A3BA42A06D01692582FAB9, + 88F4EA23272E37A952767AC6, ); name = images; sourceTree = ""; }; + BDD9881E00B03D2861A549AF = {isa = PBXGroup; children = ( + B4BAF22F832D6087073F6A94, + 579C20B8F73AF4168863FEE3, + 54C886FCA813EDBACCCE5907, + B41416ED658D3176A48CA7A4, + 10D03A256EC6085DCD2216F1, + 1234504682C839042EC61D74, + D7533B7BA364BACBDA73DFCB, + 9F5A0EB28E3146AB04C4C1B8, + 2169DB193542BF35A37F349E, + 84CFB624424D9C970DC45AB0, ); name = sounds; sourceTree = ""; }; + 0FBF60CD670CD93EA40BBB9D = {isa = PBXGroup; children = ( + C4050F35253CCCAE0668059F, + BDD9881E00B03D2861A549AF, ); name = BinaryResources; sourceTree = ""; }; + 38425458C683F59A6E9D395D = {isa = PBXGroup; children = ( + 97EBB6E78389113E73BE2E48, + A0EC76B3C576CF1CCD060A24, + 8A45EABA916468AEC4217F96, ); name = Source; sourceTree = ""; }; + 3B9960EB6EA0EAB0AB0172A4 = {isa = PBXGroup; children = ( + 0FBF60CD670CD93EA40BBB9D, + 38425458C683F59A6E9D395D, ); name = PushNotificationsDemo; sourceTree = ""; }; + B3335B8847B857C453A53D3A = {isa = PBXGroup; children = ( + C44E1B6CD18C2A26FB8912A2, + 57A33A5BD8F149F888B584AF, + 1886DBBA7D4477749D1B6F76, + B24252FBEF889F570B4D903C, + 102B36EA7AC3746B5E84E068, + BBA8FEF2E59BCF98020B407B, + 134C4BD598CDA85DCB423805, + 2AA0C6B6C6686CCEC27CCE85, + 5B3AFFE9CA16894F60B339BA, + 983BD05F7BE942E7B8EEFE21, + 3E046B8B36D60BED94360571, + 5329D92C95DE2EB7D29BE3BB, ); name = "Juce Modules"; sourceTree = ""; }; + F18BEAD1BD4CE0E7B500E066 = {isa = PBXGroup; children = ( + 6AEFAE68CD83E50219BC0448, + D5203E6BEF873044EDF49889, + 44B0BF1C182BC54A14F1F917, + DA954271B6AF22DF2E42C1CF, + ED02484856FCE411F2090344, + 3B41FFC4B5899EDF5451E4DC, + 4EB0FDA59721EACF842A2552, + 97545FB08B2E6F79B7ECB317, + 91E5D02DE1129EB2EC05AD58, + 51A4FBFA2B7A8EDFCC62DF86, + 7BC02EF15EB86D9294BA7F76, + A9539DBF3196B98719E70DDD, + 6CBBDDB070B21E4ADFAFD5BC, + A6B86B1E4B10BBCB4BF75940, + 77FB742FA07952CFC8E4B0F5, + 1BE8D44C41B29E18591F7D9D, ); name = "Juce Library Code"; sourceTree = ""; }; + AE9D258BED2C621F5A456B04 = {isa = PBXGroup; children = ( + 7BF1E114F639F9BE68770228, + B5CF9CD728BD0EF98CC19BCF, ); name = Resources; sourceTree = ""; }; + 7A18BE464CE6E95227F3A4E4 = {isa = PBXGroup; children = ( + A0C9BB332EF3D0DAA0E68C08, + 830CAE3F1BF4FBE401B6236A, + FF718AB44CA06784A8810B3F, + CFF938668A52AE8FAABFE68C, + B8D5B4A343EE9B1F17F6C6E8, + E377874A0AFBAC8A5CB14A77, + 0ABFD8A12B88F16087326449, + 765BD0BF6AD72D52E9656BC7, + DD592EABB0FDAB7BA403EDCE, + 2BA73CC97A03437656C4EDB9, ); name = Frameworks; sourceTree = ""; }; + 70B73B193F5B01C0CF7C338A = {isa = PBXGroup; children = ( + 49780B4714C19DCE9EC9012D, ); name = Products; sourceTree = ""; }; + 38775C0754A977E01F939DE6 = {isa = PBXGroup; children = ( + 3B9960EB6EA0EAB0AB0172A4, + B3335B8847B857C453A53D3A, + F18BEAD1BD4CE0E7B500E066, + AE9D258BED2C621F5A456B04, + 7A18BE464CE6E95227F3A4E4, + 70B73B193F5B01C0CF7C338A, ); name = Source; sourceTree = ""; }; + 444FB611596276FCB3BD04C3 = {isa = XCBuildConfiguration; buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++11"; + CLANG_LINK_OBJC_RUNTIME = NO; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_DEBUG=1", + "DEBUG=1", + "JUCER_XCODE_MAC_F6D2F4CF=1", + "JUCE_APP_VERSION=1.0.0", + "JUCE_APP_VERSION_HEX=0x10000", + "JucePlugin_Build_VST=0", + "JucePlugin_Build_VST3=0", + "JucePlugin_Build_AU=0", + "JucePlugin_Build_AUv3=0", + "JucePlugin_Build_RTAS=0", + "JucePlugin_Build_AAX=0", + "JucePlugin_Build_Standalone=0", ); + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules", "$(inherited)"); + INFOPLIST_FILE = Info-App.plist; + INFOPLIST_PREPROCESS = NO; + INSTALL_PATH = "$(HOME)/Applications"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + PRODUCT_BUNDLE_IDENTIFIER = com.juce.pushnotificationsdemo; + SDKROOT_ppc = macosx10.5; + USE_HEADERMAP = NO; }; name = Debug; }; + 702B53B812A6A8E7D8FF96D0 = {isa = XCBuildConfiguration; buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++11"; + CLANG_LINK_OBJC_RUNTIME = NO; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; + DEAD_CODE_STRIPPING = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_NDEBUG=1", + "NDEBUG=1", + "JUCER_XCODE_MAC_F6D2F4CF=1", + "JUCE_APP_VERSION=1.0.0", + "JUCE_APP_VERSION_HEX=0x10000", + "JucePlugin_Build_VST=0", + "JucePlugin_Build_VST3=0", + "JucePlugin_Build_AU=0", + "JucePlugin_Build_AUv3=0", + "JucePlugin_Build_RTAS=0", + "JucePlugin_Build_AAX=0", + "JucePlugin_Build_Standalone=0", ); + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules", "$(inherited)"); + INFOPLIST_FILE = Info-App.plist; + INFOPLIST_PREPROCESS = NO; + INSTALL_PATH = "$(HOME)/Applications"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + PRODUCT_BUNDLE_IDENTIFIER = com.juce.pushnotificationsdemo; + SDKROOT_ppc = macosx10.5; + USE_HEADERMAP = NO; }; name = Release; }; + C61D53EFEDE9482F4DAA5C60 = {isa = XCBuildConfiguration; buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + DEBUG_INFORMATION_FORMAT = "dwarf"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = c11; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_MODEL_TUNING = G5; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; + GCC_WARN_MISSING_PARENTHESES = YES; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "PushNotificationsDemo"; + WARNING_CFLAGS = -Wreorder; + ZERO_LINK = NO; }; name = Debug; }; + EBD3D104DA1251E39E01518D = {isa = XCBuildConfiguration; buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + DEBUG_INFORMATION_FORMAT = "dwarf"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = c11; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_MODEL_TUNING = G5; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; + GCC_WARN_MISSING_PARENTHESES = YES; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PRODUCT_NAME = "PushNotificationsDemo"; + WARNING_CFLAGS = -Wreorder; + ZERO_LINK = NO; }; name = Release; }; + 0D41F2614FEFB61ABDDB59E6 = {isa = PBXTargetDependency; target = 5DA4352D4ADD33CF21895F9F; }; + 681FA1A1638927EA96D44D7E = {isa = XCConfigurationList; buildConfigurations = ( + C61D53EFEDE9482F4DAA5C60, + EBD3D104DA1251E39E01518D, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + 736F293B0716A7BB94B95017 = {isa = XCConfigurationList; buildConfigurations = ( + 444FB611596276FCB3BD04C3, + 702B53B812A6A8E7D8FF96D0, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + E7F21000BAE43EE2C27B118F = {isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 774839FE80F5050E6835287F, ); runOnlyForDeploymentPostprocessing = 0; }; + 627CF54E723F7183D553D95D = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + E817D42312FA199D7906FBA7, + C16F77E9A844E3F54E58C7CE, + 789C7E0D1F98CA772665224B, + 1ABDA00E39256D95F567DE24, + 640E464F8F7A99291A59E9E4, + 27DBD59E885960F57DE8D0E5, + 47E2D004742D7AFCE682E43B, + A5F4F720A25A241E3862F7E1, + 65FB9FA7E1FCA9FD26C3FE87, + CE5354C2549476DBEE923DB9, + 2E0D13E47B337A3953D6A6C4, + CE45AE0507E736C8D6FF714D, + C2FAF2517D1E72E5845C41EE, + 74206515E531A8102DD54372, + F290DEE99F8CBB252BD0A7BA, ); runOnlyForDeploymentPostprocessing = 0; }; + 66A35D349B59508A0E2A8BCF = {isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 34EE0B8CF9995CA19FDEEE60, + 5869259CA6CA640D13C2AFBA, + 596320A493EF45D8E9C0BCCC, + 6B7D8497E64906D8BF2DD683, + 143B4E6E3009432CF049EDE8, + 91FB13E966DF491DAB11AE54, + 94572AE40BC380A407F2627A, + 5828F459B222CF017CA53F25, + 10C3B856F0D4727BB7387C6A, + 58542FCF8254F07FE05E31C8, ); runOnlyForDeploymentPostprocessing = 0; }; + 5DA4352D4ADD33CF21895F9F = {isa = PBXNativeTarget; buildConfigurationList = 736F293B0716A7BB94B95017; buildPhases = ( + E7F21000BAE43EE2C27B118F, + 627CF54E723F7183D553D95D, + 66A35D349B59508A0E2A8BCF, ); buildRules = ( ); dependencies = ( ); name = "PushNotificationsDemo - App"; productName = PushNotificationsDemo; productReference = 49780B4714C19DCE9EC9012D; productType = "com.apple.product-type.application"; }; + 84BAB813E5482CE31314F6CD = {isa = PBXProject; buildConfigurationList = 681FA1A1638927EA96D44D7E; attributes = { LastUpgradeCheck = 0830; TargetAttributes = { 5DA4352D4ADD33CF21895F9F = { SystemCapabilities = {com.apple.ApplicationGroups.iOS = { enabled = 0; }; com.apple.InAppPurchase = { enabled = 0; }; com.apple.InterAppAudio = { enabled = 0; }; com.apple.Push = { enabled = 0; }; com.apple.Sandbox = { enabled = 0; }; }; }; }; }; compatibilityVersion = "Xcode 3.2"; hasScannedForEncodings = 0; mainGroup = 38775C0754A977E01F939DE6; projectDirPath = ""; projectRoot = ""; targets = (5DA4352D4ADD33CF21895F9F); }; + }; + rootObject = 84BAB813E5482CE31314F6CD; +} diff --git a/examples/PushNotificationsDemo/Builds/MacOSX/RecentFilesMenuTemplate.nib b/examples/PushNotificationsDemo/Builds/MacOSX/RecentFilesMenuTemplate.nib new file mode 100644 index 0000000000000000000000000000000000000000..cec7f7c72bb7b287e0d493d53b0c487866ed6038 GIT binary patch literal 2842 zcmai03v3kE6}|7xy!Xa&z`M5b4;%lM&tmWg|D6Ew7aQ2M@%n>tur*!}uy{Yt&e%Yj z!V5{9M2(VAB|&M`7EBWqMJYm*Qk147ZPe1JqQtSlrHBH7I0T_IjZ#F@)_t?%Ee=It zN7~t$ckeyto_pVY+c)U<=|*AUI3U0vfeZvFDn(`M9m85!_l1J%9ihIhn%B^~9BSCR z#V203IgHR?JfM+%hit2XfdZM33l3Ne`LGO1p%PYu3*68FouI-XJOW|Z2HRl=JO&&d zhbQ3$coFu%%kV0U!U6axya8{)&*3Qi0*=GG@E)9mKfr1D5GLTya1k!SWw;8Tz^8Bv z#i9%}4`re(l#OywE^?sxXaQP?79l5EjPlSDRDhPXJAy-g|6d>m?t@skA7;U9hyxqg zAs!MS5#~S=Btr_MLK@74bjW~=UYpJB>G0{kKEKxK3-*V$=^NdiW-IkI+77+L?P(2# zjEBWbU%%d=`iC^V!{PO-y1v1BXIcrL+E6ek^b*qPy|%dj#jrejZK-Zgwb!fZ0?Ft1 z89S!ULt$Z^e8-xJWJdjeuiG3r;V~TZa^A$tIOC;!6>sE?VWu%!dWA5EgB)G6@Q+_0~^K?-8y;x)BOkDvSy{=lWhr{ZQ15gGP z;OrD+%}2|n3LfAkKZ6HhIjn${@DNl(4b(y%)I$TTf<|cK_woDrQXa<_@>HJA=kaWw z%k#LC7w~0KMb-)xV!x@vI5dlFT3{Wtf(P25U5Mt=fYA2|)`3%3tXY&QT zh|lV(cB#IgX%)?M5LB%O3Eae3g&<9@V7f2dxg3SVLi^yav z41ga35QI>#&F=Pya@RjH7ukjfz9|JYZG%QTR?|*H}#w^&f>t!FfCQP8jBMcrs6j zn3_={EIo#5XjYir@PtUpTru??h27vh2TuvHM(&X7X(3q6Hza#rv}1K-s|kTTLwx}e zgwGX~pUzw)oz~Xi^J_i2wP+bveH1D9I{3aQ_wzhMR5UGG#l2kF54C*W-6{M)P^c3m zZdYwT&k|jhZYeGBGP|1xwP04O=GB769k93i>@@*=5ccyN0X?5*M#0}S!RvYM-CCt? z2Ivt187Zv*bZn^gYic;l6tLHp)N5AK#I6f@hlC!6ZZ23#AA?^`_tPjG1LxgPW;W!B z88R+vtMB(2XYZ)UOzYpzuwLBJ5DEuW<6a1Vn&Gpgt;45nyO+n=86No^)}a12R)3vg zU)a{D`3Jj&LNm9nIVG=%nNTdYQ$r|dxYVH7W?@UQ3YZ)<2a#2vD)`JCKuO|SK7B<; zkoBA-1~C?h))gH=))S7#_?nj-vc-uQ-!{nby+&CcRH0dsNN6^SLpEeb@hAZ$qB$rD zC8HFSiqggI%~8 zx8N?k2?wx_AHzHGF8mDMi+_w?$A|D?d*2`4pWg6Sed~ARjY?$q3ud*Mq zAF-dX{p<~N5j6 literal 0 HcmV?d00001 diff --git a/examples/PushNotificationsDemo/Builds/VisualStudio2015/PushNotificationsDemo.sln b/examples/PushNotificationsDemo/Builds/VisualStudio2015/PushNotificationsDemo.sln new file mode 100644 index 0000000000..eb3b011754 --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/VisualStudio2015/PushNotificationsDemo.sln @@ -0,0 +1,20 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2015 + +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PushNotificationsDemo - App", "PushNotificationsDemo_App.vcxproj", "{A2711170-7D3E-F373-BB00-51B36F5D8474}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A2711170-7D3E-F373-BB00-51B36F5D8474}.Debug|x64.ActiveCfg = Debug|x64 + {A2711170-7D3E-F373-BB00-51B36F5D8474}.Debug|x64.Build.0 = Debug|x64 + {A2711170-7D3E-F373-BB00-51B36F5D8474}.Release|x64.ActiveCfg = Release|x64 + {A2711170-7D3E-F373-BB00-51B36F5D8474}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/examples/PushNotificationsDemo/Builds/VisualStudio2015/PushNotificationsDemo_App.vcxproj b/examples/PushNotificationsDemo/Builds/VisualStudio2015/PushNotificationsDemo_App.vcxproj new file mode 100644 index 0000000000..cd2d9c496c --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/VisualStudio2015/PushNotificationsDemo_App.vcxproj @@ -0,0 +1,2340 @@ + + + + + + Debug + x64 + + + Release + x64 + + + + {A2711170-7D3E-F373-BB00-51B36F5D8474} + v140 + 8.1 + + + + Application + false + v140 + v140 + 8.1 + + + Application + false + true + v140 + v140 + 8.1 + + + + + + + + v140 + 8.1 + + + <_ProjectFileVersion>10.0.30319.1 + .exe + $(SolutionDir)$(Platform)\$(Configuration)\App\ + $(Platform)\$(Configuration)\App\ + PushNotificationsDemo + true + $(SolutionDir)$(Platform)\$(Configuration)\App\ + $(Platform)\$(Configuration)\App\ + PushNotificationsDemo + true + v140 + 8.1 + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + Disabled + ProgramDatabase + ..\..\JuceLibraryCode;C:\JUCE\modules;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;%(PreprocessorDefinitions) + MultiThreadedDebug + true + + $(IntDir)\ + $(IntDir)\ + $(IntDir)\ + Level4 + true + true + stdcpp14 + + + _DEBUG;%(PreprocessorDefinitions) + + + $(OutDir)\PushNotificationsDemo.exe + true + libcmt.lib; msvcrt.lib;;%(IgnoreSpecificDefaultLibraries) + true + $(IntDir)\PushNotificationsDemo.pdb + Windows + true + + + true + $(IntDir)\PushNotificationsDemo.bsc + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + Full + ..\..\JuceLibraryCode;C:\JUCE\modules;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;%(PreprocessorDefinitions) + MultiThreaded + true + + $(IntDir)\ + $(IntDir)\ + $(IntDir)\ + Level4 + true + true + stdcpp14 + + + NDEBUG;%(PreprocessorDefinitions) + + + $(OutDir)\PushNotificationsDemo.exe + true + %(IgnoreSpecificDefaultLibraries) + false + $(IntDir)\PushNotificationsDemo.pdb + Windows + true + true + true + + + true + $(IntDir)\PushNotificationsDemo.bsc + + + + + + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/PushNotificationsDemo/Builds/VisualStudio2015/PushNotificationsDemo_App.vcxproj.filters b/examples/PushNotificationsDemo/Builds/VisualStudio2015/PushNotificationsDemo_App.vcxproj.filters new file mode 100644 index 0000000000..927c074942 --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/VisualStudio2015/PushNotificationsDemo_App.vcxproj.filters @@ -0,0 +1,3911 @@ + + + + + + {A2BFFDA5-C35B-DFC6-DC07-57D9BC7A5BD9} + + + {2DE8D944-BB19-18FA-1674-892C31BA5E6F} + + + {5768856B-B42C-B118-0D88-F45B88A27F78} + + + {4BF29C02-E919-2479-B6C9-996C38F3B773} + + + {4B207F9F-C5B4-FF5C-3262-2B6123738176} + + + {52045BA8-DF89-5074-688D-A0977F25B09C} + + + {A33A1E1D-AC2C-6382-8681-48B0FC374C60} + + + {11A75801-B027-40BD-4993-023023ACCBF7} + + + {3FD908F5-98C8-9A61-FC03-0BAF8913CBB0} + + + {8C868E51-156D-A916-047C-0D9EA1393675} + + + {D0C0664E-18ED-2BD3-6ED4-EF3A0EDE0E20} + + + {EF2CAB40-0432-429B-C517-86ADF136BB8A} + + + {8F7EC212-3168-AD81-5064-C45BA838C408} + + + {3247ED97-A75A-F50B-8CCC-46155E895806} + + + {9D270B31-2425-8FDB-84A4-6A2288FF5B2F} + + + {0F766DD4-A277-CB86-5647-42498C8B41E1} + + + {01603E05-423B-5FC3-1BEE-E15ED33B5688} + + + {D64942B4-6984-3623-3347-45D472AE1C61} + + + {CACD7B50-4DB3-76AF-A6E8-90DF94F8F594} + + + {C9640E58-4493-7EEC-6F58-603AD184956E} + + + {D8EE4AD1-61E3-21C2-6640-6684F4CF77DC} + + + {FEF33480-117C-23A6-D12C-7C299F26C9DB} + + + {9DFA63C1-4EE6-1FAB-D563-41FCF84988F2} + + + {AB8611DF-8161-A9DF-DBAD-77A87DE37331} + + + {25C8FB00-334A-6E0F-F203-E988758B708A} + + + {94027CB9-8162-7431-2E01-B710C7CAE620} + + + {450B8177-6F41-B902-761B-BF68D55102DA} + + + {B8087E92-19F7-552F-9E85-16153D7191B0} + + + {B7221885-1731-611D-FDD9-EA968FA8D858} + + + {DC58E9B7-2710-F45C-B718-75EACDF53F47} + + + {9971A63C-5B75-039F-95C2-7474D7DB16B0} + + + {76391436-F92A-7602-4073-E446B5FAA859} + + + {0CD9E281-DDD0-91EC-6F77-EA9D9D5E0E1A} + + + {2FE25F4C-E9DF-04A5-CAED-6E4B7CF28C59} + + + {40C5CA7C-AEBB-05B1-11CE-AE41D87B5CCB} + + + {65CB28F8-0422-A8F3-9A17-959E12A1F8E2} + + + {20254EFE-6CBD-31A7-2119-92B1E0E0E311} + + + {70796D73-6D30-8A1B-4732-7C021E47C05A} + + + {77E2C34E-A4D6-EDB5-A107-7CB3CEF0E8EF} + + + {EB8DD942-E2CB-869F-D381-E02A65BA790B} + + + {8F91DFC0-7A71-1BA8-D8D9-6B4CF49151A4} + + + {0B0E7392-324B-088C-FBEB-5FE999D61782} + + + {0608ADE9-66EF-1A19-6D57-12D07F76EB53} + + + {C8F726FC-26BF-2E6B-4ED5-55A7FE316D7D} + + + {1B67A7C0-86E0-53F6-6AE3-7AD93B8DC95B} + + + {C294408A-2005-2E9E-7AC0-8D3ABE8AC175} + + + {476C69CE-0B67-6B85-E888-45D91E37A29E} + + + {7C5AD030-F8CC-6E85-0AF6-196B3ED40AC6} + + + {FA891A58-9FDA-9651-43C4-714A19B5D08D} + + + {C79A4D23-7866-8F3E-AC39-BD68C52A9259} + + + {DA0DC4AC-B511-A2D4-199A-C93454D6F114} + + + {91929C6F-7902-B87D-5260-2F6CBF8ACD93} + + + {4634FFAE-9586-A970-364C-4FDDA635F99F} + + + {244D11B0-2D68-3C08-A0B7-0D12469BC3AA} + + + {05F3DB8A-499C-6ACA-282F-5BF8455A0DE1} + + + {C9F6D785-BF78-5AA1-B479-111C65397864} + + + {4927C7A1-9235-4AA1-93CD-B4E67E6F1E5F} + + + {F2B2F310-F30F-7166-42A9-9BF9C230DA78} + + + {585D6A72-C5E7-BCF1-A168-63A40C6B6313} + + + {F03654BC-34D8-F975-BEA3-750CC2783D23} + + + {95CA1506-2B94-0DEE-0C8D-85EDEBBC4E88} + + + {7703D2CE-C32A-936A-0EEF-949FE6E52EB5} + + + {8D283B6C-13BA-9EF6-1B18-B1C393786943} + + + {3C7C8F35-6C08-9866-6663-6FEFE2EFC9FC} + + + {358AEA11-3F96-36AE-7B32-71373B5C5396} + + + {3DF036EA-3B80-553B-2494-3AAC835CAE75} + + + {1988E68A-A964-64CA-0E0C-26FF9BC5176C} + + + {928D8FCC-5E00-174B-6538-93E8D75AB396} + + + {B098BC87-3298-7E6B-12DC-D26C09CDCAED} + + + {6322B88F-984A-C3CD-6263-38D7AA49B6EC} + + + {6172822C-01A5-E824-12DA-FA43FA934D35} + + + {73C1E759-AD90-59A3-942E-2D10FAA29107} + + + {41DC3BE3-D629-8A17-C32B-F5B4008B5FAD} + + + {F2A38F45-6E55-E147-2E52-64A89FDD9D59} + + + {4926B3FF-E797-F586-857A-69D9703FA2D1} + + + {EBC65085-3AD5-280C-1A29-2B1683643AA1} + + + {E37D25CD-4350-4614-055B-7ABC55E67895} + + + {26ECA2AF-7368-C6CC-58EF-017ECD1862D0} + + + {C1A1A236-AB01-173E-96C3-0706BFF93B1E} + + + {F27C42E6-CF39-9B72-8CD7-C29CA4ADD43B} + + + {12D20EC8-139C-C2B1-1A66-AC436C48C0A7} + + + {69E1179D-76EC-26DC-C3E6-6602ED26D783} + + + {413F481F-075C-2958-115C-D8268682FCB7} + + + {FFC6E1CC-C772-75E6-5087-FB5D4E016799} + + + {1182303F-ECA3-166D-AC0C-92C5E762CB93} + + + {EE1AE8C3-0908-8F53-A4E5-D930C7C97C26} + + + {61712B09-5783-ADFA-2001-5A0C3D7764EB} + + + {C3B2EB8A-1A2F-306F-AA78-3E9D1593788B} + + + {46535B56-3737-2BE8-E3A0-571BCBEB2DA4} + + + {2CB59E7C-D0E4-7D27-2ACF-C7ABADEE936D} + + + {5A0AA36E-3957-E413-14C6-31CBE15271DF} + + + {5FDBD6B1-9BBD-392F-4DA5-FEA40A9370C4} + + + {A92719C7-70BE-57C4-CE9E-A9BC9DFEB757} + + + {E980FADB-6E3F-B93C-DE02-CE4271C9BA93} + + + {F408DCA2-D5E2-0A3A-A064-A1D045889BC1} + + + {7BCEAB87-62FD-0327-EB5D-679E54EDB9B1} + + + {C2B9505B-27B4-F650-12BD-F477D4BBCBAA} + + + {796B7886-44A7-34CC-9B95-BF4FB2C7B6F4} + + + {8A80BA78-D3A8-C0F8-7FFD-61AA028CE852} + + + {7A53E6F1-1343-33B8-4CA8-1D7B714A0E76} + + + {D7E3D10F-3ED8-DFC5-6DB3-E4ACBF8678FB} + + + {75F1F352-251A-75E0-D941-8431588F5C1E} + + + {DB6E3D09-66DA-12DA-BAE8-A5BFFA7A14AC} + + + {8E43579F-C185-266D-DD67-F8B95BD80F2F} + + + {C60A6FCA-9462-922E-AD8D-69F10C9049AF} + + + {D56498EE-E354-1F00-5EEE-8CF7944BEAFB} + + + {61B2920C-494D-D8CB-C0C7-5DBF3D76D164} + + + {66C9B809-8739-A217-C78D-A15D6089B8E3} + + + {C413328B-5D81-89EE-F4F3-75752E700DE4} + + + {8EC9572F-3CCA-E930-74B6-CB6139DE0E17} + + + {B3141847-8F13-F67D-45B2-E3ECF6E09088} + + + {151B49D8-6102-F802-1C07-D59931BC0574} + + + {2D8D0E19-E676-83EB-38D9-F73500DD6B79} + + + {9E586194-C056-101C-5311-F2AF5191AC80} + + + {639E16C5-DA8B-ADBA-6E24-7B596378EAB2} + + + {422C46B7-0467-2DB0-BF3C-16DFCAFD69AC} + + + {8B4D1BAA-6DB4-CAEC-A0FA-271F354D5C61} + + + + + PushNotificationsDemo\Source + + + PushNotificationsDemo\Source + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\synthesisers + + + Juce Modules\juce_audio_basics + + + Juce Modules\juce_audio_basics + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\midi_io + + + Juce Modules\juce_audio_devices\midi_io + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\sources + + + Juce Modules\juce_audio_devices\sources + + + Juce Modules\juce_audio_devices + + + Juce Modules\juce_audio_devices + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\sampler + + + Juce Modules\juce_audio_formats + + + Juce Modules\juce_audio_formats + + + Juce Modules\juce_audio_processors\format + + + Juce Modules\juce_audio_processors\format + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\javascript + + + Juce Modules\juce_core\javascript + + + Juce Modules\juce_core\logging + + + Juce Modules\juce_core\logging + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\unit_tests + + + Juce Modules\juce_core\xml + + + Juce Modules\juce_core\xml + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core + + + Juce Modules\juce_core + + + Juce Modules\juce_cryptography\encryption + + + Juce Modules\juce_cryptography\encryption + + + Juce Modules\juce_cryptography\encryption + + + Juce Modules\juce_cryptography\hashing + + + Juce Modules\juce_cryptography\hashing + + + Juce Modules\juce_cryptography\hashing + + + Juce Modules\juce_cryptography + + + Juce Modules\juce_cryptography + + + Juce Modules\juce_data_structures\app_properties + + + Juce Modules\juce_data_structures\app_properties + + + Juce Modules\juce_data_structures\undomanager + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures + + + Juce Modules\juce_data_structures + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\timers + + + Juce Modules\juce_events\timers + + + Juce Modules\juce_events + + + Juce Modules\juce_events + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats + + + Juce Modules\juce_graphics\image_formats + + + Juce Modules\juce_graphics\image_formats + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\placement + + + Juce Modules\juce_graphics + + + Juce Modules\juce_graphics + + + Juce Modules\juce_gui_basics\application + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics + + + Juce Modules\juce_gui_basics + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\documents + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra + + + Juce Modules\juce_gui_extra + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\utils + + + Juce Modules\juce_opengl + + + Juce Modules\juce_opengl + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + + + PushNotificationsDemo\Source + + + Juce Modules\juce_audio_basics\audio_play_head + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\native + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\synthesisers + + + Juce Modules\juce_audio_basics + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\midi_io + + + Juce Modules\juce_audio_devices\midi_io + + + Juce Modules\juce_audio_devices\midi_io + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\sources + + + Juce Modules\juce_audio_devices\sources + + + Juce Modules\juce_audio_devices + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\protected + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\protected + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\protected + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\books\coupled + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\books\coupled + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\books\floor + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\books\uncoupled + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\sampler + + + Juce Modules\juce_audio_formats + + + Juce Modules\juce_audio_processors\format + + + Juce Modules\juce_audio_processors\format + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\javascript + + + Juce Modules\juce_core\javascript + + + Juce Modules\juce_core\logging + + + Juce Modules\juce_core\logging + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\unit_tests + + + Juce Modules\juce_core\xml + + + Juce Modules\juce_core\xml + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core + + + Juce Modules\juce_cryptography\encryption + + + Juce Modules\juce_cryptography\encryption + + + Juce Modules\juce_cryptography\encryption + + + Juce Modules\juce_cryptography\hashing + + + Juce Modules\juce_cryptography\hashing + + + Juce Modules\juce_cryptography\hashing + + + Juce Modules\juce_cryptography + + + Juce Modules\juce_data_structures\app_properties + + + Juce Modules\juce_data_structures\app_properties + + + Juce Modules\juce_data_structures\undomanager + + + Juce Modules\juce_data_structures\undomanager + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\timers + + + Juce Modules\juce_events\timers + + + Juce Modules\juce_events + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\placement + + + Juce Modules\juce_graphics\placement + + + Juce Modules\juce_graphics + + + Juce Modules\juce_gui_basics\application + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\documents + + + Juce Modules\juce_gui_extra\embedding + + + Juce Modules\juce_gui_extra\embedding + + + Juce Modules\juce_gui_extra\embedding + + + Juce Modules\juce_gui_extra\embedding + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra + + + Juce Modules\juce_opengl\geometry + + + Juce Modules\juce_opengl\geometry + + + Juce Modules\juce_opengl\geometry + + + Juce Modules\juce_opengl\geometry + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\utils + + + Juce Modules\juce_opengl + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + + + PushNotificationsDemo\BinaryResources\images + + + PushNotificationsDemo\BinaryResources\images + + + PushNotificationsDemo\BinaryResources\images + + + PushNotificationsDemo\BinaryResources\images + + + PushNotificationsDemo\BinaryResources\images + + + PushNotificationsDemo\BinaryResources\images + + + PushNotificationsDemo\BinaryResources\images + + + PushNotificationsDemo\BinaryResources\images + + + PushNotificationsDemo\BinaryResources\images + + + PushNotificationsDemo\BinaryResources\images + + + PushNotificationsDemo\BinaryResources\sounds + + + PushNotificationsDemo\BinaryResources\sounds + + + PushNotificationsDemo\BinaryResources\sounds + + + PushNotificationsDemo\BinaryResources\sounds + + + PushNotificationsDemo\BinaryResources\sounds + + + PushNotificationsDemo\BinaryResources\sounds + + + PushNotificationsDemo\BinaryResources\sounds + + + PushNotificationsDemo\BinaryResources\sounds + + + PushNotificationsDemo\BinaryResources\sounds + + + PushNotificationsDemo\BinaryResources\sounds + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + + + Juce Library Code + + + diff --git a/examples/PushNotificationsDemo/Builds/VisualStudio2015/resources.rc b/examples/PushNotificationsDemo/Builds/VisualStudio2015/resources.rc new file mode 100644 index 0000000000..e0d561cf85 --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/VisualStudio2015/resources.rc @@ -0,0 +1,29 @@ +#ifdef JUCE_USER_DEFINED_RC_FILE + #include JUCE_USER_DEFINED_RC_FILE +#else + +#undef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#include + +VS_VERSION_INFO VERSIONINFO +FILEVERSION 1,0,0,0 +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "FileDescription", "PushNotificationsDemo\0" + VALUE "FileVersion", "1.0.0\0" + VALUE "ProductName", "PushNotificationsDemo\0" + VALUE "ProductVersion", "1.0.0\0" + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END + +#endif diff --git a/examples/PushNotificationsDemo/Builds/iOS/Info-App.plist b/examples/PushNotificationsDemo/Builds/iOS/Info-App.plist new file mode 100644 index 0000000000..9078dc60a3 --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/iOS/Info-App.plist @@ -0,0 +1,45 @@ + + + + + + LSRequiresIPhoneOS + + UIViewControllerBasedStatusBarAppearance + + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + com.juce.pushnotificationsdemo + CFBundleName + PushNotificationsDemo + CFBundleDisplayName + PushNotificationsDemo + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0.0 + CFBundleVersion + 1.0.0 + NSHumanReadableCopyright + + NSHighResolutionCapable + + UIRequiresFullScreen + + UIStatusBarHidden + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIBackgroundModes + + remote-notification + + + diff --git a/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo.entitlements b/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo.entitlements new file mode 100644 index 0000000000..903def2af5 --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo.entitlements @@ -0,0 +1,8 @@ + + + + + aps-environment + development + + diff --git a/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo.xcodeproj/project.pbxproj b/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..181f18ce2e --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo.xcodeproj/project.pbxproj @@ -0,0 +1,395 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + + C921649E28A39F47A2131F2E = {isa = PBXBuildFile; fileRef = 49780B4714C19DCE9EC9012D; }; + 34EE0B8CF9995CA19FDEEE60 = {isa = PBXBuildFile; fileRef = A0C9BB332EF3D0DAA0E68C08; }; + 5869259CA6CA640D13C2AFBA = {isa = PBXBuildFile; fileRef = 830CAE3F1BF4FBE401B6236A; }; + C2D25DE85D1914522127BADF = {isa = PBXBuildFile; fileRef = E4D4BBBEDDAFB9A2ECE6AA8E; }; + 143B4E6E3009432CF049EDE8 = {isa = PBXBuildFile; fileRef = B8D5B4A343EE9B1F17F6C6E8; }; + B42799473FC323233DC63CCF = {isa = PBXBuildFile; fileRef = 1EBBB3A836864F6F2104062A; }; + 908FC664AD81B4CA24DF436B = {isa = PBXBuildFile; fileRef = 3AAE3FDC5CE154C971CAFDD3; }; + 91FB13E966DF491DAB11AE54 = {isa = PBXBuildFile; fileRef = E377874A0AFBAC8A5CB14A77; }; + 17C39AB2D68A6CFC6CC4FC07 = {isa = PBXBuildFile; fileRef = 7EB61485172E45EC8DFCD854; }; + 9B4FE18278DEB63FE7E74459 = {isa = PBXBuildFile; fileRef = 39BD432972C38905D1EC8B77; }; + B3195C7B4D98EDB57273FBEC = {isa = PBXBuildFile; fileRef = D5E16BAF4E665E238BE1C57B; }; + 10C3B856F0D4727BB7387C6A = {isa = PBXBuildFile; fileRef = DD592EABB0FDAB7BA403EDCE; }; + A89178313735BBE021C9B6F8 = {isa = PBXBuildFile; fileRef = F9DD5C729F10092A9450C104; }; + 752E84DCB954F914A628623C = {isa = PBXBuildFile; fileRef = 5B4F02F6A13734698AEEAA76; }; + D3441839BBEBA8A35A952CCC = {isa = PBXBuildFile; fileRef = D712F707778B4CF73AB3CE87; }; + 349777A5158B577C8C15020B = {isa = PBXBuildFile; fileRef = 3553B4591C36FB40546D6B0A; }; + E817D42312FA199D7906FBA7 = {isa = PBXBuildFile; fileRef = 97EBB6E78389113E73BE2E48; }; + C16F77E9A844E3F54E58C7CE = {isa = PBXBuildFile; fileRef = 8A45EABA916468AEC4217F96; }; + 789C7E0D1F98CA772665224B = {isa = PBXBuildFile; fileRef = D5203E6BEF873044EDF49889; }; + 1ABDA00E39256D95F567DE24 = {isa = PBXBuildFile; fileRef = DA954271B6AF22DF2E42C1CF; }; + 640E464F8F7A99291A59E9E4 = {isa = PBXBuildFile; fileRef = ED02484856FCE411F2090344; }; + 27DBD59E885960F57DE8D0E5 = {isa = PBXBuildFile; fileRef = 3B41FFC4B5899EDF5451E4DC; }; + 47E2D004742D7AFCE682E43B = {isa = PBXBuildFile; fileRef = 4EB0FDA59721EACF842A2552; }; + A5F4F720A25A241E3862F7E1 = {isa = PBXBuildFile; fileRef = 97545FB08B2E6F79B7ECB317; }; + 65FB9FA7E1FCA9FD26C3FE87 = {isa = PBXBuildFile; fileRef = 91E5D02DE1129EB2EC05AD58; }; + CE5354C2549476DBEE923DB9 = {isa = PBXBuildFile; fileRef = 51A4FBFA2B7A8EDFCC62DF86; }; + 2E0D13E47B337A3953D6A6C4 = {isa = PBXBuildFile; fileRef = 7BC02EF15EB86D9294BA7F76; }; + CE45AE0507E736C8D6FF714D = {isa = PBXBuildFile; fileRef = A9539DBF3196B98719E70DDD; }; + C2FAF2517D1E72E5845C41EE = {isa = PBXBuildFile; fileRef = 6CBBDDB070B21E4ADFAFD5BC; }; + 74206515E531A8102DD54372 = {isa = PBXBuildFile; fileRef = A6B86B1E4B10BBCB4BF75940; }; + F290DEE99F8CBB252BD0A7BA = {isa = PBXBuildFile; fileRef = 77FB742FA07952CFC8E4B0F5; }; + 102B36EA7AC3746B5E84E068 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_core"; path = "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules/juce_core"; sourceTree = ""; }; + 10D03A256EC6085DCD2216F1 = {isa = PBXFileReference; lastKnownFileType = file.caf; name = jinglebellssms.caf; path = ../../BinaryResources/sounds/jinglebellssms.caf; sourceTree = "SOURCE_ROOT"; }; + 1234504682C839042EC61D74 = {isa = PBXFileReference; lastKnownFileType = file.mp3; name = jinglebellssms.mp3; path = ../../BinaryResources/sounds/jinglebellssms.mp3; sourceTree = "SOURCE_ROOT"; }; + 134C4BD598CDA85DCB423805 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_data_structures"; path = "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules/juce_data_structures"; sourceTree = ""; }; + 1886DBBA7D4477749D1B6F76 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_formats"; path = "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules/juce_audio_formats"; sourceTree = ""; }; + 1BE8D44C41B29E18591F7D9D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = "SOURCE_ROOT"; }; + 1EBBB3A836864F6F2104062A = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 2169DB193542BF35A37F349E = {isa = PBXFileReference; lastKnownFileType = file.caf; name = solemn.caf; path = ../../BinaryResources/sounds/solemn.caf; sourceTree = "SOURCE_ROOT"; }; + 2AA0C6B6C6686CCEC27CCE85 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_events"; path = "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules/juce_events"; sourceTree = ""; }; + 3553B4591C36FB40546D6B0A = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = PushNotificationsDemo/Images.xcassets; sourceTree = "SOURCE_ROOT"; }; + 39BD432972C38905D1EC8B77 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 3AAE3FDC5CE154C971CAFDD3 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreImage.framework; path = System/Library/Frameworks/CoreImage.framework; sourceTree = SDKROOT; }; + 3B41FFC4B5899EDF5451E4DC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_formats.mm"; path = "../../JuceLibraryCode/include_juce_audio_formats.mm"; sourceTree = "SOURCE_ROOT"; }; + 3E046B8B36D60BED94360571 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_gui_extra"; path = "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules/juce_gui_extra"; sourceTree = ""; }; + 44B0BF1C182BC54A14F1F917 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BinaryData.h; path = ../../JuceLibraryCode/BinaryData.h; sourceTree = "SOURCE_ROOT"; }; + 464BAC92EDDF4C9B13697FCA = {isa = PBXFileReference; lastKnownFileType = image.png; name = "ic_stat_name6.png"; path = "../../BinaryResources/images/ic_stat_name6.png"; sourceTree = "SOURCE_ROOT"; }; + 49780B4714C19DCE9EC9012D = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PushNotificationsDemo.app; sourceTree = "BUILT_PRODUCTS_DIR"; }; + 4EB0FDA59721EACF842A2552 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_processors.mm"; path = "../../JuceLibraryCode/include_juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; }; + 51A4FBFA2B7A8EDFCC62DF86 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_data_structures.mm"; path = "../../JuceLibraryCode/include_juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; }; + 5329D92C95DE2EB7D29BE3BB = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_opengl"; path = "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules/juce_opengl"; sourceTree = ""; }; + 54C886FCA813EDBACCCE5907 = {isa = PBXFileReference; lastKnownFileType = file.caf; name = isntit.caf; path = ../../BinaryResources/sounds/isntit.caf; sourceTree = "SOURCE_ROOT"; }; + 579C20B8F73AF4168863FEE3 = {isa = PBXFileReference; lastKnownFileType = file.mp3; name = demonstrative.mp3; path = ../../BinaryResources/sounds/demonstrative.mp3; sourceTree = "SOURCE_ROOT"; }; + 57A33A5BD8F149F888B584AF = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_devices"; path = "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules/juce_audio_devices"; sourceTree = ""; }; + 5B3AFFE9CA16894F60B339BA = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_graphics"; path = "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules/juce_graphics"; sourceTree = ""; }; + 5B4F02F6A13734698AEEAA76 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UserNotifications.framework; path = System/Library/Frameworks/UserNotifications.framework; sourceTree = SDKROOT; }; + 64A3BA42A06D01692582FAB9 = {isa = PBXFileReference; lastKnownFileType = image.png; name = "ic_stat_name9.png"; path = "../../BinaryResources/images/ic_stat_name9.png"; sourceTree = "SOURCE_ROOT"; }; + 6AEFAE68CD83E50219BC0448 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = "SOURCE_ROOT"; }; + 6CBBDDB070B21E4ADFAFD5BC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_gui_basics.mm"; path = "../../JuceLibraryCode/include_juce_gui_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + 6E27F5E0C53E7859B6E0AD84 = {isa = PBXFileReference; lastKnownFileType = image.png; name = "ic_stat_name8.png"; path = "../../BinaryResources/images/ic_stat_name8.png"; sourceTree = "SOURCE_ROOT"; }; + 772C295C37006CD319B34B32 = {isa = PBXFileReference; lastKnownFileType = image.png; name = "ic_stat_name5.png"; path = "../../BinaryResources/images/ic_stat_name5.png"; sourceTree = "SOURCE_ROOT"; }; + 77FB742FA07952CFC8E4B0F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_opengl.mm"; path = "../../JuceLibraryCode/include_juce_opengl.mm"; sourceTree = "SOURCE_ROOT"; }; + 7BC02EF15EB86D9294BA7F76 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_events.mm"; path = "../../JuceLibraryCode/include_juce_events.mm"; sourceTree = "SOURCE_ROOT"; }; + 7BF1E114F639F9BE68770228 = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info-App.plist"; path = "Info-App.plist"; sourceTree = "SOURCE_ROOT"; }; + 7EB61485172E45EC8DFCD854 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; }; + 830CAE3F1BF4FBE401B6236A = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 845BB013BB074C005F52976E = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = PushNotificationsDemo.entitlements; path = PushNotificationsDemo.entitlements; sourceTree = "SOURCE_ROOT"; }; + 84CFB624424D9C970DC45AB0 = {isa = PBXFileReference; lastKnownFileType = file.mp3; name = solemn.mp3; path = ../../BinaryResources/sounds/solemn.mp3; sourceTree = "SOURCE_ROOT"; }; + 88F4EA23272E37A952767AC6 = {isa = PBXFileReference; lastKnownFileType = image.png; name = "ic_stat_name10.png"; path = "../../BinaryResources/images/ic_stat_name10.png"; sourceTree = "SOURCE_ROOT"; }; + 8A45EABA916468AEC4217F96 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = Main.cpp; path = ../../Source/Main.cpp; sourceTree = "SOURCE_ROOT"; }; + 91E5D02DE1129EB2EC05AD58 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_cryptography.mm"; path = "../../JuceLibraryCode/include_juce_cryptography.mm"; sourceTree = "SOURCE_ROOT"; }; + 97545FB08B2E6F79B7ECB317 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_core.mm"; path = "../../JuceLibraryCode/include_juce_core.mm"; sourceTree = "SOURCE_ROOT"; }; + 97EBB6E78389113E73BE2E48 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MainComponent.cpp; path = ../../Source/MainComponent.cpp; sourceTree = "SOURCE_ROOT"; }; + 983BD05F7BE942E7B8EEFE21 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_gui_basics"; path = "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules/juce_gui_basics"; sourceTree = ""; }; + 9F5A0EB28E3146AB04C4C1B8 = {isa = PBXFileReference; lastKnownFileType = file.mp3; name = served.mp3; path = ../../BinaryResources/sounds/served.mp3; sourceTree = "SOURCE_ROOT"; }; + A0C9BB332EF3D0DAA0E68C08 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; + A0EC76B3C576CF1CCD060A24 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MainComponent.h; path = ../../Source/MainComponent.h; sourceTree = "SOURCE_ROOT"; }; + A6B86B1E4B10BBCB4BF75940 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_gui_extra.mm"; path = "../../JuceLibraryCode/include_juce_gui_extra.mm"; sourceTree = "SOURCE_ROOT"; }; + A9539DBF3196B98719E70DDD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_graphics.mm"; path = "../../JuceLibraryCode/include_juce_graphics.mm"; sourceTree = "SOURCE_ROOT"; }; + B1409B35E01D4EDF63103089 = {isa = PBXFileReference; lastKnownFileType = image.png; name = "ic_stat_name3.png"; path = "../../BinaryResources/images/ic_stat_name3.png"; sourceTree = "SOURCE_ROOT"; }; + B24252FBEF889F570B4D903C = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_processors"; path = "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules/juce_audio_processors"; sourceTree = ""; }; + B41416ED658D3176A48CA7A4 = {isa = PBXFileReference; lastKnownFileType = file.mp3; name = isntit.mp3; path = ../../BinaryResources/sounds/isntit.mp3; sourceTree = "SOURCE_ROOT"; }; + B4BAF22F832D6087073F6A94 = {isa = PBXFileReference; lastKnownFileType = file.caf; name = demonstrative.caf; path = ../../BinaryResources/sounds/demonstrative.caf; sourceTree = "SOURCE_ROOT"; }; + B8D5B4A343EE9B1F17F6C6E8 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; + BBA8FEF2E59BCF98020B407B = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_cryptography"; path = "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules/juce_cryptography"; sourceTree = ""; }; + C44E1B6CD18C2A26FB8912A2 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_basics"; path = "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules/juce_audio_basics"; sourceTree = ""; }; + C7D481DB8CAD9B796584D884 = {isa = PBXFileReference; lastKnownFileType = image.png; name = "ic_stat_name.png"; path = "../../BinaryResources/images/ic_stat_name.png"; sourceTree = "SOURCE_ROOT"; }; + C99B706BE72C70269D5E215B = {isa = PBXFileReference; lastKnownFileType = image.png; name = "ic_stat_name4.png"; path = "../../BinaryResources/images/ic_stat_name4.png"; sourceTree = "SOURCE_ROOT"; }; + CD620A300FB068C981C81F09 = {isa = PBXFileReference; lastKnownFileType = image.png; name = "ic_stat_name7.png"; path = "../../BinaryResources/images/ic_stat_name7.png"; sourceTree = "SOURCE_ROOT"; }; + D5203E6BEF873044EDF49889 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = BinaryData.cpp; path = ../../JuceLibraryCode/BinaryData.cpp; sourceTree = "SOURCE_ROOT"; }; + D5E16BAF4E665E238BE1C57B = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + D712F707778B4CF73AB3CE87 = {isa = PBXFileReference; lastKnownFileType = folder; name = sounds; path = ../../BinaryResources/sounds; sourceTree = ""; }; + D7533B7BA364BACBDA73DFCB = {isa = PBXFileReference; lastKnownFileType = file.caf; name = served.caf; path = ../../BinaryResources/sounds/served.caf; sourceTree = "SOURCE_ROOT"; }; + DA954271B6AF22DF2E42C1CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_basics.mm"; path = "../../JuceLibraryCode/include_juce_audio_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + DD592EABB0FDAB7BA403EDCE = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + E377874A0AFBAC8A5CB14A77 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; }; + E4D4BBBEDDAFB9A2ECE6AA8E = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + ED02484856FCE411F2090344 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_devices.mm"; path = "../../JuceLibraryCode/include_juce_audio_devices.mm"; sourceTree = "SOURCE_ROOT"; }; + F9DD5C729F10092A9450C104 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + FC2793967496BC1D63E59AA9 = {isa = PBXFileReference; lastKnownFileType = image.png; name = "ic_stat_name2.png"; path = "../../BinaryResources/images/ic_stat_name2.png"; sourceTree = "SOURCE_ROOT"; }; + C4050F35253CCCAE0668059F = {isa = PBXGroup; children = ( + C7D481DB8CAD9B796584D884, + FC2793967496BC1D63E59AA9, + B1409B35E01D4EDF63103089, + C99B706BE72C70269D5E215B, + 772C295C37006CD319B34B32, + 464BAC92EDDF4C9B13697FCA, + CD620A300FB068C981C81F09, + 6E27F5E0C53E7859B6E0AD84, + 64A3BA42A06D01692582FAB9, + 88F4EA23272E37A952767AC6, ); name = images; sourceTree = ""; }; + BDD9881E00B03D2861A549AF = {isa = PBXGroup; children = ( + B4BAF22F832D6087073F6A94, + 579C20B8F73AF4168863FEE3, + 54C886FCA813EDBACCCE5907, + B41416ED658D3176A48CA7A4, + 10D03A256EC6085DCD2216F1, + 1234504682C839042EC61D74, + D7533B7BA364BACBDA73DFCB, + 9F5A0EB28E3146AB04C4C1B8, + 2169DB193542BF35A37F349E, + 84CFB624424D9C970DC45AB0, ); name = sounds; sourceTree = ""; }; + 0FBF60CD670CD93EA40BBB9D = {isa = PBXGroup; children = ( + C4050F35253CCCAE0668059F, + BDD9881E00B03D2861A549AF, ); name = BinaryResources; sourceTree = ""; }; + 38425458C683F59A6E9D395D = {isa = PBXGroup; children = ( + 97EBB6E78389113E73BE2E48, + A0EC76B3C576CF1CCD060A24, + 8A45EABA916468AEC4217F96, ); name = Source; sourceTree = ""; }; + 3B9960EB6EA0EAB0AB0172A4 = {isa = PBXGroup; children = ( + 0FBF60CD670CD93EA40BBB9D, + 38425458C683F59A6E9D395D, ); name = PushNotificationsDemo; sourceTree = ""; }; + B3335B8847B857C453A53D3A = {isa = PBXGroup; children = ( + C44E1B6CD18C2A26FB8912A2, + 57A33A5BD8F149F888B584AF, + 1886DBBA7D4477749D1B6F76, + B24252FBEF889F570B4D903C, + 102B36EA7AC3746B5E84E068, + BBA8FEF2E59BCF98020B407B, + 134C4BD598CDA85DCB423805, + 2AA0C6B6C6686CCEC27CCE85, + 5B3AFFE9CA16894F60B339BA, + 983BD05F7BE942E7B8EEFE21, + 3E046B8B36D60BED94360571, + 5329D92C95DE2EB7D29BE3BB, ); name = "Juce Modules"; sourceTree = ""; }; + F18BEAD1BD4CE0E7B500E066 = {isa = PBXGroup; children = ( + 6AEFAE68CD83E50219BC0448, + D5203E6BEF873044EDF49889, + 44B0BF1C182BC54A14F1F917, + DA954271B6AF22DF2E42C1CF, + ED02484856FCE411F2090344, + 3B41FFC4B5899EDF5451E4DC, + 4EB0FDA59721EACF842A2552, + 97545FB08B2E6F79B7ECB317, + 91E5D02DE1129EB2EC05AD58, + 51A4FBFA2B7A8EDFCC62DF86, + 7BC02EF15EB86D9294BA7F76, + A9539DBF3196B98719E70DDD, + 6CBBDDB070B21E4ADFAFD5BC, + A6B86B1E4B10BBCB4BF75940, + 77FB742FA07952CFC8E4B0F5, + 1BE8D44C41B29E18591F7D9D, ); name = "Juce Library Code"; sourceTree = ""; }; + AE9D258BED2C621F5A456B04 = {isa = PBXGroup; children = ( + D712F707778B4CF73AB3CE87, + 7BF1E114F639F9BE68770228, + 3553B4591C36FB40546D6B0A, ); name = Resources; sourceTree = ""; }; + 7A18BE464CE6E95227F3A4E4 = {isa = PBXGroup; children = ( + A0C9BB332EF3D0DAA0E68C08, + 830CAE3F1BF4FBE401B6236A, + E4D4BBBEDDAFB9A2ECE6AA8E, + B8D5B4A343EE9B1F17F6C6E8, + 1EBBB3A836864F6F2104062A, + 3AAE3FDC5CE154C971CAFDD3, + E377874A0AFBAC8A5CB14A77, + 7EB61485172E45EC8DFCD854, + 39BD432972C38905D1EC8B77, + D5E16BAF4E665E238BE1C57B, + DD592EABB0FDAB7BA403EDCE, + F9DD5C729F10092A9450C104, + 5B4F02F6A13734698AEEAA76, ); name = Frameworks; sourceTree = ""; }; + 70B73B193F5B01C0CF7C338A = {isa = PBXGroup; children = ( + 49780B4714C19DCE9EC9012D, ); name = Products; sourceTree = ""; }; + 38775C0754A977E01F939DE6 = {isa = PBXGroup; children = ( + 845BB013BB074C005F52976E, + 3B9960EB6EA0EAB0AB0172A4, + B3335B8847B857C453A53D3A, + F18BEAD1BD4CE0E7B500E066, + AE9D258BED2C621F5A456B04, + 7A18BE464CE6E95227F3A4E4, + 70B73B193F5B01C0CF7C338A, ); name = Source; sourceTree = ""; }; + 444FB611596276FCB3BD04C3 = {isa = XCBuildConfiguration; buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + CLANG_CXX_LANGUAGE_STANDARD = "c++11"; + CLANG_LINK_OBJC_RUNTIME = NO; + CODE_SIGN_ENTITLEMENTS = "PushNotificationsDemo.entitlements"; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_DEBUG=1", + "DEBUG=1", + "JUCE_PUSH_NOTIFICATIONS=1", + "JUCER_XCODE_IPHONE_5BC26AE3=1", + "JUCE_APP_VERSION=1.0.0", + "JUCE_APP_VERSION_HEX=0x10000", + "JucePlugin_Build_VST=0", + "JucePlugin_Build_VST3=0", + "JucePlugin_Build_AU=0", + "JucePlugin_Build_AUv3=0", + "JucePlugin_Build_RTAS=0", + "JucePlugin_Build_AAX=0", + "JucePlugin_Build_Standalone=0", ); + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules", "$(inherited)"); + INFOPLIST_FILE = Info-App.plist; + INFOPLIST_PREPROCESS = NO; + INSTALL_PATH = "$(HOME)/Applications"; + OTHER_CPLUSPLUSFLAGS = "-pedantic -Werror -Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -F../../../../3rd_party/FacebookSDKs-iOS-4 -F../../../../3rd_party/Firebase_ios_sdk/Analytics -F../../../../3rd_party/Firebase_ios_sdk/Messaging"; + PRODUCT_BUNDLE_IDENTIFIER = com.juce.pushnotificationsdemo; + USE_HEADERMAP = NO; }; name = Debug; }; + 702B53B812A6A8E7D8FF96D0 = {isa = XCBuildConfiguration; buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + CLANG_CXX_LANGUAGE_STANDARD = "c++11"; + CLANG_LINK_OBJC_RUNTIME = NO; + CODE_SIGN_ENTITLEMENTS = "PushNotificationsDemo.entitlements"; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; + DEAD_CODE_STRIPPING = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_NDEBUG=1", + "NDEBUG=1", + "JUCE_PUSH_NOTIFICATIONS=1", + "JUCER_XCODE_IPHONE_5BC26AE3=1", + "JUCE_APP_VERSION=1.0.0", + "JUCE_APP_VERSION_HEX=0x10000", + "JucePlugin_Build_VST=0", + "JucePlugin_Build_VST3=0", + "JucePlugin_Build_AU=0", + "JucePlugin_Build_AUv3=0", + "JucePlugin_Build_RTAS=0", + "JucePlugin_Build_AAX=0", + "JucePlugin_Build_Standalone=0", ); + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "/Users/lukaszkozakiewicz/ROLI/Repos/roli-software/JUCE/modules", "$(inherited)"); + INFOPLIST_FILE = Info-App.plist; + INFOPLIST_PREPROCESS = NO; + INSTALL_PATH = "$(HOME)/Applications"; + OTHER_CPLUSPLUSFLAGS = "-pedantic -Werror -Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -F../../../../3rd_party/FacebookSDKs-iOS-4 -F../../../../3rd_party/Firebase_ios_sdk/Analytics -F../../../../3rd_party/Firebase_ios_sdk/Messaging"; + PRODUCT_BUNDLE_IDENTIFIER = com.juce.pushnotificationsdemo; + USE_HEADERMAP = NO; }; name = Release; }; + C61D53EFEDE9482F4DAA5C60 = {isa = XCBuildConfiguration; buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + DEBUG_INFORMATION_FORMAT = "dwarf"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = c11; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_MODEL_TUNING = G5; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; + GCC_WARN_MISSING_PARENTHESES = YES; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "PushNotificationsDemo"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + WARNING_CFLAGS = -Wreorder; + ZERO_LINK = NO; }; name = Debug; }; + EBD3D104DA1251E39E01518D = {isa = XCBuildConfiguration; buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + DEBUG_INFORMATION_FORMAT = "dwarf"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = c11; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_MODEL_TUNING = G5; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; + GCC_WARN_MISSING_PARENTHESES = YES; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + PRODUCT_NAME = "PushNotificationsDemo"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + WARNING_CFLAGS = -Wreorder; + ZERO_LINK = NO; }; name = Release; }; + 0D41F2614FEFB61ABDDB59E6 = {isa = PBXTargetDependency; target = 5DA4352D4ADD33CF21895F9F; }; + 681FA1A1638927EA96D44D7E = {isa = XCConfigurationList; buildConfigurations = ( + C61D53EFEDE9482F4DAA5C60, + EBD3D104DA1251E39E01518D, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + 736F293B0716A7BB94B95017 = {isa = XCConfigurationList; buildConfigurations = ( + 444FB611596276FCB3BD04C3, + 702B53B812A6A8E7D8FF96D0, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + E7F21000BAE43EE2C27B118F = {isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + D3441839BBEBA8A35A952CCC, + 349777A5158B577C8C15020B, ); runOnlyForDeploymentPostprocessing = 0; }; + 627CF54E723F7183D553D95D = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + E817D42312FA199D7906FBA7, + C16F77E9A844E3F54E58C7CE, + 789C7E0D1F98CA772665224B, + 1ABDA00E39256D95F567DE24, + 640E464F8F7A99291A59E9E4, + 27DBD59E885960F57DE8D0E5, + 47E2D004742D7AFCE682E43B, + A5F4F720A25A241E3862F7E1, + 65FB9FA7E1FCA9FD26C3FE87, + CE5354C2549476DBEE923DB9, + 2E0D13E47B337A3953D6A6C4, + CE45AE0507E736C8D6FF714D, + C2FAF2517D1E72E5845C41EE, + 74206515E531A8102DD54372, + F290DEE99F8CBB252BD0A7BA, ); runOnlyForDeploymentPostprocessing = 0; }; + 66A35D349B59508A0E2A8BCF = {isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 34EE0B8CF9995CA19FDEEE60, + 5869259CA6CA640D13C2AFBA, + C2D25DE85D1914522127BADF, + 143B4E6E3009432CF049EDE8, + B42799473FC323233DC63CCF, + 908FC664AD81B4CA24DF436B, + 91FB13E966DF491DAB11AE54, + 17C39AB2D68A6CFC6CC4FC07, + 9B4FE18278DEB63FE7E74459, + B3195C7B4D98EDB57273FBEC, + 10C3B856F0D4727BB7387C6A, + A89178313735BBE021C9B6F8, + 752E84DCB954F914A628623C, ); runOnlyForDeploymentPostprocessing = 0; }; + 5DA4352D4ADD33CF21895F9F = {isa = PBXNativeTarget; buildConfigurationList = 736F293B0716A7BB94B95017; buildPhases = ( + E7F21000BAE43EE2C27B118F, + 627CF54E723F7183D553D95D, + 66A35D349B59508A0E2A8BCF, ); buildRules = ( ); dependencies = ( ); name = "PushNotificationsDemo - App"; productName = PushNotificationsDemo; productReference = 49780B4714C19DCE9EC9012D; productType = "com.apple.product-type.application"; }; + 84BAB813E5482CE31314F6CD = {isa = PBXProject; buildConfigurationList = 681FA1A1638927EA96D44D7E; attributes = { LastUpgradeCheck = 0830; TargetAttributes = { 5DA4352D4ADD33CF21895F9F = { SystemCapabilities = {com.apple.ApplicationGroups.iOS = { enabled = 0; }; com.apple.InAppPurchase = { enabled = 0; }; com.apple.InterAppAudio = { enabled = 0; }; com.apple.Push = { enabled = 1; }; com.apple.Sandbox = { enabled = 0; }; }; }; }; }; compatibilityVersion = "Xcode 3.2"; hasScannedForEncodings = 0; mainGroup = 38775C0754A977E01F939DE6; projectDirPath = ""; projectRoot = ""; targets = (5DA4352D4ADD33CF21895F9F); }; + }; + rootObject = 84BAB813E5482CE31314F6CD; +} diff --git a/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/AppIcon.appiconset/Contents.json b/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000000..e216154693 --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,158 @@ +{ + "images": [ + { + "idiom": "iphone", + "size": "20x20", + "filename": "Icon-Notification-20@2x.png", + "scale": "2x" + }, + { + "idiom": "iphone", + "size": "20x20", + "filename": "Icon-Notification-20@3x.png", + "scale": "3x" + }, + { + "idiom": "iphone", + "size": "29x29", + "filename": "Icon-29.png", + "scale": "1x" + }, + { + "idiom": "iphone", + "size": "29x29", + "filename": "Icon-29@2x.png", + "scale": "2x" + }, + { + "idiom": "iphone", + "size": "29x29", + "filename": "Icon-29@3x.png", + "scale": "3x" + }, + { + "idiom": "iphone", + "size": "40x40", + "filename": "Icon-Spotlight-40@2x.png", + "scale": "2x" + }, + { + "idiom": "iphone", + "size": "40x40", + "filename": "Icon-Spotlight-40@3x.png", + "scale": "3x" + }, + { + "idiom": "iphone", + "size": "57x57", + "filename": "Icon.png", + "scale": "1x" + }, + { + "idiom": "iphone", + "size": "57x57", + "filename": "Icon@2x.png", + "scale": "2x" + }, + { + "idiom": "iphone", + "size": "60x60", + "filename": "Icon-60@2x.png", + "scale": "2x" + }, + { + "idiom": "iphone", + "size": "60x60", + "filename": "Icon-@3x.png", + "scale": "3x" + }, + { + "idiom": "ipad", + "size": "20x20", + "filename": "Icon-Notifications-20.png", + "scale": "1x" + }, + { + "idiom": "ipad", + "size": "20x20", + "filename": "Icon-Notifications-20@2x.png", + "scale": "2x" + }, + { + "idiom": "ipad", + "size": "29x29", + "filename": "Icon-Small-1.png", + "scale": "1x" + }, + { + "idiom": "ipad", + "size": "29x29", + "filename": "Icon-Small@2x-1.png", + "scale": "2x" + }, + { + "idiom": "ipad", + "size": "40x40", + "filename": "Icon-Spotlight-40.png", + "scale": "1x" + }, + { + "idiom": "ipad", + "size": "40x40", + "filename": "Icon-Spotlight-40@2x-1.png", + "scale": "2x" + }, + { + "idiom": "ipad", + "size": "50x50", + "filename": "Icon-Small-50.png", + "scale": "1x" + }, + { + "idiom": "ipad", + "size": "50x50", + "filename": "Icon-Small-50@2x.png", + "scale": "2x" + }, + { + "idiom": "ipad", + "size": "72x72", + "filename": "Icon-72.png", + "scale": "1x" + }, + { + "idiom": "ipad", + "size": "72x72", + "filename": "Icon-72@2x.png", + "scale": "2x" + }, + { + "idiom": "ipad", + "size": "76x76", + "filename": "Icon-76.png", + "scale": "1x" + }, + { + "idiom": "ipad", + "size": "76x76", + "filename": "Icon-76@2x.png", + "scale": "2x" + }, + { + "idiom": "ipad", + "size": "83.5x83.5", + "filename": "Icon-83.5@2x.png", + "scale": "2x" + }, + { + "idiom": "ios-marketing", + "size": "1024x1024", + "filename": "Icon-AppStore-1024.png", + "scale": "1x" + } + ], + "info": { + "version": 1, + "author": "xcode" + } +} \ No newline at end of file diff --git a/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/Contents.json b/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/Contents.json new file mode 100644 index 0000000000..235448f31e --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/Contents.json @@ -0,0 +1,57 @@ +{ + "images": [ + { + "orientation": "portrait", + "idiom": "iphone", + "extent": "full-screen", + "minimum-system-version": "7.0", + "scale": "2x", + "filename": "LaunchImage-iphone-2x.png" + }, + { + "orientation": "portrait", + "idiom": "iphone", + "extent": "full-screen", + "minimum-system-version": "7.0", + "scale": "2x", + "filename": "LaunchImage-iphone-retina4.png", + "subtype": "retina4" + }, + { + "orientation": "portrait", + "idiom": "ipad", + "extent": "full-screen", + "minimum-system-version": "7.0", + "scale": "1x", + "filename": "LaunchImage-ipad-portrait-1x.png" + }, + { + "orientation": "landscape", + "idiom": "ipad", + "extent": "full-screen", + "minimum-system-version": "7.0", + "scale": "1x", + "filename": "LaunchImage-ipad-landscape-1x.png" + }, + { + "orientation": "portrait", + "idiom": "ipad", + "extent": "full-screen", + "minimum-system-version": "7.0", + "scale": "2x", + "filename": "LaunchImage-ipad-portrait-2x.png" + }, + { + "orientation": "landscape", + "idiom": "ipad", + "extent": "full-screen", + "minimum-system-version": "7.0", + "scale": "2x", + "filename": "LaunchImage-ipad-landscape-2x.png" + } + ], + "info": { + "version": 1, + "author": "xcode" + } +} \ No newline at end of file diff --git a/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-landscape-1x.png b/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-landscape-1x.png new file mode 100644 index 0000000000000000000000000000000000000000..b8a0025f63fcf33f41e91f88b733f42f29eea0a5 GIT binary patch literal 4904 zcmeAS@N?(olHy`uVBq!ia0y~yU;#3j893O0)UI8kyg-Vj*vT`50|;t3QaTtIgzkH~ zIEGZrd3)m^?*RpY0~;3qe$NxU!0X67h4*V_-ed;quzCC28b~qhI1eHlfaU=K6Ay^w zFaVJX2SDVg#AuL=CWg^$Fj_KzO2g4IakQEMCWFxm5|kN6n+BszgV8c^G#iXI4M3&g vXwzV{X#h+HqfG-)W*BW6j5ZBuStjz?#bP0l+XkK2(({! literal 0 HcmV?d00001 diff --git a/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-landscape-2x.png b/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-landscape-2x.png new file mode 100644 index 0000000000000000000000000000000000000000..817cdf80576586c17f9ff786be3295e5fda14dd6 GIT binary patch literal 15969 zcmeI2Jxc>Y7=+)Lcpl**Nf$-rf>u_R76y|L(QBee!1fBU5k(M1(BiaGD@zLt%T%I; ztp@xLB9;NcLamI7O5*P2*544}*=DE62h7dP&c58?d}St;988Kx%9|}Oh}a5RVq0o! zoYYp;me?qHRa>oHd+9*L6|Y>ZZl69s6f=@b*DoG_cC5_g+S6!q>}+NEU40{5bKk9g zgI@;>a_a_3O#er?>~Vt%LCnA&$Dp)tP#|#w6Ip}!Nr6ixTttL>M2HO`FNK3bo!gv{ zR0FDks)-Sf2J*y0gt-FuUqY(*W ze*;M?q1nMzVDn;1a|oDDuL;O*YbuG$YMI2CzaGS;5_UDd;yQ{o|Wv{<>i^nna#mBu_On zXH;&U2V+0O1ft+Z5NUxM0b{>N3gjdC7%@PJGg2TQ$w%@rWB@B*1+0J-6a!o!yYm8B j%TKsEq|$Hg&8bqa1bcGpIPIb4VoU4Ro3514OaA^ZRUk+h literal 0 HcmV?d00001 diff --git a/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-portrait-1x.png b/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-portrait-1x.png new file mode 100644 index 0000000000000000000000000000000000000000..f3685597a1db3978e4081a1ff5b538679b85f0cb GIT binary patch literal 5350 zcmeAS@N?(olHy`uVBq!ia0y~yUBhlnw?4k-45O zjv*Cu-d;CkWKiHau%WU3`~#*wHLhP}XU|A7FeoJc=L71xX9y$&l7NK55g_5v!N|bS zAOJF55oER#50Ge)01_Od3P*!yG*OIZh0&5?w0s<`6-Fz~(Wb&^18KBbINE9+?JJD- ykVZR@quu7w!Gh5t65u$|XtQv%SxC59sK>{|@qgLJC=pn#1V;TDOc2iDSdVQAuB@ZY8IN*a4U|pC8aDamnV81XA-~b0lfIiAJfCC(q0By5* z00%fI0orEs01j|a0<_KM0UY4q2>fu{9A53VN9Vbzx8swGxwe@5$yCC~w>De$WG&|l zmZw{mVTV5LuJJm{^|&Qp07Nwb4`6@?)I|0L5g5QgE5WaMFxzzPh6ZdFfR4?*3A$Do z=!(Px7~p{tzylaW8c-8i3y}!yjensgo_{~X?d7~yII|WQxDtj3FwmV04`6@?N&pXF z5NSY7WGzG@us2c@sfpA?=DkE<00XTA|J#GT$I6RHY+wHuAgX(ea=J;|Umj;Y7#Z?) hpf>aVxjdR{kgzI~-I>p(bmykNqhO+#Kg`XSzW|b=YWn~H literal 0 HcmV?d00001 diff --git a/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/LaunchImage-iphone-2x.png b/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/LaunchImage-iphone-2x.png new file mode 100644 index 0000000000000000000000000000000000000000..efe9e82a3257662a9e069038e1cc7cbcb64e0f90 GIT binary patch literal 4542 zcmeAS@N?(olHy`uVBq!ia0y~yU}|7sU_QXX1{7KP=)`Xz#Zv6#8NvYsH5@4&3=D#$ zo-U3d6?5KRGh}2?;5o3NvHtu6ram>UsMUNa9goaOh!VVdyX%RWup|qp4stBaD^>qs8H9jWAj%j5-}9PKQRju(s$nT(DajSifVICiM#G==lNaOBfjz>!D>Pgg&ebxsLQ E006gcSO5S3 literal 0 HcmV?d00001 diff --git a/examples/PushNotificationsDemo/PushNotificationsDemo.jucer b/examples/PushNotificationsDemo/PushNotificationsDemo.jucer index b6823bd3f2..9ef5d8ca26 100644 --- a/examples/PushNotificationsDemo/PushNotificationsDemo.jucer +++ b/examples/PushNotificationsDemo/PushNotificationsDemo.jucer @@ -3,7 +3,8 @@ + includeBinaryInAppConfig="1" cppLanguageStandard="11" jucerVersion="5.1.2" + companyCopyright=""> @@ -55,7 +56,8 @@ + customXcodeResourceFolders="./BinaryResources/sounds" iPadScreenOrientation="portraitlandscape" + iosDeviceFamily="1,2"> diff --git a/examples/SimpleFFTExample/Builds/MacOSX/Info-App.plist b/examples/SimpleFFTExample/Builds/MacOSX/Info-App.plist index 09c9d254ce..42eac35610 100644 --- a/examples/SimpleFFTExample/Builds/MacOSX/Info-App.plist +++ b/examples/SimpleFFTExample/Builds/MacOSX/Info-App.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.SimpleFFTExample CFBundleName SimpleFFTExample CFBundleDisplayName diff --git a/examples/SimpleFFTExample/Builds/VisualStudio2013/SimpleFFTExample_App.vcxproj b/examples/SimpleFFTExample/Builds/VisualStudio2013/SimpleFFTExample_App.vcxproj index 2969996603..a2b2c889d9 100644 --- a/examples/SimpleFFTExample/Builds/VisualStudio2013/SimpleFFTExample_App.vcxproj +++ b/examples/SimpleFFTExample/Builds/VisualStudio2013/SimpleFFTExample_App.vcxproj @@ -1702,6 +1702,9 @@ true + + true + true @@ -1711,9 +1714,15 @@ true + + true + true + + true + true @@ -2348,6 +2357,7 @@ + diff --git a/examples/SimpleFFTExample/Builds/VisualStudio2013/SimpleFFTExample_App.vcxproj.filters b/examples/SimpleFFTExample/Builds/VisualStudio2013/SimpleFFTExample_App.vcxproj.filters index 02d6faaeb1..9e5dc04878 100644 --- a/examples/SimpleFFTExample/Builds/VisualStudio2013/SimpleFFTExample_App.vcxproj.filters +++ b/examples/SimpleFFTExample/Builds/VisualStudio2013/SimpleFFTExample_App.vcxproj.filters @@ -2011,6 +2011,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2020,9 +2023,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3888,6 +3897,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/SimpleFFTExample/Builds/VisualStudio2017/SimpleFFTExample_App.vcxproj b/examples/SimpleFFTExample/Builds/VisualStudio2017/SimpleFFTExample_App.vcxproj index 9bfb25cd39..6e10c029d2 100644 --- a/examples/SimpleFFTExample/Builds/VisualStudio2017/SimpleFFTExample_App.vcxproj +++ b/examples/SimpleFFTExample/Builds/VisualStudio2017/SimpleFFTExample_App.vcxproj @@ -1702,6 +1702,9 @@ true + + true + true @@ -1711,9 +1714,15 @@ true + + true + true + + true + true @@ -2348,6 +2357,7 @@ + diff --git a/examples/SimpleFFTExample/Builds/VisualStudio2017/SimpleFFTExample_App.vcxproj.filters b/examples/SimpleFFTExample/Builds/VisualStudio2017/SimpleFFTExample_App.vcxproj.filters index 2672a1001f..26d807fea3 100644 --- a/examples/SimpleFFTExample/Builds/VisualStudio2017/SimpleFFTExample_App.vcxproj.filters +++ b/examples/SimpleFFTExample/Builds/VisualStudio2017/SimpleFFTExample_App.vcxproj.filters @@ -2011,6 +2011,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2020,9 +2023,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3888,6 +3897,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/audio plugin demo/Builds/Android/app/CMakeLists.txt b/examples/audio plugin demo/Builds/Android/app/CMakeLists.txt index f229b0856b..186859e942 100644 --- a/examples/audio plugin demo/Builds/Android/app/CMakeLists.txt +++ b/examples/audio plugin demo/Builds/Android/app/CMakeLists.txt @@ -8,7 +8,7 @@ SET(BINARY_NAME "juce_jni") add_library("cpufeatures" STATIC "${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c") set_source_files_properties("${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c" PROPERTIES COMPILE_FLAGS "-Wno-sign-conversion -Wno-gnu-statement-expression") -add_definitions("-DJUCE_ANDROID=1" "-DJUCE_ANDROID_API_VERSION=23" "-DJUCE_ANDROID_ACTIVITY_CLASSNAME=com_juce_jucedemoplugin_JuceDemoPlugin" "-DJUCE_ANDROID_ACTIVITY_CLASSPATH=\"com/juce/jucedemoplugin/JuceDemoPlugin\"" "-DJUCE_ANDROID_GL_ES_VERSION_3_0=1" "-DJUCER_ANDROIDSTUDIO_7F0E4A25=1" "-DJUCE_APP_VERSION=1.0.0" "-DJUCE_APP_VERSION_HEX=0x10000") +add_definitions("-DJUCE_ANDROID=1" "-DJUCE_ANDROID_API_VERSION=23" "-DJUCE_ANDROID_ACTIVITY_CLASSNAME=com_juce_jucedemoplugin_JuceDemoPlugin" "-DJUCE_ANDROID_ACTIVITY_CLASSPATH=\"com/juce/jucedemoplugin/JuceDemoPlugin\"" "-DJUCE_PUSH_NOTIFICATIONS=1" "-DJUCE_ANDROID_GL_ES_VERSION_3_0=1" "-DJUCER_ANDROIDSTUDIO_7F0E4A25=1" "-DJUCE_APP_VERSION=1.0.0" "-DJUCE_APP_VERSION_HEX=0x10000") include_directories( AFTER "../../../JuceLibraryCode" @@ -16,6 +16,8 @@ include_directories( AFTER "${ANDROID_NDK}/sources/android/cpufeatures" ) +enable_language(ASM) + IF(JUCE_BUILD_CONFIGFURATION MATCHES "DEBUG") add_definitions("-DDEBUG=1" "-D_DEBUG=1") ELSEIF(JUCE_BUILD_CONFIGFURATION MATCHES "RELEASE") @@ -1233,6 +1235,8 @@ add_library( ${BINARY_NAME} "../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h" "../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp" "../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h" + "../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.cpp" + "../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.h" "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp" "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h" "../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp" @@ -1240,7 +1244,9 @@ add_library( ${BINARY_NAME} "../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp" "../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h" "../../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h" + "../../../../../modules/juce_gui_extra/native/juce_android_PushNotifications.cpp" "../../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp" + "../../../../../modules/juce_gui_extra/native/juce_ios_PushNotifications.cpp" "../../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm" "../../../../../modules/juce_gui_extra/native/juce_linux_X11_SystemTrayIcon.cpp" "../../../../../modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp" @@ -2476,6 +2482,8 @@ set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_Liv set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) @@ -2483,7 +2491,9 @@ set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_Spl set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_android_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_ios_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_linux_X11_SystemTrayIcon.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) diff --git a/examples/audio plugin demo/Builds/Android/app/build.gradle b/examples/audio plugin demo/Builds/Android/app/build.gradle index 98398dc5eb..7badc9b6de 100644 --- a/examples/audio plugin demo/Builds/Android/app/build.gradle +++ b/examples/audio plugin demo/Builds/Android/app/build.gradle @@ -84,5 +84,6 @@ repositories { dependencies { } + } diff --git a/examples/audio plugin demo/Builds/Android/app/src/main/AndroidManifest.xml b/examples/audio plugin demo/Builds/Android/app/src/main/AndroidManifest.xml index 67d09952a1..ce3b014024 100644 --- a/examples/audio plugin demo/Builds/Android/app/src/main/AndroidManifest.xml +++ b/examples/audio plugin demo/Builds/Android/app/src/main/AndroidManifest.xml @@ -12,7 +12,7 @@ + android:screenOrientation="landscape" android:launchMode="singleTask"> diff --git a/examples/audio plugin demo/Builds/Android/app/src/main/java/com/juce/jucedemoplugin/JuceDemoPlugin.java b/examples/audio plugin demo/Builds/Android/app/src/main/java/com/juce/jucedemoplugin/JuceDemoPlugin.java index cb34dbb436..9b079d8fa4 100644 --- a/examples/audio plugin demo/Builds/Android/app/src/main/java/com/juce/jucedemoplugin/JuceDemoPlugin.java +++ b/examples/audio plugin demo/Builds/Android/app/src/main/java/com/juce/jucedemoplugin/JuceDemoPlugin.java @@ -1241,6 +1241,7 @@ public class JuceDemoPlugin extends Activity getApplicationInfo().dataDir); } + //============================================================================== private void hideActionBar() { // get "getActionBar" method @@ -1312,6 +1313,7 @@ public class JuceDemoPlugin extends Activity private native void resumeApp(); private native void setScreenSize (int screenWidth, int screenHeight, int dpi); private native void appActivityResult (int requestCode, int resultCode, Intent data); + private native void appNewIntent (Intent intent); //============================================================================== private ViewHolder viewHolder; @@ -2379,6 +2381,15 @@ public class JuceDemoPlugin extends Activity appActivityResult (requestCode, resultCode, data); } + @Override + protected void onNewIntent (Intent intent) + { + super.onNewIntent(intent); + setIntent(intent); + + appNewIntent (intent); + } + //============================================================================== public final Typeface getTypeFaceFromAsset (String assetName) { diff --git a/examples/audio plugin demo/Builds/LinuxMakefile/Makefile b/examples/audio plugin demo/Builds/LinuxMakefile/Makefile index 1e9afd2f31..9776d726de 100644 --- a/examples/audio plugin demo/Builds/LinuxMakefile/Makefile +++ b/examples/audio plugin demo/Builds/LinuxMakefile/Makefile @@ -47,8 +47,8 @@ ifeq ($(CONFIG),Debug) JUCE_TARGET_SHARED_CODE := JuceDemoPlugin.a JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -fPIC -g -ggdb -O0 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif @@ -77,8 +77,8 @@ ifeq ($(CONFIG),Release) JUCE_TARGET_SHARED_CODE := JuceDemoPlugin.a JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -fPIC -O3 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -fvisibility=hidden -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif diff --git a/examples/audio plugin demo/Builds/MacOSX/Info-AU.plist b/examples/audio plugin demo/Builds/MacOSX/Info-AU.plist index 069adb20b7..36ec61f707 100644 --- a/examples/audio plugin demo/Builds/MacOSX/Info-AU.plist +++ b/examples/audio plugin demo/Builds/MacOSX/Info-AU.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.juce.JuceDemoPlugin CFBundleName JuceDemoPlugin CFBundleDisplayName diff --git a/examples/audio plugin demo/Builds/MacOSX/Info-AUv3_AppExtension.plist b/examples/audio plugin demo/Builds/MacOSX/Info-AUv3_AppExtension.plist index 8b96a898bf..a4f68a44ea 100644 --- a/examples/audio plugin demo/Builds/MacOSX/Info-AUv3_AppExtension.plist +++ b/examples/audio plugin demo/Builds/MacOSX/Info-AUv3_AppExtension.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.juce.JuceDemoPlugin.JuceDemoPluginAUv3 CFBundleName JuceDemoPlugin CFBundleDisplayName diff --git a/examples/audio plugin demo/Builds/MacOSX/Info-Standalone_Plugin.plist b/examples/audio plugin demo/Builds/MacOSX/Info-Standalone_Plugin.plist index 8c470f84e7..110c49d308 100644 --- a/examples/audio plugin demo/Builds/MacOSX/Info-Standalone_Plugin.plist +++ b/examples/audio plugin demo/Builds/MacOSX/Info-Standalone_Plugin.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.juce.JuceDemoPlugin CFBundleName JuceDemoPlugin CFBundleDisplayName diff --git a/examples/audio plugin demo/Builds/MacOSX/Info-VST.plist b/examples/audio plugin demo/Builds/MacOSX/Info-VST.plist index 75f47c6eed..632c512168 100644 --- a/examples/audio plugin demo/Builds/MacOSX/Info-VST.plist +++ b/examples/audio plugin demo/Builds/MacOSX/Info-VST.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.juce.JuceDemoPlugin CFBundleName JuceDemoPlugin CFBundleDisplayName diff --git a/examples/audio plugin demo/Builds/VisualStudio2015/JuceDemoPlugin_SharedCode.vcxproj b/examples/audio plugin demo/Builds/VisualStudio2015/JuceDemoPlugin_SharedCode.vcxproj index b5646f3da1..31b03f3cd7 100644 --- a/examples/audio plugin demo/Builds/VisualStudio2015/JuceDemoPlugin_SharedCode.vcxproj +++ b/examples/audio plugin demo/Builds/VisualStudio2015/JuceDemoPlugin_SharedCode.vcxproj @@ -1721,6 +1721,9 @@ true + + true + true @@ -1730,9 +1733,15 @@ true + + true + true + + true + true @@ -2386,6 +2395,7 @@ + diff --git a/examples/audio plugin demo/Builds/VisualStudio2015/JuceDemoPlugin_SharedCode.vcxproj.filters b/examples/audio plugin demo/Builds/VisualStudio2015/JuceDemoPlugin_SharedCode.vcxproj.filters index 6d2fd8c084..f15f916c40 100644 --- a/examples/audio plugin demo/Builds/VisualStudio2015/JuceDemoPlugin_SharedCode.vcxproj.filters +++ b/examples/audio plugin demo/Builds/VisualStudio2015/JuceDemoPlugin_SharedCode.vcxproj.filters @@ -2029,6 +2029,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2038,9 +2041,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3963,6 +3972,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/audio plugin demo/Builds/VisualStudio2017/JuceDemoPlugin_SharedCode.vcxproj b/examples/audio plugin demo/Builds/VisualStudio2017/JuceDemoPlugin_SharedCode.vcxproj index 743ad773b8..8ef609f66a 100644 --- a/examples/audio plugin demo/Builds/VisualStudio2017/JuceDemoPlugin_SharedCode.vcxproj +++ b/examples/audio plugin demo/Builds/VisualStudio2017/JuceDemoPlugin_SharedCode.vcxproj @@ -1721,6 +1721,9 @@ true + + true + true @@ -1730,9 +1733,15 @@ true + + true + true + + true + true @@ -2386,6 +2395,7 @@ + diff --git a/examples/audio plugin demo/Builds/VisualStudio2017/JuceDemoPlugin_SharedCode.vcxproj.filters b/examples/audio plugin demo/Builds/VisualStudio2017/JuceDemoPlugin_SharedCode.vcxproj.filters index a526bf6202..7914bb8d59 100644 --- a/examples/audio plugin demo/Builds/VisualStudio2017/JuceDemoPlugin_SharedCode.vcxproj.filters +++ b/examples/audio plugin demo/Builds/VisualStudio2017/JuceDemoPlugin_SharedCode.vcxproj.filters @@ -2029,6 +2029,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2038,9 +2041,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3963,6 +3972,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/audio plugin demo/Builds/iOS/Info-AUv3_AppExtension.plist b/examples/audio plugin demo/Builds/iOS/Info-AUv3_AppExtension.plist index e953c8ba86..77cc04d070 100644 --- a/examples/audio plugin demo/Builds/iOS/Info-AUv3_AppExtension.plist +++ b/examples/audio plugin demo/Builds/iOS/Info-AUv3_AppExtension.plist @@ -10,7 +10,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.juce.JuceDemoPlugin.JuceDemoPluginAUv3 CFBundleName JuceDemoPlugin CFBundleDisplayName diff --git a/examples/audio plugin demo/Builds/iOS/Info-Standalone_Plugin.plist b/examples/audio plugin demo/Builds/iOS/Info-Standalone_Plugin.plist index 114168eac4..ecd4984aa0 100644 --- a/examples/audio plugin demo/Builds/iOS/Info-Standalone_Plugin.plist +++ b/examples/audio plugin demo/Builds/iOS/Info-Standalone_Plugin.plist @@ -12,7 +12,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.juce.JuceDemoPlugin CFBundleName JuceDemoPlugin CFBundleDisplayName diff --git a/examples/audio plugin host/Builds/LinuxMakefile/Makefile b/examples/audio plugin host/Builds/LinuxMakefile/Makefile index 0f5c65487b..5cbf59a412 100644 --- a/examples/audio plugin host/Builds/LinuxMakefile/Makefile +++ b/examples/audio plugin host/Builds/LinuxMakefile/Makefile @@ -38,8 +38,8 @@ ifeq ($(CONFIG),Debug) JUCE_TARGET_APP := Plugin\ Host JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif @@ -59,8 +59,8 @@ ifeq ($(CONFIG),Release) JUCE_TARGET_APP := Plugin\ Host JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -Os $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -fvisibility=hidden -lGL -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif diff --git a/examples/audio plugin host/Builds/MacOSX/Info-App.plist b/examples/audio plugin host/Builds/MacOSX/Info-App.plist index a8de372c52..da88c4fdde 100644 --- a/examples/audio plugin host/Builds/MacOSX/Info-App.plist +++ b/examples/audio plugin host/Builds/MacOSX/Info-App.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.roli.pluginhost CFBundleName Plugin Host CFBundleDisplayName diff --git a/examples/audio plugin host/Builds/VisualStudio2013/Plugin Host_App.vcxproj b/examples/audio plugin host/Builds/VisualStudio2013/Plugin Host_App.vcxproj index 41aa201382..2e69a4d238 100644 --- a/examples/audio plugin host/Builds/VisualStudio2013/Plugin Host_App.vcxproj +++ b/examples/audio plugin host/Builds/VisualStudio2013/Plugin Host_App.vcxproj @@ -1674,6 +1674,9 @@ true + + true + true @@ -1683,9 +1686,15 @@ true + + true + true + + true + true @@ -2343,6 +2352,7 @@ + diff --git a/examples/audio plugin host/Builds/VisualStudio2013/Plugin Host_App.vcxproj.filters b/examples/audio plugin host/Builds/VisualStudio2013/Plugin Host_App.vcxproj.filters index 9f5e8af21c..546b36edd3 100644 --- a/examples/audio plugin host/Builds/VisualStudio2013/Plugin Host_App.vcxproj.filters +++ b/examples/audio plugin host/Builds/VisualStudio2013/Plugin Host_App.vcxproj.filters @@ -2005,6 +2005,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2014,9 +2017,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3879,6 +3888,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/audio plugin host/Builds/VisualStudio2015/Plugin Host_App.vcxproj b/examples/audio plugin host/Builds/VisualStudio2015/Plugin Host_App.vcxproj index 1ff736981b..73b1c6855e 100644 --- a/examples/audio plugin host/Builds/VisualStudio2015/Plugin Host_App.vcxproj +++ b/examples/audio plugin host/Builds/VisualStudio2015/Plugin Host_App.vcxproj @@ -1674,6 +1674,9 @@ true + + true + true @@ -1683,9 +1686,15 @@ true + + true + true + + true + true @@ -2343,6 +2352,7 @@ + diff --git a/examples/audio plugin host/Builds/VisualStudio2015/Plugin Host_App.vcxproj.filters b/examples/audio plugin host/Builds/VisualStudio2015/Plugin Host_App.vcxproj.filters index 4afab3d8a9..4c998d421f 100644 --- a/examples/audio plugin host/Builds/VisualStudio2015/Plugin Host_App.vcxproj.filters +++ b/examples/audio plugin host/Builds/VisualStudio2015/Plugin Host_App.vcxproj.filters @@ -2005,6 +2005,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2014,9 +2017,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3879,6 +3888,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/examples/audio plugin host/Builds/VisualStudio2017/Plugin Host_App.vcxproj b/examples/audio plugin host/Builds/VisualStudio2017/Plugin Host_App.vcxproj index 5a9fed5038..284bbdacb9 100644 --- a/examples/audio plugin host/Builds/VisualStudio2017/Plugin Host_App.vcxproj +++ b/examples/audio plugin host/Builds/VisualStudio2017/Plugin Host_App.vcxproj @@ -1674,6 +1674,9 @@ true + + true + true @@ -1683,9 +1686,15 @@ true + + true + true + + true + true @@ -2343,6 +2352,7 @@ + diff --git a/examples/audio plugin host/Builds/VisualStudio2017/Plugin Host_App.vcxproj.filters b/examples/audio plugin host/Builds/VisualStudio2017/Plugin Host_App.vcxproj.filters index c9c58032d9..2457c535ab 100644 --- a/examples/audio plugin host/Builds/VisualStudio2017/Plugin Host_App.vcxproj.filters +++ b/examples/audio plugin host/Builds/VisualStudio2017/Plugin Host_App.vcxproj.filters @@ -2005,6 +2005,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2014,9 +2017,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3879,6 +3888,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt b/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt index 1f8664da4c..e8e2dbc527 100644 --- a/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt +++ b/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt @@ -8,7 +8,7 @@ SET(BINARY_NAME "juce_jni") add_library("cpufeatures" STATIC "${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c") set_source_files_properties("${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c" PROPERTIES COMPILE_FLAGS "-Wno-sign-conversion -Wno-gnu-statement-expression") -add_definitions("-DJUCE_ANDROID=1" "-DJUCE_ANDROID_API_VERSION=23" "-DJUCE_ANDROID_ACTIVITY_CLASSNAME=com_juce_audioperformancetest_AudioPerformanceTest" "-DJUCE_ANDROID_ACTIVITY_CLASSPATH=\"com/juce/audioperformancetest/AudioPerformanceTest\"" "-DJUCE_ANDROID_GL_ES_VERSION_3_0=1" "-DJUCER_ANDROIDSTUDIO_7F0E4A25=1" "-DJUCE_APP_VERSION=1.0.0" "-DJUCE_APP_VERSION_HEX=0x10000") +add_definitions("-DJUCE_ANDROID=1" "-DJUCE_ANDROID_API_VERSION=23" "-DJUCE_ANDROID_ACTIVITY_CLASSNAME=com_juce_audioperformancetest_AudioPerformanceTest" "-DJUCE_ANDROID_ACTIVITY_CLASSPATH=\"com/juce/audioperformancetest/AudioPerformanceTest\"" "-DJUCE_PUSH_NOTIFICATIONS=1" "-DJUCE_ANDROID_GL_ES_VERSION_3_0=1" "-DJUCER_ANDROIDSTUDIO_7F0E4A25=1" "-DJUCE_APP_VERSION=1.0.0" "-DJUCE_APP_VERSION_HEX=0x10000") include_directories( AFTER "../../../JuceLibraryCode" @@ -16,6 +16,8 @@ include_directories( AFTER "${ANDROID_NDK}/sources/android/cpufeatures" ) +enable_language(ASM) + IF(JUCE_BUILD_CONFIGFURATION MATCHES "DEBUG") add_definitions("-DDEBUG=1" "-D_DEBUG=1") ELSEIF(JUCE_BUILD_CONFIGFURATION MATCHES "RELEASE") @@ -1132,6 +1134,8 @@ add_library( ${BINARY_NAME} "../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h" "../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp" "../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h" + "../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.cpp" + "../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.h" "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp" "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h" "../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp" @@ -1139,7 +1143,9 @@ add_library( ${BINARY_NAME} "../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp" "../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h" "../../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h" + "../../../../../modules/juce_gui_extra/native/juce_android_PushNotifications.cpp" "../../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp" + "../../../../../modules/juce_gui_extra/native/juce_ios_PushNotifications.cpp" "../../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm" "../../../../../modules/juce_gui_extra/native/juce_linux_X11_SystemTrayIcon.cpp" "../../../../../modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp" @@ -2273,6 +2279,8 @@ set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_Liv set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_PushNotifications.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) @@ -2280,7 +2288,9 @@ set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_Spl set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_android_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) +set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_ios_PushNotifications.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_linux_X11_SystemTrayIcon.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("../../../../../modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp" PROPERTIES HEADER_FILE_ONLY TRUE) diff --git a/extras/AudioPerformanceTest/Builds/Android/app/build.gradle b/extras/AudioPerformanceTest/Builds/Android/app/build.gradle index c56663a2a2..895d6d4a24 100644 --- a/extras/AudioPerformanceTest/Builds/Android/app/build.gradle +++ b/extras/AudioPerformanceTest/Builds/Android/app/build.gradle @@ -87,5 +87,6 @@ repositories { dependencies { } + } diff --git a/extras/AudioPerformanceTest/Builds/Android/app/src/main/AndroidManifest.xml b/extras/AudioPerformanceTest/Builds/Android/app/src/main/AndroidManifest.xml index 50272962d4..c409de9844 100644 --- a/extras/AudioPerformanceTest/Builds/Android/app/src/main/AndroidManifest.xml +++ b/extras/AudioPerformanceTest/Builds/Android/app/src/main/AndroidManifest.xml @@ -12,7 +12,7 @@ + android:screenOrientation="unspecified" android:launchMode="singleTask"> diff --git a/extras/AudioPerformanceTest/Builds/Android/app/src/main/java/com/juce/audioperformancetest/AudioPerformanceTest.java b/extras/AudioPerformanceTest/Builds/Android/app/src/main/java/com/juce/audioperformancetest/AudioPerformanceTest.java index 5acd24fd57..3858b4f3a5 100644 --- a/extras/AudioPerformanceTest/Builds/Android/app/src/main/java/com/juce/audioperformancetest/AudioPerformanceTest.java +++ b/extras/AudioPerformanceTest/Builds/Android/app/src/main/java/com/juce/audioperformancetest/AudioPerformanceTest.java @@ -1241,6 +1241,7 @@ public class AudioPerformanceTest extends Activity getApplicationInfo().dataDir); } + //============================================================================== private void hideActionBar() { // get "getActionBar" method @@ -1312,6 +1313,7 @@ public class AudioPerformanceTest extends Activity private native void resumeApp(); private native void setScreenSize (int screenWidth, int screenHeight, int dpi); private native void appActivityResult (int requestCode, int resultCode, Intent data); + private native void appNewIntent (Intent intent); //============================================================================== private ViewHolder viewHolder; @@ -2379,6 +2381,15 @@ public class AudioPerformanceTest extends Activity appActivityResult (requestCode, resultCode, data); } + @Override + protected void onNewIntent (Intent intent) + { + super.onNewIntent(intent); + setIntent(intent); + + appNewIntent (intent); + } + //============================================================================== public final Typeface getTypeFaceFromAsset (String assetName) { diff --git a/extras/AudioPerformanceTest/Builds/LinuxMakefile/Makefile b/extras/AudioPerformanceTest/Builds/LinuxMakefile/Makefile index 9d49210638..ef55590fe8 100644 --- a/extras/AudioPerformanceTest/Builds/LinuxMakefile/Makefile +++ b/extras/AudioPerformanceTest/Builds/LinuxMakefile/Makefile @@ -38,8 +38,8 @@ ifeq ($(CONFIG),Debug) JUCE_TARGET_APP := AudioPerformanceTest JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif @@ -59,8 +59,8 @@ ifeq ($(CONFIG),Release) JUCE_TARGET_APP := AudioPerformanceTest JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -fvisibility=hidden -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif diff --git a/extras/AudioPerformanceTest/Builds/MacOSX/Info-App.plist b/extras/AudioPerformanceTest/Builds/MacOSX/Info-App.plist index 118f8765f0..53522f9b47 100644 --- a/extras/AudioPerformanceTest/Builds/MacOSX/Info-App.plist +++ b/extras/AudioPerformanceTest/Builds/MacOSX/Info-App.plist @@ -8,7 +8,7 @@ CFBundleIconFile CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.juce.AudioPerformanceTest CFBundleName AudioPerformanceTest CFBundleDisplayName diff --git a/extras/AudioPerformanceTest/Builds/VisualStudio2015/AudioPerformanceTest_App.vcxproj b/extras/AudioPerformanceTest/Builds/VisualStudio2015/AudioPerformanceTest_App.vcxproj index 8a914d003a..e06dcf6855 100644 --- a/extras/AudioPerformanceTest/Builds/VisualStudio2015/AudioPerformanceTest_App.vcxproj +++ b/extras/AudioPerformanceTest/Builds/VisualStudio2015/AudioPerformanceTest_App.vcxproj @@ -1648,6 +1648,9 @@ true + + true + true @@ -1657,9 +1660,15 @@ true + + true + true + + true + true @@ -2264,6 +2273,7 @@ + diff --git a/extras/AudioPerformanceTest/Builds/VisualStudio2015/AudioPerformanceTest_App.vcxproj.filters b/extras/AudioPerformanceTest/Builds/VisualStudio2015/AudioPerformanceTest_App.vcxproj.filters index d7ee077d12..7d5f092477 100644 --- a/extras/AudioPerformanceTest/Builds/VisualStudio2015/AudioPerformanceTest_App.vcxproj.filters +++ b/extras/AudioPerformanceTest/Builds/VisualStudio2015/AudioPerformanceTest_App.vcxproj.filters @@ -1933,6 +1933,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1942,9 +1945,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3720,6 +3729,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/extras/AudioPerformanceTest/Builds/iOS/Info-App.plist b/extras/AudioPerformanceTest/Builds/iOS/Info-App.plist index 650de1af62..2df957acfc 100644 --- a/extras/AudioPerformanceTest/Builds/iOS/Info-App.plist +++ b/extras/AudioPerformanceTest/Builds/iOS/Info-App.plist @@ -10,7 +10,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) + com.juce.AudioPerformanceTest CFBundleName AudioPerformanceTest CFBundleDisplayName diff --git a/extras/Projucer/Builds/LinuxMakefile/Makefile b/extras/Projucer/Builds/LinuxMakefile/Makefile index e0cd20409e..c9dd311a89 100644 --- a/extras/Projucer/Builds/LinuxMakefile/Makefile +++ b/extras/Projucer/Builds/LinuxMakefile/Makefile @@ -38,8 +38,8 @@ ifeq ($(CONFIG),Debug) JUCE_TARGET_APP := Projucer JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif @@ -59,8 +59,8 @@ ifeq ($(CONFIG),Release) JUCE_TARGET_APP := Projucer JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -fvisibility=hidden -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif diff --git a/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj index ce5c362a44..a3f8d651ce 100644 --- a/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj +++ b/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj @@ -1341,6 +1341,9 @@ true + + true + true @@ -1350,9 +1353,15 @@ true + + true + true + + true + true @@ -1942,6 +1951,7 @@ + diff --git a/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj.filters index c58467490a..7eba7f7ce1 100644 --- a/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj.filters +++ b/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj.filters @@ -1651,6 +1651,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1660,9 +1663,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3393,6 +3402,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj index d3b626758f..c89241adc0 100644 --- a/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj +++ b/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj @@ -1341,6 +1341,9 @@ true + + true + true @@ -1350,9 +1353,15 @@ true + + true + true + + true + true @@ -1942,6 +1951,7 @@ + diff --git a/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj.filters index d51f8e9bde..51f4b0e453 100644 --- a/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj.filters +++ b/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj.filters @@ -1651,6 +1651,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1660,9 +1663,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3393,6 +3402,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj index ac75454e4a..59ea6f8bb1 100644 --- a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj +++ b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj @@ -1341,6 +1341,9 @@ true + + true + true @@ -1350,9 +1353,15 @@ true + + true + true + + true + true @@ -1942,6 +1951,7 @@ + diff --git a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters index 134f098b34..944aafc515 100644 --- a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters +++ b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters @@ -1651,6 +1651,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1660,9 +1663,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3393,6 +3402,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/extras/Projucer/Projucer.jucer b/extras/Projucer/Projucer.jucer index 0615e46011..bd6ced0f29 100644 --- a/extras/Projucer/Projucer.jucer +++ b/extras/Projucer/Projucer.jucer @@ -14,10 +14,10 @@ + headerPath="" libraryPath="" cppLibType="libc++" enablePluginBinaryCopyStep="1"/> + headerPath="" libraryPath="" cppLibType="libc++" enablePluginBinaryCopyStep="1"/> @@ -35,11 +35,11 @@ + debugInformationFormat="ProgramDatabase" enablePluginBinaryCopyStep="0"/> + linkTimeOptimisation="1" enablePluginBinaryCopyStep="0"/> @@ -56,11 +56,12 @@ + libraryPath="" useRuntimeLibDLL="1" debugInformationFormat="ProgramDatabase" + enablePluginBinaryCopyStep="0"/> + linkTimeOptimisation="1" enablePluginBinaryCopyStep="0"/> @@ -75,10 +76,11 @@ + isDebug="1" optimisation="1" targetName="Projucer" debugInformationFormat="ProgramDatabase" + enablePluginBinaryCopyStep="0"/> + linkTimeOptimisation="1" enablePluginBinaryCopyStep="0"/> diff --git a/extras/UnitTestRunner/Builds/LinuxMakefile/Makefile b/extras/UnitTestRunner/Builds/LinuxMakefile/Makefile index 2290d2ab0c..06292a554f 100644 --- a/extras/UnitTestRunner/Builds/LinuxMakefile/Makefile +++ b/extras/UnitTestRunner/Builds/LinuxMakefile/Makefile @@ -38,8 +38,8 @@ ifeq ($(CONFIG),Debug) JUCE_TARGET_CONSOLEAPP := UnitTestRunner JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -lGL -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -lGL -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif @@ -59,8 +59,8 @@ ifeq ($(CONFIG),Release) JUCE_TARGET_CONSOLEAPP := UnitTestRunner JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -lGL -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -fvisibility=hidden -lGL -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif diff --git a/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj b/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj index 4008f32cf0..778db5f7ca 100644 --- a/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj +++ b/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj @@ -83,6 +83,7 @@ Level4 true true + true stdcpp14 @@ -124,6 +125,7 @@ Level4 true true + true stdcpp14 @@ -1741,6 +1743,9 @@ true + + true + true @@ -1750,9 +1755,15 @@ true + + true + true + + true + true @@ -2509,6 +2520,7 @@ + diff --git a/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj.filters b/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj.filters index ff8c74f21f..90d512bebc 100644 --- a/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj.filters +++ b/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj.filters @@ -2125,6 +2125,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -2134,9 +2137,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -4203,6 +4212,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc diff --git a/extras/binarybuilder/Builds/LinuxMakefile/Makefile b/extras/binarybuilder/Builds/LinuxMakefile/Makefile index 1adac43f8f..d90cb85839 100644 --- a/extras/binarybuilder/Builds/LinuxMakefile/Makefile +++ b/extras/binarybuilder/Builds/LinuxMakefile/Makefile @@ -38,8 +38,8 @@ ifeq ($(CONFIG),Debug) JUCE_TARGET_CONSOLEAPP := BinaryBuilder JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs libcurl) -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs libcurl) -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif @@ -59,8 +59,8 @@ ifeq ($(CONFIG),Release) JUCE_TARGET_CONSOLEAPP := BinaryBuilder JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -Os $(CFLAGS) - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) - JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs libcurl) -ldl -lpthread -lrt $(LDFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs libcurl) -fvisibility=hidden -ldl -lpthread -lrt $(LDFLAGS) CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) endif diff --git a/extras/windows dll/Builds/VisualStudio2017/juce_dll_StaticLibrary.vcxproj b/extras/windows dll/Builds/VisualStudio2017/juce_dll_StaticLibrary.vcxproj index 30ee53b9c2..a24d4734e6 100644 --- a/extras/windows dll/Builds/VisualStudio2017/juce_dll_StaticLibrary.vcxproj +++ b/extras/windows dll/Builds/VisualStudio2017/juce_dll_StaticLibrary.vcxproj @@ -1668,6 +1668,9 @@ true + + true + true @@ -1677,9 +1680,15 @@ true + + true + true + + true + true @@ -2332,6 +2341,7 @@ + diff --git a/extras/windows dll/Builds/VisualStudio2017/juce_dll_StaticLibrary.vcxproj.filters b/extras/windows dll/Builds/VisualStudio2017/juce_dll_StaticLibrary.vcxproj.filters index a9ddbebb77..41f6e7225b 100644 --- a/extras/windows dll/Builds/VisualStudio2017/juce_dll_StaticLibrary.vcxproj.filters +++ b/extras/windows dll/Builds/VisualStudio2017/juce_dll_StaticLibrary.vcxproj.filters @@ -1984,6 +1984,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc @@ -1993,9 +1996,15 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native + + Juce Modules\juce_gui_extra\native + Juce Modules\juce_gui_extra\native @@ -3843,6 +3852,9 @@ Juce Modules\juce_gui_extra\misc + + Juce Modules\juce_gui_extra\misc + Juce Modules\juce_gui_extra\misc

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 Ma{o0V|J&~W5B*Co>i_@% literal 0 HcmV?d00001 diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/values/string.xml b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/values/string.xml new file mode 100644 index 0000000000..f560318461 --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/values/string.xml @@ -0,0 +1,5 @@ + + + + PushNotificationsDemo + diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/main/AndroidManifest.xml b/examples/PushNotificationsDemo/Builds/Android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..2b23484d59 --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/Android/app/src/main/AndroidManifest.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/main/java/com/android/vending/billing/IInAppBillingService.java b/examples/PushNotificationsDemo/Builds/Android/app/src/main/java/com/android/vending/billing/IInAppBillingService.java new file mode 100644 index 0000000000..0bb31cb5d3 --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/Android/app/src/main/java/com/android/vending/billing/IInAppBillingService.java @@ -0,0 +1,971 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2017 - ROLI Ltd. + + JUCE is an open source library subject to commercial or open-source + licensing. + + The code included in this file is provided under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license. Permission + To use, copy, modify, and/or distribute this software for any purpose with or + without fee is hereby granted provided that the above copyright notice and + this permission notice appear in all copies. + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +package com.android.vending.billing; +/** + * InAppBillingService is the service that provides in-app billing version 3 and beyond. + * This service provides the following features: + * 1. Provides a new API to get details of in-app items published for the app including + * price, type, title and description. + * 2. The purchase flow is synchronous and purchase information is available immediately + * after it completes. + * 3. Purchase information of in-app purchases is maintained within the Google Play system + * till the purchase is consumed. + * 4. An API to consume a purchase of an inapp item. All purchases of one-time + * in-app items are consumable and thereafter can be purchased again. + * 5. An API to get current purchases of the user immediately. This will not contain any + * consumed purchases. + * + * All calls will give a response code with the following possible values + * RESULT_OK = 0 - success + * RESULT_USER_CANCELED = 1 - User pressed back or canceled a dialog + * RESULT_SERVICE_UNAVAILABLE = 2 - The network connection is down + * RESULT_BILLING_UNAVAILABLE = 3 - This billing API version is not supported for the type requested + * RESULT_ITEM_UNAVAILABLE = 4 - Requested SKU is not available for purchase + * RESULT_DEVELOPER_ERROR = 5 - Invalid arguments provided to the API + * RESULT_ERROR = 6 - Fatal error during the API action + * RESULT_ITEM_ALREADY_OWNED = 7 - Failure to purchase since item is already owned + * RESULT_ITEM_NOT_OWNED = 8 - Failure to consume since item is not owned + */ +public interface IInAppBillingService extends android.os.IInterface + { + /** Local-side IPC implementation stub class. */ + public static abstract class Stub extends android.os.Binder implements com.android.vending.billing.IInAppBillingService + { + private static final java.lang.String DESCRIPTOR = "com.android.vending.billing.IInAppBillingService"; + /** Construct the stub at attach it to the interface. */ + public Stub() + { + this.attachInterface(this, DESCRIPTOR); + } + /** + * Cast an IBinder object into an com.android.vending.billing.IInAppBillingService interface, + * generating a proxy if needed. + */ + public static com.android.vending.billing.IInAppBillingService asInterface(android.os.IBinder obj) + { + if ((obj==null)) { + return null; + } + android.os.IInterface iin = obj.queryLocalInterface(DESCRIPTOR); + if (((iin!=null)&&(iin instanceof com.android.vending.billing.IInAppBillingService))) { + return ((com.android.vending.billing.IInAppBillingService)iin); + } + return new com.android.vending.billing.IInAppBillingService.Stub.Proxy(obj); + } + @Override public android.os.IBinder asBinder() + { + return this; + } + @Override public boolean onTransact(int code, android.os.Parcel data, android.os.Parcel reply, int flags) throws android.os.RemoteException + { + switch (code) + { + case INTERFACE_TRANSACTION: + { + reply.writeString(DESCRIPTOR); + return true; + } + case TRANSACTION_isBillingSupported: + { + data.enforceInterface(DESCRIPTOR); + int _arg0; + _arg0 = data.readInt(); + java.lang.String _arg1; + _arg1 = data.readString(); + java.lang.String _arg2; + _arg2 = data.readString(); + int _result = this.isBillingSupported(_arg0, _arg1, _arg2); + reply.writeNoException(); + reply.writeInt(_result); + return true; + } + case TRANSACTION_getSkuDetails: + { + data.enforceInterface(DESCRIPTOR); + int _arg0; + _arg0 = data.readInt(); + java.lang.String _arg1; + _arg1 = data.readString(); + java.lang.String _arg2; + _arg2 = data.readString(); + android.os.Bundle _arg3; + if ((0!=data.readInt())) { + _arg3 = android.os.Bundle.CREATOR.createFromParcel(data); + } + else { + _arg3 = null; + } + android.os.Bundle _result = this.getSkuDetails(_arg0, _arg1, _arg2, _arg3); + reply.writeNoException(); + if ((_result!=null)) { + reply.writeInt(1); + _result.writeToParcel(reply, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); + } + else { + reply.writeInt(0); + } + return true; + } + case TRANSACTION_getBuyIntent: + { + data.enforceInterface(DESCRIPTOR); + int _arg0; + _arg0 = data.readInt(); + java.lang.String _arg1; + _arg1 = data.readString(); + java.lang.String _arg2; + _arg2 = data.readString(); + java.lang.String _arg3; + _arg3 = data.readString(); + java.lang.String _arg4; + _arg4 = data.readString(); + android.os.Bundle _result = this.getBuyIntent(_arg0, _arg1, _arg2, _arg3, _arg4); + reply.writeNoException(); + if ((_result!=null)) { + reply.writeInt(1); + _result.writeToParcel(reply, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); + } + else { + reply.writeInt(0); + } + return true; + } + case TRANSACTION_getPurchases: + { + data.enforceInterface(DESCRIPTOR); + int _arg0; + _arg0 = data.readInt(); + java.lang.String _arg1; + _arg1 = data.readString(); + java.lang.String _arg2; + _arg2 = data.readString(); + java.lang.String _arg3; + _arg3 = data.readString(); + android.os.Bundle _result = this.getPurchases(_arg0, _arg1, _arg2, _arg3); + reply.writeNoException(); + if ((_result!=null)) { + reply.writeInt(1); + _result.writeToParcel(reply, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); + } + else { + reply.writeInt(0); + } + return true; + } + case TRANSACTION_consumePurchase: + { + data.enforceInterface(DESCRIPTOR); + int _arg0; + _arg0 = data.readInt(); + java.lang.String _arg1; + _arg1 = data.readString(); + java.lang.String _arg2; + _arg2 = data.readString(); + int _result = this.consumePurchase(_arg0, _arg1, _arg2); + reply.writeNoException(); + reply.writeInt(_result); + return true; + } + case TRANSACTION_stub: + { + data.enforceInterface(DESCRIPTOR); + int _arg0; + _arg0 = data.readInt(); + java.lang.String _arg1; + _arg1 = data.readString(); + java.lang.String _arg2; + _arg2 = data.readString(); + int _result = this.stub(_arg0, _arg1, _arg2); + reply.writeNoException(); + reply.writeInt(_result); + return true; + } + case TRANSACTION_getBuyIntentToReplaceSkus: + { + data.enforceInterface(DESCRIPTOR); + int _arg0; + _arg0 = data.readInt(); + java.lang.String _arg1; + _arg1 = data.readString(); + java.util.List _arg2; + _arg2 = data.createStringArrayList(); + java.lang.String _arg3; + _arg3 = data.readString(); + java.lang.String _arg4; + _arg4 = data.readString(); + java.lang.String _arg5; + _arg5 = data.readString(); + android.os.Bundle _result = this.getBuyIntentToReplaceSkus(_arg0, _arg1, _arg2, _arg3, _arg4, _arg5); + reply.writeNoException(); + if ((_result!=null)) { + reply.writeInt(1); + _result.writeToParcel(reply, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); + } + else { + reply.writeInt(0); + } + return true; + } + case TRANSACTION_getBuyIntentExtraParams: + { + data.enforceInterface(DESCRIPTOR); + int _arg0; + _arg0 = data.readInt(); + java.lang.String _arg1; + _arg1 = data.readString(); + java.lang.String _arg2; + _arg2 = data.readString(); + java.lang.String _arg3; + _arg3 = data.readString(); + java.lang.String _arg4; + _arg4 = data.readString(); + android.os.Bundle _arg5; + if ((0!=data.readInt())) { + _arg5 = android.os.Bundle.CREATOR.createFromParcel(data); + } + else { + _arg5 = null; + } + android.os.Bundle _result = this.getBuyIntentExtraParams(_arg0, _arg1, _arg2, _arg3, _arg4, _arg5); + reply.writeNoException(); + if ((_result!=null)) { + reply.writeInt(1); + _result.writeToParcel(reply, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); + } + else { + reply.writeInt(0); + } + return true; + } + case TRANSACTION_getPurchaseHistory: + { + data.enforceInterface(DESCRIPTOR); + int _arg0; + _arg0 = data.readInt(); + java.lang.String _arg1; + _arg1 = data.readString(); + java.lang.String _arg2; + _arg2 = data.readString(); + java.lang.String _arg3; + _arg3 = data.readString(); + android.os.Bundle _arg4; + if ((0!=data.readInt())) { + _arg4 = android.os.Bundle.CREATOR.createFromParcel(data); + } + else { + _arg4 = null; + } + android.os.Bundle _result = this.getPurchaseHistory(_arg0, _arg1, _arg2, _arg3, _arg4); + reply.writeNoException(); + if ((_result!=null)) { + reply.writeInt(1); + _result.writeToParcel(reply, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); + } + else { + reply.writeInt(0); + } + return true; + } + case TRANSACTION_isBillingSupportedExtraParams: + { + data.enforceInterface(DESCRIPTOR); + int _arg0; + _arg0 = data.readInt(); + java.lang.String _arg1; + _arg1 = data.readString(); + java.lang.String _arg2; + _arg2 = data.readString(); + android.os.Bundle _arg3; + if ((0!=data.readInt())) { + _arg3 = android.os.Bundle.CREATOR.createFromParcel(data); + } + else { + _arg3 = null; + } + int _result = this.isBillingSupportedExtraParams(_arg0, _arg1, _arg2, _arg3); + reply.writeNoException(); + reply.writeInt(_result); + return true; + } + } + return super.onTransact(code, data, reply, flags); + } + private static class Proxy implements com.android.vending.billing.IInAppBillingService + { + private android.os.IBinder mRemote; + Proxy(android.os.IBinder remote) + { + mRemote = remote; + } + @Override public android.os.IBinder asBinder() + { + return mRemote; + } + public java.lang.String getInterfaceDescriptor() + { + return DESCRIPTOR; + } + @Override public int isBillingSupported(int apiVersion, java.lang.String packageName, java.lang.String type) throws android.os.RemoteException + { + android.os.Parcel _data = android.os.Parcel.obtain(); + android.os.Parcel _reply = android.os.Parcel.obtain(); + int _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeInt(apiVersion); + _data.writeString(packageName); + _data.writeString(type); + mRemote.transact(Stub.TRANSACTION_isBillingSupported, _data, _reply, 0); + _reply.readException(); + _result = _reply.readInt(); + } + finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + /** + * Provides details of a list of SKUs + * Given a list of SKUs of a valid type in the skusBundle, this returns a bundle + * with a list JSON strings containing the productId, price, title and description. + * This API can be called with a maximum of 20 SKUs. + * @param apiVersion billing API version that the app is using + * @param packageName the package name of the calling app + * @param type of the in-app items ("inapp" for one-time purchases + * and "subs" for subscriptions) + * @param skusBundle bundle containing a StringArrayList of SKUs with key "ITEM_ID_LIST" + * @return Bundle containing the following key-value pairs + * "RESPONSE_CODE" with int value, RESULT_OK(0) if success, appropriate response codes + * on failures. + * "DETAILS_LIST" with a StringArrayList containing purchase information + * in JSON format similar to: + * '{ "productId" : "exampleSku", + * "type" : "inapp", + * "price" : "$5.00", + * "price_currency": "USD", + * "price_amount_micros": 5000000, + * "title : "Example Title", + * "description" : "This is an example description" }' + */ + @Override public android.os.Bundle getSkuDetails(int apiVersion, java.lang.String packageName, java.lang.String type, android.os.Bundle skusBundle) throws android.os.RemoteException + { + android.os.Parcel _data = android.os.Parcel.obtain(); + android.os.Parcel _reply = android.os.Parcel.obtain(); + android.os.Bundle _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeInt(apiVersion); + _data.writeString(packageName); + _data.writeString(type); + if ((skusBundle!=null)) { + _data.writeInt(1); + skusBundle.writeToParcel(_data, 0); + } + else { + _data.writeInt(0); + } + mRemote.transact(Stub.TRANSACTION_getSkuDetails, _data, _reply, 0); + _reply.readException(); + if ((0!=_reply.readInt())) { + _result = android.os.Bundle.CREATOR.createFromParcel(_reply); + } + else { + _result = null; + } + } + finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + /** + * Returns a pending intent to launch the purchase flow for an in-app item by providing a SKU, + * the type, a unique purchase token and an optional developer payload. + * @param apiVersion billing API version that the app is using + * @param packageName package name of the calling app + * @param sku the SKU of the in-app item as published in the developer console + * @param type of the in-app item being purchased ("inapp" for one-time purchases + * and "subs" for subscriptions) + * @param developerPayload optional argument to be sent back with the purchase information + * @return Bundle containing the following key-value pairs + * "RESPONSE_CODE" with int value, RESULT_OK(0) if success, appropriate response codes + * on failures. + * "BUY_INTENT" - PendingIntent to start the purchase flow + * + * The Pending intent should be launched with startIntentSenderForResult. When purchase flow + * has completed, the onActivityResult() will give a resultCode of OK or CANCELED. + * If the purchase is successful, the result data will contain the following key-value pairs + * "RESPONSE_CODE" with int value, RESULT_OK(0) if success, appropriate response + * codes on failures. + * "INAPP_PURCHASE_DATA" - String in JSON format similar to + * '{"orderId":"12999763169054705758.1371079406387615", + * "packageName":"com.example.app", + * "productId":"exampleSku", + * "purchaseTime":1345678900000, + * "purchaseToken" : "122333444455555", + * "developerPayload":"example developer payload" }' + * "INAPP_DATA_SIGNATURE" - String containing the signature of the purchase data that + * was signed with the private key of the developer + */ + @Override public android.os.Bundle getBuyIntent(int apiVersion, java.lang.String packageName, java.lang.String sku, java.lang.String type, java.lang.String developerPayload) throws android.os.RemoteException + { + android.os.Parcel _data = android.os.Parcel.obtain(); + android.os.Parcel _reply = android.os.Parcel.obtain(); + android.os.Bundle _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeInt(apiVersion); + _data.writeString(packageName); + _data.writeString(sku); + _data.writeString(type); + _data.writeString(developerPayload); + mRemote.transact(Stub.TRANSACTION_getBuyIntent, _data, _reply, 0); + _reply.readException(); + if ((0!=_reply.readInt())) { + _result = android.os.Bundle.CREATOR.createFromParcel(_reply); + } + else { + _result = null; + } + } + finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + /** + * Returns the current SKUs owned by the user of the type and package name specified along with + * purchase information and a signature of the data to be validated. + * This will return all SKUs that have been purchased in V3 and managed items purchased using + * V1 and V2 that have not been consumed. + * @param apiVersion billing API version that the app is using + * @param packageName package name of the calling app + * @param type of the in-app items being requested ("inapp" for one-time purchases + * and "subs" for subscriptions) + * @param continuationToken to be set as null for the first call, if the number of owned + * skus are too many, a continuationToken is returned in the response bundle. + * This method can be called again with the continuation token to get the next set of + * owned skus. + * @return Bundle containing the following key-value pairs + * "RESPONSE_CODE" with int value, RESULT_OK(0) if success, appropriate response codes + on failures. + * "INAPP_PURCHASE_ITEM_LIST" - StringArrayList containing the list of SKUs + * "INAPP_PURCHASE_DATA_LIST" - StringArrayList containing the purchase information + * "INAPP_DATA_SIGNATURE_LIST"- StringArrayList containing the signatures + * of the purchase information + * "INAPP_CONTINUATION_TOKEN" - String containing a continuation token for the + * next set of in-app purchases. Only set if the + * user has more owned skus than the current list. + */ + @Override public android.os.Bundle getPurchases(int apiVersion, java.lang.String packageName, java.lang.String type, java.lang.String continuationToken) throws android.os.RemoteException + { + android.os.Parcel _data = android.os.Parcel.obtain(); + android.os.Parcel _reply = android.os.Parcel.obtain(); + android.os.Bundle _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeInt(apiVersion); + _data.writeString(packageName); + _data.writeString(type); + _data.writeString(continuationToken); + mRemote.transact(Stub.TRANSACTION_getPurchases, _data, _reply, 0); + _reply.readException(); + if ((0!=_reply.readInt())) { + _result = android.os.Bundle.CREATOR.createFromParcel(_reply); + } + else { + _result = null; + } + } + finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + @Override public int consumePurchase(int apiVersion, java.lang.String packageName, java.lang.String purchaseToken) throws android.os.RemoteException + { + android.os.Parcel _data = android.os.Parcel.obtain(); + android.os.Parcel _reply = android.os.Parcel.obtain(); + int _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeInt(apiVersion); + _data.writeString(packageName); + _data.writeString(purchaseToken); + mRemote.transact(Stub.TRANSACTION_consumePurchase, _data, _reply, 0); + _reply.readException(); + _result = _reply.readInt(); + } + finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + @Override public int stub(int apiVersion, java.lang.String packageName, java.lang.String type) throws android.os.RemoteException + { + android.os.Parcel _data = android.os.Parcel.obtain(); + android.os.Parcel _reply = android.os.Parcel.obtain(); + int _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeInt(apiVersion); + _data.writeString(packageName); + _data.writeString(type); + mRemote.transact(Stub.TRANSACTION_stub, _data, _reply, 0); + _reply.readException(); + _result = _reply.readInt(); + } + finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + /** + * Returns a pending intent to launch the purchase flow for upgrading or downgrading a + * subscription. The existing owned SKU(s) should be provided along with the new SKU that + * the user is upgrading or downgrading to. + * @param apiVersion billing API version that the app is using, must be 5 or later + * @param packageName package name of the calling app + * @param oldSkus the SKU(s) that the user is upgrading or downgrading from, + * if null or empty this method will behave like {@link #getBuyIntent} + * @param newSku the SKU that the user is upgrading or downgrading to + * @param type of the item being purchased, currently must be "subs" + * @param developerPayload optional argument to be sent back with the purchase information + * @return Bundle containing the following key-value pairs + * "RESPONSE_CODE" with int value, RESULT_OK(0) if success, appropriate response codes + * on failures. + * "BUY_INTENT" - PendingIntent to start the purchase flow + * + * The Pending intent should be launched with startIntentSenderForResult. When purchase flow + * has completed, the onActivityResult() will give a resultCode of OK or CANCELED. + * If the purchase is successful, the result data will contain the following key-value pairs + * "RESPONSE_CODE" with int value, RESULT_OK(0) if success, appropriate response + * codes on failures. + * "INAPP_PURCHASE_DATA" - String in JSON format similar to + * '{"orderId":"12999763169054705758.1371079406387615", + * "packageName":"com.example.app", + * "productId":"exampleSku", + * "purchaseTime":1345678900000, + * "purchaseToken" : "122333444455555", + * "developerPayload":"example developer payload" }' + * "INAPP_DATA_SIGNATURE" - String containing the signature of the purchase data that + * was signed with the private key of the developer + */ + @Override public android.os.Bundle getBuyIntentToReplaceSkus(int apiVersion, java.lang.String packageName, java.util.List oldSkus, java.lang.String newSku, java.lang.String type, java.lang.String developerPayload) throws android.os.RemoteException + { + android.os.Parcel _data = android.os.Parcel.obtain(); + android.os.Parcel _reply = android.os.Parcel.obtain(); + android.os.Bundle _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeInt(apiVersion); + _data.writeString(packageName); + _data.writeStringList(oldSkus); + _data.writeString(newSku); + _data.writeString(type); + _data.writeString(developerPayload); + mRemote.transact(Stub.TRANSACTION_getBuyIntentToReplaceSkus, _data, _reply, 0); + _reply.readException(); + if ((0!=_reply.readInt())) { + _result = android.os.Bundle.CREATOR.createFromParcel(_reply); + } + else { + _result = null; + } + } + finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + /** + * Returns a pending intent to launch the purchase flow for an in-app item. This method is + * a variant of the {@link #getBuyIntent} method and takes an additional {@code extraParams} + * parameter. This parameter is a Bundle of optional keys and values that affect the + * operation of the method. + * @param apiVersion billing API version that the app is using, must be 6 or later + * @param packageName package name of the calling app + * @param sku the SKU of the in-app item as published in the developer console + * @param type of the in-app item being purchased ("inapp" for one-time purchases + * and "subs" for subscriptions) + * @param developerPayload optional argument to be sent back with the purchase information + * @extraParams a Bundle with the following optional keys: + * "skusToReplace" - List - an optional list of SKUs that the user is + * upgrading or downgrading from. + * Pass this field if the purchase is upgrading or downgrading + * existing subscriptions. + * The specified SKUs are replaced with the SKUs that the user is + * purchasing. Google Play replaces the specified SKUs at the start of + * the next billing cycle. + * "replaceSkusProration" - Boolean - whether the user should be credited for any unused + * subscription time on the SKUs they are upgrading or downgrading. + * If you set this field to true, Google Play swaps out the old SKUs + * and credits the user with the unused value of their subscription + * time on a pro-rated basis. + * Google Play applies this credit to the new subscription, and does + * not begin billing the user for the new subscription until after + * the credit is used up. + * If you set this field to false, the user does not receive credit for + * any unused subscription time and the recurrence date does not + * change. + * Default value is true. Ignored if you do not pass skusToReplace. + * "accountId" - String - an optional obfuscated string that is uniquely + * associated with the user's account in your app. + * If you pass this value, Google Play can use it to detect irregular + * activity, such as many devices making purchases on the same + * account in a short period of time. + * Do not use the developer ID or the user's Google ID for this field. + * In addition, this field should not contain the user's ID in + * cleartext. + * We recommend that you use a one-way hash to generate a string from + * the user's ID, and store the hashed string in this field. + * "vr" - Boolean - an optional flag indicating whether the returned intent + * should start a VR purchase flow. The apiVersion must also be 7 or + * later to use this flag. + */ + @Override public android.os.Bundle getBuyIntentExtraParams(int apiVersion, java.lang.String packageName, java.lang.String sku, java.lang.String type, java.lang.String developerPayload, android.os.Bundle extraParams) throws android.os.RemoteException + { + android.os.Parcel _data = android.os.Parcel.obtain(); + android.os.Parcel _reply = android.os.Parcel.obtain(); + android.os.Bundle _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeInt(apiVersion); + _data.writeString(packageName); + _data.writeString(sku); + _data.writeString(type); + _data.writeString(developerPayload); + if ((extraParams!=null)) { + _data.writeInt(1); + extraParams.writeToParcel(_data, 0); + } + else { + _data.writeInt(0); + } + mRemote.transact(Stub.TRANSACTION_getBuyIntentExtraParams, _data, _reply, 0); + _reply.readException(); + if ((0!=_reply.readInt())) { + _result = android.os.Bundle.CREATOR.createFromParcel(_reply); + } + else { + _result = null; + } + } + finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + /** + * Returns the most recent purchase made by the user for each SKU, even if that purchase is + * expired, canceled, or consumed. + * @param apiVersion billing API version that the app is using, must be 6 or later + * @param packageName package name of the calling app + * @param type of the in-app items being requested ("inapp" for one-time purchases + * and "subs" for subscriptions) + * @param continuationToken to be set as null for the first call, if the number of owned + * skus is too large, a continuationToken is returned in the response bundle. + * This method can be called again with the continuation token to get the next set of + * owned skus. + * @param extraParams a Bundle with extra params that would be appended into http request + * query string. Not used at this moment. Reserved for future functionality. + * @return Bundle containing the following key-value pairs + * "RESPONSE_CODE" with int value: RESULT_OK(0) if success, + * {@link IabHelper#BILLING_RESPONSE_RESULT_*} response codes on failures. + * + * "INAPP_PURCHASE_ITEM_LIST" - ArrayList containing the list of SKUs + * "INAPP_PURCHASE_DATA_LIST" - ArrayList containing the purchase information + * "INAPP_DATA_SIGNATURE_LIST"- ArrayList containing the signatures + * of the purchase information + * "INAPP_CONTINUATION_TOKEN" - String containing a continuation token for the + * next set of in-app purchases. Only set if the + * user has more owned skus than the current list. + */ + @Override public android.os.Bundle getPurchaseHistory(int apiVersion, java.lang.String packageName, java.lang.String type, java.lang.String continuationToken, android.os.Bundle extraParams) throws android.os.RemoteException + { + android.os.Parcel _data = android.os.Parcel.obtain(); + android.os.Parcel _reply = android.os.Parcel.obtain(); + android.os.Bundle _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeInt(apiVersion); + _data.writeString(packageName); + _data.writeString(type); + _data.writeString(continuationToken); + if ((extraParams!=null)) { + _data.writeInt(1); + extraParams.writeToParcel(_data, 0); + } + else { + _data.writeInt(0); + } + mRemote.transact(Stub.TRANSACTION_getPurchaseHistory, _data, _reply, 0); + _reply.readException(); + if ((0!=_reply.readInt())) { + _result = android.os.Bundle.CREATOR.createFromParcel(_reply); + } + else { + _result = null; + } + } + finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + @Override public int isBillingSupportedExtraParams(int apiVersion, java.lang.String packageName, java.lang.String type, android.os.Bundle extraParams) throws android.os.RemoteException + { + android.os.Parcel _data = android.os.Parcel.obtain(); + android.os.Parcel _reply = android.os.Parcel.obtain(); + int _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeInt(apiVersion); + _data.writeString(packageName); + _data.writeString(type); + if ((extraParams!=null)) { + _data.writeInt(1); + extraParams.writeToParcel(_data, 0); + } + else { + _data.writeInt(0); + } + mRemote.transact(Stub.TRANSACTION_isBillingSupportedExtraParams, _data, _reply, 0); + _reply.readException(); + _result = _reply.readInt(); + } + finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } + } + static final int TRANSACTION_isBillingSupported = (android.os.IBinder.FIRST_CALL_TRANSACTION + 0); + static final int TRANSACTION_getSkuDetails = (android.os.IBinder.FIRST_CALL_TRANSACTION + 1); + static final int TRANSACTION_getBuyIntent = (android.os.IBinder.FIRST_CALL_TRANSACTION + 2); + static final int TRANSACTION_getPurchases = (android.os.IBinder.FIRST_CALL_TRANSACTION + 3); + static final int TRANSACTION_consumePurchase = (android.os.IBinder.FIRST_CALL_TRANSACTION + 4); + static final int TRANSACTION_stub = (android.os.IBinder.FIRST_CALL_TRANSACTION + 5); + static final int TRANSACTION_getBuyIntentToReplaceSkus = (android.os.IBinder.FIRST_CALL_TRANSACTION + 6); + static final int TRANSACTION_getBuyIntentExtraParams = (android.os.IBinder.FIRST_CALL_TRANSACTION + 7); + static final int TRANSACTION_getPurchaseHistory = (android.os.IBinder.FIRST_CALL_TRANSACTION + 8); + static final int TRANSACTION_isBillingSupportedExtraParams = (android.os.IBinder.FIRST_CALL_TRANSACTION + 9); + } + public int isBillingSupported(int apiVersion, java.lang.String packageName, java.lang.String type) throws android.os.RemoteException; + /** + * Provides details of a list of SKUs + * Given a list of SKUs of a valid type in the skusBundle, this returns a bundle + * with a list JSON strings containing the productId, price, title and description. + * This API can be called with a maximum of 20 SKUs. + * @param apiVersion billing API version that the app is using + * @param packageName the package name of the calling app + * @param type of the in-app items ("inapp" for one-time purchases + * and "subs" for subscriptions) + * @param skusBundle bundle containing a StringArrayList of SKUs with key "ITEM_ID_LIST" + * @return Bundle containing the following key-value pairs + * "RESPONSE_CODE" with int value, RESULT_OK(0) if success, appropriate response codes + * on failures. + * "DETAILS_LIST" with a StringArrayList containing purchase information + * in JSON format similar to: + * '{ "productId" : "exampleSku", + * "type" : "inapp", + * "price" : "$5.00", + * "price_currency": "USD", + * "price_amount_micros": 5000000, + * "title : "Example Title", + * "description" : "This is an example description" }' + */ + public android.os.Bundle getSkuDetails(int apiVersion, java.lang.String packageName, java.lang.String type, android.os.Bundle skusBundle) throws android.os.RemoteException; + /** + * Returns a pending intent to launch the purchase flow for an in-app item by providing a SKU, + * the type, a unique purchase token and an optional developer payload. + * @param apiVersion billing API version that the app is using + * @param packageName package name of the calling app + * @param sku the SKU of the in-app item as published in the developer console + * @param type of the in-app item being purchased ("inapp" for one-time purchases + * and "subs" for subscriptions) + * @param developerPayload optional argument to be sent back with the purchase information + * @return Bundle containing the following key-value pairs + * "RESPONSE_CODE" with int value, RESULT_OK(0) if success, appropriate response codes + * on failures. + * "BUY_INTENT" - PendingIntent to start the purchase flow + * + * The Pending intent should be launched with startIntentSenderForResult. When purchase flow + * has completed, the onActivityResult() will give a resultCode of OK or CANCELED. + * If the purchase is successful, the result data will contain the following key-value pairs + * "RESPONSE_CODE" with int value, RESULT_OK(0) if success, appropriate response + * codes on failures. + * "INAPP_PURCHASE_DATA" - String in JSON format similar to + * '{"orderId":"12999763169054705758.1371079406387615", + * "packageName":"com.example.app", + * "productId":"exampleSku", + * "purchaseTime":1345678900000, + * "purchaseToken" : "122333444455555", + * "developerPayload":"example developer payload" }' + * "INAPP_DATA_SIGNATURE" - String containing the signature of the purchase data that + * was signed with the private key of the developer + */ + public android.os.Bundle getBuyIntent(int apiVersion, java.lang.String packageName, java.lang.String sku, java.lang.String type, java.lang.String developerPayload) throws android.os.RemoteException; + /** + * Returns the current SKUs owned by the user of the type and package name specified along with + * purchase information and a signature of the data to be validated. + * This will return all SKUs that have been purchased in V3 and managed items purchased using + * V1 and V2 that have not been consumed. + * @param apiVersion billing API version that the app is using + * @param packageName package name of the calling app + * @param type of the in-app items being requested ("inapp" for one-time purchases + * and "subs" for subscriptions) + * @param continuationToken to be set as null for the first call, if the number of owned + * skus are too many, a continuationToken is returned in the response bundle. + * This method can be called again with the continuation token to get the next set of + * owned skus. + * @return Bundle containing the following key-value pairs + * "RESPONSE_CODE" with int value, RESULT_OK(0) if success, appropriate response codes + on failures. + * "INAPP_PURCHASE_ITEM_LIST" - StringArrayList containing the list of SKUs + * "INAPP_PURCHASE_DATA_LIST" - StringArrayList containing the purchase information + * "INAPP_DATA_SIGNATURE_LIST"- StringArrayList containing the signatures + * of the purchase information + * "INAPP_CONTINUATION_TOKEN" - String containing a continuation token for the + * next set of in-app purchases. Only set if the + * user has more owned skus than the current list. + */ + public android.os.Bundle getPurchases(int apiVersion, java.lang.String packageName, java.lang.String type, java.lang.String continuationToken) throws android.os.RemoteException; + public int consumePurchase(int apiVersion, java.lang.String packageName, java.lang.String purchaseToken) throws android.os.RemoteException; + public int stub(int apiVersion, java.lang.String packageName, java.lang.String type) throws android.os.RemoteException; + /** + * Returns a pending intent to launch the purchase flow for upgrading or downgrading a + * subscription. The existing owned SKU(s) should be provided along with the new SKU that + * the user is upgrading or downgrading to. + * @param apiVersion billing API version that the app is using, must be 5 or later + * @param packageName package name of the calling app + * @param oldSkus the SKU(s) that the user is upgrading or downgrading from, + * if null or empty this method will behave like {@link #getBuyIntent} + * @param newSku the SKU that the user is upgrading or downgrading to + * @param type of the item being purchased, currently must be "subs" + * @param developerPayload optional argument to be sent back with the purchase information + * @return Bundle containing the following key-value pairs + * "RESPONSE_CODE" with int value, RESULT_OK(0) if success, appropriate response codes + * on failures. + * "BUY_INTENT" - PendingIntent to start the purchase flow + * + * The Pending intent should be launched with startIntentSenderForResult. When purchase flow + * has completed, the onActivityResult() will give a resultCode of OK or CANCELED. + * If the purchase is successful, the result data will contain the following key-value pairs + * "RESPONSE_CODE" with int value, RESULT_OK(0) if success, appropriate response + * codes on failures. + * "INAPP_PURCHASE_DATA" - String in JSON format similar to + * '{"orderId":"12999763169054705758.1371079406387615", + * "packageName":"com.example.app", + * "productId":"exampleSku", + * "purchaseTime":1345678900000, + * "purchaseToken" : "122333444455555", + * "developerPayload":"example developer payload" }' + * "INAPP_DATA_SIGNATURE" - String containing the signature of the purchase data that + * was signed with the private key of the developer + */ + public android.os.Bundle getBuyIntentToReplaceSkus(int apiVersion, java.lang.String packageName, java.util.List oldSkus, java.lang.String newSku, java.lang.String type, java.lang.String developerPayload) throws android.os.RemoteException; + /** + * Returns a pending intent to launch the purchase flow for an in-app item. This method is + * a variant of the {@link #getBuyIntent} method and takes an additional {@code extraParams} + * parameter. This parameter is a Bundle of optional keys and values that affect the + * operation of the method. + * @param apiVersion billing API version that the app is using, must be 6 or later + * @param packageName package name of the calling app + * @param sku the SKU of the in-app item as published in the developer console + * @param type of the in-app item being purchased ("inapp" for one-time purchases + * and "subs" for subscriptions) + * @param developerPayload optional argument to be sent back with the purchase information + * @extraParams a Bundle with the following optional keys: + * "skusToReplace" - List - an optional list of SKUs that the user is + * upgrading or downgrading from. + * Pass this field if the purchase is upgrading or downgrading + * existing subscriptions. + * The specified SKUs are replaced with the SKUs that the user is + * purchasing. Google Play replaces the specified SKUs at the start of + * the next billing cycle. + * "replaceSkusProration" - Boolean - whether the user should be credited for any unused + * subscription time on the SKUs they are upgrading or downgrading. + * If you set this field to true, Google Play swaps out the old SKUs + * and credits the user with the unused value of their subscription + * time on a pro-rated basis. + * Google Play applies this credit to the new subscription, and does + * not begin billing the user for the new subscription until after + * the credit is used up. + * If you set this field to false, the user does not receive credit for + * any unused subscription time and the recurrence date does not + * change. + * Default value is true. Ignored if you do not pass skusToReplace. + * "accountId" - String - an optional obfuscated string that is uniquely + * associated with the user's account in your app. + * If you pass this value, Google Play can use it to detect irregular + * activity, such as many devices making purchases on the same + * account in a short period of time. + * Do not use the developer ID or the user's Google ID for this field. + * In addition, this field should not contain the user's ID in + * cleartext. + * We recommend that you use a one-way hash to generate a string from + * the user's ID, and store the hashed string in this field. + * "vr" - Boolean - an optional flag indicating whether the returned intent + * should start a VR purchase flow. The apiVersion must also be 7 or + * later to use this flag. + */ + public android.os.Bundle getBuyIntentExtraParams(int apiVersion, java.lang.String packageName, java.lang.String sku, java.lang.String type, java.lang.String developerPayload, android.os.Bundle extraParams) throws android.os.RemoteException; + /** + * Returns the most recent purchase made by the user for each SKU, even if that purchase is + * expired, canceled, or consumed. + * @param apiVersion billing API version that the app is using, must be 6 or later + * @param packageName package name of the calling app + * @param type of the in-app items being requested ("inapp" for one-time purchases + * and "subs" for subscriptions) + * @param continuationToken to be set as null for the first call, if the number of owned + * skus is too large, a continuationToken is returned in the response bundle. + * This method can be called again with the continuation token to get the next set of + * owned skus. + * @param extraParams a Bundle with extra params that would be appended into http request + * query string. Not used at this moment. Reserved for future functionality. + * @return Bundle containing the following key-value pairs + * "RESPONSE_CODE" with int value: RESULT_OK(0) if success, + * {@link IabHelper#BILLING_RESPONSE_RESULT_*} response codes on failures. + * + * "INAPP_PURCHASE_ITEM_LIST" - ArrayList containing the list of SKUs + * "INAPP_PURCHASE_DATA_LIST" - ArrayList containing the purchase information + * "INAPP_DATA_SIGNATURE_LIST"- ArrayList containing the signatures + * of the purchase information + * "INAPP_CONTINUATION_TOKEN" - String containing a continuation token for the + * next set of in-app purchases. Only set if the + * user has more owned skus than the current list. + */ + public android.os.Bundle getPurchaseHistory(int apiVersion, java.lang.String packageName, java.lang.String type, java.lang.String continuationToken, android.os.Bundle extraParams) throws android.os.RemoteException; + public int isBillingSupportedExtraParams(int apiVersion, java.lang.String packageName, java.lang.String type, android.os.Bundle extraParams) throws android.os.RemoteException; + } diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/main/java/com/juce/pushnotificationsdemo/JuceFirebaseInstanceIdService.java b/examples/PushNotificationsDemo/Builds/Android/app/src/main/java/com/juce/pushnotificationsdemo/JuceFirebaseInstanceIdService.java new file mode 100644 index 0000000000..2154c2d74f --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/Android/app/src/main/java/com/juce/pushnotificationsdemo/JuceFirebaseInstanceIdService.java @@ -0,0 +1,17 @@ +package com.juce.pushnotificationsdemo; + +import com.google.firebase.iid.*; + +public final class JuceFirebaseInstanceIdService extends FirebaseInstanceIdService +{ + private native void firebaseInstanceIdTokenRefreshed (String token); + + @Override + public void onTokenRefresh() + { + String token = FirebaseInstanceId.getInstance().getToken(); + + firebaseInstanceIdTokenRefreshed (token); + } +} + diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/main/java/com/juce/pushnotificationsdemo/JuceFirebaseMessagingService.java b/examples/PushNotificationsDemo/Builds/Android/app/src/main/java/com/juce/pushnotificationsdemo/JuceFirebaseMessagingService.java new file mode 100644 index 0000000000..4a0035ebf4 --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/Android/app/src/main/java/com/juce/pushnotificationsdemo/JuceFirebaseMessagingService.java @@ -0,0 +1,36 @@ +package com.juce.pushnotificationsdemo; + +import com.google.firebase.messaging.*; + +public final class JuceFirebaseMessagingService extends FirebaseMessagingService +{ + private native void firebaseRemoteMessageReceived (RemoteMessage message); + private native void firebaseRemoteMessagesDeleted(); + private native void firebaseRemoteMessageSent (String messageId); + private native void firebaseRemoteMessageSendError (String messageId, String error); + + @Override + public void onMessageReceived (RemoteMessage message) + { + firebaseRemoteMessageReceived (message); + } + + @Override + public void onDeletedMessages() + { + firebaseRemoteMessagesDeleted(); + } + + @Override + public void onMessageSent (String messageId) + { + firebaseRemoteMessageSent (messageId); + } + + @Override + public void onSendError (String messageId, Exception e) + { + firebaseRemoteMessageSendError (messageId, e.toString()); + } +} + diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/main/java/com/juce/pushnotificationsdemo/PushNotificationsDemo.java b/examples/PushNotificationsDemo/Builds/Android/app/src/main/java/com/juce/pushnotificationsdemo/PushNotificationsDemo.java new file mode 100644 index 0000000000..90d3c52c76 --- /dev/null +++ b/examples/PushNotificationsDemo/Builds/Android/app/src/main/java/com/juce/pushnotificationsdemo/PushNotificationsDemo.java @@ -0,0 +1,2513 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2017 - ROLI Ltd. + + JUCE is an open source library subject to commercial or open-source + licensing. + + The code included in this file is provided under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license. Permission + To use, copy, modify, and/or distribute this software for any purpose with or + without fee is hereby granted provided that the above copyright notice and + this permission notice appear in all copies. + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +package com.juce.pushnotificationsdemo; + +import android.app.Activity; +import android.app.AlertDialog; +import android.content.DialogInterface; +import android.content.Context; +import android.content.Intent; +import android.content.res.Configuration; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; +import android.net.Uri; +import android.os.Bundle; +import android.os.Looper; +import android.os.Handler; +import android.os.ParcelUuid; +import android.os.Environment; +import android.view.*; +import android.view.inputmethod.BaseInputConnection; +import android.view.inputmethod.EditorInfo; +import android.view.inputmethod.InputConnection; +import android.view.inputmethod.InputMethodManager; +import android.graphics.*; +import android.text.ClipboardManager; +import android.text.InputType; +import android.util.DisplayMetrics; +import android.util.Log; +import android.util.Pair; +import java.lang.Runnable; +import java.lang.ref.WeakReference; +import java.lang.reflect.*; +import java.util.*; +import java.io.*; +import java.net.URL; +import java.net.HttpURLConnection; +import android.media.AudioManager; +import android.Manifest; +import java.util.concurrent.CancellationException; +import java.util.concurrent.Future; +import java.util.concurrent.Executors; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.Callable; +import java.util.concurrent.TimeoutException; +import java.util.concurrent.locks.ReentrantLock; +import java.util.concurrent.atomic.*; + +import android.media.midi.*; +import android.bluetooth.*; +import android.bluetooth.le.*; + + +//============================================================================== +public class PushNotificationsDemo extends Activity +{ + //============================================================================== + static + { + System.loadLibrary ("juce_jni"); + } + + //============================================================================== + public boolean isPermissionDeclaredInManifest (int permissionID) + { + String permissionToCheck = getAndroidPermissionName(permissionID); + + try + { + PackageInfo info = getPackageManager().getPackageInfo(getApplicationContext().getPackageName(), PackageManager.GET_PERMISSIONS); + + if (info.requestedPermissions != null) + for (String permission : info.requestedPermissions) + if (permission.equals (permissionToCheck)) + return true; + } + catch (PackageManager.NameNotFoundException e) + { + Log.d ("JUCE", "isPermissionDeclaredInManifest: PackageManager.NameNotFoundException = " + e.toString()); + } + + Log.d ("JUCE", "isPermissionDeclaredInManifest: could not find requested permission " + permissionToCheck); + return false; + } + + //============================================================================== + // these have to match the values of enum PermissionID in C++ class RuntimePermissions: + private static final int JUCE_PERMISSIONS_RECORD_AUDIO = 1; + private static final int JUCE_PERMISSIONS_BLUETOOTH_MIDI = 2; + private static final int JUCE_PERMISSIONS_READ_EXTERNAL_STORAGE = 3; + private static final int JUCE_PERMISSIONS_WRITE_EXTERNAL_STORAGE = 4; + + private static String getAndroidPermissionName (int permissionID) + { + switch (permissionID) + { + case JUCE_PERMISSIONS_RECORD_AUDIO: return Manifest.permission.RECORD_AUDIO; + case JUCE_PERMISSIONS_BLUETOOTH_MIDI: return Manifest.permission.ACCESS_COARSE_LOCATION; + // use string value as this is not defined in SDKs < 16 + case JUCE_PERMISSIONS_READ_EXTERNAL_STORAGE: return "android.permission.READ_EXTERNAL_STORAGE"; + case JUCE_PERMISSIONS_WRITE_EXTERNAL_STORAGE: return Manifest.permission.WRITE_EXTERNAL_STORAGE; + } + + // unknown permission ID! + assert false; + return new String(); + } + + public boolean isPermissionGranted (int permissionID) + { + return getApplicationContext().checkCallingOrSelfPermission (getAndroidPermissionName (permissionID)) == PackageManager.PERMISSION_GRANTED; + } + + private Map permissionCallbackPtrMap; + + public void requestRuntimePermission (int permissionID, long ptrToCallback) + { + String permissionName = getAndroidPermissionName (permissionID); + + if (getApplicationContext().checkCallingOrSelfPermission (permissionName) != PackageManager.PERMISSION_GRANTED) + { + // remember callbackPtr, request permissions, and let onRequestPermissionResult call callback asynchronously + permissionCallbackPtrMap.put (permissionID, ptrToCallback); + requestPermissionsCompat (new String[]{permissionName}, permissionID); + } + else + { + // permissions were already granted before, we can call callback directly + androidRuntimePermissionsCallback (true, ptrToCallback); + } + } + + private native void androidRuntimePermissionsCallback (boolean permissionWasGranted, long ptrToCallback); + + @Override + public void onRequestPermissionsResult (int permissionID, String permissions[], int[] grantResults) + { + boolean permissionsGranted = (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED); + + if (! permissionsGranted) + Log.d ("JUCE", "onRequestPermissionsResult: runtime permission was DENIED: " + getAndroidPermissionName (permissionID)); + + Long ptrToCallback = permissionCallbackPtrMap.get (permissionID); + permissionCallbackPtrMap.remove (permissionID); + androidRuntimePermissionsCallback (permissionsGranted, ptrToCallback); + } + + //============================================================================== + public interface JuceMidiPort + { + boolean isInputPort(); + + // start, stop does nothing on an output port + void start(); + void stop(); + + void close(); + + // send will do nothing on an input port + void sendMidi (byte[] msg, int offset, int count); + } + + //============================================================================== + //============================================================================== + public class BluetoothManager extends ScanCallback + { + BluetoothManager() + { + } + + public String[] getMidiBluetoothAddresses() + { + return bluetoothMidiDevices.toArray (new String[bluetoothMidiDevices.size()]); + } + + public String getHumanReadableStringForBluetoothAddress (String address) + { + BluetoothDevice btDevice = BluetoothAdapter.getDefaultAdapter().getRemoteDevice (address); + return btDevice.getName(); + } + + public int getBluetoothDeviceStatus (String address) + { + return getAndroidMidiDeviceManager().getBluetoothDeviceStatus (address); + } + + public void startStopScan (boolean shouldStart) + { + BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); + + if (bluetoothAdapter == null) + { + Log.d ("JUCE", "BluetoothManager error: could not get default Bluetooth adapter"); + return; + } + + BluetoothLeScanner bluetoothLeScanner = bluetoothAdapter.getBluetoothLeScanner(); + + if (bluetoothLeScanner == null) + { + Log.d ("JUCE", "BluetoothManager error: could not get Bluetooth LE scanner"); + return; + } + + if (shouldStart) + { + ScanFilter.Builder scanFilterBuilder = new ScanFilter.Builder(); + scanFilterBuilder.setServiceUuid (ParcelUuid.fromString (bluetoothLEMidiServiceUUID)); + + ScanSettings.Builder scanSettingsBuilder = new ScanSettings.Builder(); + scanSettingsBuilder.setCallbackType (ScanSettings.CALLBACK_TYPE_ALL_MATCHES) + .setScanMode (ScanSettings.SCAN_MODE_LOW_POWER) + .setScanMode (ScanSettings.MATCH_MODE_STICKY); + + bluetoothLeScanner.startScan (Arrays.asList (scanFilterBuilder.build()), + scanSettingsBuilder.build(), + this); + } + else + { + bluetoothLeScanner.stopScan (this); + } + } + + public boolean pairBluetoothMidiDevice(String address) + { + BluetoothDevice btDevice = BluetoothAdapter.getDefaultAdapter().getRemoteDevice (address); + + if (btDevice == null) + { + Log.d ("JUCE", "failed to create buletooth device from address"); + return false; + } + + return getAndroidMidiDeviceManager().pairBluetoothDevice (btDevice); + } + + public void unpairBluetoothMidiDevice (String address) + { + getAndroidMidiDeviceManager().unpairBluetoothDevice (address); + } + + public void onScanFailed (int errorCode) + { + } + + public void onScanResult (int callbackType, ScanResult result) + { + if (callbackType == ScanSettings.CALLBACK_TYPE_ALL_MATCHES + || callbackType == ScanSettings.CALLBACK_TYPE_FIRST_MATCH) + { + BluetoothDevice device = result.getDevice(); + + if (device != null) + bluetoothMidiDevices.add (device.getAddress()); + } + + if (callbackType == ScanSettings.CALLBACK_TYPE_MATCH_LOST) + { + Log.d ("JUCE", "ScanSettings.CALLBACK_TYPE_MATCH_LOST"); + BluetoothDevice device = result.getDevice(); + + if (device != null) + { + bluetoothMidiDevices.remove (device.getAddress()); + unpairBluetoothMidiDevice (device.getAddress()); + } + } + } + + public void onBatchScanResults (List results) + { + for (ScanResult result : results) + onScanResult (ScanSettings.CALLBACK_TYPE_ALL_MATCHES, result); + } + + private BluetoothLeScanner scanner; + private static final String bluetoothLEMidiServiceUUID = "03B80E5A-EDE8-4B33-A751-6CE34EC4C700"; + + private HashSet bluetoothMidiDevices = new HashSet(); + } + + public static class JuceMidiInputPort extends MidiReceiver implements JuceMidiPort + { + private native void handleReceive (long host, byte[] msg, int offset, int count, long timestamp); + + public JuceMidiInputPort (MidiDeviceManager mm, MidiOutputPort actualPort, MidiPortPath portPathToUse, long hostToUse) + { + owner = mm; + androidPort = actualPort; + portPath = portPathToUse; + juceHost = hostToUse; + isConnected = false; + } + + @Override + protected void finalize() throws Throwable + { + close(); + super.finalize(); + } + + @Override + public boolean isInputPort() + { + return true; + } + + @Override + public void start() + { + if (owner != null && androidPort != null && ! isConnected) { + androidPort.connect(this); + isConnected = true; + } + } + + @Override + public void stop() + { + if (owner != null && androidPort != null && isConnected) { + androidPort.disconnect(this); + isConnected = false; + } + } + + @Override + public void close() + { + if (androidPort != null) { + try { + androidPort.close(); + } catch (IOException exception) { + Log.d("JUCE", "IO Exception while closing port"); + } + } + + if (owner != null) + owner.removePort (portPath); + + owner = null; + androidPort = null; + } + + @Override + public void onSend (byte[] msg, int offset, int count, long timestamp) + { + if (count > 0) + handleReceive (juceHost, msg, offset, count, timestamp); + } + + @Override + public void onFlush() + {} + + @Override + public void sendMidi (byte[] msg, int offset, int count) + { + } + + MidiDeviceManager owner; + MidiOutputPort androidPort; + MidiPortPath portPath; + long juceHost; + boolean isConnected; + } + + public static class JuceMidiOutputPort implements JuceMidiPort + { + public JuceMidiOutputPort (MidiDeviceManager mm, MidiInputPort actualPort, MidiPortPath portPathToUse) + { + owner = mm; + androidPort = actualPort; + portPath = portPathToUse; + } + + @Override + protected void finalize() throws Throwable + { + close(); + super.finalize(); + } + + @Override + public boolean isInputPort() + { + return false; + } + + @Override + public void start() + { + } + + @Override + public void stop() + { + } + + @Override + public void sendMidi (byte[] msg, int offset, int count) + { + if (androidPort != null) + { + try { + androidPort.send(msg, offset, count); + } catch (IOException exception) + { + Log.d ("JUCE", "send midi had IO exception"); + } + } + } + + @Override + public void close() + { + if (androidPort != null) { + try { + androidPort.close(); + } catch (IOException exception) { + Log.d("JUCE", "IO Exception while closing port"); + } + } + + if (owner != null) + owner.removePort (portPath); + + owner = null; + androidPort = null; + } + + MidiDeviceManager owner; + MidiInputPort androidPort; + MidiPortPath portPath; + } + + private static class MidiPortPath extends Object + { + public MidiPortPath (int deviceIdToUse, boolean direction, int androidIndex) + { + deviceId = deviceIdToUse; + isInput = direction; + portIndex = androidIndex; + + } + + public int deviceId; + public int portIndex; + public boolean isInput; + + @Override + public int hashCode() + { + Integer i = new Integer ((deviceId * 128) + (portIndex < 128 ? portIndex : 127)); + return i.hashCode() * (isInput ? -1 : 1); + } + + @Override + public boolean equals (Object obj) + { + if (obj == null) + return false; + + if (getClass() != obj.getClass()) + return false; + + MidiPortPath other = (MidiPortPath) obj; + return (portIndex == other.portIndex && isInput == other.isInput && deviceId == other.deviceId); + } + } + + //============================================================================== + public class MidiDeviceManager extends MidiManager.DeviceCallback implements MidiManager.OnDeviceOpenedListener + { + //============================================================================== + private class DummyBluetoothGattCallback extends BluetoothGattCallback + { + public DummyBluetoothGattCallback (MidiDeviceManager mm) + { + super(); + owner = mm; + } + + public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) + { + if (newState == BluetoothProfile.STATE_CONNECTED) + { + gatt.requestConnectionPriority(BluetoothGatt.CONNECTION_PRIORITY_HIGH); + owner.pairBluetoothDeviceStepTwo (gatt.getDevice()); + } + } + public void onServicesDiscovered(BluetoothGatt gatt, int status) {} + public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) {} + public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) {} + public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) {} + public void onDescriptorRead(BluetoothGatt gatt, BluetoothGattDescriptor descriptor, int status) {} + public void onDescriptorWrite(BluetoothGatt gatt, BluetoothGattDescriptor descriptor, int status) {} + public void onReliableWriteCompleted(BluetoothGatt gatt, int status) {} + public void onReadRemoteRssi(BluetoothGatt gatt, int rssi, int status) {} + public void onMtuChanged(BluetoothGatt gatt, int mtu, int status) {} + + private MidiDeviceManager owner; + } + + //============================================================================== + private class MidiDeviceOpenTask extends java.util.TimerTask + { + public MidiDeviceOpenTask (MidiDeviceManager deviceManager, MidiDevice device, BluetoothGatt gattToUse) + { + owner = deviceManager; + midiDevice = device; + btGatt = gattToUse; + } + + @Override + public boolean cancel() + { + synchronized (MidiDeviceOpenTask.class) + { + owner = null; + boolean retval = super.cancel(); + + if (btGatt != null) + { + btGatt.disconnect(); + btGatt.close(); + + btGatt = null; + } + + if (midiDevice != null) + { + try + { + midiDevice.close(); + } + catch (IOException e) + {} + + midiDevice = null; + } + + return retval; + } + } + + public String getBluetoothAddress() + { + synchronized (MidiDeviceOpenTask.class) + { + if (midiDevice != null) + { + MidiDeviceInfo info = midiDevice.getInfo(); + if (info.getType() == MidiDeviceInfo.TYPE_BLUETOOTH) + { + BluetoothDevice btDevice = (BluetoothDevice) info.getProperties().get (info.PROPERTY_BLUETOOTH_DEVICE); + if (btDevice != null) + return btDevice.getAddress(); + } + } + } + + return ""; + } + + public BluetoothGatt getGatt() { return btGatt; } + + public int getID() + { + return midiDevice.getInfo().getId(); + } + + @Override + public void run() + { + synchronized (MidiDeviceOpenTask.class) + { + if (owner != null && midiDevice != null) + owner.onDeviceOpenedDelayed (midiDevice); + } + } + + private MidiDeviceManager owner; + private MidiDevice midiDevice; + private BluetoothGatt btGatt; + } + + //============================================================================== + public MidiDeviceManager() + { + manager = (MidiManager) getSystemService (MIDI_SERVICE); + + if (manager == null) + { + Log.d ("JUCE", "MidiDeviceManager error: could not get MidiManager system service"); + return; + } + + openPorts = new HashMap> (); + midiDevices = new ArrayList>(); + openTasks = new HashMap(); + btDevicesPairing = new HashMap(); + + MidiDeviceInfo[] foundDevices = manager.getDevices(); + for (MidiDeviceInfo info : foundDevices) + onDeviceAdded (info); + + manager.registerDeviceCallback (this, null); + } + + protected void finalize() throws Throwable + { + manager.unregisterDeviceCallback (this); + + synchronized (MidiDeviceManager.class) + { + btDevicesPairing.clear(); + + for (Integer deviceID : openTasks.keySet()) + openTasks.get (deviceID).cancel(); + + openTasks = null; + } + + for (MidiPortPath key : openPorts.keySet()) + openPorts.get (key).get().close(); + + openPorts = null; + + for (Pair device : midiDevices) + { + if (device.second != null) + { + device.second.disconnect(); + device.second.close(); + } + + device.first.close(); + } + + midiDevices.clear(); + + super.finalize(); + } + + public String[] getJuceAndroidMidiInputDevices() + { + return getJuceAndroidMidiDevices (MidiDeviceInfo.PortInfo.TYPE_OUTPUT); + } + + public String[] getJuceAndroidMidiOutputDevices() + { + return getJuceAndroidMidiDevices (MidiDeviceInfo.PortInfo.TYPE_INPUT); + } + + private String[] getJuceAndroidMidiDevices (int portType) + { + // only update the list when JUCE asks for a new list + synchronized (MidiDeviceManager.class) + { + deviceInfos = getDeviceInfos(); + } + + ArrayList portNames = new ArrayList(); + + int index = 0; + for (MidiPortPath portInfo = getPortPathForJuceIndex (portType, index); portInfo != null; portInfo = getPortPathForJuceIndex (portType, ++index)) + portNames.add (getPortName (portInfo)); + + String[] names = new String[portNames.size()]; + return portNames.toArray (names); + } + + private JuceMidiPort openMidiPortWithJuceIndex (int index, long host, boolean isInput) + { + synchronized (MidiDeviceManager.class) + { + int portTypeToFind = (isInput ? MidiDeviceInfo.PortInfo.TYPE_OUTPUT : MidiDeviceInfo.PortInfo.TYPE_INPUT); + MidiPortPath portInfo = getPortPathForJuceIndex (portTypeToFind, index); + + if (portInfo != null) + { + // ports must be opened exclusively! + if (openPorts.containsKey (portInfo)) + return null; + + Pair devicePair = getMidiDevicePairForId (portInfo.deviceId); + + if (devicePair != null) + { + MidiDevice device = devicePair.first; + if (device != null) + { + JuceMidiPort juceMidiPort = null; + + if (isInput) + { + MidiOutputPort outputPort = device.openOutputPort(portInfo.portIndex); + + if (outputPort != null) + juceMidiPort = new JuceMidiInputPort(this, outputPort, portInfo, host); + } + else + { + MidiInputPort inputPort = device.openInputPort(portInfo.portIndex); + + if (inputPort != null) + juceMidiPort = new JuceMidiOutputPort(this, inputPort, portInfo); + } + + if (juceMidiPort != null) + { + openPorts.put(portInfo, new WeakReference(juceMidiPort)); + + return juceMidiPort; + } + } + } + } + } + + return null; + } + + public JuceMidiPort openMidiInputPortWithJuceIndex (int index, long host) + { + return openMidiPortWithJuceIndex (index, host, true); + } + + public JuceMidiPort openMidiOutputPortWithJuceIndex (int index) + { + return openMidiPortWithJuceIndex (index, 0, false); + } + + /* 0: unpaired, 1: paired, 2: pairing */ + public int getBluetoothDeviceStatus (String address) + { + synchronized (MidiDeviceManager.class) + { + if (! address.isEmpty()) + { + if (findMidiDeviceForBluetoothAddress (address) != null) + return 1; + + if (btDevicesPairing.containsKey (address)) + return 2; + + if (findOpenTaskForBluetoothAddress (address) != null) + return 2; + } + } + + return 0; + } + + public boolean pairBluetoothDevice (BluetoothDevice btDevice) + { + String btAddress = btDevice.getAddress(); + if (btAddress.isEmpty()) + return false; + + synchronized (MidiDeviceManager.class) + { + if (getBluetoothDeviceStatus (btAddress) != 0) + return false; + + + btDevicesPairing.put (btDevice.getAddress(), null); + BluetoothGatt gatt = btDevice.connectGatt (getApplicationContext(), true, new DummyBluetoothGattCallback (this)); + + if (gatt != null) + { + btDevicesPairing.put (btDevice.getAddress(), gatt); + } + else + { + pairBluetoothDeviceStepTwo (btDevice); + } + } + + return true; + } + + public void pairBluetoothDeviceStepTwo (BluetoothDevice btDevice) + { + manager.openBluetoothDevice(btDevice, this, null); + } + + public void unpairBluetoothDevice (String address) + { + if (address.isEmpty()) + return; + + synchronized (MidiDeviceManager.class) + { + if (btDevicesPairing.containsKey (address)) + { + BluetoothGatt gatt = btDevicesPairing.get (address); + if (gatt != null) + { + gatt.disconnect(); + gatt.close(); + } + + btDevicesPairing.remove (address); + } + + MidiDeviceOpenTask openTask = findOpenTaskForBluetoothAddress (address); + if (openTask != null) + { + int deviceID = openTask.getID(); + openTask.cancel(); + openTasks.remove (deviceID); + } + + Pair midiDevicePair = findMidiDeviceForBluetoothAddress (address); + if (midiDevicePair != null) + { + MidiDevice midiDevice = midiDevicePair.first; + onDeviceRemoved (midiDevice.getInfo()); + + try { + midiDevice.close(); + } + catch (IOException exception) + { + Log.d ("JUCE", "IOException while closing midi device"); + } + } + } + } + + private Pair findMidiDeviceForBluetoothAddress (String address) + { + for (Pair midiDevice : midiDevices) + { + MidiDeviceInfo info = midiDevice.first.getInfo(); + if (info.getType() == MidiDeviceInfo.TYPE_BLUETOOTH) + { + BluetoothDevice btDevice = (BluetoothDevice) info.getProperties().get (info.PROPERTY_BLUETOOTH_DEVICE); + if (btDevice != null && btDevice.getAddress().equals (address)) + return midiDevice; + } + } + + return null; + } + + private MidiDeviceOpenTask findOpenTaskForBluetoothAddress (String address) + { + for (Integer deviceID : openTasks.keySet()) + { + MidiDeviceOpenTask openTask = openTasks.get (deviceID); + if (openTask.getBluetoothAddress().equals (address)) + return openTask; + } + + return null; + } + + public void removePort (MidiPortPath path) + { + openPorts.remove (path); + } + + public String getInputPortNameForJuceIndex (int index) + { + MidiPortPath portInfo = getPortPathForJuceIndex (MidiDeviceInfo.PortInfo.TYPE_OUTPUT, index); + if (portInfo != null) + return getPortName (portInfo); + + return ""; + } + + public String getOutputPortNameForJuceIndex (int index) + { + MidiPortPath portInfo = getPortPathForJuceIndex (MidiDeviceInfo.PortInfo.TYPE_INPUT, index); + if (portInfo != null) + return getPortName (portInfo); + + return ""; + } + + public void onDeviceAdded (MidiDeviceInfo info) + { + // only add standard midi devices + if (info.getType() == info.TYPE_BLUETOOTH) + return; + + manager.openDevice (info, this, null); + } + + public void onDeviceRemoved (MidiDeviceInfo info) + { + synchronized (MidiDeviceManager.class) + { + Pair devicePair = getMidiDevicePairForId (info.getId()); + + if (devicePair != null) + { + MidiDevice midiDevice = devicePair.first; + BluetoothGatt gatt = devicePair.second; + + // close all ports that use this device + boolean removedPort = true; + + while (removedPort == true) + { + removedPort = false; + for (MidiPortPath key : openPorts.keySet()) + { + if (key.deviceId == info.getId()) + { + openPorts.get(key).get().close(); + removedPort = true; + break; + } + } + } + + if (gatt != null) + { + gatt.disconnect(); + gatt.close(); + } + + midiDevices.remove (devicePair); + } + } + } + + public void onDeviceStatusChanged (MidiDeviceStatus status) + { + } + + @Override + public void onDeviceOpened (MidiDevice theDevice) + { + synchronized (MidiDeviceManager.class) + { + MidiDeviceInfo info = theDevice.getInfo(); + int deviceID = info.getId(); + BluetoothGatt gatt = null; + boolean isBluetooth = false; + + if (! openTasks.containsKey (deviceID)) + { + if (info.getType() == MidiDeviceInfo.TYPE_BLUETOOTH) + { + isBluetooth = true; + BluetoothDevice btDevice = (BluetoothDevice) info.getProperties().get (info.PROPERTY_BLUETOOTH_DEVICE); + if (btDevice != null) + { + String btAddress = btDevice.getAddress(); + if (btDevicesPairing.containsKey (btAddress)) + { + gatt = btDevicesPairing.get (btAddress); + btDevicesPairing.remove (btAddress); + } + else + { + // unpair was called in the mean time + try + { + Pair midiDevicePair = findMidiDeviceForBluetoothAddress (btDevice.getAddress()); + if (midiDevicePair != null) + { + gatt = midiDevicePair.second; + + if (gatt != null) + { + gatt.disconnect(); + gatt.close(); + } + } + + theDevice.close(); + } + catch (IOException e) + {} + + return; + } + } + } + + MidiDeviceOpenTask openTask = new MidiDeviceOpenTask (this, theDevice, gatt); + openTasks.put (deviceID, openTask); + + new java.util.Timer().schedule (openTask, (isBluetooth ? 2000 : 100)); + } + } + } + + public void onDeviceOpenedDelayed (MidiDevice theDevice) + { + synchronized (MidiDeviceManager.class) + { + int deviceID = theDevice.getInfo().getId(); + + if (openTasks.containsKey (deviceID)) + { + if (! midiDevices.contains(theDevice)) + { + BluetoothGatt gatt = openTasks.get (deviceID).getGatt(); + openTasks.remove (deviceID); + midiDevices.add (new Pair (theDevice, gatt)); + } + } + else + { + // unpair was called in the mean time + MidiDeviceInfo info = theDevice.getInfo(); + BluetoothDevice btDevice = (BluetoothDevice) info.getProperties().get (info.PROPERTY_BLUETOOTH_DEVICE); + if (btDevice != null) + { + String btAddress = btDevice.getAddress(); + Pair midiDevicePair = findMidiDeviceForBluetoothAddress (btDevice.getAddress()); + if (midiDevicePair != null) + { + BluetoothGatt gatt = midiDevicePair.second; + + if (gatt != null) + { + gatt.disconnect(); + gatt.close(); + } + } + } + + try + { + theDevice.close(); + } + catch (IOException e) + {} + } + } + } + + public String getPortName(MidiPortPath path) + { + int portTypeToFind = (path.isInput ? MidiDeviceInfo.PortInfo.TYPE_INPUT : MidiDeviceInfo.PortInfo.TYPE_OUTPUT); + + synchronized (MidiDeviceManager.class) + { + for (MidiDeviceInfo info : deviceInfos) + { + int localIndex = 0; + if (info.getId() == path.deviceId) + { + for (MidiDeviceInfo.PortInfo portInfo : info.getPorts()) + { + int portType = portInfo.getType(); + if (portType == portTypeToFind) + { + int portIndex = portInfo.getPortNumber(); + if (portIndex == path.portIndex) + { + String portName = portInfo.getName(); + if (portName.isEmpty()) + portName = (String) info.getProperties().get(info.PROPERTY_NAME); + + return portName; + } + } + } + } + } + } + + return ""; + } + + public MidiPortPath getPortPathForJuceIndex (int portType, int juceIndex) + { + int portIdx = 0; + for (MidiDeviceInfo info : deviceInfos) + { + for (MidiDeviceInfo.PortInfo portInfo : info.getPorts()) + { + if (portInfo.getType() == portType) + { + if (portIdx == juceIndex) + return new MidiPortPath (info.getId(), + (portType == MidiDeviceInfo.PortInfo.TYPE_INPUT), + portInfo.getPortNumber()); + + portIdx++; + } + } + } + + return null; + } + + private MidiDeviceInfo[] getDeviceInfos() + { + synchronized (MidiDeviceManager.class) + { + MidiDeviceInfo[] infos = new MidiDeviceInfo[midiDevices.size()]; + + int idx = 0; + for (Pair midiDevice : midiDevices) + infos[idx++] = midiDevice.first.getInfo(); + + return infos; + } + } + + private Pair getMidiDevicePairForId (int deviceId) + { + synchronized (MidiDeviceManager.class) + { + for (Pair midiDevice : midiDevices) + if (midiDevice.first.getInfo().getId() == deviceId) + return midiDevice; + } + + return null; + } + + private MidiManager manager; + private HashMap btDevicesPairing; + private HashMap openTasks; + private ArrayList> midiDevices; + private MidiDeviceInfo[] deviceInfos; + private HashMap> openPorts; + } + + public MidiDeviceManager getAndroidMidiDeviceManager() + { + if (getSystemService (MIDI_SERVICE) == null) + return null; + + synchronized (PushNotificationsDemo.class) + { + if (midiDeviceManager == null) + midiDeviceManager = new MidiDeviceManager(); + } + + return midiDeviceManager; + } + + public BluetoothManager getAndroidBluetoothManager() + { + BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); + + if (adapter == null) + return null; + + if (adapter.getBluetoothLeScanner() == null) + return null; + + synchronized (PushNotificationsDemo.class) + { + if (bluetoothManager == null) + bluetoothManager = new BluetoothManager(); + } + + return bluetoothManager; + } + + //============================================================================== + @Override + public void onCreate (Bundle savedInstanceState) + { + super.onCreate (savedInstanceState); + + isScreenSaverEnabled = true; + hideActionBar(); + viewHolder = new ViewHolder (this); + setContentView (viewHolder); + + setVolumeControlStream (AudioManager.STREAM_MUSIC); + + permissionCallbackPtrMap = new HashMap(); + } + + @Override + protected void onDestroy() + { + quitApp(); + super.onDestroy(); + + clearDataCache(); + } + + @Override + protected void onPause() + { + suspendApp(); + + try + { + Thread.sleep (1000); // This is a bit of a hack to avoid some hard-to-track-down + // openGL glitches when pausing/resuming apps.. + } catch (InterruptedException e) {} + + super.onPause(); + } + + @Override + protected void onResume() + { + super.onResume(); + resumeApp(); + } + + @Override + public void onConfigurationChanged (Configuration cfg) + { + super.onConfigurationChanged (cfg); + setContentView (viewHolder); + } + + private void callAppLauncher() + { + launchApp (getApplicationInfo().publicSourceDir, + getApplicationInfo().dataDir); + } + + //============================================================================== + private void hideActionBar() + { + // get "getActionBar" method + java.lang.reflect.Method getActionBarMethod = null; + try + { + getActionBarMethod = this.getClass().getMethod ("getActionBar"); + } + catch (SecurityException e) { return; } + catch (NoSuchMethodException e) { return; } + if (getActionBarMethod == null) return; + + // invoke "getActionBar" method + Object actionBar = null; + try + { + actionBar = getActionBarMethod.invoke (this); + } + catch (java.lang.IllegalArgumentException e) { return; } + catch (java.lang.IllegalAccessException e) { return; } + catch (java.lang.reflect.InvocationTargetException e) { return; } + if (actionBar == null) return; + + // get "hide" method + java.lang.reflect.Method actionBarHideMethod = null; + try + { + actionBarHideMethod = actionBar.getClass().getMethod ("hide"); + } + catch (SecurityException e) { return; } + catch (NoSuchMethodException e) { return; } + if (actionBarHideMethod == null) return; + + // invoke "hide" method + try + { + actionBarHideMethod.invoke (actionBar); + } + catch (java.lang.IllegalArgumentException e) {} + catch (java.lang.IllegalAccessException e) {} + catch (java.lang.reflect.InvocationTargetException e) {} + } + + void requestPermissionsCompat (String[] permissions, int requestCode) + { + Method requestPermissionsMethod = null; + try + { + requestPermissionsMethod = this.getClass().getMethod ("requestPermissions", + String[].class, int.class); + } + catch (SecurityException e) { return; } + catch (NoSuchMethodException e) { return; } + if (requestPermissionsMethod == null) return; + + try + { + requestPermissionsMethod.invoke (this, permissions, requestCode); + } + catch (java.lang.IllegalArgumentException e) {} + catch (java.lang.IllegalAccessException e) {} + catch (java.lang.reflect.InvocationTargetException e) {} + } + + //============================================================================== + private native void launchApp (String appFile, String appDataDir); + private native void quitApp(); + private native void suspendApp(); + private native void resumeApp(); + private native void setScreenSize (int screenWidth, int screenHeight, int dpi); + private native void appActivityResult (int requestCode, int resultCode, Intent data); + private native void appNewIntent (Intent intent); + + //============================================================================== + private ViewHolder viewHolder; + private MidiDeviceManager midiDeviceManager = null; + private BluetoothManager bluetoothManager = null; + private boolean isScreenSaverEnabled; + private java.util.Timer keepAliveTimer; + + public final ComponentPeerView createNewView (boolean opaque, long host) + { + ComponentPeerView v = new ComponentPeerView (this, opaque, host); + viewHolder.addView (v); + return v; + } + + public final void deleteView (ComponentPeerView view) + { + view.host = 0; + + ViewGroup group = (ViewGroup) (view.getParent()); + + if (group != null) + group.removeView (view); + } + + public final void deleteNativeSurfaceView (NativeSurfaceView view) + { + ViewGroup group = (ViewGroup) (view.getParent()); + + if (group != null) + group.removeView (view); + } + + final class ViewHolder extends ViewGroup + { + public ViewHolder (Context context) + { + super (context); + setDescendantFocusability (ViewGroup.FOCUS_AFTER_DESCENDANTS); + setFocusable (false); + } + + protected final void onLayout (boolean changed, int left, int top, int right, int bottom) + { + setScreenSize (getWidth(), getHeight(), getDPI()); + + if (isFirstResize) + { + isFirstResize = false; + callAppLauncher(); + } + } + + private final int getDPI() + { + DisplayMetrics metrics = new DisplayMetrics(); + getWindowManager().getDefaultDisplay().getMetrics (metrics); + return metrics.densityDpi; + } + + private boolean isFirstResize = true; + } + + public final void excludeClipRegion (android.graphics.Canvas canvas, float left, float top, float right, float bottom) + { + canvas.clipRect (left, top, right, bottom, android.graphics.Region.Op.DIFFERENCE); + } + + //============================================================================== + public final void setScreenSaver (boolean enabled) + { + if (isScreenSaverEnabled != enabled) + { + isScreenSaverEnabled = enabled; + + if (keepAliveTimer != null) + { + keepAliveTimer.cancel(); + keepAliveTimer = null; + } + + if (enabled) + { + getWindow().clearFlags (WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + } + else + { + getWindow().addFlags (WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + + // If no user input is received after about 3 seconds, the OS will lower the + // task's priority, so this timer forces it to be kept active. + keepAliveTimer = new java.util.Timer(); + + keepAliveTimer.scheduleAtFixedRate (new TimerTask() + { + @Override + public void run() + { + android.app.Instrumentation instrumentation = new android.app.Instrumentation(); + + try + { + instrumentation.sendKeyDownUpSync (KeyEvent.KEYCODE_UNKNOWN); + } + catch (Exception e) + { + } + } + }, 2000, 2000); + } + } + } + + public final boolean getScreenSaver() + { + return isScreenSaverEnabled; + } + + //============================================================================== + public final String getClipboardContent() + { + ClipboardManager clipboard = (ClipboardManager) getSystemService (CLIPBOARD_SERVICE); + return clipboard.getText().toString(); + } + + public final void setClipboardContent (String newText) + { + ClipboardManager clipboard = (ClipboardManager) getSystemService (CLIPBOARD_SERVICE); + clipboard.setText (newText); + } + + //============================================================================== + public final void showMessageBox (String title, String message, final long callback) + { + AlertDialog.Builder builder = new AlertDialog.Builder (this); + builder.setTitle (title) + .setMessage (message) + .setCancelable (true) + .setOnCancelListener (new DialogInterface.OnCancelListener() + { + public void onCancel (DialogInterface dialog) + { + PushNotificationsDemo.this.alertDismissed (callback, 0); + } + }) + .setPositiveButton ("OK", new DialogInterface.OnClickListener() + { + public void onClick (DialogInterface dialog, int id) + { + dialog.dismiss(); + PushNotificationsDemo.this.alertDismissed (callback, 0); + } + }); + + builder.create().show(); + } + + public final void showOkCancelBox (String title, String message, final long callback, + String okButtonText, String cancelButtonText) + { + AlertDialog.Builder builder = new AlertDialog.Builder (this); + builder.setTitle (title) + .setMessage (message) + .setCancelable (true) + .setOnCancelListener (new DialogInterface.OnCancelListener() + { + public void onCancel (DialogInterface dialog) + { + PushNotificationsDemo.this.alertDismissed (callback, 0); + } + }) + .setPositiveButton (okButtonText.isEmpty() ? "OK" : okButtonText, new DialogInterface.OnClickListener() + { + public void onClick (DialogInterface dialog, int id) + { + dialog.dismiss(); + PushNotificationsDemo.this.alertDismissed (callback, 1); + } + }) + .setNegativeButton (cancelButtonText.isEmpty() ? "Cancel" : cancelButtonText, new DialogInterface.OnClickListener() + { + public void onClick (DialogInterface dialog, int id) + { + dialog.dismiss(); + PushNotificationsDemo.this.alertDismissed (callback, 0); + } + }); + + builder.create().show(); + } + + public final void showYesNoCancelBox (String title, String message, final long callback) + { + AlertDialog.Builder builder = new AlertDialog.Builder (this); + builder.setTitle (title) + .setMessage (message) + .setCancelable (true) + .setOnCancelListener (new DialogInterface.OnCancelListener() + { + public void onCancel (DialogInterface dialog) + { + PushNotificationsDemo.this.alertDismissed (callback, 0); + } + }) + .setPositiveButton ("Yes", new DialogInterface.OnClickListener() + { + public void onClick (DialogInterface dialog, int id) + { + dialog.dismiss(); + PushNotificationsDemo.this.alertDismissed (callback, 1); + } + }) + .setNegativeButton ("No", new DialogInterface.OnClickListener() + { + public void onClick (DialogInterface dialog, int id) + { + dialog.dismiss(); + PushNotificationsDemo.this.alertDismissed (callback, 2); + } + }) + .setNeutralButton ("Cancel", new DialogInterface.OnClickListener() + { + public void onClick (DialogInterface dialog, int id) + { + dialog.dismiss(); + PushNotificationsDemo.this.alertDismissed (callback, 0); + } + }); + + builder.create().show(); + } + + public native void alertDismissed (long callback, int id); + + //============================================================================== + public final class ComponentPeerView extends ViewGroup + implements View.OnFocusChangeListener + { + public ComponentPeerView (Context context, boolean opaque_, long host) + { + super (context); + this.host = host; + setWillNotDraw (false); + opaque = opaque_; + + setFocusable (true); + setFocusableInTouchMode (true); + setOnFocusChangeListener (this); + + // swap red and blue colours to match internal opengl texture format + ColorMatrix colorMatrix = new ColorMatrix(); + + float[] colorTransform = { 0, 0, 1.0f, 0, 0, + 0, 1.0f, 0, 0, 0, + 1.0f, 0, 0, 0, 0, + 0, 0, 0, 1.0f, 0 }; + + colorMatrix.set (colorTransform); + paint.setColorFilter (new ColorMatrixColorFilter (colorMatrix)); + } + + //============================================================================== + private native void handlePaint (long host, Canvas canvas, Paint paint); + + @Override + public void onDraw (Canvas canvas) + { + if (host == 0) + return; + + handlePaint (host, canvas, paint); + } + + @Override + public boolean isOpaque() + { + return opaque; + } + + private boolean opaque; + private long host; + private Paint paint = new Paint(); + + //============================================================================== + private native void handleMouseDown (long host, int index, float x, float y, long time); + private native void handleMouseDrag (long host, int index, float x, float y, long time); + private native void handleMouseUp (long host, int index, float x, float y, long time); + + @Override + public boolean onTouchEvent (MotionEvent event) + { + if (host == 0) + return false; + + int action = event.getAction(); + long time = event.getEventTime(); + + switch (action & MotionEvent.ACTION_MASK) + { + case MotionEvent.ACTION_DOWN: + handleMouseDown (host, event.getPointerId(0), event.getX(), event.getY(), time); + return true; + + case MotionEvent.ACTION_CANCEL: + case MotionEvent.ACTION_UP: + handleMouseUp (host, event.getPointerId(0), event.getX(), event.getY(), time); + return true; + + case MotionEvent.ACTION_MOVE: + { + int n = event.getPointerCount(); + for (int i = 0; i < n; ++i) + handleMouseDrag (host, event.getPointerId(i), event.getX(i), event.getY(i), time); + + return true; + } + + case MotionEvent.ACTION_POINTER_UP: + { + int i = (action & MotionEvent.ACTION_POINTER_INDEX_MASK) >> MotionEvent.ACTION_POINTER_INDEX_SHIFT; + handleMouseUp (host, event.getPointerId(i), event.getX(i), event.getY(i), time); + return true; + } + + case MotionEvent.ACTION_POINTER_DOWN: + { + int i = (action & MotionEvent.ACTION_POINTER_INDEX_MASK) >> MotionEvent.ACTION_POINTER_INDEX_SHIFT; + handleMouseDown (host, event.getPointerId(i), event.getX(i), event.getY(i), time); + return true; + } + + default: + break; + } + + return false; + } + + //============================================================================== + private native void handleKeyDown (long host, int keycode, int textchar); + private native void handleKeyUp (long host, int keycode, int textchar); + private native void handleBackButton (long host); + + public void showKeyboard (String type) + { + InputMethodManager imm = (InputMethodManager) getSystemService (Context.INPUT_METHOD_SERVICE); + + if (imm != null) + { + if (type.length() > 0) + { + imm.showSoftInput (this, android.view.inputmethod.InputMethodManager.SHOW_IMPLICIT); + imm.setInputMethod (getWindowToken(), type); + } + else + { + imm.hideSoftInputFromWindow (getWindowToken(), 0); + } + } + } + + @Override + public boolean onKeyDown (int keyCode, KeyEvent event) + { + if (host == 0) + return false; + + switch (keyCode) + { + case KeyEvent.KEYCODE_VOLUME_UP: + case KeyEvent.KEYCODE_VOLUME_DOWN: + return super.onKeyDown (keyCode, event); + case KeyEvent.KEYCODE_BACK: + { + handleBackButton (host); + return true; + } + + default: + break; + } + + handleKeyDown (host, keyCode, event.getUnicodeChar()); + return true; + } + + @Override + public boolean onKeyUp (int keyCode, KeyEvent event) + { + if (host == 0) + return false; + + handleKeyUp (host, keyCode, event.getUnicodeChar()); + return true; + } + + @Override + public boolean onKeyMultiple (int keyCode, int count, KeyEvent event) + { + if (host == 0) + return false; + + if (keyCode != KeyEvent.KEYCODE_UNKNOWN || event.getAction() != KeyEvent.ACTION_MULTIPLE) + return super.onKeyMultiple (keyCode, count, event); + + if (event.getCharacters() != null) + { + int utf8Char = event.getCharacters().codePointAt (0); + handleKeyDown (host, utf8Char, utf8Char); + return true; + } + + return false; + } + + // this is here to make keyboard entry work on a Galaxy Tab2 10.1 + @Override + public InputConnection onCreateInputConnection (EditorInfo outAttrs) + { + outAttrs.actionLabel = ""; + outAttrs.hintText = ""; + outAttrs.initialCapsMode = 0; + outAttrs.initialSelEnd = outAttrs.initialSelStart = -1; + outAttrs.label = ""; + outAttrs.imeOptions = EditorInfo.IME_ACTION_DONE | EditorInfo.IME_FLAG_NO_EXTRACT_UI; + outAttrs.inputType = InputType.TYPE_NULL; + + return new BaseInputConnection (this, false); + } + + //============================================================================== + @Override + protected void onSizeChanged (int w, int h, int oldw, int oldh) + { + if (host == 0) + return; + + super.onSizeChanged (w, h, oldw, oldh); + viewSizeChanged (host); + } + + @Override + protected void onLayout (boolean changed, int left, int top, int right, int bottom) + { + for (int i = getChildCount(); --i >= 0;) + requestTransparentRegion (getChildAt (i)); + } + + private native void viewSizeChanged (long host); + + @Override + public void onFocusChange (View v, boolean hasFocus) + { + if (host == 0) + return; + + if (v == this) + focusChanged (host, hasFocus); + } + + private native void focusChanged (long host, boolean hasFocus); + + public void setViewName (String newName) {} + + public void setSystemUiVisibilityCompat (int visibility) + { + Method systemUIVisibilityMethod = null; + try + { + systemUIVisibilityMethod = this.getClass().getMethod ("setSystemUiVisibility", int.class); + } + catch (SecurityException e) { return; } + catch (NoSuchMethodException e) { return; } + if (systemUIVisibilityMethod == null) return; + + try + { + systemUIVisibilityMethod.invoke (this, visibility); + } + catch (java.lang.IllegalArgumentException e) {} + catch (java.lang.IllegalAccessException e) {} + catch (java.lang.reflect.InvocationTargetException e) {} + } + + public boolean isVisible() { return getVisibility() == VISIBLE; } + public void setVisible (boolean b) { setVisibility (b ? VISIBLE : INVISIBLE); } + + public boolean containsPoint (int x, int y) + { + return true; //xxx needs to check overlapping views + } + } + + //============================================================================== + public static class NativeSurfaceView extends SurfaceView + implements SurfaceHolder.Callback + { + private long nativeContext = 0; + + NativeSurfaceView (Context context, long nativeContextPtr) + { + super (context); + nativeContext = nativeContextPtr; + } + + public Surface getNativeSurface() + { + Surface retval = null; + + SurfaceHolder holder = getHolder(); + if (holder != null) + retval = holder.getSurface(); + + return retval; + } + + //============================================================================== + @Override + public void surfaceChanged (SurfaceHolder holder, int format, int width, int height) + { + surfaceChangedNative (nativeContext, holder, format, width, height); + } + + @Override + public void surfaceCreated (SurfaceHolder holder) + { + surfaceCreatedNative (nativeContext, holder); + } + + @Override + public void surfaceDestroyed (SurfaceHolder holder) + { + surfaceDestroyedNative (nativeContext, holder); + } + + @Override + protected void dispatchDraw (Canvas canvas) + { + super.dispatchDraw (canvas); + dispatchDrawNative (nativeContext, canvas); + } + + //============================================================================== + @Override + protected void onAttachedToWindow () + { + super.onAttachedToWindow(); + getHolder().addCallback (this); + } + + @Override + protected void onDetachedFromWindow () + { + super.onDetachedFromWindow(); + getHolder().removeCallback (this); + } + + //============================================================================== + private native void dispatchDrawNative (long nativeContextPtr, Canvas canvas); + private native void surfaceCreatedNative (long nativeContextptr, SurfaceHolder holder); + private native void surfaceDestroyedNative (long nativeContextptr, SurfaceHolder holder); + private native void surfaceChangedNative (long nativeContextptr, SurfaceHolder holder, + int format, int width, int height); + } + + public NativeSurfaceView createNativeSurfaceView (long nativeSurfacePtr) + { + return new NativeSurfaceView (this, nativeSurfacePtr); + } + + //============================================================================== + public final int[] renderGlyph (char glyph1, char glyph2, Paint paint, android.graphics.Matrix matrix, Rect bounds) + { + Path p = new Path(); + + char[] str = { glyph1, glyph2 }; + paint.getTextPath (str, 0, (glyph2 != 0 ? 2 : 1), 0.0f, 0.0f, p); + + RectF boundsF = new RectF(); + p.computeBounds (boundsF, true); + matrix.mapRect (boundsF); + + boundsF.roundOut (bounds); + bounds.left--; + bounds.right++; + + final int w = bounds.width(); + final int h = Math.max (1, bounds.height()); + + Bitmap bm = Bitmap.createBitmap (w, h, Bitmap.Config.ARGB_8888); + + Canvas c = new Canvas (bm); + matrix.postTranslate (-bounds.left, -bounds.top); + c.setMatrix (matrix); + c.drawPath (p, paint); + + final int sizeNeeded = w * h; + if (cachedRenderArray.length < sizeNeeded) + cachedRenderArray = new int [sizeNeeded]; + + bm.getPixels (cachedRenderArray, 0, w, 0, 0, w, h); + bm.recycle(); + return cachedRenderArray; + } + + private int[] cachedRenderArray = new int [256]; + + //============================================================================== + public static class NativeInvocationHandler implements InvocationHandler + { + public NativeInvocationHandler (long nativeContextRef) + { + nativeContext = nativeContextRef; + } + + @Override + public void finalize() + { + dispatchFinalize (nativeContext); + } + + @Override + public Object invoke (Object proxy, Method method, Object[] args) throws Throwable + { + return dispatchInvoke (nativeContext, proxy, method, args); + } + + //============================================================================== + private long nativeContext = 0; + + private native void dispatchFinalize (long nativeContextRef); + private native Object dispatchInvoke (long nativeContextRef, Object proxy, Method method, Object[] args); + } + + public static InvocationHandler createInvocationHandler (long nativeContextRef) + { + return new NativeInvocationHandler (nativeContextRef); + } + + //============================================================================== + public static class HTTPStream + { + public HTTPStream (String address, boolean isPostToUse, byte[] postDataToUse, + String headersToUse, int timeOutMsToUse, + int[] statusCodeToUse, StringBuffer responseHeadersToUse, + int numRedirectsToFollowToUse, String httpRequestCmdToUse) throws IOException + { + isPost = isPostToUse; + postData = postDataToUse; + headers = headersToUse; + timeOutMs = timeOutMsToUse; + statusCode = statusCodeToUse; + responseHeaders = responseHeadersToUse; + totalLength = -1; + numRedirectsToFollow = numRedirectsToFollowToUse; + httpRequestCmd = httpRequestCmdToUse; + + connection = createConnection (address, isPost, postData, headers, timeOutMs, httpRequestCmd); + } + + private final HttpURLConnection createConnection (String address, boolean isPost, byte[] postData, + String headers, int timeOutMs, String httpRequestCmdToUse) throws IOException + { + HttpURLConnection newConnection = (HttpURLConnection) (new URL(address).openConnection()); + + try + { + newConnection.setInstanceFollowRedirects (false); + newConnection.setConnectTimeout (timeOutMs); + newConnection.setReadTimeout (timeOutMs); + + // headers - if not empty, this string is appended onto the headers that are used for the request. It must therefore be a valid set of HTML header directives, separated by newlines. + // So convert headers string to an array, with an element for each line + String headerLines[] = headers.split("\\n"); + + // Set request headers + for (int i = 0; i < headerLines.length; ++i) + { + int pos = headerLines[i].indexOf (":"); + + if (pos > 0 && pos < headerLines[i].length()) + { + String field = headerLines[i].substring (0, pos); + String value = headerLines[i].substring (pos + 1); + + if (value.length() > 0) + newConnection.setRequestProperty (field, value); + } + } + + newConnection.setRequestMethod (httpRequestCmd); + + if (isPost) + { + newConnection.setDoOutput (true); + + if (postData != null) + { + OutputStream out = newConnection.getOutputStream(); + out.write(postData); + out.flush(); + } + } + + return newConnection; + } + catch (Throwable e) + { + newConnection.disconnect(); + throw new IOException ("Connection error"); + } + } + + private final InputStream getCancellableStream (final boolean isInput) throws ExecutionException + { + synchronized (createFutureLock) + { + if (hasBeenCancelled.get()) + return null; + + streamFuture = executor.submit (new Callable() + { + @Override + public BufferedInputStream call() throws IOException + { + return new BufferedInputStream (isInput ? connection.getInputStream() + : connection.getErrorStream()); + } + }); + } + + try + { + return streamFuture.get(); + } + catch (InterruptedException e) + { + return null; + } + catch (CancellationException e) + { + return null; + } + } + + public final boolean connect() + { + boolean result = false; + int numFollowedRedirects = 0; + + while (true) + { + result = doConnect(); + + if (! result) + return false; + + if (++numFollowedRedirects > numRedirectsToFollow) + break; + + int status = statusCode[0]; + + if (status == 301 || status == 302 || status == 303 || status == 307) + { + // Assumes only one occurrence of "Location" + int pos1 = responseHeaders.indexOf ("Location:") + 10; + int pos2 = responseHeaders.indexOf ("\n", pos1); + + if (pos2 > pos1) + { + String currentLocation = connection.getURL().toString(); + String newLocation = responseHeaders.substring (pos1, pos2); + + try + { + // Handle newLocation whether it's absolute or relative + URL baseUrl = new URL (currentLocation); + URL newUrl = new URL (baseUrl, newLocation); + String transformedNewLocation = newUrl.toString(); + + if (transformedNewLocation != currentLocation) + { + // Clear responseHeaders before next iteration + responseHeaders.delete (0, responseHeaders.length()); + + synchronized (createStreamLock) + { + if (hasBeenCancelled.get()) + return false; + + connection.disconnect(); + + try + { + connection = createConnection (transformedNewLocation, isPost, + postData, headers, timeOutMs, + httpRequestCmd); + } + catch (Throwable e) + { + return false; + } + } + } + else + { + break; + } + } + catch (Throwable e) + { + return false; + } + } + else + { + break; + } + } + else + { + break; + } + } + + return result; + } + + private final boolean doConnect() + { + synchronized (createStreamLock) + { + if (hasBeenCancelled.get()) + return false; + + try + { + try + { + inputStream = getCancellableStream (true); + } + catch (ExecutionException e) + { + if (connection.getResponseCode() < 400) + { + statusCode[0] = connection.getResponseCode(); + connection.disconnect(); + return false; + } + } + finally + { + statusCode[0] = connection.getResponseCode(); + } + + try + { + if (statusCode[0] >= 400) + inputStream = getCancellableStream (false); + else + inputStream = getCancellableStream (true); + } + catch (ExecutionException e) + {} + + for (java.util.Map.Entry> entry : connection.getHeaderFields().entrySet()) + { + if (entry.getKey() != null && entry.getValue() != null) + { + responseHeaders.append(entry.getKey() + ": " + + android.text.TextUtils.join(",", entry.getValue()) + "\n"); + + if (entry.getKey().compareTo ("Content-Length") == 0) + totalLength = Integer.decode (entry.getValue().get (0)); + } + } + + return true; + } + catch (IOException e) + { + return false; + } + } + } + + static class DisconnectionRunnable implements Runnable + { + public DisconnectionRunnable (HttpURLConnection theConnection, + InputStream theInputStream, + ReentrantLock theCreateStreamLock, + Object theCreateFutureLock, + Future theStreamFuture) + { + connectionToDisconnect = theConnection; + inputStream = theInputStream; + createStreamLock = theCreateStreamLock; + createFutureLock = theCreateFutureLock; + streamFuture = theStreamFuture; + } + + public void run() + { + try + { + if (! createStreamLock.tryLock()) + { + synchronized (createFutureLock) + { + if (streamFuture != null) + streamFuture.cancel (true); + } + + createStreamLock.lock(); + } + + if (connectionToDisconnect != null) + connectionToDisconnect.disconnect(); + + if (inputStream != null) + inputStream.close(); + } + catch (IOException e) + {} + finally + { + createStreamLock.unlock(); + } + } + + private HttpURLConnection connectionToDisconnect; + private InputStream inputStream; + private ReentrantLock createStreamLock; + private Object createFutureLock; + Future streamFuture; + } + + public final void release() + { + DisconnectionRunnable disconnectionRunnable = new DisconnectionRunnable (connection, + inputStream, + createStreamLock, + createFutureLock, + streamFuture); + + synchronized (createStreamLock) + { + hasBeenCancelled.set (true); + + connection = null; + } + + Thread disconnectionThread = new Thread(disconnectionRunnable); + disconnectionThread.start(); + } + + public final int read (byte[] buffer, int numBytes) + { + int num = 0; + + try + { + synchronized (createStreamLock) + { + if (inputStream != null) + num = inputStream.read (buffer, 0, numBytes); + } + } + catch (IOException e) + {} + + if (num > 0) + position += num; + + return num; + } + + public final long getPosition() { return position; } + public final long getTotalLength() { return totalLength; } + public final boolean isExhausted() { return false; } + public final boolean setPosition (long newPos) { return false; } + + private boolean isPost; + private byte[] postData; + private String headers; + private int timeOutMs; + String httpRequestCmd; + private HttpURLConnection connection; + private int[] statusCode; + private StringBuffer responseHeaders; + private int totalLength; + private int numRedirectsToFollow; + private InputStream inputStream; + private long position; + private final ReentrantLock createStreamLock = new ReentrantLock(); + private final Object createFutureLock = new Object(); + private AtomicBoolean hasBeenCancelled = new AtomicBoolean(); + + private final ExecutorService executor = Executors.newCachedThreadPool (Executors.defaultThreadFactory()); + Future streamFuture; + } + + public static final HTTPStream createHTTPStream (String address, boolean isPost, byte[] postData, + String headers, int timeOutMs, int[] statusCode, + StringBuffer responseHeaders, int numRedirectsToFollow, + String httpRequestCmd) + { + // timeout parameter of zero for HttpUrlConnection is a blocking connect (negative value for juce::URL) + if (timeOutMs < 0) + timeOutMs = 0; + else if (timeOutMs == 0) + timeOutMs = 30000; + + for (;;) + { + try + { + HTTPStream httpStream = new HTTPStream (address, isPost, postData, headers, + timeOutMs, statusCode, responseHeaders, + numRedirectsToFollow, httpRequestCmd); + + return httpStream; + } + catch (Throwable e) {} + + return null; + } + } + + public final void launchURL (String url) + { + startActivity (new Intent (Intent.ACTION_VIEW, Uri.parse (url))); + } + + public static final String getLocaleValue (boolean isRegion) + { + java.util.Locale locale = java.util.Locale.getDefault(); + + return isRegion ? locale.getCountry() + : locale.getLanguage(); + } + + private static final String getFileLocation (String type) + { + return Environment.getExternalStoragePublicDirectory (type).getAbsolutePath(); + } + + public static final String getDocumentsFolder() + { + if (getAndroidSDKVersion() >= 19) + return getFileLocation ("Documents"); + + return Environment.getDataDirectory().getAbsolutePath(); + } + + public static final String getPicturesFolder() { return getFileLocation (Environment.DIRECTORY_PICTURES); } + public static final String getMusicFolder() { return getFileLocation (Environment.DIRECTORY_MUSIC); } + public static final String getMoviesFolder() { return getFileLocation (Environment.DIRECTORY_MOVIES); } + public static final String getDownloadsFolder() { return getFileLocation (Environment.DIRECTORY_DOWNLOADS); } + + //============================================================================== + @Override + protected void onActivityResult (int requestCode, int resultCode, Intent data) + { + appActivityResult (requestCode, resultCode, data); + } + + @Override + protected void onNewIntent (Intent intent) + { + super.onNewIntent(intent); + setIntent(intent); + + appNewIntent (intent); + } + + //============================================================================== + public final Typeface getTypeFaceFromAsset (String assetName) + { + try + { + return Typeface.createFromAsset (this.getResources().getAssets(), assetName); + } + catch (Throwable e) {} + + return null; + } + + final protected static char[] hexArray = "0123456789ABCDEF".toCharArray(); + + public static String bytesToHex (byte[] bytes) + { + char[] hexChars = new char[bytes.length * 2]; + + for (int j = 0; j < bytes.length; ++j) + { + int v = bytes[j] & 0xff; + hexChars[j * 2] = hexArray[v >>> 4]; + hexChars[j * 2 + 1] = hexArray[v & 0x0f]; + } + + return new String (hexChars); + } + + final private java.util.Map dataCache = new java.util.HashMap(); + + synchronized private final File getDataCacheFile (byte[] data) + { + try + { + java.security.MessageDigest digest = java.security.MessageDigest.getInstance ("MD5"); + digest.update (data); + + String key = bytesToHex (digest.digest()); + + if (dataCache.containsKey (key)) + return (File) dataCache.get (key); + + File f = new File (this.getCacheDir(), "bindata_" + key); + f.delete(); + FileOutputStream os = new FileOutputStream (f); + os.write (data, 0, data.length); + dataCache.put (key, f); + return f; + } + catch (Throwable e) {} + + return null; + } + + private final void clearDataCache() + { + java.util.Iterator it = dataCache.values().iterator(); + + while (it.hasNext()) + { + File f = (File) it.next(); + f.delete(); + } + } + + public final Typeface getTypeFaceFromByteArray (byte[] data) + { + try + { + File f = getDataCacheFile (data); + + if (f != null) + return Typeface.createFromFile (f); + } + catch (Exception e) + { + Log.e ("JUCE", e.toString()); + } + + return null; + } + + public static final int getAndroidSDKVersion() + { + return android.os.Build.VERSION.SDK_INT; + } + + public final String audioManagerGetProperty (String property) + { + Object obj = getSystemService (AUDIO_SERVICE); + if (obj == null) + return null; + + java.lang.reflect.Method method; + + try + { + method = obj.getClass().getMethod ("getProperty", String.class); + } + catch (SecurityException e) { return null; } + catch (NoSuchMethodException e) { return null; } + + if (method == null) + return null; + + try + { + return (String) method.invoke (obj, property); + } + catch (java.lang.IllegalArgumentException e) {} + catch (java.lang.IllegalAccessException e) {} + catch (java.lang.reflect.InvocationTargetException e) {} + + return null; + } + + public final boolean hasSystemFeature (String property) + { + return getPackageManager().hasSystemFeature (property); + } +} diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/demonstrative.mp3 b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/demonstrative.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..45439d2cafb5d7ce6304f7987ccd58fd2d123b46 GIT binary patch literal 127059 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≷!Qn&2- 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 literal 0 HcmV?d00001 diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name.png b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name.png new file mode 100644 index 0000000000000000000000000000000000000000..84d0e8dceaeff3c06523001c76e27e7ed4e6d59f GIT binary patch literal 351 zcmV-l0igbgP)PxT9|Q40AZ`L;6-o@ZfEtPq`~l)wK+H#~;n6_+^FQ(6 z3J^;XYq%2-|Nc)pI0wX>NapAP@nIm|jchmv5a0h#K4?TT%LXd;71@HM|CE6bK+J>B zf~|Nop9kVXAnpX>FL>1XWr503HkK@mcT{ho(hn34s%j1^rMpazNYw z#MQ+3;4TnzA*u5tOxXMs2mh}(epGahvTP_x8=I2nlJku6B3bt(dd?E?xd zXht$i2Z(n9@h0?Oav?J(UqFs0Ld8WK5dR{<@M}OULu!F%4K2j*fxkdJ7l`@EEwY(G xITMr*fcPp9zX9TBKzsyO%kk002ovPDHLkV1f{VN<=E)@wijssP@gkGC&z!l>nY$)QF+=hog%=)B z!UGw%NM4k29ZbwQXZw9MyH=}hW*_@(`|Mg@eKF1QegEJ3zO~j~E0$%g((6rluwV`iP&RGC83ER99C|Mc555;@w~x8yf}W z9o5(p8boDf<#Yty8bNFVPmKgZn*lDJD9gBcD2zfjjfSAlQ&_@`TP$5{{19EO;M7$)StiAN- z;WQTZT!i$E2H+T#DAwBvfQy+rWmnbK)+QSo8WQ|{zt?}q?lKP{FTISFg$u-0+;&`Y zQi845|?1KJ8092h0>^;+q;2i0S|j#x|`ApYh3l z+Gm3r5FY|yaZmtkqbtdga`MSqkPksW?Nh1(Q09k0Zo_gCljn_^lkcXJerDtfqHV|7 z@|uG_OAvip&54Hdeh#LGTCf8_1JLtF)tu~Rcl|7?S86bV?+6-zgK)Q2^(TG+UaG+e z9{4*Cd;cyqCoT2V55NNr;NX9#z!44Lo}UGEnNMZgaat%IGyv-7Q-z%yE7ZW>q9V|Y@W zc3P2<3k|`pssQql#Vzf)$2Jt;CvsCu1L8zkS=oh5KAq$d^rs5Jmiilry`$|)GFBj{ z!XrM=9Y9_%rh-3L%XLz2Q~FqeU}4|Rc#EWQ&74qL zS{g@8$_+%G3k3#|DPR)%7zN^{ysd@;A*}+$4#d276X?Z<+v%FzyTg2)o=tDZ5cKsQ zA^PR>!3x{tNfAN&@ay;&j{u)aN=ovrY%}TW;^N{wT5JQp4YyrfAPcN0n2Y!U0M}Si zF-`mre4P~~Q^XI_Hk+)d*|7LuEZ9OTiiYqZe5(~zWA>x_Uv7*UGiJ<~F=NKE-2MO_ W<{M-x#}{`10000m3^a literal 0 HcmV?d00001 diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name2.png b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name2.png new file mode 100644 index 0000000000000000000000000000000000000000..9971da9b43d95be520a5f5a76d151ab8cfa9153d GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjlRaG=Ln>}1CoEw9@&EsRMuGXP zkMte>Om*Thddws6S~;4*XwIz%JeyeKGZGGpr*QAPbf9VdlBf@I9h(>aP}bF{Xj<~` z=L*&v2fPDrwLLQ5vZ3MG%8qAZJbyj@vFdI<=X6sg^26L~g&&&P#P%%T%3Ay}a)VUI z@(G>l%!PUan;&mlFi|Y@8UHNFz7$7gUG2YFZ40>=(i6naWy)S~1Uiqw)78&qol`;+ E0JQ2-kN^Mx literal 0 HcmV?d00001 diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name3.png b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name3.png new file mode 100644 index 0000000000000000000000000000000000000000..17bfe3ac7c401d05299bf24209346a16e53c5ff0 GIT binary patch literal 292 zcmV+<0o(qGP)!&dsRw=oaTc-#&!7^!fOs2)co)>H z$H*3ZfC}| qY=IjP-v{EKRKlP*b72?-!~g&o5?G(;eA#~h0000uS)s^+TcLuWUOR!yZHR zY(*BtX2D7%F%=;GO^i!{SP@GcV6~tcNsI}I-w|N}D9o9V^ws0D-~kY80Wlj8SCJ4z zWl%jj(436Z0ucBM^)|_o3dH{i#Q{~pfLU-0h$oVXZxLg`N(zdJRY>OiLoZ3+0`YSo n4xzw;aHtt?F-p`?fC~Ts^saU(@mUo700000NkvXXu0mjfMqY?l literal 0 HcmV?d00001 diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name5.png b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name5.png new file mode 100644 index 0000000000000000000000000000000000000000..e6219d5c1bc81b487342cba90237294a64b04532 GIT binary patch literal 337 zcmV-X0j~auP)*|NjNFG&~=O|IyTNApTDa!}DN=3nE7n zEO3D8IZlk?4yfX}Bv>$+lt@;EW*`u@#3J8>L(e^;k||U}7t}>Bf!G2~4g?yp=;0wH zC$jpA}gW0h!6?`yD-R$A|XsFf(jxqLhK?a2!bMLqnOZ9N5_2`$L2!mqA+NM zx+)cug7Bt=%B$ryU*6u(a}-d)YP<2)3gP)ixv@W zZEZU}9#1Fy-rCx#Ax>*-Y}D%O>$SSNx>?HK4Gj&m`&(LCG|ruX0~k74Q&Y3T7V#pS zs`iO!5msAUtGV57!xU4^&COyaKv&LVba^U=iWlKiA|f8q;V8zXYZ!S$%xy^(Ps?*i z^iC?CsPItAP{Y74a-2@e{P6jF`3#$HlE`ZD^U1K9p-4_kO;D9BOui9Gz@$q$>2MGe zS1mC?<+Et*r&NibXJQ%?#j*5p&K*WZzfS)DXzrlH;aJFo?Usp_O7S`wPGgA5j%I*` z#IG;ce;JrNi1>r7-$6UX3#IFH|DhBzk^#=~hg=iTtG}2EythldPAVLvkVSDDkntxK zsIIQIo!lp$MKdt}TucOJ9}&3dX*!4(GOmN%tv4AqzzVRQi93-l281l**9;rr@_Nq^SMzbik89GC$qR3r!>sYaHt`8<&`4@*HN!05iXblQk2Zg87jq z9P?@!$Df;tjkqAIVoqpG1p7nI3y7;>lLj8dx^t3nzscA#4+;$#kT#e}fbom53^0_k z%o?BrhYT5zf6OG{u6@D4i_jV?4TJ>-hD{o{7b`X*_L()n;!DEYbySuxWvOt)M4TD^}*^mK*cugjeDt(5z;Z`8b-H_)Mld;E%k!i>P6Rp&&0ckaf ze)1IQV|$b_e*oc^89GDqSe`)KfpA)hT|n$TI?20B?gJaRXwqylp@@}FDMESqmzzu? z@#JnE&H&x^%R9PG^8I<3ElA#%(~rj>8hbW&@8|eiubD!0{9CtWFG_`sbydop)^%|AXppOz5); zOW|7D^2G-6GZhsTC6;{HB3K^5MxmBMmRb6BuDrZ_J3&WMAYA60J1O5sola-2tV~H1 zKLO7r^~Vq9!zz+=!f7kTQHSKRHocLZODPo}!KFKwBGr{T8>Q=(j{gZ% z+BB_#spi!4!w-ik&HUdanF~=$Boc{4B9TZW68%)IR_n0S>Ga#}_9Lw0XyhBfy>7Rg zmJ8;+*z0ejAIdHOO8_n% z$Jw7XHeOe30O+`9+xDEPjSawW*#|)Jmd$1jMZ1Q@~B>2!M6U*f+3FoA8{vg5xtavWKfwP%dk`rM;@0YKrcxj)2BD**iP z$z*an)*ra>EDd23@FbN=#e3ve0PqPP0>CSL0DxckSpW(j`xiD$2>#A;H~5R(AggeJlp^P002ovPDHLkV1gb=>8bz# literal 0 HcmV?d00001 diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name8.png b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name8.png new file mode 100644 index 0000000000000000000000000000000000000000..3e32721c448527d9c9b2cd71f00ce6bb86bbf413 GIT binary patch literal 928 zcmV;R17G}!P)U_jlNMK@MZ3$3O_TgP+4n=-`s>C5juy$4Qc-kZ7aoSC_I=A|BwKp+qZ z1OkCTAQ1d-7#$tmo6Tmg4Gj&gvm1kb5obJ;$+S0BJRZ0?l}f#f$KxuUPEX)_n~fN4 z?8_L4HEAbCO$dj>XCjfv*H|n@6SoHk2iN~?U$$i*_C<_2%tTj9mJv*xgn)U=#GR3m zkqv+9!!~Sdi7!EXXG?PdquB)`bJ1v&Chi4;!HvIa%X@6Ywh;dXJm!dmhKWv?C{Y;J z^Zi63v8l2Rukjw+pzUXj{1Hc0C73wQQMG2`0TbO!dS0`{&xS&w!;UPi9951kg`zw@ z8XFtiLh^4d9!3u}sx+aZp(%9+Q@M1%o-Zu^XS-a=G08-rn9- zmEt=P_!TO|_hd4uY9Xr&M!8G~E>nN!y;|c_BL<}az5BHIUBkn}pRj(H9^`aVD>Q!q zcY5%V;qT34%Zp5_z^}fE$0U7-u)UTlRMkKr5Kx*BW6OXU zqY7W*fk$iI3#iSEizV1_15@C6zKqmkCvK*J5*Pxv*7GdX3b9^BoC(`dsC;7Hzw zzE7~u4>a<9psE2pwCMNym8Km7KA&$#KA&IN=ocDlGqu*uK(inQoNC~$c@YVD9q+iO zok(gkwIY#Ud+_nFzrSB;>a)8ONo}T94E|jj=rJ$4iP!?pmH)AUGC1Kv12>m`FyL7Q z7cPP?z-e&Cp`6BGKL;;x;5`C?Kp+qZ1OkDe7W@FnnRpFMsldko0000P)D`4fe}FjL2yZ&^8JtwMcZB7lUb@p>ch)Srt5dTSN*DfRU3v59XfRA(4j+z4jnpl z{BOY++f*)>&sD3{2bD^tB?$|)TI~#R=~)1hZxxG0mdRvTI-Qn+Y&Oe?1GtoXB9Bo& zNy*7%QVHa8ITCTgvjC``Q-!>VLZNWS6ZuA?F$LTFOe7M_L_8ip6^q3VjuIe!p638g z-@#+6tAJ9ebdgU4+8dfgeTLuf-;BOHJQvvLtQY${a=u`oMEstIYe!J_(C`R()nEXwpHPtUNIf0%V_$)(hhT zOzyV^eZd47OVCp>#+AGYHvwOO+jvTGeBKBCjDXY%Fi(9(B9R$<|GFUoxWQd)?zZzw zSvVX%OzZIw$uH4qjPDb3bPB&O^eW&DipPZAdW>twheW=M5kKNk$R=^UZ7Tpt%nFRc zRZ&qvn-_L@ed3v@PmuN7<=F~A)jRESv-v>_z@W{#94{|;7JxE6?NZjC4_W}0#HTJB zy6c_=VB)-LHk(@<-dY@`+A#zHUF`FH4zGG9@C4p@7C;1Xz-eNeJ!v6-08eLW2>v&p z{Cli?`z!~oZP+r*(S)@XfTfYyfvOx5KjDTI;3mDTLkG*0nVAR5B4{3vlI!KR*Nwz9}F;%nyHN1P!VR2oUq5;~Kn_1QzkbO9Fil1Oic~W95k7 piz>}ehYlS&bm-8bLx+wrj=$$ij=H!(Cuslx002ovPDHLkV1mG8m`nfw literal 0 HcmV?d00001 diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/isntit.mp3 b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/isntit.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..7b777e33f8e54a4d090c5f74539e6024c7ef1416 GIT binary patch literal 11284 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 a3~;B$i1vMg(u#xs@0R@kv;Uu-!2bgABjBF^ literal 0 HcmV?d00001 diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/jinglebellssms.mp3 b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/jinglebellssms.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..f4e4adca3f11b4e9aaeeaf6835a0dd4f3e4c1016 GIT binary patch literal 24116 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 QgdYBHHvIp!|Hn7*U&Bv^tpET3 literal 0 HcmV?d00001 diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/solemn.mp3 b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/solemn.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..907f6a40448a45fa1ffd222c58364845ea6a474a GIT binary patch literal 75650 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