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 0000000000..fd20188c7c
Binary files /dev/null and b/examples/Demo/Builds/iOS/JuceDemo/Images.xcassets/AppIcon.appiconset/Icon-AppStore-1024.png differ
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 0000000000..f673561b35
Binary files /dev/null and b/examples/Demo/Builds/iOS/JuceDemo/Images.xcassets/AppIcon.appiconset/Icon-Notification-20@2x.png differ
diff --git a/examples/Demo/Builds/iOS/JuceDemo/Images.xcassets/AppIcon.appiconset/Icon-Notification-20@3x.png b/examples/Demo/Builds/iOS/JuceDemo/Images.xcassets/AppIcon.appiconset/Icon-Notification-20@3x.png
new file mode 100644
index 0000000000..e75222a3f7
Binary files /dev/null and b/examples/Demo/Builds/iOS/JuceDemo/Images.xcassets/AppIcon.appiconset/Icon-Notification-20@3x.png differ
diff --git a/examples/Demo/Builds/iOS/JuceDemo/Images.xcassets/AppIcon.appiconset/Icon-Notifications-20.png b/examples/Demo/Builds/iOS/JuceDemo/Images.xcassets/AppIcon.appiconset/Icon-Notifications-20.png
new file mode 100644
index 0000000000..4905248f89
Binary files /dev/null and b/examples/Demo/Builds/iOS/JuceDemo/Images.xcassets/AppIcon.appiconset/Icon-Notifications-20.png differ
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 0000000000..f673561b35
Binary files /dev/null and b/examples/Demo/Builds/iOS/JuceDemo/Images.xcassets/AppIcon.appiconset/Icon-Notifications-20@2x.png differ
diff --git a/examples/HelloWorld/Builds/LinuxMakefile/Makefile b/examples/HelloWorld/Builds/LinuxMakefile/Makefile
index 0baec9b62b..b6a592c0bd 100644
--- a/examples/HelloWorld/Builds/LinuxMakefile/Makefile
+++ b/examples/HelloWorld/Builds/LinuxMakefile/Makefile
@@ -38,8 +38,8 @@ ifeq ($(CONFIG),Debug)
JUCE_TARGET_APP := HelloWorld
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 := HelloWorld
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 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/HelloWorld/Builds/MacOSX/Info-App.plist b/examples/HelloWorld/Builds/MacOSX/Info-App.plist
index 29b13c5a6b..b2ce62c159 100644
--- a/examples/HelloWorld/Builds/MacOSX/Info-App.plist
+++ b/examples/HelloWorld/Builds/MacOSX/Info-App.plist
@@ -8,7 +8,7 @@
CFBundleIconFile
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 0000000000..cec7f7c72b
Binary files /dev/null and b/examples/InAppPurchase/Builds/MacOSX/RecentFilesMenuTemplate.nib differ
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 0000000000..8317c956f5
Binary files /dev/null and b/examples/InAppPurchase/Builds/iOS/InAppPurchase/Images.xcassets/AppIcon.appiconset/Icon-AppStore-1024.png differ
diff --git a/examples/InAppPurchase/Builds/iOS/InAppPurchase/Images.xcassets/AppIcon.appiconset/Icon-Notification-20@2x.png b/examples/InAppPurchase/Builds/iOS/InAppPurchase/Images.xcassets/AppIcon.appiconset/Icon-Notification-20@2x.png
new file mode 100644
index 0000000000..26a85585a6
Binary files /dev/null and b/examples/InAppPurchase/Builds/iOS/InAppPurchase/Images.xcassets/AppIcon.appiconset/Icon-Notification-20@2x.png differ
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 0000000000..824798e565
Binary files /dev/null and b/examples/InAppPurchase/Builds/iOS/InAppPurchase/Images.xcassets/AppIcon.appiconset/Icon-Notification-20@3x.png differ
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 0000000000..3d2b013aa6
Binary files /dev/null and b/examples/InAppPurchase/Builds/iOS/InAppPurchase/Images.xcassets/AppIcon.appiconset/Icon-Notifications-20.png differ
diff --git a/examples/InAppPurchase/Builds/iOS/InAppPurchase/Images.xcassets/AppIcon.appiconset/Icon-Notifications-20@2x.png b/examples/InAppPurchase/Builds/iOS/InAppPurchase/Images.xcassets/AppIcon.appiconset/Icon-Notifications-20@2x.png
new file mode 100644
index 0000000000..26a85585a6
Binary files /dev/null and b/examples/InAppPurchase/Builds/iOS/InAppPurchase/Images.xcassets/AppIcon.appiconset/Icon-Notifications-20@2x.png differ
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 0000000000..fd20188c7c
Binary files /dev/null and b/examples/NetworkGraphicsDemo/Builds/iOS/JUCE Network Graphics Demo/Images.xcassets/AppIcon.appiconset/Icon-AppStore-1024.png differ
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 0000000000..f673561b35
Binary files /dev/null and b/examples/NetworkGraphicsDemo/Builds/iOS/JUCE Network Graphics Demo/Images.xcassets/AppIcon.appiconset/Icon-Notification-20@2x.png differ
diff --git a/examples/NetworkGraphicsDemo/Builds/iOS/JUCE Network Graphics Demo/Images.xcassets/AppIcon.appiconset/Icon-Notification-20@3x.png b/examples/NetworkGraphicsDemo/Builds/iOS/JUCE Network Graphics Demo/Images.xcassets/AppIcon.appiconset/Icon-Notification-20@3x.png
new file mode 100644
index 0000000000..e75222a3f7
Binary files /dev/null and b/examples/NetworkGraphicsDemo/Builds/iOS/JUCE Network Graphics Demo/Images.xcassets/AppIcon.appiconset/Icon-Notification-20@3x.png differ
diff --git a/examples/NetworkGraphicsDemo/Builds/iOS/JUCE Network Graphics Demo/Images.xcassets/AppIcon.appiconset/Icon-Notifications-20.png b/examples/NetworkGraphicsDemo/Builds/iOS/JUCE Network Graphics Demo/Images.xcassets/AppIcon.appiconset/Icon-Notifications-20.png
new file mode 100644
index 0000000000..4905248f89
Binary files /dev/null and b/examples/NetworkGraphicsDemo/Builds/iOS/JUCE Network Graphics Demo/Images.xcassets/AppIcon.appiconset/Icon-Notifications-20.png differ
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 0000000000..f673561b35
Binary files /dev/null and b/examples/NetworkGraphicsDemo/Builds/iOS/JUCE Network Graphics Demo/Images.xcassets/AppIcon.appiconset/Icon-Notifications-20@2x.png differ
diff --git a/examples/OSCMonitor/Builds/LinuxMakefile/Makefile b/examples/OSCMonitor/Builds/LinuxMakefile/Makefile
index d2cfa418e4..f73c343732 100644
--- a/examples/OSCMonitor/Builds/LinuxMakefile/Makefile
+++ b/examples/OSCMonitor/Builds/LinuxMakefile/Makefile
@@ -38,8 +38,8 @@ ifeq ($(CONFIG),Debug)
JUCE_TARGET_APP := OSCMonitor
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 := OSCMonitor
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/OSCMonitor/Builds/MacOSX/Info-App.plist b/examples/OSCMonitor/Builds/MacOSX/Info-App.plist
index b56cf0e393..031906f2b5 100644
--- a/examples/OSCMonitor/Builds/MacOSX/Info-App.plist
+++ b/examples/OSCMonitor/Builds/MacOSX/Info-App.plist
@@ -8,7 +8,7 @@
CFBundleIconFile
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 0000000000..45439d2caf
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/demonstrative.mp3 differ
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 0000000000..84d0e8dcea
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name.png differ
diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name10.png b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name10.png
new file mode 100644
index 0000000000..c2ad502018
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name10.png differ
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 0000000000..9971da9b43
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name2.png differ
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 0000000000..17bfe3ac7c
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name3.png differ
diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name4.png b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name4.png
new file mode 100644
index 0000000000..8a07ec8d15
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name4.png differ
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 0000000000..e6219d5c1b
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name5.png differ
diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name6.png b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name6.png
new file mode 100644
index 0000000000..ff07272703
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name6.png differ
diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name7.png b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name7.png
new file mode 100644
index 0000000000..0456dc5d55
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name7.png differ
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 0000000000..3e32721c44
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name8.png differ
diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name9.png b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name9.png
new file mode 100644
index 0000000000..57b259b372
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/ic_stat_name9.png differ
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 0000000000..7b777e33f8
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/isntit.mp3 differ
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 0000000000..f4e4adca3f
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/jinglebellssms.mp3 differ
diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/served.mp3 b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/served.mp3
new file mode 100644
index 0000000000..aa70ec2078
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/served.mp3 differ
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 0000000000..907f6a4044
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/debug/res/raw/solemn.mp3 differ
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 0000000000..45439d2caf
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/demonstrative.mp3 differ
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 0000000000..84d0e8dcea
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name.png differ
diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name10.png b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name10.png
new file mode 100644
index 0000000000..c2ad502018
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name10.png differ
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 0000000000..9971da9b43
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name2.png differ
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 0000000000..17bfe3ac7c
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name3.png differ
diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name4.png b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name4.png
new file mode 100644
index 0000000000..8a07ec8d15
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name4.png differ
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 0000000000..e6219d5c1b
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name5.png differ
diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name6.png b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name6.png
new file mode 100644
index 0000000000..ff07272703
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name6.png differ
diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name7.png b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name7.png
new file mode 100644
index 0000000000..0456dc5d55
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name7.png differ
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 0000000000..3e32721c44
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name8.png differ
diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name9.png b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name9.png
new file mode 100644
index 0000000000..57b259b372
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/ic_stat_name9.png differ
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 0000000000..7b777e33f8
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/isntit.mp3 differ
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 0000000000..f4e4adca3f
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/jinglebellssms.mp3 differ
diff --git a/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/served.mp3 b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/served.mp3
new file mode 100644
index 0000000000..aa70ec2078
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/served.mp3 differ
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 0000000000..907f6a4044
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/app/src/release/res/raw/solemn.mp3 differ
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 0000000000..13372aef5e
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/Android/gradle/wrapper/gradle-wrapper.jar differ
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 0000000000..cec7f7c72b
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/MacOSX/RecentFilesMenuTemplate.nib differ
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 0000000000..b8a0025f63
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-landscape-1x.png differ
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 0000000000..817cdf8057
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-landscape-2x.png differ
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 0000000000..f3685597a1
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-portrait-1x.png differ
diff --git a/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-portrait-2x.png b/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-portrait-2x.png
new file mode 100644
index 0000000000..5447ddfc5b
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-portrait-2x.png differ
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 0000000000..efe9e82a32
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/LaunchImage-iphone-2x.png differ
diff --git a/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/LaunchImage-iphone-retina4.png b/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/LaunchImage-iphone-retina4.png
new file mode 100644
index 0000000000..d0e3261440
Binary files /dev/null and b/examples/PushNotificationsDemo/Builds/iOS/PushNotificationsDemo/Images.xcassets/LaunchImage.launchimage/LaunchImage-iphone-retina4.png differ
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